]> git.ipfire.org Git - thirdparty/ipxe.git/commitdiff
[bios] Add bin-x86_64-pcbios build platform
authorMichael Brown <mcb30@ipxe.org>
Tue, 16 Feb 2016 15:19:01 +0000 (15:19 +0000)
committerMichael Brown <mcb30@ipxe.org>
Tue, 16 Feb 2016 19:32:32 +0000 (19:32 +0000)
Move most arch/i386 files to arch/x86, and adjust the contents of the
Makefiles and the include/bits/*.h headers to reflect the new
locations.

This patch makes no substantive code changes, as can be seen using a
rename-aware diff (e.g. "git show -M5").

This patch does not make the pcbios platform functional for x86_64; it
merely allows it to compile without errors.

Signed-off-by: Michael Brown <mcb30@ipxe.org>
155 files changed:
src/arch/i386/Makefile
src/arch/i386/Makefile.pcbios
src/arch/x86/Makefile
src/arch/x86/Makefile.pcbios [new file with mode: 0644]
src/arch/x86/core/basemem_packet.c [moved from src/arch/i386/core/basemem_packet.c with 100% similarity]
src/arch/x86/core/cachedhcp.c [moved from src/arch/i386/core/cachedhcp.c with 100% similarity]
src/arch/x86/core/dumpregs.c [moved from src/arch/i386/core/dumpregs.c with 100% similarity]
src/arch/x86/core/patch_cf.S [moved from src/arch/i386/core/patch_cf.S with 100% similarity]
src/arch/x86/core/pci_autoboot.c [moved from src/arch/i386/core/pci_autoboot.c with 100% similarity]
src/arch/x86/core/rdtsc_timer.c [moved from src/arch/i386/core/rdtsc_timer.c with 100% similarity]
src/arch/x86/core/relocate.c [moved from src/arch/i386/core/relocate.c with 100% similarity]
src/arch/x86/core/runtime.c [moved from src/arch/i386/core/runtime.c with 100% similarity]
src/arch/x86/core/stack.S [moved from src/arch/i386/core/stack.S with 100% similarity]
src/arch/x86/core/stack16.S [moved from src/arch/i386/core/stack16.S with 100% similarity]
src/arch/x86/core/video_subr.c [moved from src/arch/i386/core/video_subr.c with 100% similarity]
src/arch/x86/core/virtaddr.S [moved from src/arch/i386/core/virtaddr.S with 100% similarity]
src/arch/x86/drivers/net/undi.c [moved from src/arch/i386/drivers/net/undi.c with 100% similarity]
src/arch/x86/drivers/net/undiisr.S [moved from src/arch/i386/drivers/net/undiisr.S with 100% similarity]
src/arch/x86/drivers/net/undiload.c [moved from src/arch/i386/drivers/net/undiload.c with 100% similarity]
src/arch/x86/drivers/net/undinet.c [moved from src/arch/i386/drivers/net/undinet.c with 100% similarity]
src/arch/x86/drivers/net/undionly.c [moved from src/arch/i386/drivers/net/undionly.c with 100% similarity]
src/arch/x86/drivers/net/undipreload.c [moved from src/arch/i386/drivers/net/undipreload.c with 100% similarity]
src/arch/x86/drivers/net/undirom.c [moved from src/arch/i386/drivers/net/undirom.c with 100% similarity]
src/arch/x86/hci/commands/pxe_cmd.c [moved from src/arch/i386/hci/commands/pxe_cmd.c with 100% similarity]
src/arch/x86/image/bootsector.c [moved from src/arch/i386/image/bootsector.c with 100% similarity]
src/arch/x86/image/bzimage.c [moved from src/arch/i386/image/bzimage.c with 100% similarity]
src/arch/x86/image/elfboot.c [moved from src/arch/i386/image/elfboot.c with 100% similarity]
src/arch/x86/image/initrd.c [moved from src/arch/i386/image/initrd.c with 100% similarity]
src/arch/x86/image/multiboot.c [moved from src/arch/i386/image/multiboot.c with 100% similarity]
src/arch/x86/image/nbi.c [moved from src/arch/i386/image/nbi.c with 100% similarity]
src/arch/x86/image/pxe_image.c [moved from src/arch/i386/image/pxe_image.c with 100% similarity]
src/arch/x86/image/sdi.c [moved from src/arch/i386/image/sdi.c with 100% similarity]
src/arch/x86/include/basemem.h [moved from src/arch/i386/include/basemem.h with 100% similarity]
src/arch/x86/include/basemem_packet.h [moved from src/arch/i386/include/basemem_packet.h with 100% similarity]
src/arch/x86/include/bios.h [moved from src/arch/i386/include/bios.h with 100% similarity]
src/arch/x86/include/bios_disks.h [moved from src/arch/i386/include/bios_disks.h with 100% similarity]
src/arch/x86/include/biosint.h [moved from src/arch/i386/include/biosint.h with 100% similarity]
src/arch/x86/include/bits/entropy.h [moved from src/arch/i386/include/bits/entropy.h with 79% similarity]
src/arch/x86/include/bits/nap.h [moved from src/arch/i386/include/bits/nap.h with 79% similarity]
src/arch/x86/include/bits/reboot.h [moved from src/arch/i386/include/bits/reboot.h with 79% similarity]
src/arch/x86/include/bits/sanboot.h [moved from src/arch/i386/include/bits/sanboot.h with 79% similarity]
src/arch/x86/include/bits/smbios.h [moved from src/arch/i386/include/bits/smbios.h with 79% similarity]
src/arch/x86/include/bits/time.h [moved from src/arch/i386/include/bits/time.h with 79% similarity]
src/arch/x86/include/bits/timer.h [moved from src/arch/i386/include/bits/timer.h with 81% similarity]
src/arch/x86/include/bits/uaccess.h [moved from src/arch/i386/include/bits/uaccess.h with 76% similarity]
src/arch/x86/include/bits/umalloc.h [moved from src/arch/i386/include/bits/umalloc.h with 74% similarity]
src/arch/x86/include/bochs.h [moved from src/arch/i386/include/bochs.h with 100% similarity]
src/arch/x86/include/bootsector.h [moved from src/arch/i386/include/bootsector.h with 100% similarity]
src/arch/x86/include/bzimage.h [moved from src/arch/i386/include/bzimage.h with 100% similarity]
src/arch/x86/include/fakee820.h [moved from src/arch/i386/include/fakee820.h with 100% similarity]
src/arch/x86/include/initrd.h [moved from src/arch/i386/include/initrd.h with 100% similarity]
src/arch/x86/include/int13.h [moved from src/arch/i386/include/int13.h with 100% similarity]
src/arch/x86/include/ipxe/bios_nap.h [moved from src/arch/i386/include/ipxe/bios_nap.h with 100% similarity]
src/arch/x86/include/ipxe/bios_reboot.h [moved from src/arch/i386/include/ipxe/bios_reboot.h with 100% similarity]
src/arch/x86/include/ipxe/bios_sanboot.h [moved from src/arch/i386/include/ipxe/bios_sanboot.h with 100% similarity]
src/arch/x86/include/ipxe/bios_smbios.h [moved from src/arch/i386/include/ipxe/bios_smbios.h with 100% similarity]
src/arch/x86/include/ipxe/bios_timer.h [moved from src/arch/i386/include/ipxe/bios_timer.h with 100% similarity]
src/arch/x86/include/ipxe/errno/pcbios.h [moved from src/arch/i386/include/ipxe/errno/pcbios.h with 100% similarity]
src/arch/x86/include/ipxe/memtop_umalloc.h [moved from src/arch/i386/include/ipxe/memtop_umalloc.h with 100% similarity]
src/arch/x86/include/ipxe/rdtsc_timer.h [moved from src/arch/i386/include/ipxe/rdtsc_timer.h with 100% similarity]
src/arch/x86/include/ipxe/rtc_entropy.h [moved from src/arch/i386/include/ipxe/rtc_entropy.h with 100% similarity]
src/arch/x86/include/ipxe/rtc_time.h [moved from src/arch/i386/include/ipxe/rtc_time.h with 100% similarity]
src/arch/x86/include/ipxe/vesafb.h [moved from src/arch/i386/include/ipxe/vesafb.h with 100% similarity]
src/arch/x86/include/kir.h [moved from src/arch/i386/include/kir.h with 100% similarity]
src/arch/x86/include/libkir.h [moved from src/arch/i386/include/libkir.h with 100% similarity]
src/arch/x86/include/librm.h [moved from src/arch/i386/include/librm.h with 100% similarity]
src/arch/x86/include/memsizes.h [moved from src/arch/i386/include/memsizes.h with 100% similarity]
src/arch/x86/include/multiboot.h [moved from src/arch/i386/include/multiboot.h with 100% similarity]
src/arch/x86/include/pnpbios.h [moved from src/arch/i386/include/pnpbios.h with 100% similarity]
src/arch/x86/include/pxe.h [moved from src/arch/i386/include/pxe.h with 100% similarity]
src/arch/x86/include/pxe_api.h [moved from src/arch/i386/include/pxe_api.h with 100% similarity]
src/arch/x86/include/pxe_call.h [moved from src/arch/i386/include/pxe_call.h with 100% similarity]
src/arch/x86/include/pxe_error.h [moved from src/arch/i386/include/pxe_error.h with 100% similarity]
src/arch/x86/include/pxe_types.h [moved from src/arch/i386/include/pxe_types.h with 100% similarity]
src/arch/x86/include/pxeparent.h [moved from src/arch/i386/include/pxeparent.h with 100% similarity]
src/arch/x86/include/realmode.h [moved from src/arch/i386/include/realmode.h with 100% similarity]
src/arch/x86/include/registers.h [moved from src/arch/i386/include/registers.h with 100% similarity]
src/arch/x86/include/rmsetjmp.h [moved from src/arch/i386/include/rmsetjmp.h with 100% similarity]
src/arch/x86/include/rtc.h [moved from src/arch/i386/include/rtc.h with 100% similarity]
src/arch/x86/include/sdi.h [moved from src/arch/i386/include/sdi.h with 100% similarity]
src/arch/x86/include/undi.h [moved from src/arch/i386/include/undi.h with 100% similarity]
src/arch/x86/include/undiload.h [moved from src/arch/i386/include/undiload.h with 100% similarity]
src/arch/x86/include/undinet.h [moved from src/arch/i386/include/undinet.h with 100% similarity]
src/arch/x86/include/undipreload.h [moved from src/arch/i386/include/undipreload.h with 100% similarity]
src/arch/x86/include/undirom.h [moved from src/arch/i386/include/undirom.h with 100% similarity]
src/arch/x86/include/vga.h [moved from src/arch/i386/include/vga.h with 100% similarity]
src/arch/x86/interface/pcbios/apm.c [moved from src/arch/i386/interface/pcbios/apm.c with 100% similarity]
src/arch/x86/interface/pcbios/basemem.c [moved from src/arch/i386/firmware/pcbios/basemem.c with 100% similarity]
src/arch/x86/interface/pcbios/bios_console.c [moved from src/arch/i386/firmware/pcbios/bios_console.c with 100% similarity]
src/arch/x86/interface/pcbios/bios_nap.c [moved from src/arch/i386/interface/pcbios/bios_nap.c with 100% similarity]
src/arch/x86/interface/pcbios/bios_reboot.c [moved from src/arch/i386/interface/pcbios/bios_reboot.c with 100% similarity]
src/arch/x86/interface/pcbios/bios_smbios.c [moved from src/arch/i386/interface/pcbios/bios_smbios.c with 100% similarity]
src/arch/x86/interface/pcbios/bios_timer.c [moved from src/arch/i386/interface/pcbios/bios_timer.c with 100% similarity]
src/arch/x86/interface/pcbios/biosint.c [moved from src/arch/i386/interface/pcbios/biosint.c with 100% similarity]
src/arch/x86/interface/pcbios/e820mangler.S [moved from src/arch/i386/firmware/pcbios/e820mangler.S with 100% similarity]
src/arch/x86/interface/pcbios/fakee820.c [moved from src/arch/i386/firmware/pcbios/fakee820.c with 100% similarity]
src/arch/x86/interface/pcbios/hidemem.c [moved from src/arch/i386/firmware/pcbios/hidemem.c with 100% similarity]
src/arch/x86/interface/pcbios/int13.c [moved from src/arch/i386/interface/pcbios/int13.c with 100% similarity]
src/arch/x86/interface/pcbios/int13con.c [moved from src/arch/i386/interface/pcbios/int13con.c with 100% similarity]
src/arch/x86/interface/pcbios/memmap.c [moved from src/arch/i386/firmware/pcbios/memmap.c with 100% similarity]
src/arch/x86/interface/pcbios/memtop_umalloc.c [moved from src/arch/i386/interface/pcbios/memtop_umalloc.c with 100% similarity]
src/arch/x86/interface/pcbios/pcibios.c [moved from src/arch/i386/interface/pcbios/pcibios.c with 100% similarity]
src/arch/x86/interface/pcbios/pnpbios.c [moved from src/arch/i386/firmware/pcbios/pnpbios.c with 100% similarity]
src/arch/x86/interface/pcbios/rtc_entropy.c [moved from src/arch/i386/interface/pcbios/rtc_entropy.c with 100% similarity]
src/arch/x86/interface/pcbios/rtc_time.c [moved from src/arch/i386/interface/pcbios/rtc_time.c with 100% similarity]
src/arch/x86/interface/pcbios/vesafb.c [moved from src/arch/i386/interface/pcbios/vesafb.c with 100% similarity]
src/arch/x86/interface/pxe/pxe_call.c [moved from src/arch/i386/interface/pxe/pxe_call.c with 100% similarity]
src/arch/x86/interface/pxe/pxe_entry.S [moved from src/arch/i386/interface/pxe/pxe_entry.S with 100% similarity]
src/arch/x86/interface/pxe/pxe_exit_hook.c [moved from src/arch/i386/interface/pxe/pxe_exit_hook.c with 100% similarity]
src/arch/x86/interface/pxe/pxe_file.c [moved from src/arch/i386/interface/pxe/pxe_file.c with 100% similarity]
src/arch/x86/interface/pxe/pxe_loader.c [moved from src/arch/i386/interface/pxe/pxe_loader.c with 100% similarity]
src/arch/x86/interface/pxe/pxe_preboot.c [moved from src/arch/i386/interface/pxe/pxe_preboot.c with 100% similarity]
src/arch/x86/interface/pxe/pxe_tftp.c [moved from src/arch/i386/interface/pxe/pxe_tftp.c with 100% similarity]
src/arch/x86/interface/pxe/pxe_udp.c [moved from src/arch/i386/interface/pxe/pxe_udp.c with 100% similarity]
src/arch/x86/interface/pxe/pxe_undi.c [moved from src/arch/i386/interface/pxe/pxe_undi.c with 100% similarity]
src/arch/x86/interface/pxeparent/pxeparent.c [moved from src/arch/i386/interface/pxeparent/pxeparent.c with 100% similarity]
src/arch/x86/prefix/bootpart.S [moved from src/arch/i386/prefix/bootpart.S with 100% similarity]
src/arch/x86/prefix/dskprefix.S [moved from src/arch/i386/prefix/dskprefix.S with 100% similarity]
src/arch/x86/prefix/exeprefix.S [moved from src/arch/i386/prefix/exeprefix.S with 100% similarity]
src/arch/x86/prefix/hdprefix.S [moved from src/arch/i386/prefix/hdprefix.S with 100% similarity]
src/arch/x86/prefix/isaromprefix.S [moved from src/arch/i386/prefix/isaromprefix.S with 100% similarity]
src/arch/x86/prefix/kkkpxeprefix.S [moved from src/arch/i386/prefix/kkkpxeprefix.S with 100% similarity]
src/arch/x86/prefix/kkpxeprefix.S [moved from src/arch/i386/prefix/kkpxeprefix.S with 100% similarity]
src/arch/x86/prefix/kpxeprefix.S [moved from src/arch/i386/prefix/kpxeprefix.S with 100% similarity]
src/arch/x86/prefix/libprefix.S [moved from src/arch/i386/prefix/libprefix.S with 100% similarity]
src/arch/x86/prefix/lkrnprefix.S [moved from src/arch/i386/prefix/lkrnprefix.S with 100% similarity]
src/arch/x86/prefix/mbr.S [moved from src/arch/i386/prefix/mbr.S with 100% similarity]
src/arch/x86/prefix/mromprefix.S [moved from src/arch/i386/prefix/mromprefix.S with 100% similarity]
src/arch/x86/prefix/nbiprefix.S [moved from src/arch/i386/prefix/nbiprefix.S with 100% similarity]
src/arch/x86/prefix/nullprefix.S [moved from src/arch/i386/prefix/nullprefix.S with 100% similarity]
src/arch/x86/prefix/pciromprefix.S [moved from src/arch/i386/prefix/pciromprefix.S with 100% similarity]
src/arch/x86/prefix/pxeprefix.S [moved from src/arch/i386/prefix/pxeprefix.S with 100% similarity]
src/arch/x86/prefix/romprefix.S [moved from src/arch/i386/prefix/romprefix.S with 100% similarity]
src/arch/x86/prefix/undiloader.S [moved from src/arch/i386/prefix/undiloader.S with 100% similarity]
src/arch/x86/prefix/unlzma.S [moved from src/arch/i386/prefix/unlzma.S with 100% similarity]
src/arch/x86/prefix/unlzma16.S [moved from src/arch/i386/prefix/unlzma16.S with 100% similarity]
src/arch/x86/prefix/usbdisk.S [moved from src/arch/i386/prefix/usbdisk.S with 100% similarity]
src/arch/x86/scripts/pcbios.lds [moved from src/arch/i386/scripts/i386.lds with 100% similarity]
src/arch/x86/transitions/liba20.S [moved from src/arch/i386/transitions/liba20.S with 100% similarity]
src/arch/x86/transitions/libkir.S [moved from src/arch/i386/transitions/libkir.S with 100% similarity]
src/arch/x86/transitions/libpm.S [moved from src/arch/i386/transitions/libpm.S with 100% similarity]
src/arch/x86/transitions/librm.S [moved from src/arch/i386/transitions/librm.S with 100% similarity]
src/arch/x86/transitions/librm_mgmt.c [moved from src/arch/i386/transitions/librm_mgmt.c with 100% similarity]
src/arch/x86/transitions/librm_test.c [moved from src/arch/i386/transitions/librm_test.c with 100% similarity]
src/arch/x86_64/Makefile.pcbios [new file with mode: 0644]
src/arch/x86_64/include/bits/entropy.h [deleted file]
src/arch/x86_64/include/bits/nap.h [deleted file]
src/arch/x86_64/include/bits/reboot.h [deleted file]
src/arch/x86_64/include/bits/sanboot.h [deleted file]
src/arch/x86_64/include/bits/smbios.h [deleted file]
src/arch/x86_64/include/bits/time.h [deleted file]
src/arch/x86_64/include/bits/timer.h [deleted file]
src/arch/x86_64/include/bits/uaccess.h [deleted file]
src/arch/x86_64/include/bits/umalloc.h [deleted file]
src/arch/x86_64/include/pcbios/ipxe/dhcp_arch.h [new file with mode: 0644]

index 58915b8f9c9e2837a775a4faf5c7e3ec320f15ea..89393d06c87c2b4a2195a847b046b70ed273e304 100644 (file)
@@ -80,20 +80,11 @@ PIE_FLAGS := $(shell $(PIE_TEST) && $(ECHO) '-fno-PIE -nopie')
 WORKAROUND_CFLAGS += $(PIE_FLAGS)
 endif
 
-# Define version string for lkrnprefix.S
-#
-CFLAGS_lkrnprefix      += -DVERSION="\"$(VERSION)\""
-
 # i386-specific directories containing source files
 #
-SRCDIRS                += arch/i386/core arch/i386/transitions arch/i386/prefix
-SRCDIRS                += arch/i386/firmware/pcbios
+SRCDIRS                += arch/i386/core
 SRCDIRS                += arch/i386/image
-SRCDIRS                += arch/i386/interface/pcbios
-SRCDIRS                += arch/i386/interface/pxe
-SRCDIRS                += arch/i386/interface/pxeparent
-SRCDIRS        += arch/i386/interface/syslinux
-SRCDIRS                += arch/i386/hci/commands
+SRCDIRS                += arch/i386/interface/syslinux
 
 # Include common x86 Makefile
 #
index 8ae37399f4426a10fd06252380a279879f92fef6..dfb8db0a0203587b369342acee67a143bc558dfb 100644 (file)
@@ -1,123 +1,6 @@
 # -*- makefile -*- : Force emacs to use Makefile mode
 
-# The i386 linker script
+# Include generic BIOS Makefile
 #
-LDSCRIPT       = arch/i386/scripts/i386.lds
-
-# Stop ld from complaining about our customised linker script
-#
-LDFLAGS                += -N --no-check-sections
-
-# pcbios specific drivers
-SRCDIRS                += arch/i386/drivers
-SRCDIRS                += arch/i386/drivers/net
-
-# Media types.
-#
-MEDIA          += rom
-MEDIA          += mrom
-MEDIA          += pcirom
-MEDIA          += isarom
-MEDIA          += pxe
-MEDIA          += kpxe
-MEDIA          += kkpxe
-MEDIA          += kkkpxe
-MEDIA          += lkrn
-MEDIA          += dsk
-MEDIA          += nbi
-MEDIA          += hd
-MEDIA          += raw
-MEDIA          += exe
-
-# Padding rules
-#
-PAD_rom                = $(PERL) $(PADIMG) --blksize=512 --byte=0xff
-PAD_mrom       = $(PAD_rom)
-PAD_pcirom     = $(PAD_rom)
-PAD_isarom     = $(PAD_rom)
-PAD_dsk                = $(PERL) $(PADIMG) --blksize=512
-PAD_hd         = $(PERL) $(PADIMG) --blksize=32768
-PAD_exe                = $(PERL) $(PADIMG) --blksize=512
-
-# Finalisation rules
-#
-FINALISE_rom   = $(PERL) $(FIXROM)
-FINALISE_mrom  = $(FINALISE_rom)
-FINALISE_pcirom        = $(FINALISE_rom)
-FINALISE_isarom        = $(FINALISE_rom)
-
-# Use $(ROMS) rather than $(DRIVERS) for "allroms", "allmroms", etc.
-#
-LIST_NAME_rom := ROMS
-LIST_NAME_mrom := ROMS
-LIST_NAME_pcirom := ROMS
-LIST_NAME_isarom := ROMS
-
-# Locations of isolinux files
-#
-SYSLINUX_DIR_LIST      := \
-       /usr/lib/syslinux \
-       /usr/lib/syslinux/bios \
-       /usr/lib/syslinux/modules/bios \
-       /usr/share/syslinux \
-       /usr/share/syslinux/bios \
-       /usr/share/syslinux/modules/bios \
-       /usr/local/share/syslinux \
-       /usr/local/share/syslinux/bios \
-       /usr/local/share/syslinux/modules/bios \
-       /usr/lib/ISOLINUX
-ISOLINUX_BIN_LIST      := \
-       $(ISOLINUX_BIN) \
-       $(patsubst %,%/isolinux.bin,$(SYSLINUX_DIR_LIST))
-LDLINUX_C32_LIST       := \
-       $(LDLINUX_C32) \
-       $(patsubst %,%/ldlinux.c32,$(SYSLINUX_DIR_LIST))
-ISOLINUX_BIN   = $(firstword $(wildcard $(ISOLINUX_BIN_LIST)))
-LDLINUX_C32    = $(firstword $(wildcard $(LDLINUX_C32_LIST)))
-
-# rule to make a non-emulation ISO boot image
-NON_AUTO_MEDIA += iso
-%iso:  %lkrn util/geniso
-       $(QM)$(ECHO) "  [GENISO] $@"
-       $(Q)ISOLINUX_BIN=$(ISOLINUX_BIN) LDLINUX_C32=$(LDLINUX_C32) \
-           VERSION="$(VERSION)" bash util/geniso -o $@ $<
-
-# rule to make a floppy emulation ISO boot image
-NON_AUTO_MEDIA += liso
-%liso: %lkrn util/geniso
-       $(QM)$(ECHO) "  [GENISO] $@"
-       $(Q)VERSION="$(VERSION)" bash util/geniso -l -o $@ $<
-
-# rule to make a syslinux floppy image (mountable, bootable)
-NON_AUTO_MEDIA += sdsk
-%sdsk: %lkrn util/gensdsk
-       $(QM)$(ECHO) "  [GENSDSK] $@"
-       $(Q)bash util/gensdsk $@ $<
-
-# rule to write disk images to /dev/fd0
-NON_AUTO_MEDIA += fd0
-%fd0 : %dsk
-       $(QM)$(ECHO) "  [DD] $@"
-       $(Q)dd if=$< bs=512 conv=sync of=/dev/fd0
-       $(Q)sync
-
-# Special target for building Master Boot Record binary
-$(BIN)/mbr.bin : $(BIN)/mbr.o
-       $(QM)$(ECHO) "  [OBJCOPY] $@"
-       $(Q)$(OBJCOPY) -O binary $< $@
-
-# rule to make a USB disk image
-$(BIN)/usbdisk.bin : $(BIN)/usbdisk.o
-       $(QM)$(ECHO) "  [OBJCOPY] $@"
-       $(Q)$(OBJCOPY) -O binary $< $@
-
-NON_AUTO_MEDIA += usb
-%usb: $(BIN)/usbdisk.bin %hd
-       $(QM)$(ECHO) "  [FINISH] $@"
-       $(Q)cat $^ > $@
-
-# Padded floppy image (e.g. for iLO)
-NON_AUTO_MEDIA += pdsk
-%pdsk : %dsk
-       $(Q)cp $< $@
-       $(Q)$(PADIMG) --blksize=1474560 $@
+MAKEDEPS       += arch/x86/Makefile.pcbios
+include arch/x86/Makefile.pcbios
index 4ab741db76664c37aca9ff10eda3282f2c25ee97..6ad8031fd813bd36eef805cfae8b17be7040169c 100644 (file)
@@ -5,12 +5,17 @@ INCDIRS               += arch/x86/include
 # x86-specific directories containing source files
 #
 SRCDIRS                += arch/x86/core
+SRCDIRS                += arch/x86/image
+SRCDIRS                += arch/x86/interface/pcbios
+SRCDIRS                += arch/x86/interface/pxe
+SRCDIRS                += arch/x86/interface/pxeparent
 SRCDIRS                += arch/x86/interface/efi
 SRCDIRS                += arch/x86/interface/vmware
 SRCDIRS                += arch/x86/prefix
 SRCDIRS                += arch/x86/hci/commands
 SRCDIRS                += arch/x86/drivers/xen
 SRCDIRS                += arch/x86/drivers/hyperv
+SRCDIRS                += arch/x86/transitions
 
 # breaks building some of the linux-related objects
 CFLAGS         += -Ulinux
@@ -18,6 +23,10 @@ CFLAGS               += -Ulinux
 # disable valgrind
 CFLAGS         += -DNVALGRIND
 
+# Define version string for lkrnprefix.S
+#
+CFLAGS_lkrnprefix      += -DVERSION="\"$(VERSION)\""
+
 # Include Hyper-V driver in the all-drivers build
 #
 DRIVERS_hyperv += hyperv
diff --git a/src/arch/x86/Makefile.pcbios b/src/arch/x86/Makefile.pcbios
new file mode 100644 (file)
index 0000000..18a6f75
--- /dev/null
@@ -0,0 +1,123 @@
+# -*- makefile -*- : Force emacs to use Makefile mode
+
+# BIOS-specific directories containing source files
+#
+SRCDIRS                += arch/x86/drivers/net
+
+# The i386 linker script
+#
+LDSCRIPT       = arch/x86/scripts/pcbios.lds
+
+# Stop ld from complaining about our customised linker script
+#
+LDFLAGS                += -N --no-check-sections
+
+# Media types.
+#
+MEDIA          += rom
+MEDIA          += mrom
+MEDIA          += pcirom
+MEDIA          += isarom
+MEDIA          += pxe
+MEDIA          += kpxe
+MEDIA          += kkpxe
+MEDIA          += kkkpxe
+MEDIA          += lkrn
+MEDIA          += dsk
+MEDIA          += nbi
+MEDIA          += hd
+MEDIA          += raw
+MEDIA          += exe
+
+# Padding rules
+#
+PAD_rom                = $(PERL) $(PADIMG) --blksize=512 --byte=0xff
+PAD_mrom       = $(PAD_rom)
+PAD_pcirom     = $(PAD_rom)
+PAD_isarom     = $(PAD_rom)
+PAD_dsk                = $(PERL) $(PADIMG) --blksize=512
+PAD_hd         = $(PERL) $(PADIMG) --blksize=32768
+PAD_exe                = $(PERL) $(PADIMG) --blksize=512
+
+# Finalisation rules
+#
+FINALISE_rom   = $(PERL) $(FIXROM)
+FINALISE_mrom  = $(FINALISE_rom)
+FINALISE_pcirom        = $(FINALISE_rom)
+FINALISE_isarom        = $(FINALISE_rom)
+
+# Use $(ROMS) rather than $(DRIVERS) for "allroms", "allmroms", etc.
+#
+LIST_NAME_rom := ROMS
+LIST_NAME_mrom := ROMS
+LIST_NAME_pcirom := ROMS
+LIST_NAME_isarom := ROMS
+
+# Locations of isolinux files
+#
+SYSLINUX_DIR_LIST      := \
+       /usr/lib/syslinux \
+       /usr/lib/syslinux/bios \
+       /usr/lib/syslinux/modules/bios \
+       /usr/share/syslinux \
+       /usr/share/syslinux/bios \
+       /usr/share/syslinux/modules/bios \
+       /usr/local/share/syslinux \
+       /usr/local/share/syslinux/bios \
+       /usr/local/share/syslinux/modules/bios \
+       /usr/lib/ISOLINUX
+ISOLINUX_BIN_LIST      := \
+       $(ISOLINUX_BIN) \
+       $(patsubst %,%/isolinux.bin,$(SYSLINUX_DIR_LIST))
+LDLINUX_C32_LIST       := \
+       $(LDLINUX_C32) \
+       $(patsubst %,%/ldlinux.c32,$(SYSLINUX_DIR_LIST))
+ISOLINUX_BIN   = $(firstword $(wildcard $(ISOLINUX_BIN_LIST)))
+LDLINUX_C32    = $(firstword $(wildcard $(LDLINUX_C32_LIST)))
+
+# rule to make a non-emulation ISO boot image
+NON_AUTO_MEDIA += iso
+%iso:  %lkrn util/geniso
+       $(QM)$(ECHO) "  [GENISO] $@"
+       $(Q)ISOLINUX_BIN=$(ISOLINUX_BIN) LDLINUX_C32=$(LDLINUX_C32) \
+           VERSION="$(VERSION)" bash util/geniso -o $@ $<
+
+# rule to make a floppy emulation ISO boot image
+NON_AUTO_MEDIA += liso
+%liso: %lkrn util/geniso
+       $(QM)$(ECHO) "  [GENISO] $@"
+       $(Q)VERSION="$(VERSION)" bash util/geniso -l -o $@ $<
+
+# rule to make a syslinux floppy image (mountable, bootable)
+NON_AUTO_MEDIA += sdsk
+%sdsk: %lkrn util/gensdsk
+       $(QM)$(ECHO) "  [GENSDSK] $@"
+       $(Q)bash util/gensdsk $@ $<
+
+# rule to write disk images to /dev/fd0
+NON_AUTO_MEDIA += fd0
+%fd0 : %dsk
+       $(QM)$(ECHO) "  [DD] $@"
+       $(Q)dd if=$< bs=512 conv=sync of=/dev/fd0
+       $(Q)sync
+
+# Special target for building Master Boot Record binary
+$(BIN)/mbr.bin : $(BIN)/mbr.o
+       $(QM)$(ECHO) "  [OBJCOPY] $@"
+       $(Q)$(OBJCOPY) -O binary $< $@
+
+# rule to make a USB disk image
+$(BIN)/usbdisk.bin : $(BIN)/usbdisk.o
+       $(QM)$(ECHO) "  [OBJCOPY] $@"
+       $(Q)$(OBJCOPY) -O binary $< $@
+
+NON_AUTO_MEDIA += usb
+%usb: $(BIN)/usbdisk.bin %hd
+       $(QM)$(ECHO) "  [FINISH] $@"
+       $(Q)cat $^ > $@
+
+# Padded floppy image (e.g. for iLO)
+NON_AUTO_MEDIA += pdsk
+%pdsk : %dsk
+       $(Q)cp $< $@
+       $(Q)$(PADIMG) --blksize=1474560 $@
similarity index 79%
rename from src/arch/i386/include/bits/entropy.h
rename to src/arch/x86/include/bits/entropy.h
index bfeb5e3b59fb233163c037e2d6dcf665c7de2a8a..5ac7fcd2e2a90811b5a7c3c71ee1eedb19fec9a7 100644 (file)
@@ -3,7 +3,7 @@
 
 /** @file
  *
- * i386-specific entropy API implementations
+ * x86-specific entropy API implementations
  *
  */
 
