[U-Boot] GPT overlap on i.MX6

Jagan Teki jagan at amarulasolutions.com
Wed Nov 27 15:56:32 UTC 2019


Hi Lukasz,

On Wed, Nov 27, 2019 at 4:15 PM Lukasz Majewski <lukma at denx.de> wrote:
>
> 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.

I still see the overlap. I have created boota at 0x4400 and the write
the SPL at 0x400

icorem6qdl-rqs> mmc part

Partition Map for MMC device 2  --   Partition Type: EFI

GUID Partition Table Entry Array CRC is wrong: 0xfca8e0bf != 0xc10fdc7b
find_valid_gpt: *** ERROR: Invalid GPT ***
find_valid_gpt: ***        Using Backup GPT ***
Part    Start LBA       End LBA         Name
        Attributes
        Type GUID
        Partition GUID
  1     0x00004400      0x000243ff      "bootA"
        attrs:  0x0000000000000004
        type:   ebd0a0a2-b9e5-4433-87c0-68b6b72699c7
        guid:   c12a7328-f81f-11d2-ba4b-00a0c93ec93b
  2     0x00024400      0x000443ff      "bootB"
        attrs:  0x0000000000000004
        type:   ebd0a0a2-b9e5-4433-87c0-68b6b72699c7
        guid:   21686148-6449-6e6f-744e-656564454649
  3     0x00044400      0x002443ff      "rootfsA"
        attrs:  0x0000000000000000
        type:   ebd0a0a2-b9e5-4433-87c0-68b6b72699c7
        guid:   b921b045-1df0-41c3-af44-4c6f280d3fae
  4     0x00244400      0x004443ff      "rootfsB"
        attrs:  0x0000000000000000
        type:   ebd0a0a2-b9e5-4433-87c0-68b6b72699c7
        guid:   8da63339-0007-60c0-c436-083ac8230908
  5     0x00444400      0x0070bfde      "data"
        attrs:  0x0000000000000000
        type:   ebd0a0a2-b9e5-4433-87c0-68b6b72699c7
        guid:   d61c5b08-c376-f243-a883-15dd900766c3

Jagan.


More information about the U-Boot mailing list