From mboxrd@z Thu Jan 1 00:00:00 1970 From: Westergreen, Dalon Date: Sun, 29 Jan 2017 01:59:17 +0000 Subject: [U-Boot] [PATCH] SPL: add support to boot from a partition type In-Reply-To: <20170129000631.GN22316@bill-the-cat> References: <1485645609-21831-1-git-send-email-dwesterg@gmail.com> <20170129000631.GN22316@bill-the-cat> Message-ID: <1485655155.12609.51.camel@intel.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de 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 > > > > 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 > > --- > > ?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