Subject: bug#25602: [parted] Problem with msdos mbr creation

From: Lukasz Majewski <[email-masked]>
Date: Thu, 2 Feb 2017 21:23:03 +0100

On Thu, 2 Feb 2017 08:50:54 -0800
"Brian C. Lane" <[email-masked]> wrote:

> On Thu, Feb 02, 2017 at 10:05:35AM +0100, Lukasz Majewski wrote:
> > Hi Brian,
> > 
> > > On Wed, Feb 01, 2017 at 11:28:03AM +0100, Lukasz Majewski wrote:
> > > > Dear All,
> > > If it
> > > causes problems on a non-x86 system you should zero it out
> > 
> > The problem is that we are using it with TI's SDK script to create
> > bootable SD card.
> > 
> > In this script we clean (write 0x00) the MBR before we run parted -s
> > msdos.
> > 
> > The problem is that parted itself (and silently) puts the code there
> > and hence the embedded system thinks that there is a valid
> > bootloader code and happily hangs.
> > 
> > Is there any option to parted to avoid adding this code (and behave
> > like fdisk)?
> 
> No, the only time it won't write it is if there is something already
> there (eg. not 0x00). So if you could get the SDK to write it's
> bootloader first, then partition it, parted will leave it untouched.

For my SoC the 0x00 address is one of potential places where bootloader
binary is placed. The SoC considers this code valid if it finds data
different than 0x00 or 0xFF.
We normally store bootloader on FAT partition, not at fixed address in
the SDcard. When it is not found on FAT partition, then LBA 0x0 is
considered as next candidate. If we do have data different than
0x00000000 or 0xFFFFFFFF, then we will hang, not going to other boot
options.

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-10 Fax: (+49)-8142-66989-80 Email: [email-masked]