On 2016-11-15 08:12, Tom Rini wrote: > On Tue, Nov 15, 2016 at 09:59:22AM +0000, Max Krummenacher wrote: >> Hi Stefan >> >> On Mon, 2016-11-14 at 18:06 -0800, Stefan Agner wrote: >> > From: Stefan Agner <[email protected]> >> > >> > When building SPL with eMMC boot support, specify standard padding >> > for payload to match the load sector during boot. This allows to >> > use the u-boot-with-spl.imx build target to generate a direcly >> > flashable image which can be flashed using: >> > >> > dd if=u-boot-with-spl.imx of=/dev/mmcblk0 bs=512 skip=2 >> > >> > Signed-off-by: Stefan Agner <[email protected]> >> > >> > --- >> > >> > include/configs/imx6_spl.h | 6 ++++++ >> > 1 file changed, 6 insertions(+) >> > >> > diff --git a/include/configs/imx6_spl.h b/include/configs/imx6_spl.h >> > index 76d1ca0..ca3ed19 100644 >> > --- a/include/configs/imx6_spl.h >> > +++ b/include/configs/imx6_spl.h >> > @@ -42,6 +42,12 @@ >> > #define CONFIG_SYS_MMCSD_FS_BOOT_PARTITION 1 >> > #define >> > CONFIG_SYS_MONITOR_LEN (CONFIG_SYS_U_BOOT_MAX_SIZE_SECTORS/2*1024) >> > #define CONFIG_SPL_ABORT_ON_RAW_IMAGE >> > +/* >> > + * SPL starts at 1KB (ROM offset), hence we need to pad SPL up to >> > 68KB so >> > + * that payload (U-Boot) will be at 69KB (sector 138) on the eMMC/SD >> > card. >> > + * Required for targets such as u-boot-with-spl.imx. >> > + */ >> > +#define CONFIG_SPL_PAD_TO 0x11000 >> > #endif >> > >> > /* SATA support */ >> >> This has been brought up already: >> https://www.mail-archive.com/[email protected]/msg228246.html >> I agreed with Marek that this might disrupt other boot sources >> (NOR/SPI/ ...) which may or may not decide to use another offset >> between SPL and U-Boot. >> Thus it is advisable to move that define to the individual board >> configuration where one knows for what boot device one wants to >> use the combined u-boot-with-spl.imx binary. > > I'm going to have to disagree with Marek here then. Looking over the > explanation in include/configs/imx6_spl.h we have: > 1KiB up front "wasted" for a partition table > 4KiB up next for the ROM-mandated header > 64KiB for SPL itself, which is our max size, unconditionally set above > this bit of context. But it is the lowest common denominator in terms > of IRAM size in the families. > > Which brings us to the SPL_PAD_TO above, 68KiB. We cannot go lower than > this. No one is changing any of this either today nor setting > SPL_PAD_TO so > u-boot-with-spl.imx isn't usable today. None of this breaks using > separate files.
I agree here, the pad seems pretty natural and should be usable across boot devices. In fact, it probably should not be inside CONFIG_SPL_MMC_SUPPORT, but at the top along with CONFIG_SPL_MAX_SIZE. So far, include/config_fallbacks.h defined SPL_PAD_TO to 64KiB, which renders u-boot-with-spl.imx unusable for SD/eMMC boot. Other boot devices probably know a similar define (CONFIG_SYS_NAND_U_BOOT_OFFS). Judging from existing board files it does not seem that anybody relied on that 64kB padding so far... I guess if a board with a different boot device wants to make use of u-boot-with-spl.imx, then it should make sure that the offset is set correctly in its board file (e.g. using #define CONFIG_SYS_NAND_U_BOOT_OFFS SPL_PAD_TO). Marek? -- Stefan _______________________________________________ U-Boot mailing list [email protected] http://lists.denx.de/mailman/listinfo/u-boot

