Permalink
Please sign in to comment.
Browse files
Fixes to get x64 booting via UEFI.
Most of the work was in fixing up elfconv and the x64 linker script to get things just lined up so. Overall this conversion thing is pretty fragile, but given that there's not a lot more that really needs to go into the boot manager it seems fine for now. Perhaps a better solution would be to see if binutils could be configured with an additional target to create these types of files directly. There were also a couple changes to the assembly, where the @GOTPCREL register needs to be dereferenced to get the value of the variable. Finally, I had to add a prefix to the boot manager PCAT build, and stop reusing bootman.o and bootim.o. This is because in PCAT builds, those are compiled in 32-bit mode, whereas in the EFI boot manager those are 64-bit object files. I wasn't able to fully test the mingen build, because I hit the strict-aliasing IPv6 compiler errors. I'll fix those sometime soon. The system now boots, albeit a bit slowly due apparently to hammering the disk, via x64 UEFI on VMWare.
- Loading branch information...
Showing
with
151 additions
and 159 deletions.
- +4 −3 boot/bootman/build.ck
- +1 −0 boot/bootman/efi/Makefile
- +63 −35 boot/lib/efi/x64/efia.S
- +17 −0 boot/loader/x64/kernxfr.S
- +7 −0 docs/vhd.txt
- +9 −5 kernel/mm/x64/mapping.c
- +17 −17 uefi/include/link_x64.x
- +1 −1 uefi/tools/elfconv/elfc32.c
- +32 −98 uefi/tools/elfconv/elfc64.c
| @@ -0,0 +1,7 @@ | ||
| Convert an image to VHDX: | ||
| qemu-img convert source.img -O vhdx -o subformat=dynamic dest.vhdx | ||
| Convert an image to VHD: | ||
| qemu-img convert source.img -O vpc -o subformat=dyanmic dest.vhdx | ||
| The subformat parameter can by dynamic or fixed. |
Oops, something went wrong.
0 comments on commit
3feb1c4