Port-arm archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

MBR partition table and the "active" flag



As you know, many "evbarm" boards boot from media that has an MBR partition table with a FAT partition containing the device tree blobs and some combination of boot loader(s) and kernel(s).

For a while now I've been (slowly) working on a port to another SoC that also uses this scheme with u-boot, but I have to make one small tweak to the armv7.img that's spit out by the build system in order to make the stage-1 bootstrap (a binary supplied by the board vendor) to successfully load.

Specifically, I have to clear the ACTIVE flag on MBR partition 0.  I know, it sounds really dumb, but if ACTIVE is set, the board doesn't boot (I don't even see the debug message on the serial port that the stage-1 loader spits out)... but if I modify the disk image and do nothing but set the flags field of MBR[0] to 0, then it boots.  I guess the stage-0 bootstrap in ROM is just really picky (sector 0 of the boot media must contain a special signature that the stage-0 ROM looks at -- the signature stops just short of the MBR partition table).

So, my questions:

1-- Do any of the other SoCs actually care about the ACTIVE flag?  If not, perhaps the right fix is to not set it when the image is built.

2-- If so, then should installboot(8) gain another directive to sanitize the MBR partition flags on a case-by-case basis?

-- thorpej



Home | Main Index | Thread Index | Old Index