Add support for the 32 bit boot protocol to the x86 zboot command.
Get series with b4
b4 am [email protected]Versions newest first
- v1 Latest0 of 4 patches 0 repliesNew
Patches in v1 No applies recorded yet
None of the 4 patches the cover letter announces are in this archive.
Reviews trailers per patch
No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.
Cover letter [U-Boot] [PATCH 0/4] Add support for the 32 bit boot protocol to the x86 zboot command.
Hi Gabe,
Quoted 11 lines · Gabe Black
These four patches add support for the 32 bit Linux boot protocol to the zboot command. They also add support for an initrd.
Gabe Black (4):
x86: Clean up the x86 zimage code in preparation to extend it
x86: Add support for booting Linux using the 32 bit boot protocol
x86: Refactor the zboot innards so they can be reused with a vboot
image
x86: Add support for specifying an initrd with the zboot command
Quoted 4 lines
arch/x86/include/asm/zimage.h | 31 +---- arch/x86/lib/bootm.c | 21 +++- arch/x86/lib/zimage.c | 257 ++++++++++++++++++++++++++--------------- 3 files changed, 183 insertions(+), 126 deletions(-)
Well I managed to bolt it all together (you have other changes to arch/x86/include/asm/zimage.h so one of the patches had to be applied manually)
But I cannot get the e820 map setup right for Linux - I tried to create a single 2GB entry (I have no reserved memory, it's all free for Linux to do what it wishes) with:
unsigned install_e820_map(unsigned max_entries, struct e820entry *entries)
{
entries[0].addr = 0x00000000;
entries[0].size = 0x80000000;
entries[0].type = E820_RAM;
return 1;
}But Linux throws back:
[ 0.000000] Initializing cgroup subsys cpu [ 0.000000] Linux version 3.1.0 (graeme at helios) (gcc version 4.5.2 (Ubuntu/Linaro 4.5.2-8ubuntu4) ) #4 Sun Nov 20 20:38:20 EST 2011 [ 0.000000] KERNEL supported cpus: [ 0.000000] Intel GenuineIntel [ 0.000000] Disabled fast string operations [ 0.000000] BIOS-provided physical RAM map: [ 0.000000] BIOS-e801: 0000000000000000 - 000000000009f000 (usable) [ 0.000000] BIOS-e801: 0000000000100000 - 0000000000100000 (usable) [ 0.000000] bootconsole [earlyser0] enabled [ 0.000000] Notice: NX (Execute Disable) protection cannot be enabled: non-PAE kernel! [ 0.000000] DMI not present or invalid. [ 0.000000] e820 update range: 0000000000000000 - 0000000000010000 (usable) ==> (reserved) [ 0.000000] e820 remove range: 00000000000a0000 - 0000000000100000 (usable) [ 0.000000] last_pfn = 0x9f max_arch_pfn = 0x100000 [ 0.000000] MTRR default type: uncachable [ 0.000000] MTRR fixed ranges enabled: [ 0.000000] 00000-FFFFF uncachable [ 0.000000] MTRR variable ranges enabled: [ 0.000000] 0 base 000000000 mask 0C0000000 write-back [ 0.000000] 1 base 0FFFB0000 mask 0FFFF0000 write-protect [ 0.000000] 2 disabled [ 0.000000] 3 disabled [ 0.000000] 4 disabled [ 0.000000] 5 disabled [ 0.000000] 6 disabled [ 0.000000] 7 disabled [ 0.000000] x86 PAT enabled: cpu 0, old 0x7040600070406, new 0x7010600070106 [ 0.000000] initial memory mapped : 0 - 01800000 [ 0.000000] Base memory trampoline at [c009e000] 9e000 size 4096 [ 0.000000] init_memory_mapping: 0000000000000000-000000000009f000 [ 0.000000] 0000000000 - 000009f000 page 4k [ 0.000000] kernel direct mapping tables up to 9f000 @ 99000-9e000 [ 0.000000] 0MB HIGHMEM available. [ 0.000000] 0MB LOWMEM available. [ 0.000000] mapped low ram: 0 - 0009f000 [ 0.000000] low ram: 0 - 0009f000
Any ideas?
Regards,
Graeme