
Hi Jagan,
Hi,
I have created GPT table start from 8MB for kernel, roots etc. something like
Part Start LBA End LBA Name Attributes Type GUID Partition GUID 1 0x00004000 0x00023fff "boota" attrs: 0x0000000000000004 type: ebd0a0a2-b9e5-4433-87c0-68b6b72699c7 guid: c12a7328-f81f-11d2-ba4b-00a0c93ec93b 2 0x00024000 0x00043fff "bootb" attrs: 0x0000000000000004 type: ebd0a0a2-b9e5-4433-87c0-68b6b72699c7 guid: 21686148-6449-6e6f-744e-656564454649 3 0x00044000 0x00243fff "rootfsa" attrs: 0x0000000000000000 type: ebd0a0a2-b9e5-4433-87c0-68b6b72699c7 guid: b921b045-1df0-41c3-af44-4c6f280d3fae 4 0x00244000 0x00443fff "rootfsb" attrs: 0x0000000000000000 type: ebd0a0a2-b9e5-4433-87c0-68b6b72699c7 guid: 8da63339-0007-60c0-c436-083ac8230908 5 0x00444000 0x0070bfde "data" attrs: 0x0000000000000000 type: ebd0a0a2-b9e5-4433-87c0-68b6b72699c7 guid: 4f72ab70-69be-5948-81ff-4fc3daf24faa
I have not included SPL, U-Boot to the partition list since it start from 0x400 in i.MX6. So I'm writing SPL separately using fastboot(with offset) or ums.
But by doing this, the partition header seems overlapped so the output looks
GUID Partition Table Entry Array CRC is wrong: 0x6a1aba0a != 0x8e4fd548 find_valid_gpt: *** ERROR: Invalid GPT *** find_valid_gpt: *** Using Backup GPT *** Part Start LBA End LBA Name Attributes Type GUID Partition GUID 1 0x00004000 0x00023fff "boota" attrs: 0x0000000000000004 type: ebd0a0a2-b9e5-4433-87c0-68b6b72699c7 guid: c12a7328-f81f-11d2-ba4b-00a0c93ec93b 2 0x00024000 0x00043fff "bootb" attrs: 0x0000000000000004 type: ebd0a0a2-b9e5-4433-87c0-68b6b72699c7 guid: 21686148-6449-6e6f-744e-656564454649 3 0x00044000 0x00243fff "rootfsa" attrs: 0x0000000000000000 type: ebd0a0a2-b9e5-4433-87c0-68b6b72699c7 guid: b921b045-1df0-41c3-af44-4c6f280d3fae 4 0x00244000 0x00443fff "rootfsb" attrs: 0x0000000000000000 type: ebd0a0a2-b9e5-4433-87c0-68b6b72699c7 guid: 8da63339-0007-60c0-c436-083ac8230908 5 0x00444000 0x0070bfde "data" attrs: 0x0000000000000000 type: ebd0a0a2-b9e5-4433-87c0-68b6b72699c7 guid: 4f72ab70-69be-5948-81ff-4fc3daf24faa
So, what I understand is If I create the GPT first and then write the SPL, the SPL writing process will destroy the GPT Table and if I write SPL first and then create GPT, the GPT creation process will destroy the SPL.
Is there any way to fix this? I remember we can prevent this overlap by preserving GPT Table som other or boot partition instead of having them at the beginning by default.
Any inputs?
On the diagram of GPT description [1] there is the info that partitions can start from LBA 34 (0x200 * 34) = 0x4400
From the above it seems like you starts from 0x4000 your boota partition, which then overwrites the "Entries 5-128" which shall be 0 and are protected by CRC written in the Primary GPT Header.
Please try to adjust your partition scheme to start from 0x4400.
Jagan.
Links:
[1] - https://en.wikipedia.org/wiki/GUID_Partition_Table
Best regards,
Lukasz Majewski
--
DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-59 Fax: (+49)-8142-66989-80 Email: lukma@denx.de