[U-Boot] [PATCH] gpt: Fix the protective MBR partition size

Lukasz Majewski l.majewski at samsung.com
Tue Jan 13 09:36:08 CET 2015


Hi Steve,

> (+ Lukasz)
> Interesting - I'll defer to Lukasz...
> Thanks, Steve

Thanks guys for spotting the mistake and sorry for a late reply
(holidays time). 

I'm glad that this patch was included to v2015.01


> 
> On 15-01-08 03:26 AM, Maxime Ripard wrote:
> > According to the UEFI Spec (Table 16, section 5.2.3 of the version
> > 2.4 Errata B), the protective MBR partition record size must be set
> > to the size of the disk minus one, in LBAs.
> >
> > However, the current code was setting the size as the total number
> > of LBAs on the disk, resulting in an off-by-one error.
> >
> > This confused the AM335x ROM code, and will probably confuse other
> > tools as well.
> >
> > Signed-off-by: Maxime Ripard <maxime.ripard at free-electrons.com>
> > ---
> >   disk/part_efi.c | 2 +-
> >   1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/disk/part_efi.c b/disk/part_efi.c
> > index 612f0926b62b..5ca17c138e96 100644
> > --- a/disk/part_efi.c
> > +++ b/disk/part_efi.c
> > @@ -240,7 +240,7 @@ static int set_protective_mbr(block_dev_desc_t
> > *dev_desc) p_mbr->signature = MSDOS_MBR_SIGNATURE;
> >   	p_mbr->partition_record[0].sys_ind =
> > EFI_PMBR_OSTYPE_EFI_GPT; p_mbr->partition_record[0].start_sect = 1;
> > -	p_mbr->partition_record[0].nr_sects = (u32) dev_desc->lba;
> > +	p_mbr->partition_record[0].nr_sects = (u32) dev_desc->lba
> > - 1;
> >
> >   	/* Write MBR sector to the MMC device */
> >   	if (dev_desc->block_write(dev_desc->dev, 0, 1, p_mbr) !=
> > 1) {
> >


-- 
Best regards,

Lukasz Majewski

Samsung R&D Institute Poland (SRPOL) | Linux Platform Group


More information about the U-Boot mailing list