Messages in this thread | | | From | james harvey <> | Date | Mon, 8 Aug 2016 20:33:46 -0400 | Subject | Kernel panic - Fails to load BIOS-E820 memory map booted through iPXE, uses BIOS-88 |
| |
<<< How does booting through iPXE disrupt the BIOS E820 map? >>>
Booting 4.6.4 from the Arch 2016.08.01 ISO on a DVD properly sees 64GB. (See quote 1.)
Booting the same ISO through iPXE only sees about 50*M*B usable, and the detected memory map sections are reported as "BIOS-88" rather than "BIOS-e820". (See quote 2.) I have seen discussions that say the 0x88 BIOS memory function may limit reporting to 15MB, or sometimes up to 64MB.
This gives a kernel panic for "initrd too large to handle, disabling initrd (27,426,236 needed, 26,398,720 available)" (commas added.)
How would booting through iPXE disrupt kernel's ability to obtain the BIOS-supplied E820 map? This is happening in linux/arch/x86/kernel/e820.c::default_machine_specific_memory_setup().
What are my avenues forward?
=== Quote 1 ============================== [ 0.000000] e820: BIOS-provided physical RAM map: [ 0.000000] BIOS-e820: [mem 0x0000000000000000-0x000000000009e7ff] usable [ 0.000000] BIOS-e820: [mem 0x000000000009e800-0x000000000009ffff] reserved [ 0.000000] BIOS-e820: [mem 0x00000000000e0000-0x00000000000fffff] reserved [ 0.000000] BIOS-e820: [mem 0x0000000000100000-0x00000000392f6fff] usable [ 0.000000] BIOS-e820: [mem 0x00000000392f7000-0x0000000039e69fff] reserved [ 0.000000] BIOS-e820: [mem 0x0000000039e6a000-0x000000003a109fff] usable [ 0.000000] BIOS-e820: [mem 0x000000003a10a000-0x000000003acb8fff] ACPI NVS [ 0.000000] BIOS-e820: [mem 0x000000003acb9000-0x000000003b613fff] reserved [ 0.000000] BIOS-e820: [mem 0x000000003b614000-0x000000003b614fff] usable [ 0.000000] BIOS-e820: [mem 0x000000003b615000-0x000000003b69afff] reserved [ 0.000000] BIOS-e820: [mem 0x000000003b69b000-0x000000003b8b7fff] usable [ 0.000000] BIOS-e820: [mem 0x000000003b8b8000-0x000000003bff8fff] reserved [ 0.000000] BIOS-e820: [mem 0x000000003bff9000-0x000000003bffffff] usable [ 0.000000] BIOS-e820: [mem 0x000000003c000000-0x000000003dffffff] reserved [ 0.000000] BIOS-e820: [mem 0x0000000040000000-0x000000004fffffff] reserved [ 0.000000] BIOS-e820: [mem 0x00000000fed1c000-0x00000000fed24fff] reserved [ 0.000000] BIOS-e820: [mem 0x00000000fed30000-0x00000000fed34fff] reserved [ 0.000000] BIOS-e820: [mem 0x00000000fed40000-0x00000000fed44fff] reserved [ 0.000000] BIOS-e820: [mem 0x00000000ff000000-0x00000000ffffffff] reserved [ 0.000000] BIOS-e820: [mem 0x0000000100000000-0x00000010bfffffff] usable [ 0.000000] debug: ignoring loglevel setting. ==========================================
=== Quote 2 ============================== ... (manually typed, some scrolled, serial console doesn't seem to get anything this early?) [ 0.000000] x86/fpu: Supporting XSAVE feature 0x004: 'AVX registers' [ 0.000000] x86/fpu: Enabled xstate features 0x7, context size is 832 bytes, using 'standard' format. [ 0.000000] x86/fpu: Using 'eager' FPU context switches. [ 0.000000] e820: BIOS-provided physical RAM map: [ 0.000000] BIOS-88: [mem 0x0000000000000000-0x000000000009efff] usable [ 0.000000] BIOS-88: [mem 0x0000000000100000-0x00000000032bbfff] usable [ 0.000000] debug: ignoring loglevel setting. [ 0.000000] console [earlyvga0] enabled [ 0.000000] NX (Execute Disable) protection: active [ 0.000000] DMI not present or invalid. [ 0.000000] e820: update [mem 0x00000000-0x00000fff] usable ==> reserved [ 0.000000] e820: remove [mem 0x000a0000-0x000fffff] usable [ 0.000000] e820: last_pfn = 0x32bc max_arch_pfn = 0x400000000 [ 0.000000] MTRR default type: write-back [ 0.000000] MTRR fixed ranges enabled: [ 0.000000] 00000-9FFFF write-back [ 0.000000] A0000-BFFFF uncachable [ 0.000000] C0000-FFFFF write-protect [ 0.000000] MTRR variable ranges enabled: [ 0.000000] 0 base 000080000000 mask 3FFF80000000 uncachable [ 0.000000] 1 base 000040000000 mask 3FFFC0000000 uncachable [ 0.000000] 2 base 380000000000 mask 3FC000000000 uncachable [ 0.000000] 3 base 00003F000000 mask 3FFFFF000000 uncachable [ 0.000000] 4 base 0000E0000000 mask 3FFFF0000000 write-through [ 0.000000] 5 base 0000F0000000 mask 3FFFFF000000 write-through [ 0.000000] 6 base 0000F1000000 mask 3FFFFF800000 write-through [ 0.000000] 7 disabled [ 0.000000] 8 disabled [ 0.000000] 9 disabled [ 0.000000] x86/PAT: Configuration [0-7]: WB WC UC- UC WB WC UC- WT [ 0.000000] Scanning 1 areas for low memory corruption [ 0.000000] Base memory trampoline at [ffff880000096000] 96000 size 24576 [ 0.000000] Using GB pages for direct mapping [ 0.000000] BRK [0x01b4e000, 0x01b4efff] PGTABLE [ 0.000000] BRK [0x01b4f000, 0x01b4ffff] PGTABLE [ 0.000000] BRK [0x01b50000, 0x01b50fff] PGTABLE [ 0.000000] Kernel panic - not syncing: initrd too large to handle, disabling initrd (27426236 needed, 26398720 available) [ 0.000000] [ 0.000000] CPU: 0 PID: 0 Comm: swapper Not tainted 4.6.4-1-ARCH #1 [ 0.000000] 0000000000000086 5c08bc9d6d100ae8 ffffffff81803e48 ffffffff812e5 4c2 [ 0.000000] ffffffff816f5de0 ffffffff81803ee0 ffffffff81803ed0 ffffffff8116d 721 [ 0.000000] 0000000000000018 ffffffff81803ee0 ffffffff81803e78 5c08bc9d6d100 ae8 [ 0.000000] Call Trace: [ 0.000000] [<ffffffff812e54c2>] dump_stack+0x63/0x81 [ 0.000000] [<ffffffff8116d721>] panic+0xde/0x220 [ 0.000000] [<ffffffff819198e4>] setup_arch+0x79d/0xcdd [ 0.000000] [<ffffffff8116da49>] ? printk+0x57/0x73 [ 0.000000] [<ffffffff8190c120>] ? early_idt_handler_array+0x120/0x120 [ 0.000000] [<ffffffff8190cc64>] start_kernel+0xb2/0x45f [ 0.000000] [<ffffffff8190c120>] ? early_idt_handler_array+0x120/0x120 [ 0.000000] [<ffffffff8190c346>] x86_64_start_reservations+0x2a/0x2c [ 0.000000] [<ffffffff8190c494>] x86_64_start_kernel+0x14c/0x16f [ 0.000000] ---[ end Kernel panic - not syncing: initrd too large to handle, disabling initrd (27426236 needed, 26398720 available) [ 0.000000] ==========================================
| |