similarity index 79%
rename from src/arch/i386/include/bits/nap.h
rename to src/arch/x86/include/bits/nap.h
index e8bcfd13b4f557747a59c381a17deb5c8a49d7c1..7103b94c04fa2651937f43473325a6cf04d1f42f 100644 (file)
@@ -3,7 +3,7 @@
 
 /** @file
  *
- * i386-specific CPU sleeping API implementations
+ * x86-specific CPU sleeping API implementations
  *
  */
 
similarity index 79%
rename from src/arch/i386/include/bits/reboot.h
rename to src/arch/x86/include/bits/reboot.h
index 803dacfe4882ff8eddc1ce0a363e5b9bdc69f16b..e702dd3d05dd76bbccd4fb9b5fd4feca32a8de91 100644 (file)
@@ -3,7 +3,7 @@
 
 /** @file
  *
- * i386-specific reboot API implementations
+ * x86-specific reboot API implementations
  *
  */
 
similarity index 79%
rename from src/arch/i386/include/bits/sanboot.h
rename to src/arch/x86/include/bits/sanboot.h
index f02d2e64981b6fe90e594b819c0533711dfb35af..1b9924e6435f27519d7dcc7d954609db5d44425b 100644 (file)
@@ -3,7 +3,7 @@
 
 /** @file
  *
- * i386-specific sanboot API implementations
+ * x86-specific sanboot API implementations
  *
  */
 
