From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lukasz Majewski Date: Tue, 13 Jan 2015 09:36:08 +0100 Subject: [U-Boot] [PATCH] gpt: Fix the protective MBR partition size In-Reply-To: <54AEF535.2020405@broadcom.com> References: <1420716404-710-1-git-send-email-maxime.ripard@free-electrons.com> <54AEF535.2020405@broadcom.com> Message-ID: <20150113093608.3c12f11f@amdc2363> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de 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 > > --- > > 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