@@ -10,6 +10,10 @@
#include <asm/io.h>
#include <nand.h>
+#ifndef CONFIG_SYS_NAND_U_BOOT_OFFS
+#define CONFIG_SYS_NAND_U_BOOT_OFFS CONFIG_SPL_NAND_U_BOOT_OFFS
+#endif
+
#if defined(CONFIG_SPL_NAND_RAW_ONLY)
int spl_nand_load_image(void)
{
@@ -99,16 +99,17 @@ config SYS_NAND_BUSWIDTH_16BIT
not available while configuring controller. So a static CONFIG_NAND_xx
is needed to know the device's bus-width in advance.
-# Enhance depends when converting drivers to Kconfig which use this config
-config SYS_NAND_U_BOOT_OFFS
+if SPL
+
+# This option should be used in replacement of CONFIG_SYS_NAND_U_BOOT_OFFS.
+# CONFIG_SYS_NAND_U_BOOT_OFFS is still preferred if defined.
+config SPL_NAND_U_BOOT_OFFS
hex "Location in NAND to read U-Boot from"
default 0x8000 if NAND_SUNXI
- depends on NAND_SUNXI
help
Set the offset from the start of the nand where u-boot should be
loaded from.
-if SPL
config SPL_NAND_DENALI
bool "Support Denali NAND controller for SPL"
@@ -348,14 +348,14 @@ int nand_spl_load_image(uint32_t offs, unsigned int size, void *dest)
* u-boot partition sits after 2 eraseblocks (spl, spl-backup), look
* for backup u-boot 1 erase block further.
*/
- const uint32_t eraseblock_size = CONFIG_SYS_NAND_U_BOOT_OFFS / 2;
+ const uint32_t eraseblock_size = CONFIG_SPL_NAND_U_BOOT_OFFS / 2;
const uint32_t boot_offsets[] = {
- CONFIG_SYS_NAND_U_BOOT_OFFS,
- CONFIG_SYS_NAND_U_BOOT_OFFS + eraseblock_size,
+ CONFIG_SPL_NAND_U_BOOT_OFFS,
+ CONFIG_SPL_NAND_U_BOOT_OFFS + eraseblock_size,
};
int i;
- if (offs == CONFIG_SYS_NAND_U_BOOT_OFFS) {
+ if (offs == CONFIG_SPL_NAND_U_BOOT_OFFS) {
for (i = 0; i < ARRAY_SIZE(boot_offsets); i++) {
if (nand_read_buffer(boot_offsets[i], size,
dest) == 0)
The SYS_NAND_U_BOOT_OFFS is quite generic, but the Kconfig entry is forced to explicitly depend on platforms that are not already defining it in their include/configs/<board>.h header. Rename this Kconfig option into SPL_NAND_U_BOOT_OFFS, remove the dependency on NAND_SUNXI and make it dependent on SPL selection. common/spl/spl_nand.c now sets CONFIG_SYS_NAND_U_BOOT_OFFS to CONFIG_SPL_NAND_U_BOOT_OFFS only when it's undefined. This way we stay compatible with the existing behavior. Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com> --- common/spl/spl_nand.c | 4 ++++ drivers/mtd/nand/Kconfig | 9 +++++---- drivers/mtd/nand/sunxi_nand_spl.c | 8 ++++---- 3 files changed, 13 insertions(+), 8 deletions(-)