similarity index 79%
rename from src/arch/i386/include/bits/smbios.h
rename to src/arch/x86/include/bits/smbios.h
index 2ab31e74b451b9ccaabc2ff2ae2efac279f57bb4..9977c87ace94a49813eee1edcba46f9821b57fe4 100644 (file)
@@ -3,7 +3,7 @@
 
 /** @file
  *
- * i386-specific SMBIOS API implementations
+ * x86-specific SMBIOS API implementations
  *
  */
 
similarity index 79%
rename from src/arch/i386/include/bits/time.h
rename to src/arch/x86/include/bits/time.h
index 6a5d63d32c0e68a38d50af5bc66732fda8d975b3..556d96f64d44ebfe82cae0c9502de10f1285b9b2 100644 (file)
@@ -3,7 +3,7 @@
 
 /** @file
  *
- * i386-specific time API implementations
+ * x86-specific time API implementations
  *
  */
 
similarity index 81%
rename from src/arch/i386/include/bits/timer.h
rename to src/arch/x86/include/bits/timer.h
index f7d86d78c29e3f8d1a94a2655ac7b5e52922da97..b0ff5ee11d099de0dfdcef77804bc3321449e1df 100644 (file)
@@ -3,7 +3,7 @@
 
 /** @file
  *
- * i386-specific timer API implementations
+ * x86-specific timer API implementations
  *
  */
 
