Skip to content

Add support for the 32 bit boot protocol to the x86 zboot command.

Graeme Russ u-boot 1 version New

Get series with b4
b4 am [email protected]

Versions newest first

  1. 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.

Read the v1 thread

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