On Thu, Feb 21, 2008 at 11:49 AM, Myles Watson mylesgw@gmail.com wrote:
This patch makes PAYLOAD_PREPARSE_ELF only apply to the payload.
oops! I just realized: pre-parsing stage2 is required. So we need to rename this flag and continue to ELF parse stage2.
E.g.:
normal/payload/segment0 (152672 bytes, zeroes compressed to 1 bytes @0x50);loadaddress 0x0x111f60 entry 0x0x10d9b4 normal/payload/segment1 (73544 bytes, lzma compressed to 36370 bytes @0xb0);loadaddress 0x0x100000 entry 0x0x10d9b4 normal/payload/segment2 (72 bytes, lzma compressed to 47 bytes @0x8f20);loadaddress 0x0x1373c0 entry 0x0x10d9b4 normal/option_table (1200 bytes @0x8fa0);loadaddress 0x0 entry 0x0 normal/stage2/segment0 (191788 bytes, zeroes compressed to 1 bytes @0x94a0);loadaddress 0x0xb8e0 entry 0x0x2000 normal/stage2/segment1 (32508 bytes, lzma compressed to 17187 bytes @0x9500);loadaddress 0x0x2000 entry 0x0x2000 normal/stage2/segment2 (6348 bytes, lzma compressed to 425 bytes @0xd880);loadaddress 0x0xa000 entry 0x0x2000 normal/initram/segment0 (5404 bytes @0xda80);loadaddress 0x0 entry 0x0xf0b blob/vsa (57504 bytes @0xefe0);loadaddress 0x0 entry 0x0 zerofill (384767 bytes @0x1d0c0);loadaddress 0x0 entry 0x0 bootblock (20480 bytes @0x7b000) Total size = 523914 bytes (0x7fe8a)
pre-parsing is for more than just payload, it turns out, esp. since it manages bss correctly. It turned out the built-in elf loader did not, which was also a problem as I found out the hard way. E.g. stage2/segment0 above is .bss.
ron