These patches enable basic support for booting the x86_64 build on qemu. It's possible to load the bootstrap modules (32-bit for now) but they can't do much yet. This seems more or less in line with the xen port.
Next steps (in no particular order): * test simple syscalls, e.g. mach_tsk_self(), mach_print() * move kernel to higher addresses, even just beyond 4G would be a good start * enhance pmap module to actually use the L4/L3 tables, for now we're limited to the first 8G * fix mig types and test mach_msg() for some rpc. Note that due to recent changes in mig, compilation for x86_64 seems to fail currently, and we should fix mig types for this. To test these patches, you can revert for example to this commit: 63ed32b1 mach_i386: include MACH_I386_IMPORTS I think however it's better to have this part reviewed, and address the mig issues in another round. Luca Dariz (6): add support for booting from grub with x86_64 cleanup multiboot fix register corruption in irq on qemu fix console setting from cmdline enable user access fix Task State Segment layout for 64 bit Makefrag.am | 1 - configure.ac | 3 +- i386/configfrag.ac | 2 + i386/i386/i386asm.sym | 4 + i386/i386/ktss.c | 8 +- i386/i386/pcb.c | 4 + i386/i386/tss.h | 24 +++- i386/i386/vm_param.h | 4 +- i386/i386at/com.c | 2 +- i386/i386at/model_dep.c | 23 ++-- i386/include/mach/i386/multiboot.h | 108 +-------------- i386/intel/pmap.c | 8 +- i386/intel/pmap.h | 4 + include/mach/multiboot.h | 82 ----------- kern/bootstrap.c | 20 ++- x86_64/Makefrag.am | 18 ++- x86_64/boothdr.S | 214 +++++++++++++++++++++++++++++ x86_64/interrupt.S | 6 +- x86_64/ldscript | 28 ++-- x86_64/locore.S | 4 +- 20 files changed, 336 insertions(+), 231 deletions(-) delete mode 100644 include/mach/multiboot.h create mode 100644 x86_64/boothdr.S -- 2.30.2