[U-Boot] [PATCH] SPL: add support to boot from a partition type
Westergreen, Dalon
dalon.westergreen at intel.com
Sun Jan 29 02:59:17 CET 2017
On Sat, 2017-01-28 at 19:06 -0500, Tom Rini wrote:
> On Sat, Jan 28, 2017 at 03:20:09PM -0800, Dalon Westergreen wrote:
>
> >
> > From: Dalon Westergreen <dalon.westergreen at intel.com>
> >
> > the socfpga bootrom supports mmc booting from either a raw image
> > starting at 0x0, or from a partition of type 0xa2. This patch
> > adds support for locating the boot image in the first type 0xa2
> > partition found.
> >
> > Signed-off-by: Dalon Westergreen <dalon.westergreen at intel.com>
> > ---
> > common/spl/Kconfig | 17 +++++++++++++++++
> > common/spl/spl_mmc.c | 45 ++++++++++++++++++++++++++++++++++++++++++++-
> > disk/part_dos.c | 1 +
> > include/part.h | 1 +
> > 4 files changed, 63 insertions(+), 1 deletion(-)
>
> Today socfpga sets SYS_MMCSD_RAW_MODE_U_BOOT_PARTITION to 1. Do you
> really have enough cases where the special partition isn't going to be
> likely known when building U-Boot for a given platform?
All of our kits actually ship with the third partition being the 0xa2
partition. Normally the 1 partition is the fat partition. I want to
support the case where the 0xa2 partition is arbitrary and used only for
the SPL. the 1 partition is a fat partition with the full u-boot image.
>
> The code itself looks fine (I don't see an easy way to get at the
> max_entries field of the partition type struct, but assuming that the
> ROM only support MBR tables today you could use the DOS_ENTRY_NUMBERS
> constant with a comment above it). But we're making this bit of code
> even more complex and adding more #ifdefs.
>
> [snip]
> >
> > @@ -331,12 +367,19 @@ int spl_mmc_load_image(struct spl_image_info
> > *spl_image,
> > CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_PARTITION);
> > if (!err)
> > return err;
> > +
> > +#ifdef CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION_TYPE
> > + err = mmc_load_image_raw_partition_type(spl_image, mmc,
> > + CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_PARTITION_TYPE);
> > + if (!err)
> > + return err;
> > +#endif
>
> ... but couldn't we re-structure things so that both of the "boot from a
> partition" options take the same point from spl_mmc_load_image() instead
> set a partition variable depending on static/dynamic partition # being
> used? Or would that make things even messier looking? Thanks!
>
yes, i like this. seems cleaner.
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> http://lists.denx.de/mailman/listinfo/u-boot
More information about the U-Boot
mailing list