From: Kever Yang <kever.yang@rock-chips.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH] cmd: gpt: fix the wrong size parse for the last partition
Date: Tue, 26 Jul 2016 17:41:06 +0800 [thread overview]
Message-ID: <57973032.4050800@rock-chips.com> (raw)
In-Reply-To: <CAOf5uwkpHoH_CjtuNN+ev=vN-fCj8isdb5n=0y7Epq+HqFW16Q@mail.gmail.com>
Hi Michael,
On 07/26/2016 05:08 PM, Michael Trimarchi wrote:
> Hi
>
> On Tue, Jul 26, 2016 at 10:59 AM, Kever Yang <kever.yang@rock-chips.com> wrote:
>> Hi Michael,
>>
>>
>> On 07/26/2016 04:37 PM, Michael Trimarchi wrote:
>>> Hi
>>>
>>> On Tue, Jul 26, 2016 at 9:56 AM, Kever Yang <kever.yang@rock-chips.com>
>>> wrote:
>>>> The calculation of "dev_desc->lba - 34 - 1 - offset" is not correct for
>>>> size '-', because both fist_usable_lba and last_usable_lba will remain
>>>> 34 sectors.
>>>>
>>>> We can simply use 0 for size '-' because the part_efi module will decode
>>>> the size and auto extend the size to maximum available size.
>>>>
>>>> Signed-off-by: Kever Yang <kever.yang@rock-chips.com>
>>>> ---
>>>>
>>>> cmd/gpt.c | 4 ++--
>>>> 1 file changed, 2 insertions(+), 2 deletions(-)
>>>>
>>>> diff --git a/cmd/gpt.c b/cmd/gpt.c
>>>> index 3d9706b..897596a 100644
>>>> --- a/cmd/gpt.c
>>>> +++ b/cmd/gpt.c
>>>> @@ -298,8 +298,8 @@ static int set_gpt_info(struct blk_desc *dev_desc,
>>>> if (extract_env(val, &p))
>>>> p = val;
>>>> if ((strcmp(p, "-") == 0)) {
>>>> - /* remove first usable lba and last block */
>>>> - parts[i].size = dev_desc->lba - 34 - 1 - offset;
>>>> + /* Let part efi module to auto extend the size */
>>>> + parts[i].size = 0;
>>> gpt verify give you success?
>>
>> Yes.
>>
>> I use below gpt table and "gpt write mmc 0 $partitions" command to do the
>> test:
>> #define PARTS_DEFAULT \
>> "uuid_disk=${uuid_gpt_disk};" \
>> "name=boot,size=32M,uuid=${uuid_gpt_boot};" \
>> "name=rootfs,size=-,uuid=${uuid_gpt_rootfs};"
>>
>> Without this patch, I get message:
>> => gpt write mmc 0 $partitions
>> Writing GPT: Partitions layout exceds disk size
>> error!
>>
>> After I apply this patch, I get below message:
>> Writing GPT: success!
>>
> gpt read back does give you success?
Sorry, I misunderstand your mean about verify.
Here is the result with verify command, it do failed.
=> gpt verify mmc 0 $partitions
ERROR: Partition rootfs size: 30679007 does not match 0!
at disk/part_efi.c:660/gpt_verify_partitions()
Verify GPT: error!
So I get size check failed for the last partition, can we update the
size check for
the last partition, or update the partition size after extend to maximum?
Thanks,
- Kever
>
> Michael
>
>> Thanks,
>> - Kever
>>
>>
>>> Michael
>>>
>>>> } else {
>>>> size_ll = ustrtoull(p, &p, 0);
>>>> parts[i].size = lldiv(size_ll, dev_desc->blksz);
>>>> --
>>>> 1.9.1
>>>>
>>>>
>>>
>>
>
>
next prev parent reply other threads:[~2016-07-26 9:41 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-07-26 7:56 [U-Boot] [PATCH] cmd: gpt: fix the wrong size parse for the last partition Kever Yang
2016-07-26 8:37 ` Michael Trimarchi
2016-07-26 8:59 ` Kever Yang
2016-07-26 9:08 ` Michael Trimarchi
2016-07-26 9:41 ` Kever Yang [this message]
2016-07-27 13:10 ` Julian Scheel
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=57973032.4050800@rock-chips.com \
--to=kever.yang@rock-chips.com \
--cc=u-boot@lists.denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox