summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Brown2016-02-16 16:19:01 +0100
committerMichael Brown2016-02-16 20:32:32 +0100
commitf468f12b1eca15e703aa2a79f1c82969c04c2322 (patch)
treef1868e6cb7debaeb7aca59e4488b603fcc6481d7
parent[bios] Move isolinux definitions to Makefile.pcbios (diff)
downloadipxe-f468f12b1eca15e703aa2a79f1c82969c04c2322.tar.gz
ipxe-f468f12b1eca15e703aa2a79f1c82969c04c2322.tar.xz
ipxe-f468f12b1eca15e703aa2a79f1c82969c04c2322.zip
[bios] Add bin-x86_64-pcbios build platform
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>
-rw-r--r--src/arch/i386/Makefile13
-rw-r--r--src/arch/i386/Makefile.pcbios123
-rw-r--r--src/arch/x86/Makefile9
-rw-r--r--src/arch/x86/Makefile.pcbios123
-rw-r--r--src/arch/x86/core/basemem_packet.c (renamed from src/arch/i386/core/basemem_packet.c)0
-rw-r--r--src/arch/x86/core/cachedhcp.c (renamed from src/arch/i386/core/cachedhcp.c)0
-rw-r--r--src/arch/x86/core/dumpregs.c (renamed from src/arch/i386/core/dumpregs.c)0
-rw-r--r--src/arch/x86/core/patch_cf.S (renamed from src/arch/i386/core/patch_cf.S)0
-rw-r--r--src/arch/x86/core/pci_autoboot.c (renamed from src/arch/i386/core/pci_autoboot.c)0
-rw-r--r--src/arch/x86/core/rdtsc_timer.c (renamed from src/arch/i386/core/rdtsc_timer.c)0
-rw-r--r--src/arch/x86/core/relocate.c (renamed from src/arch/i386/core/relocate.c)0
-rw-r--r--src/arch/x86/core/runtime.c (renamed from src/arch/i386/core/runtime.c)0
-rw-r--r--src/arch/x86/core/stack.S (renamed from src/arch/i386/core/stack.S)0
-rw-r--r--src/arch/x86/core/stack16.S (renamed from src/arch/i386/core/stack16.S)0
-rw-r--r--src/arch/x86/core/video_subr.c (renamed from src/arch/i386/core/video_subr.c)0
-rw-r--r--src/arch/x86/core/virtaddr.S (renamed from src/arch/i386/core/virtaddr.S)0
-rw-r--r--src/arch/x86/drivers/net/undi.c (renamed from src/arch/i386/drivers/net/undi.c)0
-rw-r--r--src/arch/x86/drivers/net/undiisr.S (renamed from src/arch/i386/drivers/net/undiisr.S)0
-rw-r--r--src/arch/x86/drivers/net/undiload.c (renamed from src/arch/i386/drivers/net/undiload.c)0
-rw-r--r--src/arch/x86/drivers/net/undinet.c (renamed from src/arch/i386/drivers/net/undinet.c)0
-rw-r--r--src/arch/x86/drivers/net/undionly.c (renamed from src/arch/i386/drivers/net/undionly.c)0
-rw-r--r--src/arch/x86/drivers/net/undipreload.c (renamed from src/arch/i386/drivers/net/undipreload.c)0
-rw-r--r--src/arch/x86/drivers/net/undirom.c (renamed from src/arch/i386/drivers/net/undirom.c)0
-rw-r--r--src/arch/x86/hci/commands/pxe_cmd.c (renamed from src/arch/i386/hci/commands/pxe_cmd.c)0
-rw-r--r--src/arch/x86/image/bootsector.c (renamed from src/arch/i386/image/bootsector.c)0
-rw-r--r--src/arch/x86/image/bzimage.c (renamed from src/arch/i386/image/bzimage.c)0
-rw-r--r--src/arch/x86/image/elfboot.c (renamed from src/arch/i386/image/elfboot.c)0
-rw-r--r--src/arch/x86/image/initrd.c (renamed from src/arch/i386/image/initrd.c)0
-rw-r--r--src/arch/x86/image/multiboot.c (renamed from src/arch/i386/image/multiboot.c)0
-rw-r--r--src/arch/x86/image/nbi.c (renamed from src/arch/i386/image/nbi.c)0
-rw-r--r--src/arch/x86/image/pxe_image.c (renamed from src/arch/i386/image/pxe_image.c)0
-rw-r--r--src/arch/x86/image/sdi.c (renamed from src/arch/i386/image/sdi.c)0
-rw-r--r--src/arch/x86/include/basemem.h (renamed from src/arch/i386/include/basemem.h)0
-rw-r--r--src/arch/x86/include/basemem_packet.h (renamed from src/arch/i386/include/basemem_packet.h)0
-rw-r--r--src/arch/x86/include/bios.h (renamed from src/arch/i386/include/bios.h)0
-rw-r--r--src/arch/x86/include/bios_disks.h (renamed from src/arch/i386/include/bios_disks.h)0
-rw-r--r--src/arch/x86/include/biosint.h (renamed from src/arch/i386/include/biosint.h)0
-rw-r--r--src/arch/x86/include/bits/entropy.h (renamed from src/arch/i386/include/bits/entropy.h)2
-rw-r--r--src/arch/x86/include/bits/nap.h (renamed from src/arch/i386/include/bits/nap.h)2
-rw-r--r--src/arch/x86/include/bits/reboot.h (renamed from src/arch/i386/include/bits/reboot.h)2
-rw-r--r--src/arch/x86/include/bits/sanboot.h (renamed from src/arch/i386/include/bits/sanboot.h)2
-rw-r--r--src/arch/x86/include/bits/smbios.h (renamed from src/arch/i386/include/bits/smbios.h)2
-rw-r--r--src/arch/x86/include/bits/time.h (renamed from src/arch/i386/include/bits/time.h)2
-rw-r--r--src/arch/x86/include/bits/timer.h (renamed from src/arch/i386/include/bits/timer.h)2
-rw-r--r--src/arch/x86/include/bits/uaccess.h (renamed from src/arch/i386/include/bits/uaccess.h)2
-rw-r--r--src/arch/x86/include/bits/umalloc.h (renamed from src/arch/i386/include/bits/umalloc.h)2
-rw-r--r--src/arch/x86/include/bochs.h (renamed from src/arch/i386/include/bochs.h)0
-rw-r--r--src/arch/x86/include/bootsector.h (renamed from src/arch/i386/include/bootsector.h)0
-rw-r--r--src/arch/x86/include/bzimage.h (renamed from src/arch/i386/include/bzimage.h)0
-rw-r--r--src/arch/x86/include/fakee820.h (renamed from src/arch/i386/include/fakee820.h)0
-rw-r--r--src/arch/x86/include/initrd.h (renamed from src/arch/i386/include/initrd.h)0
-rw-r--r--src/arch/x86/include/int13.h (renamed from src/arch/i386/include/int13.h)0
-rw-r--r--src/arch/x86/include/ipxe/bios_nap.h (renamed from src/arch/i386/include/ipxe/bios_nap.h)0
-rw-r--r--src/arch/x86/include/ipxe/bios_reboot.h (renamed from src/arch/i386/include/ipxe/bios_reboot.h)0
-rw-r--r--src/arch/x86/include/ipxe/bios_sanboot.h (renamed from src/arch/i386/include/ipxe/bios_sanboot.h)0
-rw-r--r--src/arch/x86/include/ipxe/bios_smbios.h (renamed from src/arch/i386/include/ipxe/bios_smbios.h)0
-rw-r--r--src/arch/x86/include/ipxe/bios_timer.h (renamed from src/arch/i386/include/ipxe/bios_timer.h)0
-rw-r--r--src/arch/x86/include/ipxe/errno/pcbios.h (renamed from src/arch/i386/include/ipxe/errno/pcbios.h)0
-rw-r--r--src/arch/x86/include/ipxe/memtop_umalloc.h (renamed from src/arch/i386/include/ipxe/memtop_umalloc.h)0
-rw-r--r--src/arch/x86/include/ipxe/rdtsc_timer.h (renamed from src/arch/i386/include/ipxe/rdtsc_timer.h)0
-rw-r--r--src/arch/x86/include/ipxe/rtc_entropy.h (renamed from src/arch/i386/include/ipxe/rtc_entropy.h)0
-rw-r--r--src/arch/x86/include/ipxe/rtc_time.h (renamed from src/arch/i386/include/ipxe/rtc_time.h)0
-rw-r--r--src/arch/x86/include/ipxe/vesafb.h (renamed from src/arch/i386/include/ipxe/vesafb.h)0
-rw-r--r--src/arch/x86/include/kir.h (renamed from src/arch/i386/include/kir.h)0
-rw-r--r--src/arch/x86/include/libkir.h (renamed from src/arch/i386/include/libkir.h)0
-rw-r--r--src/arch/x86/include/librm.h (renamed from src/arch/i386/include/librm.h)0
-rw-r--r--src/arch/x86/include/memsizes.h (renamed from src/arch/i386/include/memsizes.h)0
-rw-r--r--src/arch/x86/include/multiboot.h (renamed from src/arch/i386/include/multiboot.h)0
-rw-r--r--src/arch/x86/include/pnpbios.h (renamed from src/arch/i386/include/pnpbios.h)0
-rw-r--r--src/arch/x86/include/pxe.h (renamed from src/arch/i386/include/pxe.h)0
-rw-r--r--src/arch/x86/include/pxe_api.h (renamed from src/arch/i386/include/pxe_api.h)0
-rw-r--r--src/arch/x86/include/pxe_call.h (renamed from src/arch/i386/include/pxe_call.h)0
-rw-r--r--src/arch/x86/include/pxe_error.h (renamed from src/arch/i386/include/pxe_error.h)0
-rw-r--r--src/arch/x86/include/pxe_types.h (renamed from src/arch/i386/include/pxe_types.h)0
-rw-r--r--src/arch/x86/include/pxeparent.h (renamed from src/arch/i386/include/pxeparent.h)0
-rw-r--r--src/arch/x86/include/realmode.h (renamed from src/arch/i386/include/realmode.h)0
-rw-r--r--src/arch/x86/include/registers.h (renamed from src/arch/i386/include/registers.h)0
-rw-r--r--src/arch/x86/include/rmsetjmp.h (renamed from src/arch/i386/include/rmsetjmp.h)0
-rw-r--r--src/arch/x86/include/rtc.h (renamed from src/arch/i386/include/rtc.h)0
-rw-r--r--src/arch/x86/include/sdi.h (renamed from src/arch/i386/include/sdi.h)0
-rw-r--r--src/arch/x86/include/undi.h (renamed from src/arch/i386/include/undi.h)0
-rw-r--r--src/arch/x86/include/undiload.h (renamed from src/arch/i386/include/undiload.h)0
-rw-r--r--src/arch/x86/include/undinet.h (renamed from src/arch/i386/include/undinet.h)0
-rw-r--r--src/arch/x86/include/undipreload.h (renamed from src/arch/i386/include/undipreload.h)0
-rw-r--r--src/arch/x86/include/undirom.h (renamed from src/arch/i386/include/undirom.h)0
-rw-r--r--src/arch/x86/include/vga.h (renamed from src/arch/i386/include/vga.h)0
-rw-r--r--src/arch/x86/interface/pcbios/apm.c (renamed from src/arch/i386/interface/pcbios/apm.c)0
-rw-r--r--src/arch/x86/interface/pcbios/basemem.c (renamed from src/arch/i386/firmware/pcbios/basemem.c)0
-rw-r--r--src/arch/x86/interface/pcbios/bios_console.c (renamed from src/arch/i386/firmware/pcbios/bios_console.c)0
-rw-r--r--src/arch/x86/interface/pcbios/bios_nap.c (renamed from src/arch/i386/interface/pcbios/bios_nap.c)0
-rw-r--r--src/arch/x86/interface/pcbios/bios_reboot.c (renamed from src/arch/i386/interface/pcbios/bios_reboot.c)0
-rw-r--r--src/arch/x86/interface/pcbios/bios_smbios.c (renamed from src/arch/i386/interface/pcbios/bios_smbios.c)0
-rw-r--r--src/arch/x86/interface/pcbios/bios_timer.c (renamed from src/arch/i386/interface/pcbios/bios_timer.c)0
-rw-r--r--src/arch/x86/interface/pcbios/biosint.c (renamed from src/arch/i386/interface/pcbios/biosint.c)0
-rw-r--r--src/arch/x86/interface/pcbios/e820mangler.S (renamed from src/arch/i386/firmware/pcbios/e820mangler.S)0
-rw-r--r--src/arch/x86/interface/pcbios/fakee820.c (renamed from src/arch/i386/firmware/pcbios/fakee820.c)0
-rw-r--r--src/arch/x86/interface/pcbios/hidemem.c (renamed from src/arch/i386/firmware/pcbios/hidemem.c)0
-rw-r--r--src/arch/x86/interface/pcbios/int13.c (renamed from src/arch/i386/interface/pcbios/int13.c)0
-rw-r--r--src/arch/x86/interface/pcbios/int13con.c (renamed from src/arch/i386/interface/pcbios/int13con.c)0
-rw-r--r--src/arch/x86/interface/pcbios/memmap.c (renamed from src/arch/i386/firmware/pcbios/memmap.c)0
-rw-r--r--src/arch/x86/interface/pcbios/memtop_umalloc.c (renamed from src/arch/i386/interface/pcbios/memtop_umalloc.c)0
-rw-r--r--src/arch/x86/interface/pcbios/pcibios.c (renamed from src/arch/i386/interface/pcbios/pcibios.c)0
-rw-r--r--src/arch/x86/interface/pcbios/pnpbios.c (renamed from src/arch/i386/firmware/pcbios/pnpbios.c)0
-rw-r--r--src/arch/x86/interface/pcbios/rtc_entropy.c (renamed from src/arch/i386/interface/pcbios/rtc_entropy.c)0
-rw-r--r--src/arch/x86/interface/pcbios/rtc_time.c (renamed from src/arch/i386/interface/pcbios/rtc_time.c)0
-rw-r--r--src/arch/x86/interface/pcbios/vesafb.c (renamed from src/arch/i386/interface/pcbios/vesafb.c)0
-rw-r--r--src/arch/x86/interface/pxe/pxe_call.c (renamed from src/arch/i386/interface/pxe/pxe_call.c)0
-rw-r--r--src/arch/x86/interface/pxe/pxe_entry.S (renamed from src/arch/i386/interface/pxe/pxe_entry.S)0
-rw-r--r--src/arch/x86/interface/pxe/pxe_exit_hook.c (renamed from src/arch/i386/interface/pxe/pxe_exit_hook.c)0
-rw-r--r--src/arch/x86/interface/pxe/pxe_file.c (renamed from src/arch/i386/interface/pxe/pxe_file.c)0
-rw-r--r--src/arch/x86/interface/pxe/pxe_loader.c (renamed from src/arch/i386/interface/pxe/pxe_loader.c)0
-rw-r--r--src/arch/x86/interface/pxe/pxe_preboot.c (renamed from src/arch/i386/interface/pxe/pxe_preboot.c)0
-rw-r--r--src/arch/x86/interface/pxe/pxe_tftp.c (renamed from src/arch/i386/interface/pxe/pxe_tftp.c)0
-rw-r--r--src/arch/x86/interface/pxe/pxe_udp.c (renamed from src/arch/i386/interface/pxe/pxe_udp.c)0
-rw-r--r--src/arch/x86/interface/pxe/pxe_undi.c (renamed from src/arch/i386/interface/pxe/pxe_undi.c)0
-rw-r--r--src/arch/x86/interface/pxeparent/pxeparent.c (renamed from src/arch/i386/interface/pxeparent/pxeparent.c)0
-rw-r--r--src/arch/x86/prefix/bootpart.S (renamed from src/arch/i386/prefix/bootpart.S)0
-rw-r--r--src/arch/x86/prefix/dskprefix.S (renamed from src/arch/i386/prefix/dskprefix.S)0
-rw-r--r--src/arch/x86/prefix/exeprefix.S (renamed from src/arch/i386/prefix/exeprefix.S)0
-rw-r--r--src/arch/x86/prefix/hdprefix.S (renamed from src/arch/i386/prefix/hdprefix.S)0
-rw-r--r--src/arch/x86/prefix/isaromprefix.S (renamed from src/arch/i386/prefix/isaromprefix.S)0
-rw-r--r--src/arch/x86/prefix/kkkpxeprefix.S (renamed from src/arch/i386/prefix/kkkpxeprefix.S)0
-rw-r--r--src/arch/x86/prefix/kkpxeprefix.S (renamed from src/arch/i386/prefix/kkpxeprefix.S)0
-rw-r--r--src/arch/x86/prefix/kpxeprefix.S (renamed from src/arch/i386/prefix/kpxeprefix.S)0
-rw-r--r--src/arch/x86/prefix/libprefix.S (renamed from src/arch/i386/prefix/libprefix.S)0
-rw-r--r--src/arch/x86/prefix/lkrnprefix.S (renamed from src/arch/i386/prefix/lkrnprefix.S)0
-rw-r--r--src/arch/x86/prefix/mbr.S (renamed from src/arch/i386/prefix/mbr.S)0
-rw-r--r--src/arch/x86/prefix/mromprefix.S (renamed from src/arch/i386/prefix/mromprefix.S)0
-rw-r--r--src/arch/x86/prefix/nbiprefix.S (renamed from src/arch/i386/prefix/nbiprefix.S)0
-rw-r--r--src/arch/x86/prefix/nullprefix.S (renamed from src/arch/i386/prefix/nullprefix.S)0
-rw-r--r--src/arch/x86/prefix/pciromprefix.S (renamed from src/arch/i386/prefix/pciromprefix.S)0
-rw-r--r--src/arch/x86/prefix/pxeprefix.S (renamed from src/arch/i386/prefix/pxeprefix.S)0
-rw-r--r--src/arch/x86/prefix/romprefix.S (renamed from src/arch/i386/prefix/romprefix.S)0
-rw-r--r--src/arch/x86/prefix/undiloader.S (renamed from src/arch/i386/prefix/undiloader.S)0
-rw-r--r--src/arch/x86/prefix/unlzma.S (renamed from src/arch/i386/prefix/unlzma.S)0
-rw-r--r--src/arch/x86/prefix/unlzma16.S (renamed from src/arch/i386/prefix/unlzma16.S)0
-rw-r--r--src/arch/x86/prefix/usbdisk.S (renamed from src/arch/i386/prefix/usbdisk.S)0
-rw-r--r--src/arch/x86/scripts/pcbios.lds (renamed from src/arch/i386/scripts/i386.lds)0
-rw-r--r--src/arch/x86/transitions/liba20.S (renamed from src/arch/i386/transitions/liba20.S)0
-rw-r--r--src/arch/x86/transitions/libkir.S (renamed from src/arch/i386/transitions/libkir.S)0
-rw-r--r--src/arch/x86/transitions/libpm.S (renamed from src/arch/i386/transitions/libpm.S)0
-rw-r--r--src/arch/x86/transitions/librm.S (renamed from src/arch/i386/transitions/librm.S)0
-rw-r--r--src/arch/x86/transitions/librm_mgmt.c (renamed from src/arch/i386/transitions/librm_mgmt.c)0
-rw-r--r--src/arch/x86/transitions/librm_test.c (renamed from src/arch/i386/transitions/librm_test.c)0
-rw-r--r--src/arch/x86_64/Makefile.pcbios6
-rw-r--r--src/arch/x86_64/include/bits/entropy.h12
-rw-r--r--src/arch/x86_64/include/bits/nap.h12
-rw-r--r--src/arch/x86_64/include/bits/reboot.h12
-rw-r--r--src/arch/x86_64/include/bits/sanboot.h12
-rw-r--r--src/arch/x86_64/include/bits/smbios.h10
-rw-r--r--src/arch/x86_64/include/bits/time.h12
-rw-r--r--src/arch/x86_64/include/bits/timer.h10
-rw-r--r--src/arch/x86_64/include/bits/uaccess.h10
-rw-r--r--src/arch/x86_64/include/bits/umalloc.h10
-rw-r--r--src/arch/x86_64/include/pcbios/ipxe/dhcp_arch.h46
155 files changed, 198 insertions, 240 deletions
diff --git a/src/arch/i386/Makefile b/src/arch/i386/Makefile
index 58915b8f..89393d06 100644
--- a/src/arch/i386/Makefile
+++ b/src/arch/i386/Makefile
@@ -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
#
diff --git a/src/arch/i386/Makefile.pcbios b/src/arch/i386/Makefile.pcbios
index 8ae37399..dfb8db0a 100644
--- a/src/arch/i386/Makefile.pcbios
+++ b/src/arch/i386/Makefile.pcbios
@@ -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
diff --git a/src/arch/x86/Makefile b/src/arch/x86/Makefile
index 4ab741db..6ad8031f 100644
--- a/src/arch/x86/Makefile
+++ b/src/arch/x86/Makefile
@@ -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
index 00000000..18a6f759
--- /dev/null
+++ b/src/arch/x86/Makefile.pcbios
@@ -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 $@
diff --git a/src/arch/i386/core/basemem_packet.c b/src/arch/x86/core/basemem_packet.c
index 9f5fbf33..9f5fbf33 100644
--- a/src/arch/i386/core/basemem_packet.c
+++ b/src/arch/x86/core/basemem_packet.c
diff --git a/src/arch/i386/core/cachedhcp.c b/src/arch/x86/core/cachedhcp.c
index ff35b925..ff35b925 100644
--- a/src/arch/i386/core/cachedhcp.c
+++ b/src/arch/x86/core/cachedhcp.c
diff --git a/src/arch/i386/core/dumpregs.c b/src/arch/x86/core/dumpregs.c
index 82dc2184..82dc2184 100644
--- a/src/arch/i386/core/dumpregs.c
+++ b/src/arch/x86/core/dumpregs.c
diff --git a/src/arch/i386/core/patch_cf.S b/src/arch/x86/core/patch_cf.S
index 4365563f..4365563f 100644
--- a/src/arch/i386/core/patch_cf.S
+++ b/src/arch/x86/core/patch_cf.S
diff --git a/src/arch/i386/core/pci_autoboot.c b/src/arch/x86/core/pci_autoboot.c
index 33759809..33759809 100644
--- a/src/arch/i386/core/pci_autoboot.c
+++ b/src/arch/x86/core/pci_autoboot.c
diff --git a/src/arch/i386/core/rdtsc_timer.c b/src/arch/x86/core/rdtsc_timer.c
index e720a239..e720a239 100644
--- a/src/arch/i386/core/rdtsc_timer.c
+++ b/src/arch/x86/core/rdtsc_timer.c
diff --git a/src/arch/i386/core/relocate.c b/src/arch/x86/core/relocate.c
index 65a36e00..65a36e00 100644
--- a/src/arch/i386/core/relocate.c
+++ b/src/arch/x86/core/relocate.c
diff --git a/src/arch/i386/core/runtime.c b/src/arch/x86/core/runtime.c
index d160fee0..d160fee0 100644
--- a/src/arch/i386/core/runtime.c
+++ b/src/arch/x86/core/runtime.c
diff --git a/src/arch/i386/core/stack.S b/src/arch/x86/core/stack.S
index 98f1cd9b..98f1cd9b 100644
--- a/src/arch/i386/core/stack.S
+++ b/src/arch/x86/core/stack.S
diff --git a/src/arch/i386/core/stack16.S b/src/arch/x86/core/stack16.S
index 4bc6f081..4bc6f081 100644
--- a/src/arch/i386/core/stack16.S
+++ b/src/arch/x86/core/stack16.S
diff --git a/src/arch/i386/core/video_subr.c b/src/arch/x86/core/video_subr.c
index 3f701bd9..3f701bd9 100644
--- a/src/arch/i386/core/video_subr.c
+++ b/src/arch/x86/core/video_subr.c
diff --git a/src/arch/i386/core/virtaddr.S b/src/arch/x86/core/virtaddr.S
index 42559157..42559157 100644
--- a/src/arch/i386/core/virtaddr.S
+++ b/src/arch/x86/core/virtaddr.S
diff --git a/src/arch/i386/drivers/net/undi.c b/src/arch/x86/drivers/net/undi.c
index 9820cf62..9820cf62 100644
--- a/src/arch/i386/drivers/net/undi.c
+++ b/src/arch/x86/drivers/net/undi.c
diff --git a/src/arch/i386/drivers/net/undiisr.S b/src/arch/x86/drivers/net/undiisr.S
index b27effe1..b27effe1 100644
--- a/src/arch/i386/drivers/net/undiisr.S
+++ b/src/arch/x86/drivers/net/undiisr.S
diff --git a/src/arch/i386/drivers/net/undiload.c b/src/arch/x86/drivers/net/undiload.c
index 7160ee38..7160ee38 100644
--- a/src/arch/i386/drivers/net/undiload.c
+++ b/src/arch/x86/drivers/net/undiload.c
diff --git a/src/arch/i386/drivers/net/undinet.c b/src/arch/x86/drivers/net/undinet.c
index e273ae0a..e273ae0a 100644
--- a/src/arch/i386/drivers/net/undinet.c
+++ b/src/arch/x86/drivers/net/undinet.c
diff --git a/src/arch/i386/drivers/net/undionly.c b/src/arch/x86/drivers/net/undionly.c
index 70dbe4bf..70dbe4bf 100644
--- a/src/arch/i386/drivers/net/undionly.c
+++ b/src/arch/x86/drivers/net/undionly.c
diff --git a/src/arch/i386/drivers/net/undipreload.c b/src/arch/x86/drivers/net/undipreload.c
index fca77184..fca77184 100644
--- a/src/arch/i386/drivers/net/undipreload.c
+++ b/src/arch/x86/drivers/net/undipreload.c
diff --git a/src/arch/i386/drivers/net/undirom.c b/src/arch/x86/drivers/net/undirom.c
index b54c6170..b54c6170 100644
--- a/src/arch/i386/drivers/net/undirom.c
+++ b/src/arch/x86/drivers/net/undirom.c
diff --git a/src/arch/i386/hci/commands/pxe_cmd.c b/src/arch/x86/hci/commands/pxe_cmd.c
index 473b97f9..473b97f9 100644
--- a/src/arch/i386/hci/commands/pxe_cmd.c
+++ b/src/arch/x86/hci/commands/pxe_cmd.c
diff --git a/src/arch/i386/image/bootsector.c b/src/arch/x86/image/bootsector.c
index 67dad04f..67dad04f 100644
--- a/src/arch/i386/image/bootsector.c
+++ b/src/arch/x86/image/bootsector.c
diff --git a/src/arch/i386/image/bzimage.c b/src/arch/x86/image/bzimage.c
index d9b5ddc0..d9b5ddc0 100644
--- a/src/arch/i386/image/bzimage.c
+++ b/src/arch/x86/image/bzimage.c
diff --git a/src/arch/i386/image/elfboot.c b/src/arch/x86/image/elfboot.c
index dc356892..dc356892 100644
--- a/src/arch/i386/image/elfboot.c
+++ b/src/arch/x86/image/elfboot.c
diff --git a/src/arch/i386/image/initrd.c b/src/arch/x86/image/initrd.c
index 80c19741..80c19741 100644
--- a/src/arch/i386/image/initrd.c
+++ b/src/arch/x86/image/initrd.c
diff --git a/src/arch/i386/image/multiboot.c b/src/arch/x86/image/multiboot.c
index 0c85df70..0c85df70 100644
--- a/src/arch/i386/image/multiboot.c
+++ b/src/arch/x86/image/multiboot.c
diff --git a/src/arch/i386/image/nbi.c b/src/arch/x86/image/nbi.c
index 99046144..99046144 100644
--- a/src/arch/i386/image/nbi.c
+++ b/src/arch/x86/image/nbi.c
diff --git a/src/arch/i386/image/pxe_image.c b/src/arch/x86/image/pxe_image.c
index 297a618b..297a618b 100644
--- a/src/arch/i386/image/pxe_image.c
+++ b/src/arch/x86/image/pxe_image.c
diff --git a/src/arch/i386/image/sdi.c b/src/arch/x86/image/sdi.c
index fa2d0b73..fa2d0b73 100644
--- a/src/arch/i386/image/sdi.c
+++ b/src/arch/x86/image/sdi.c
diff --git a/src/arch/i386/include/basemem.h b/src/arch/x86/include/basemem.h
index 01c2ea91..01c2ea91 100644
--- a/src/arch/i386/include/basemem.h
+++ b/src/arch/x86/include/basemem.h
diff --git a/src/arch/i386/include/basemem_packet.h b/src/arch/x86/include/basemem_packet.h
index def6dee3..def6dee3 100644
--- a/src/arch/i386/include/basemem_packet.h
+++ b/src/arch/x86/include/basemem_packet.h
diff --git a/src/arch/i386/include/bios.h b/src/arch/x86/include/bios.h
index 988bbc62..988bbc62 100644
--- a/src/arch/i386/include/bios.h
+++ b/src/arch/x86/include/bios.h
diff --git a/src/arch/i386/include/bios_disks.h b/src/arch/x86/include/bios_disks.h
index 0dd7c4eb..0dd7c4eb 100644
--- a/src/arch/i386/include/bios_disks.h
+++ b/src/arch/x86/include/bios_disks.h
diff --git a/src/arch/i386/include/biosint.h b/src/arch/x86/include/biosint.h
index f47116f7..f47116f7 100644
--- a/src/arch/i386/include/biosint.h
+++ b/src/arch/x86/include/biosint.h
diff --git a/src/arch/i386/include/bits/entropy.h b/src/arch/x86/include/bits/entropy.h
index bfeb5e3b..5ac7fcd2 100644
--- a/src/arch/i386/include/bits/entropy.h
+++ b/src/arch/x86/include/bits/entropy.h
@@ -3,7 +3,7 @@
/** @file
*
- * i386-specific entropy API implementations
+ * x86-specific entropy API implementations
*
*/
diff --git a/src/arch/i386/include/bits/nap.h b/src/arch/x86/include/bits/nap.h
index e8bcfd13..7103b94c 100644
--- a/src/arch/i386/include/bits/nap.h
+++ b/src/arch/x86/include/bits/nap.h
@@ -3,7 +3,7 @@
/** @file
*
- * i386-specific CPU sleeping API implementations
+ * x86-specific CPU sleeping API implementations
*
*/
diff --git a/src/arch/i386/include/bits/reboot.h b/src/arch/x86/include/bits/reboot.h
index 803dacfe..e702dd3d 100644
--- a/src/arch/i386/include/bits/reboot.h
+++ b/src/arch/x86/include/bits/reboot.h
@@ -3,7 +3,7 @@
/** @file
*
- * i386-specific reboot API implementations
+ * x86-specific reboot API implementations
*
*/
diff --git a/src/arch/i386/include/bits/sanboot.h b/src/arch/x86/include/bits/sanboot.h
index f02d2e64..1b9924e6 100644
--- a/src/arch/i386/include/bits/sanboot.h
+++ b/src/arch/x86/include/bits/sanboot.h
@@ -3,7 +3,7 @@
/** @file
*
- * i386-specific sanboot API implementations
+ * x86-specific sanboot API implementations
*
*/
diff --git a/src/arch/i386/include/bits/smbios.h b/src/arch/x86/include/bits/smbios.h
index 2ab31e74..9977c87a 100644
--- a/src/arch/i386/include/bits/smbios.h
+++ b/src/arch/x86/include/bits/smbios.h
@@ -3,7 +3,7 @@
/** @file
*
- * i386-specific SMBIOS API implementations
+ * x86-specific SMBIOS API implementations
*
*/
diff --git a/src/arch/i386/include/bits/time.h b/src/arch/x86/include/bits/time.h
index 6a5d63d3..556d96f6 100644
--- a/src/arch/i386/include/bits/time.h
+++ b/src/arch/x86/include/bits/time.h
@@ -3,7 +3,7 @@
/** @file
*
- * i386-specific time API implementations
+ * x86-specific time API implementations
*
*/
diff --git a/src/arch/i386/include/bits/timer.h b/src/arch/x86/include/bits/timer.h
index f7d86d78..b0ff5ee1 100644
--- a/src/arch/i386/include/bits/timer.h
+++ b/src/arch/x86/include/bits/timer.h
@@ -3,7 +3,7 @@
/** @file
*
- * i386-specific timer API implementations
+ * x86-specific timer API implementations
*
*/
diff --git a/src/arch/i386/include/bits/uaccess.h b/src/arch/x86/include/bits/uaccess.h
index aac09ba9..e9e7e5af 100644
--- a/src/arch/i386/include/bits/uaccess.h
+++ b/src/arch/x86/include/bits/uaccess.h
@@ -3,7 +3,7 @@
/** @file
*
- * i386-specific user access API implementations
+ * x86-specific user access API implementations
*
*/
diff --git a/src/arch/i386/include/bits/umalloc.h b/src/arch/x86/include/bits/umalloc.h
index 113f16fd..5d1f554d 100644
--- a/src/arch/i386/include/bits/umalloc.h
+++ b/src/arch/x86/include/bits/umalloc.h
@@ -3,7 +3,7 @@
/** @file
*
- * i386-specific user memory allocation API implementations
+ * x86-specific user memory allocation API implementations
*
*/
diff --git a/src/arch/i386/include/bochs.h b/src/arch/x86/include/bochs.h
index 9d090fc1..9d090fc1 100644
--- a/src/arch/i386/include/bochs.h
+++ b/src/arch/x86/include/bochs.h
diff --git a/src/arch/i386/include/bootsector.h b/src/arch/x86/include/bootsector.h
index c5d35aae..c5d35aae 100644
--- a/src/arch/i386/include/bootsector.h
+++ b/src/arch/x86/include/bootsector.h
diff --git a/src/arch/i386/include/bzimage.h b/src/arch/x86/include/bzimage.h
index 4933ce5b..4933ce5b 100644
--- a/src/arch/i386/include/bzimage.h
+++ b/src/arch/x86/include/bzimage.h
diff --git a/src/arch/i386/include/fakee820.h b/src/arch/x86/include/fakee820.h
index 552b1e48..552b1e48 100644
--- a/src/arch/i386/include/fakee820.h
+++ b/src/arch/x86/include/fakee820.h
diff --git a/src/arch/i386/include/initrd.h b/src/arch/x86/include/initrd.h
index ddb3e5a4..ddb3e5a4 100644
--- a/src/arch/i386/include/initrd.h
+++ b/src/arch/x86/include/initrd.h
diff --git a/src/arch/i386/include/int13.h b/src/arch/x86/include/int13.h
index f82a583c..f82a583c 100644
--- a/src/arch/i386/include/int13.h
+++ b/src/arch/x86/include/int13.h
diff --git a/src/arch/i386/include/ipxe/bios_nap.h b/src/arch/x86/include/ipxe/bios_nap.h
index c9b82c1e..c9b82c1e 100644
--- a/src/arch/i386/include/ipxe/bios_nap.h
+++ b/src/arch/x86/include/ipxe/bios_nap.h
diff --git a/src/arch/i386/include/ipxe/bios_reboot.h b/src/arch/x86/include/ipxe/bios_reboot.h
index 3f6df907..3f6df907 100644
--- a/src/arch/i386/include/ipxe/bios_reboot.h
+++ b/src/arch/x86/include/ipxe/bios_reboot.h
diff --git a/src/arch/i386/include/ipxe/bios_sanboot.h b/src/arch/x86/include/ipxe/bios_sanboot.h
index 1a86b7d5..1a86b7d5 100644
--- a/src/arch/i386/include/ipxe/bios_sanboot.h
+++ b/src/arch/x86/include/ipxe/bios_sanboot.h
diff --git a/src/arch/i386/include/ipxe/bios_smbios.h b/src/arch/x86/include/ipxe/bios_smbios.h
index 9f7f9c8f..9f7f9c8f 100644
--- a/src/arch/i386/include/ipxe/bios_smbios.h
+++ b/src/arch/x86/include/ipxe/bios_smbios.h
diff --git a/src/arch/i386/include/ipxe/bios_timer.h b/src/arch/x86/include/ipxe/bios_timer.h
index 6b88a623..6b88a623 100644
--- a/src/arch/i386/include/ipxe/bios_timer.h
+++ b/src/arch/x86/include/ipxe/bios_timer.h
diff --git a/src/arch/i386/include/ipxe/errno/pcbios.h b/src/arch/x86/include/ipxe/errno/pcbios.h
index 6312adaa..6312adaa 100644
--- a/src/arch/i386/include/ipxe/errno/pcbios.h
+++ b/src/arch/x86/include/ipxe/errno/pcbios.h
diff --git a/src/arch/i386/include/ipxe/memtop_umalloc.h b/src/arch/x86/include/ipxe/memtop_umalloc.h
index dee055d1..dee055d1 100644
--- a/src/arch/i386/include/ipxe/memtop_umalloc.h
+++ b/src/arch/x86/include/ipxe/memtop_umalloc.h
diff --git a/src/arch/i386/include/ipxe/rdtsc_timer.h b/src/arch/x86/include/ipxe/rdtsc_timer.h
index 598f4bb0..598f4bb0 100644
--- a/src/arch/i386/include/ipxe/rdtsc_timer.h
+++ b/src/arch/x86/include/ipxe/rdtsc_timer.h
diff --git a/src/arch/i386/include/ipxe/rtc_entropy.h b/src/arch/x86/include/ipxe/rtc_entropy.h
index e214745d..e214745d 100644
--- a/src/arch/i386/include/ipxe/rtc_entropy.h
+++ b/src/arch/x86/include/ipxe/rtc_entropy.h
diff --git a/src/arch/i386/include/ipxe/rtc_time.h b/src/arch/x86/include/ipxe/rtc_time.h
index cb8c7f49..cb8c7f49 100644
--- a/src/arch/i386/include/ipxe/rtc_time.h
+++ b/src/arch/x86/include/ipxe/rtc_time.h
diff --git a/src/arch/i386/include/ipxe/vesafb.h b/src/arch/x86/include/ipxe/vesafb.h
index efc8f2cb..efc8f2cb 100644
--- a/src/arch/i386/include/ipxe/vesafb.h
+++ b/src/arch/x86/include/ipxe/vesafb.h
diff --git a/src/arch/i386/include/kir.h b/src/arch/x86/include/kir.h
index 84633d26..84633d26 100644
--- a/src/arch/i386/include/kir.h
+++ b/src/arch/x86/include/kir.h
diff --git a/src/arch/i386/include/libkir.h b/src/arch/x86/include/libkir.h
index 1f5b1350..1f5b1350 100644
--- a/src/arch/i386/include/libkir.h
+++ b/src/arch/x86/include/libkir.h
diff --git a/src/arch/i386/include/librm.h b/src/arch/x86/include/librm.h
index 44d931ea..44d931ea 100644
--- a/src/arch/i386/include/librm.h
+++ b/src/arch/x86/include/librm.h
diff --git a/src/arch/i386/include/memsizes.h b/src/arch/x86/include/memsizes.h
index f115f757..f115f757 100644
--- a/src/arch/i386/include/memsizes.h
+++ b/src/arch/x86/include/memsizes.h
diff --git a/src/arch/i386/include/multiboot.h b/src/arch/x86/include/multiboot.h
index ae09df6c..ae09df6c 100644
--- a/src/arch/i386/include/multiboot.h
+++ b/src/arch/x86/include/multiboot.h
diff --git a/src/arch/i386/include/pnpbios.h b/src/arch/x86/include/pnpbios.h
index d1487370..d1487370 100644
--- a/src/arch/i386/include/pnpbios.h
+++ b/src/arch/x86/include/pnpbios.h
diff --git a/src/arch/i386/include/pxe.h b/src/arch/x86/include/pxe.h
index 54649b50..54649b50 100644
--- a/src/arch/i386/include/pxe.h
+++ b/src/arch/x86/include/pxe.h
diff --git a/src/arch/i386/include/pxe_api.h b/src/arch/x86/include/pxe_api.h
index 3110d26d..3110d26d 100644
--- a/src/arch/i386/include/pxe_api.h
+++ b/src/arch/x86/include/pxe_api.h
diff --git a/src/arch/i386/include/pxe_call.h b/src/arch/x86/include/pxe_call.h
index 2ad0a950..2ad0a950 100644
--- a/src/arch/i386/include/pxe_call.h
+++ b/src/arch/x86/include/pxe_call.h
diff --git a/src/arch/i386/include/pxe_error.h b/src/arch/x86/include/pxe_error.h
index 51298e66..51298e66 100644
--- a/src/arch/i386/include/pxe_error.h
+++ b/src/arch/x86/include/pxe_error.h
diff --git a/src/arch/i386/include/pxe_types.h b/src/arch/x86/include/pxe_types.h
index 483666e3..483666e3 100644
--- a/src/arch/i386/include/pxe_types.h
+++ b/src/arch/x86/include/pxe_types.h
diff --git a/src/arch/i386/include/pxeparent.h b/src/arch/x86/include/pxeparent.h
index b31e24a7..b31e24a7 100644
--- a/src/arch/i386/include/pxeparent.h
+++ b/src/arch/x86/include/pxeparent.h
diff --git a/src/arch/i386/include/realmode.h b/src/arch/x86/include/realmode.h
index 4defd3b9..4defd3b9 100644
--- a/src/arch/i386/include/realmode.h
+++ b/src/arch/x86/include/realmode.h
diff --git a/src/arch/i386/include/registers.h b/src/arch/x86/include/registers.h
index d9aa3c37..d9aa3c37 100644
--- a/src/arch/i386/include/registers.h
+++ b/src/arch/x86/include/registers.h
diff --git a/src/arch/i386/include/rmsetjmp.h b/src/arch/x86/include/rmsetjmp.h
index 3470be47..3470be47 100644
--- a/src/arch/i386/include/rmsetjmp.h
+++ b/src/arch/x86/include/rmsetjmp.h
diff --git a/src/arch/i386/include/rtc.h b/src/arch/x86/include/rtc.h
index 6294b63e..6294b63e 100644
--- a/src/arch/i386/include/rtc.h
+++ b/src/arch/x86/include/rtc.h
diff --git a/src/arch/i386/include/sdi.h b/src/arch/x86/include/sdi.h
index 806c3f19..806c3f19 100644
--- a/src/arch/i386/include/sdi.h
+++ b/src/arch/x86/include/sdi.h
diff --git a/src/arch/i386/include/undi.h b/src/arch/x86/include/undi.h
index 7a5624f9..7a5624f9 100644
--- a/src/arch/i386/include/undi.h
+++ b/src/arch/x86/include/undi.h
diff --git a/src/arch/i386/include/undiload.h b/src/arch/x86/include/undiload.h
index 235e7a79..235e7a79 100644
--- a/src/arch/i386/include/undiload.h
+++ b/src/arch/x86/include/undiload.h
diff --git a/src/arch/i386/include/undinet.h b/src/arch/x86/include/undinet.h
index 2798c446..2798c446 100644
--- a/src/arch/i386/include/undinet.h
+++ b/src/arch/x86/include/undinet.h
diff --git a/src/arch/i386/include/undipreload.h b/src/arch/x86/include/undipreload.h
index 57f493ce..57f493ce 100644
--- a/src/arch/i386/include/undipreload.h
+++ b/src/arch/x86/include/undipreload.h
diff --git a/src/arch/i386/include/undirom.h b/src/arch/x86/include/undirom.h
index 1c530118..1c530118 100644
--- a/src/arch/i386/include/undirom.h
+++ b/src/arch/x86/include/undirom.h
diff --git a/src/arch/i386/include/vga.h b/src/arch/x86/include/vga.h
index 01fc39d8..01fc39d8 100644
--- a/src/arch/i386/include/vga.h
+++ b/src/arch/x86/include/vga.h
diff --git a/src/arch/i386/interface/pcbios/apm.c b/src/arch/x86/interface/pcbios/apm.c
index 50b19cb8..50b19cb8 100644
--- a/src/arch/i386/interface/pcbios/apm.c
+++ b/src/arch/x86/interface/pcbios/apm.c
diff --git a/src/arch/i386/firmware/pcbios/basemem.c b/src/arch/x86/interface/pcbios/basemem.c
index 6a46081a..6a46081a 100644
--- a/src/arch/i386/firmware/pcbios/basemem.c
+++ b/src/arch/x86/interface/pcbios/basemem.c
diff --git a/src/arch/i386/firmware/pcbios/bios_console.c b/src/arch/x86/interface/pcbios/bios_console.c
index cfffd954..cfffd954 100644
--- a/src/arch/i386/firmware/pcbios/bios_console.c
+++ b/src/arch/x86/interface/pcbios/bios_console.c
diff --git a/src/arch/i386/interface/pcbios/bios_nap.c b/src/arch/x86/interface/pcbios/bios_nap.c
index f1ba8297..f1ba8297 100644
--- a/src/arch/i386/interface/pcbios/bios_nap.c
+++ b/src/arch/x86/interface/pcbios/bios_nap.c
diff --git a/src/arch/i386/interface/pcbios/bios_reboot.c b/src/arch/x86/interface/pcbios/bios_reboot.c
index 10a1ecb8..10a1ecb8 100644
--- a/src/arch/i386/interface/pcbios/bios_reboot.c
+++ b/src/arch/x86/interface/pcbios/bios_reboot.c
diff --git a/src/arch/i386/interface/pcbios/bios_smbios.c b/src/arch/x86/interface/pcbios/bios_smbios.c
index a8c0fc32..a8c0fc32 100644
--- a/src/arch/i386/interface/pcbios/bios_smbios.c
+++ b/src/arch/x86/interface/pcbios/bios_smbios.c
diff --git a/src/arch/i386/interface/pcbios/bios_timer.c b/src/arch/x86/interface/pcbios/bios_timer.c
index 3299c9aa..3299c9aa 100644
--- a/src/arch/i386/interface/pcbios/bios_timer.c
+++ b/src/arch/x86/interface/pcbios/bios_timer.c
diff --git a/src/arch/i386/interface/pcbios/biosint.c b/src/arch/x86/interface/pcbios/biosint.c
index 667e9ed8..667e9ed8 100644
--- a/src/arch/i386/interface/pcbios/biosint.c
+++ b/src/arch/x86/interface/pcbios/biosint.c
diff --git a/src/arch/i386/firmware/pcbios/e820mangler.S b/src/arch/x86/interface/pcbios/e820mangler.S
index d5d97b48..d5d97b48 100644
--- a/src/arch/i386/firmware/pcbios/e820mangler.S
+++ b/src/arch/x86/interface/pcbios/e820mangler.S
diff --git a/src/arch/i386/firmware/pcbios/fakee820.c b/src/arch/x86/interface/pcbios/fakee820.c
index 8b083c4f..8b083c4f 100644
--- a/src/arch/i386/firmware/pcbios/fakee820.c
+++ b/src/arch/x86/interface/pcbios/fakee820.c
diff --git a/src/arch/i386/firmware/pcbios/hidemem.c b/src/arch/x86/interface/pcbios/hidemem.c
index a3728123..a3728123 100644
--- a/src/arch/i386/firmware/pcbios/hidemem.c
+++ b/src/arch/x86/interface/pcbios/hidemem.c
diff --git a/src/arch/i386/interface/pcbios/int13.c b/src/arch/x86/interface/pcbios/int13.c
index 6ba12921..6ba12921 100644
--- a/src/arch/i386/interface/pcbios/int13.c
+++ b/src/arch/x86/interface/pcbios/int13.c
diff --git a/src/arch/i386/interface/pcbios/int13con.c b/src/arch/x86/interface/pcbios/int13con.c
index 2414c690..2414c690 100644
--- a/src/arch/i386/interface/pcbios/int13con.c
+++ b/src/arch/x86/interface/pcbios/int13con.c
diff --git a/src/arch/i386/firmware/pcbios/memmap.c b/src/arch/x86/interface/pcbios/memmap.c
index 88bfec9f..88bfec9f 100644
--- a/src/arch/i386/firmware/pcbios/memmap.c
+++ b/src/arch/x86/interface/pcbios/memmap.c
diff --git a/src/arch/i386/interface/pcbios/memtop_umalloc.c b/src/arch/x86/interface/pcbios/memtop_umalloc.c
index 957f8e32..957f8e32 100644
--- a/src/arch/i386/interface/pcbios/memtop_umalloc.c
+++ b/src/arch/x86/interface/pcbios/memtop_umalloc.c
diff --git a/src/arch/i386/interface/pcbios/pcibios.c b/src/arch/x86/interface/pcbios/pcibios.c
index 34efa0b3..34efa0b3 100644
--- a/src/arch/i386/interface/pcbios/pcibios.c
+++ b/src/arch/x86/interface/pcbios/pcibios.c
diff --git a/src/arch/i386/firmware/pcbios/pnpbios.c b/src/arch/x86/interface/pcbios/pnpbios.c
index 20ec35d7..20ec35d7 100644
--- a/src/arch/i386/firmware/pcbios/pnpbios.c
+++ b/src/arch/x86/interface/pcbios/pnpbios.c
diff --git a/src/arch/i386/interface/pcbios/rtc_entropy.c b/src/arch/x86/interface/pcbios/rtc_entropy.c
index 6e7ac833..6e7ac833 100644
--- a/src/arch/i386/interface/pcbios/rtc_entropy.c
+++ b/src/arch/x86/interface/pcbios/rtc_entropy.c
diff --git a/src/arch/i386/interface/pcbios/rtc_time.c b/src/arch/x86/interface/pcbios/rtc_time.c
index cdbeac8d..cdbeac8d 100644
--- a/src/arch/i386/interface/pcbios/rtc_time.c
+++ b/src/arch/x86/interface/pcbios/rtc_time.c
diff --git a/src/arch/i386/interface/pcbios/vesafb.c b/src/arch/x86/interface/pcbios/vesafb.c
index 50e48585..50e48585 100644
--- a/src/arch/i386/interface/pcbios/vesafb.c
+++ b/src/arch/x86/interface/pcbios/vesafb.c
diff --git a/src/arch/i386/interface/pxe/pxe_call.c b/src/arch/x86/interface/pxe/pxe_call.c
index 67118299..67118299 100644
--- a/src/arch/i386/interface/pxe/pxe_call.c
+++ b/src/arch/x86/interface/pxe/pxe_call.c
diff --git a/src/arch/i386/interface/pxe/pxe_entry.S b/src/arch/x86/interface/pxe/pxe_entry.S
index 07852cd5..07852cd5 100644
--- a/src/arch/i386/interface/pxe/pxe_entry.S
+++ b/src/arch/x86/interface/pxe/pxe_entry.S
diff --git a/src/arch/i386/interface/pxe/pxe_exit_hook.c b/src/arch/x86/interface/pxe/pxe_exit_hook.c
index f92dae0d..f92dae0d 100644
--- a/src/arch/i386/interface/pxe/pxe_exit_hook.c
+++ b/src/arch/x86/interface/pxe/pxe_exit_hook.c
diff --git a/src/arch/i386/interface/pxe/pxe_file.c b/src/arch/x86/interface/pxe/pxe_file.c
index 456ffb5f..456ffb5f 100644
--- a/src/arch/i386/interface/pxe/pxe_file.c
+++ b/src/arch/x86/interface/pxe/pxe_file.c
diff --git a/src/arch/i386/interface/pxe/pxe_loader.c b/src/arch/x86/interface/pxe/pxe_loader.c
index e6a2e072..e6a2e072 100644
--- a/src/arch/i386/interface/pxe/pxe_loader.c
+++ b/src/arch/x86/interface/pxe/pxe_loader.c
diff --git a/src/arch/i386/interface/pxe/pxe_preboot.c b/src/arch/x86/interface/pxe/pxe_preboot.c
index 09e721b3..09e721b3 100644
--- a/src/arch/i386/interface/pxe/pxe_preboot.c
+++ b/src/arch/x86/interface/pxe/pxe_preboot.c
diff --git a/src/arch/i386/interface/pxe/pxe_tftp.c b/src/arch/x86/interface/pxe/pxe_tftp.c
index 3b4c6d84..3b4c6d84 100644
--- a/src/arch/i386/interface/pxe/pxe_tftp.c
+++ b/src/arch/x86/interface/pxe/pxe_tftp.c
diff --git a/src/arch/i386/interface/pxe/pxe_udp.c b/src/arch/x86/interface/pxe/pxe_udp.c
index 071cb59d..071cb59d 100644
--- a/src/arch/i386/interface/pxe/pxe_udp.c
+++ b/src/arch/x86/interface/pxe/pxe_udp.c
diff --git a/src/arch/i386/interface/pxe/pxe_undi.c b/src/arch/x86/interface/pxe/pxe_undi.c
index 2eb68178..2eb68178 100644
--- a/src/arch/i386/interface/pxe/pxe_undi.c
+++ b/src/arch/x86/interface/pxe/pxe_undi.c
diff --git a/src/arch/i386/interface/pxeparent/pxeparent.c b/src/arch/x86/interface/pxeparent/pxeparent.c
index 0b6be9a0..0b6be9a0 100644
--- a/src/arch/i386/interface/pxeparent/pxeparent.c
+++ b/src/arch/x86/interface/pxeparent/pxeparent.c
diff --git a/src/arch/i386/prefix/bootpart.S b/src/arch/x86/prefix/bootpart.S
index 6d0c6034..6d0c6034 100644
--- a/src/arch/i386/prefix/bootpart.S
+++ b/src/arch/x86/prefix/bootpart.S
diff --git a/src/arch/i386/prefix/dskprefix.S b/src/arch/x86/prefix/dskprefix.S
index 7aa017cc..7aa017cc 100644
--- a/src/arch/i386/prefix/dskprefix.S
+++ b/src/arch/x86/prefix/dskprefix.S
diff --git a/src/arch/i386/prefix/exeprefix.S b/src/arch/x86/prefix/exeprefix.S
index 5c648d51..5c648d51 100644
--- a/src/arch/i386/prefix/exeprefix.S
+++ b/src/arch/x86/prefix/exeprefix.S
diff --git a/src/arch/i386/prefix/hdprefix.S b/src/arch/x86/prefix/hdprefix.S
index 1d012d80..1d012d80 100644
--- a/src/arch/i386/prefix/hdprefix.S
+++ b/src/arch/x86/prefix/hdprefix.S
diff --git a/src/arch/i386/prefix/isaromprefix.S b/src/arch/x86/prefix/isaromprefix.S
index fb49819e..fb49819e 100644
--- a/src/arch/i386/prefix/isaromprefix.S
+++ b/src/arch/x86/prefix/isaromprefix.S
diff --git a/src/arch/i386/prefix/kkkpxeprefix.S b/src/arch/x86/prefix/kkkpxeprefix.S
index 6e43cd26..6e43cd26 100644
--- a/src/arch/i386/prefix/kkkpxeprefix.S
+++ b/src/arch/x86/prefix/kkkpxeprefix.S
diff --git a/src/arch/i386/prefix/kkpxeprefix.S b/src/arch/x86/prefix/kkpxeprefix.S
index 3c17dbdb..3c17dbdb 100644
--- a/src/arch/i386/prefix/kkpxeprefix.S
+++ b/src/arch/x86/prefix/kkpxeprefix.S
diff --git a/src/arch/i386/prefix/kpxeprefix.S b/src/arch/x86/prefix/kpxeprefix.S
index 200006d8..200006d8 100644
--- a/src/arch/i386/prefix/kpxeprefix.S
+++ b/src/arch/x86/prefix/kpxeprefix.S
diff --git a/src/arch/i386/prefix/libprefix.S b/src/arch/x86/prefix/libprefix.S
index 3cdb6ec9..3cdb6ec9 100644
--- a/src/arch/i386/prefix/libprefix.S
+++ b/src/arch/x86/prefix/libprefix.S
diff --git a/src/arch/i386/prefix/lkrnprefix.S b/src/arch/x86/prefix/lkrnprefix.S
index 64135e14..64135e14 100644
--- a/src/arch/i386/prefix/lkrnprefix.S
+++ b/src/arch/x86/prefix/lkrnprefix.S
diff --git a/src/arch/i386/prefix/mbr.S b/src/arch/x86/prefix/mbr.S
index a1e237de..a1e237de 100644
--- a/src/arch/i386/prefix/mbr.S
+++ b/src/arch/x86/prefix/mbr.S
diff --git a/src/arch/i386/prefix/mromprefix.S b/src/arch/x86/prefix/mromprefix.S
index b636b92a..b636b92a 100644
--- a/src/arch/i386/prefix/mromprefix.S
+++ b/src/arch/x86/prefix/mromprefix.S
diff --git a/src/arch/i386/prefix/nbiprefix.S b/src/arch/x86/prefix/nbiprefix.S
index 16c79566..16c79566 100644
--- a/src/arch/i386/prefix/nbiprefix.S
+++ b/src/arch/x86/prefix/nbiprefix.S
diff --git a/src/arch/i386/prefix/nullprefix.S b/src/arch/x86/prefix/nullprefix.S
index bd0ff339..bd0ff339 100644
--- a/src/arch/i386/prefix/nullprefix.S
+++ b/src/arch/x86/prefix/nullprefix.S
diff --git a/src/arch/i386/prefix/pciromprefix.S b/src/arch/x86/prefix/pciromprefix.S
index 5a5a4964..5a5a4964 100644
--- a/src/arch/i386/prefix/pciromprefix.S
+++ b/src/arch/x86/prefix/pciromprefix.S
diff --git a/src/arch/i386/prefix/pxeprefix.S b/src/arch/x86/prefix/pxeprefix.S
index 465ce434..465ce434 100644
--- a/src/arch/i386/prefix/pxeprefix.S
+++ b/src/arch/x86/prefix/pxeprefix.S
diff --git a/src/arch/i386/prefix/romprefix.S b/src/arch/x86/prefix/romprefix.S
index 8974c539..8974c539 100644
--- a/src/arch/i386/prefix/romprefix.S
+++ b/src/arch/x86/prefix/romprefix.S
diff --git a/src/arch/i386/prefix/undiloader.S b/src/arch/x86/prefix/undiloader.S
index 5cace44b..5cace44b 100644
--- a/src/arch/i386/prefix/undiloader.S
+++ b/src/arch/x86/prefix/undiloader.S
diff --git a/src/arch/i386/prefix/unlzma.S b/src/arch/x86/prefix/unlzma.S
index 8d4b3c1a..8d4b3c1a 100644
--- a/src/arch/i386/prefix/unlzma.S
+++ b/src/arch/x86/prefix/unlzma.S
diff --git a/src/arch/i386/prefix/unlzma16.S b/src/arch/x86/prefix/unlzma16.S
index 32b43f0d..32b43f0d 100644
--- a/src/arch/i386/prefix/unlzma16.S
+++ b/src/arch/x86/prefix/unlzma16.S
diff --git a/src/arch/i386/prefix/usbdisk.S b/src/arch/x86/prefix/usbdisk.S
index 9676406e..9676406e 100644
--- a/src/arch/i386/prefix/usbdisk.S
+++ b/src/arch/x86/prefix/usbdisk.S
diff --git a/src/arch/i386/scripts/i386.lds b/src/arch/x86/scripts/pcbios.lds
index 865591ae..865591ae 100644
--- a/src/arch/i386/scripts/i386.lds
+++ b/src/arch/x86/scripts/pcbios.lds
diff --git a/src/arch/i386/transitions/liba20.S b/src/arch/x86/transitions/liba20.S
index 6c1e1f62..6c1e1f62 100644
--- a/src/arch/i386/transitions/liba20.S
+++ b/src/arch/x86/transitions/liba20.S
diff --git a/src/arch/i386/transitions/libkir.S b/src/arch/x86/transitions/libkir.S
index fa9459d5..fa9459d5 100644
--- a/src/arch/i386/transitions/libkir.S
+++ b/src/arch/x86/transitions/libkir.S
diff --git a/src/arch/i386/transitions/libpm.S b/src/arch/x86/transitions/libpm.S
index e69de29b..e69de29b 100644
--- a/src/arch/i386/transitions/libpm.S
+++ b/src/arch/x86/transitions/libpm.S
diff --git a/src/arch/i386/transitions/librm.S b/src/arch/x86/transitions/librm.S
index 863e2241..863e2241 100644
--- a/src/arch/i386/transitions/librm.S
+++ b/src/arch/x86/transitions/librm.S
diff --git a/src/arch/i386/transitions/librm_mgmt.c b/src/arch/x86/transitions/librm_mgmt.c
index 32695ae0..32695ae0 100644
--- a/src/arch/i386/transitions/librm_mgmt.c
+++ b/src/arch/x86/transitions/librm_mgmt.c
diff --git a/src/arch/i386/transitions/librm_test.c b/src/arch/x86/transitions/librm_test.c
index 496d5612..496d5612 100644
--- a/src/arch/i386/transitions/librm_test.c
+++ b/src/arch/x86/transitions/librm_test.c
diff --git a/src/arch/x86_64/Makefile.pcbios b/src/arch/x86_64/Makefile.pcbios
new file mode 100644
index 00000000..dfb8db0a
--- /dev/null
+++ b/src/arch/x86_64/Makefile.pcbios
@@ -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
index a9b3bc10..00000000
--- a/src/arch/x86_64/include/bits/entropy.h
+++ /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
index 8b42c0a4..00000000
--- a/src/arch/x86_64/include/bits/nap.h
+++ /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
index f9bcd6a7..00000000
--- a/src/arch/x86_64/include/bits/reboot.h
+++ /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
index dcab830f..00000000
--- a/src/arch/x86_64/include/bits/sanboot.h
+++ /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
index 2f0118d0..00000000
--- a/src/arch/x86_64/include/bits/smbios.h
+++ /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
index aa74fac8..00000000
--- a/src/arch/x86_64/include/bits/time.h
+++ /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
index dfa6c270..00000000
--- a/src/arch/x86_64/include/bits/timer.h
+++ /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
index 45582924..00000000
--- a/src/arch/x86_64/include/bits/uaccess.h
+++ /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
index 12bf949d..00000000
--- a/src/arch/x86_64/include/bits/umalloc.h
+++ /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
index 00000000..e07e4c19
--- /dev/null
+++ b/src/arch/x86_64/include/pcbios/ipxe/dhcp_arch.h
@@ -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