From mboxrd@z Thu Jan 1 00:00:00 1970 From: Graeme Russ Date: Wed, 30 Nov 2011 23:13:31 +1100 Subject: [U-Boot] [PATCH 0/4] Add support for the 32 bit boot protocol to the x86 zboot command. In-Reply-To: <1322644664-4520-1-git-send-email-gabeblack@chromium.org> References: <1322644664-4520-1-git-send-email-gabeblack@chromium.org> Message-ID: <4ED61DEB.8050803@gmail.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Hi Gabe, On 30/11/11 20:17, Gabe Black wrote: > 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 > > 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