Skip to contentSkip to conversation

arm: socfpga: improve raw MMC SPL boot

PATCH New Sylvain Lesne 2 participants 2 messages Jun 1, 2016

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 arm: socfpga: improve raw MMC SPL boot

Before this patch, when booting from MMC (no filesystem), the SPL loaded U-Boot from a fixed offset.
It will now load U-Boot from an offset of 256kB (which is 4 times the padded SPL image) in the third partition.

This behaviour is similar to what the vendor SPL (based on U-Boot 2013.01) does, and allows to directly 'dd' the u-boot-with-spl.sfp file to the A2 partition.

---

As discussed previously, this change relies on a tiny sprintf() implementation to be provided to be able to build and boot correctly.

Also, I removed CONFIG_SYS_U_BOOT_MAX_SIZE_SECTORS, but I plan to send a patch removing this obsolete define from all the configs, so there might be a merge conflict, sorry...

I completely missed a previous occurrence of this problem
(http://lists.denx.de/pipermail/u-boot/2016-May/254492.html), so I'm adding the previous reporter as Cc.

 include/configs/socfpga_common.h | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)
include/configs/socfpga_common.h +3 -3
index f657766..e5972e6 100644
@@ -349,9 +349,9 @@ unsigned int cm_get_qspi_controller_clk_hz(void);
 #define CONFIG_SPL_FS_LOAD_PAYLOAD_NAME		"u-boot-dtb.img"
 #define CONFIG_SPL_LIBDISK_SUPPORT
 #else
-#define CONFIG_SYS_MMCSD_FS_BOOT_PARTITION	3
-#define CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR	0xa00 /* offset 2560 sect (1M+256k) */
-#define CONFIG_SYS_U_BOOT_MAX_SIZE_SECTORS	800 /* 400 KB */
+#define CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_PARTITION	3
+#define CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR	0x200 /* offset 512 sect (256k) */
+#define CONFIG_SPL_LIBDISK_SUPPORT
 #endif
 #endif
 
Signature · 1 line
1.9.1
#1 lore raw

PATCH 1/1 arm: socfpga: improve raw MMC SPL boot

Quoted 10 lines · Sylvain Lesne

Before this patch, when booting from MMC (no filesystem), the SPL loaded U-Boot from a fixed offset.
It will now load U-Boot from an offset of 256kB (which is 4 times the padded SPL image) in the third partition.

This behaviour is similar to what the vendor SPL (based on U-Boot 2013.01) does, and allows to directly 'dd' the u-boot-with-spl.sfp file to the A2 partition.

Looks fine, applied, thanks.

Quoted 34 lines

---

As discussed previously, this change relies on a tiny sprintf() implementation to be provided to be able to build and boot correctly.

Also, I removed CONFIG_SYS_U_BOOT_MAX_SIZE_SECTORS, but I plan to send a patch removing this obsolete define from all the configs, so there might be a merge conflict, sorry...

I completely missed a previous occurrence of this problem
(http://lists.denx.de/pipermail/u-boot/2016-May/254492.html), so I'm adding the previous reporter as Cc.

 include/configs/socfpga_common.h | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)
include/configs/socfpga_common.h +3 -3
index f657766..e5972e6 100644
@@ -349,9 +349,9 @@ unsigned int cm_get_qspi_controller_clk_hz(void);
 #define CONFIG_SPL_FS_LOAD_PAYLOAD_NAME		"u-boot-dtb.img"
 #define CONFIG_SPL_LIBDISK_SUPPORT
 #else
-#define CONFIG_SYS_MMCSD_FS_BOOT_PARTITION	3
-#define CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR	0xa00 /* offset 2560 sect (1M+256k) */
-#define CONFIG_SYS_U_BOOT_MAX_SIZE_SECTORS	800 /* 400 KB */
+#define CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_PARTITION	3
+#define CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR	0x200 /* offset 512 sect (256k) */
+#define CONFIG_SPL_LIBDISK_SUPPORT
 #endif
 #endif
 
Signature · 2 lines
Best regards,
Marek Vasut