similarity index 76%
rename from src/arch/i386/include/bits/uaccess.h
rename to src/arch/x86/include/bits/uaccess.h
index aac09ba9573c691a9f03d18b8361bbbe386f6f77..e9e7e5af5d212efa5733dc3e73633e1f40709004 100644 (file)
@@ -3,7 +3,7 @@
 
 /** @file
  *
- * i386-specific user access API implementations
+ * x86-specific user access API implementations
  *
  */
 
similarity index 74%
rename from src/arch/i386/include/bits/umalloc.h
rename to src/arch/x86/include/bits/umalloc.h
index 113f16fd11f947c890ba4a40f9b00a5d39126f45..5d1f554d8fb0196e35e115be4a02787f75d05c81 100644 (file)
@@ -3,7 +3,7 @@
 
 /** @file
  *
- * i386-specific user memory allocation API implementations
+ * x86-specific user memory allocation API implementations
  *
  */
 
diff --git a/src/arch/x86_64/Makefile.pcbios b/src/arch/x86_64/Makefile.pcbios
new file mode 100644 (file)
index 0000000..dfb8db0
--- /dev/null
@@ -0,0 +1,6 @@
+# -*- makefile -*- : Force emacs to use Makefile mode
+
+# Include generic BIOS Makefile
+#
+MAKEDEPS       += arch/x86/Makefile.pcbios
+include arch/x86/Makefile.pcbios
diff --git a/src/arch/x86_64/include/bits/entropy.h b/src/arch/x86_64/include/bits/entropy.h
deleted file mode 100644 (file)
index a9b3bc1..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-#ifndef _BITS_ENTROPY_H
-#define _BITS_ENTROPY_H
-
-/** @file
- *
- * x86_64-specific entropy API implementations
- *
- */
-
-FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
-
-#endif /* _BITS_ENTROPY_H */
diff --git a/src/arch/x86_64/include/bits/nap.h b/src/arch/x86_64/include/bits/nap.h
deleted file mode 100644 (file)
index 8b42c0a..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-#ifndef _BITS_NAP_H
-#define _BITS_NAP_H
-
-/** @file
- *
- * x86_64-specific CPU sleeping API implementations
- *
- */
-
-#include <ipxe/efi/efix86_nap.h>
-
-#endif /* _BITS_MAP_H */
diff --git a/src/arch/x86_64/include/bits/reboot.h b/src/arch/x86_64/include/bits/reboot.h
deleted file mode 100644 (file)
index f9bcd6a..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-#ifndef _BITS_REBOOT_H
-#define _BITS_REBOOT_H
-
-/** @file
- *
- * x86_64-specific reboot API implementations
- *
- */
-
-FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
-
-#endif /* _BITS_REBOOT_H */
diff --git a/src/arch/x86_64/include/bits/sanboot.h b/src/arch/x86_64/include/bits/sanboot.h
deleted file mode 100644 (file)
index dcab830..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-#ifndef _BITS_SANBOOT_H
-#define _BITS_SANBOOT_H
-
-/** @file
- *
- * x86_64-specific sanboot API implementations
- *
- */
-
-FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
-
-#endif /* _BITS_SANBOOT_H */
diff --git a/src/arch/x86_64/include/bits/smbios.h b/src/arch/x86_64/include/bits/smbios.h
deleted file mode 100644 (file)
index 2f0118d..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-#ifndef _BITS_SMBIOS_H
-#define _BITS_SMBIOS_H
-
-/** @file
- *
- * i386-specific SMBIOS API implementations
- *
- */
-
-#endif /* _BITS_SMBIOS_H */
diff --git a/src/arch/x86_64/include/bits/time.h b/src/arch/x86_64/include/bits/time.h
deleted file mode 100644 (file)
index aa74fac..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-#ifndef _BITS_TIME_H
-#define _BITS_TIME_H
-
-/** @file
- *
- * x86_64-specific time API implementations
- *
- */
-
-FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
-
-#endif /* _BITS_TIME_H */
diff --git a/src/arch/x86_64/include/bits/timer.h b/src/arch/x86_64/include/bits/timer.h
deleted file mode 100644 (file)
index dfa6c27..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-#ifndef _BITS_TIMER_H
-#define _BITS_TIMER_H
-
-/** @file
- *
- * x86_64-specific timer API implementations
- *
- */
-
-#endif /* _BITS_TIMER_H */
diff --git a/src/arch/x86_64/include/bits/uaccess.h b/src/arch/x86_64/include/bits/uaccess.h
deleted file mode 100644 (file)
index 4558292..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-#ifndef _BITS_UACCESS_H
-#define _BITS_UACCESS_H
-
-/** @file
- *
- * x86_64-specific user access API implementations
- *
- */
-
-#endif /* _BITS_UACCESS_H */
diff --git a/src/arch/x86_64/include/bits/umalloc.h b/src/arch/x86_64/include/bits/umalloc.h
deleted file mode 100644 (file)
index 12bf949..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-#ifndef _BITS_UMALLOC_H
-#define _BITS_UMALLOC_H
-
-/** @file
- *
- * x86_64-specific user memory allocation API implementations
- *
- */
-
-#endif /* _BITS_UMALLOC_H */
diff --git a/src/arch/x86_64/include/pcbios/ipxe/dhcp_arch.h b/src/arch/x86_64/include/pcbios/ipxe/dhcp_arch.h
new file mode 100644 (file)
index 0000000..e07e4c1
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ * Copyright (C) 2010 VMware, Inc.  All Rights Reserved.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ * 02110-1301, USA.
+ *
+ * You can also choose to distribute this program under the terms of
+ * the Unmodified Binary Distribution Licence (as given in the file
+ * COPYING.UBDL), provided that you have satisfied its requirements.
+ */
+
+#ifndef _DHCP_ARCH_H
+#define _DHCP_ARCH_H
+
+/** @file
+ *
+ * Architecture-specific DHCP options
+ */
+
+FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
+
+#include <ipxe/dhcp.h>
+
+#define DHCP_ARCH_VENDOR_CLASS_ID \
+       DHCP_STRING ( 'P', 'X', 'E', 'C', 'l', 'i', 'e', 'n', 't', ':',      \
+                     'A', 'r', 'c', 'h', ':', '0', '0', '0', '0', '0', ':', \
+                     'U', 'N', 'D', 'I', ':', '0', '0', '2', '0', '0', '1' )
+
+#define DHCP_ARCH_CLIENT_ARCHITECTURE \
+       DHCP_WORD ( DHCP_CLIENT_ARCHITECTURE_X86 )
+
+#define DHCP_ARCH_CLIENT_NDI DHCP_OPTION ( 1 /* UNDI */ , 2, 1 /* v2.1 */ )
+
+#endif