Allocation failure when booting on real hardware
osresearch opened this issue · comments
Trammell Hudson commented
Booting on a Dell r630 with 32 GB of RAM leads to a allocation failure:
Booting from PXE Device 1: Integrated NIC 1 Port 1 Partition 1
>>Start PXE over IPv4.
Station IP address is 10.1.0.115
Server IP address is 10.0.0.1
NBP filename is bzImage
NBP filesize is 15679668 Bytes
Downloading NBP file...
Succeed to download NBP file.
UEFI string test
efilib says hello
SysTab: 000000007A188F18
BootSvc: 0000000076B0C660
kernel: 0000000066AFB000 + 002702A0
initrd: 0000000066D7B000 + 00C77C00
cmdline: 00000000679FB000 + 000000B7
params: 0000000068DDB000 + 000000B7
cmdline: 0000000068E28000 + 000000B8
0000000040000000 + 20000000: memory allocation failed!
Failed to reserve room for Linux
Trammell Hudson commented
Removing the check "works", although it is a total hack. The loader.c
should be modified to allow arbitrary allocation and build the command line exactmap
instead.
Trammell Hudson commented
Loading at arbitrary addresses has a few caveats:
- the chainload expects hard coded addresses. they will need to be specified or passed via context in low memory
- the allocation must be above 1 GB limit to avoid cr3[0] page mapping conflicts