[U-Boot] [PATCH 1/4] arm: lager: Add support QSPI device and enable boot from SPI flash

This supports SH-QSPI device on lager board, and enable booting from SPI flash.
Signed-off-by: Nobuhiro Iwamatsu nobuhiro.iwamatsu.yj@renesas.com Signed-off-by: Nobuhiro Iwamatsu iwamatsu@nigauri.org --- include/configs/lager.h | 32 +++++++++++++++++++++++++++++--- 1 file changed, 29 insertions(+), 3 deletions(-)
diff --git a/include/configs/lager.h b/include/configs/lager.h index 8932825..097ace3 100644 --- a/include/configs/lager.h +++ b/include/configs/lager.h @@ -34,7 +34,13 @@ #define CONFIG_CMD_DHCP #define CONFIG_CMD_NFS #define CONFIG_CMD_BOOTZ + +#if defined(CONFIG_SYS_USE_BOOT_NORFLASH) #define CONFIG_CMD_FLASH +#else +#define CONFIG_CMD_SF +#define CONFIG_CMD_SPI +#endif
#define CONFIG_CMDLINE_TAG #define CONFIG_SETUP_MEMORY_TAGS @@ -104,6 +110,7 @@ #define CONFIG_SYS_GBL_DATA_SIZE (256) #define CONFIG_SYS_BOOTMAPSZ (8 * 1024 * 1024)
+#if defined(CONFIG_SYS_USE_BOOT_NORFLASH) /* USE NOR FLASH */ #define CONFIG_SYS_TEXT_BASE 0x00000000 #define CONFIG_SYS_FLASH_CFI @@ -124,13 +131,32 @@
/* ENV setting */ #define CONFIG_ENV_IS_IN_FLASH -#define CONFIG_ENV_OVERWRITE 1 -#define CONFIG_ENV_SECT_SIZE (256 * 1024) #define CONFIG_ENV_ADDR (CONFIG_SYS_FLASH_BASE + \ CONFIG_SYS_MONITOR_LEN) +#define CONFIG_ENV_SIZE_REDUND (CONFIG_SYS_MONITOR_LEN) + +#else /* CONFIG_SYS_USE_BOOT_NORFLASH */ + +/* USE SPI */ +#define CONFIG_SYS_TEXT_BASE 0xE8080000 +#define CONFIG_SPI +#define CONFIG_SPI_FLASH_BAR +#define CONFIG_SH_QSPI +#define CONFIG_SPI_FLASH +#define CONFIG_SPI_FLASH_SPANSION +#define CONFIG_SYS_NO_FLASH +#define CONFIG_SH_QSPI_BASE 0xE6B10000 + +/* ENV setting */ +#define CONFIG_ENV_IS_IN_SPI_FLASH +#define CONFIG_ENV_ADDR 0xC0000 +#endif + +/* Common ENV setting */ +#define CONFIG_ENV_OVERWRITE +#define CONFIG_ENV_SECT_SIZE (256 * 1024) #define CONFIG_ENV_OFFSET (CONFIG_ENV_ADDR) #define CONFIG_ENV_SIZE (CONFIG_ENV_SECT_SIZE) -#define CONFIG_ENV_SIZE_REDUND (CONFIG_SYS_MONITOR_LEN)
/* SH Ether */ #define CONFIG_NET_MULTI

This supports SH-QSPI device on koelsch board, and enable booting from SPI flash.
Signed-off-by: Nobuhiro Iwamatsu nobuhiro.iwamatsu.yj@renesas.com Signed-off-by: Nobuhiro Iwamatsu iwamatsu@nigauri.org --- include/configs/koelsch.h | 33 +++++++++++++++++++++++++++++---- 1 file changed, 29 insertions(+), 4 deletions(-)
diff --git a/include/configs/koelsch.h b/include/configs/koelsch.h index f8cca5b..1c51bc9 100644 --- a/include/configs/koelsch.h +++ b/include/configs/koelsch.h @@ -31,7 +31,14 @@ #define CONFIG_CMD_DHCP #define CONFIG_CMD_NFS #define CONFIG_CMD_BOOTZ + +#if defined(CONFIG_SYS_USE_BOOT_NORFLASH) #define CONFIG_CMD_FLASH +#else +/* SPI flash boot is default. */ +#define CONFIG_CMD_SF +#define CONFIG_CMD_SPI +#endif
#define CONFIG_CMDLINE_TAG #define CONFIG_SETUP_MEMORY_TAGS @@ -101,6 +108,7 @@ #define CONFIG_SYS_BOOTMAPSZ (8 * 1024 * 1024)
/* FLASH */ +#if defined(CONFIG_SYS_USE_BOOT_NORFLASH) #define CONFIG_SYS_TEXT_BASE 0x00000000 #define CONFIG_SYS_FLASH_CFI #define CONFIG_SYS_FLASH_CFI_WIDTH FLASH_CFI_16BIT @@ -117,16 +125,33 @@ #define CONFIG_SYS_FLASH_WRITE_TOUT 3000 #define CONFIG_SYS_FLASH_LOCK_TOUT 3000 #define CONFIG_SYS_FLASH_UNLOCK_TOUT 3000 - /* ENV setting */ #define CONFIG_ENV_IS_IN_FLASH -#define CONFIG_ENV_OVERWRITE 1 -#define CONFIG_ENV_SECT_SIZE (256 * 1024) #define CONFIG_ENV_ADDR (CONFIG_SYS_FLASH_BASE + \ CONFIG_SYS_MONITOR_LEN) +#define CONFIG_ENV_SIZE_REDUND (CONFIG_SYS_MONITOR_LEN) + +#else /* CONFIG_SYS_USE_BOOT_NORFLASH */ + +#define CONFIG_SYS_TEXT_BASE 0xE6304000 +#define CONFIG_SPI +#define CONFIG_SH_QSPI +#define CONFIG_SPI_FLASH +#define CONFIG_SPI_FLASH_BAR +#define CONFIG_SPI_FLASH_SPANSION +#define CONFIG_SYS_NO_FLASH +#define CONFIG_SH_QSPI_BASE 0xE6B10000 +/* ENV setting */ +#define CONFIG_ENV_IS_IN_SPI_FLASH +#define CONFIG_ENV_ADDR 0xC0000 + +#endif /* CONFIG_SYS_USE_BOOT_NORFLASH */ + +/* Common ENV setting */ +#define CONFIG_ENV_OVERWRITE 1 +#define CONFIG_ENV_SECT_SIZE (256 * 1024) #define CONFIG_ENV_OFFSET (CONFIG_ENV_ADDR) #define CONFIG_ENV_SIZE (CONFIG_ENV_SECT_SIZE) -#define CONFIG_ENV_SIZE_REDUND (CONFIG_SYS_MONITOR_LEN)
/* SH Ether */ #define CONFIG_NET_MULTI

On U-boot uses TMU0 as timer, but TMU0 does not use on linux kernel and other. This disables TMU0 at the request of from kernel user.
Signed-off-by: Nobuhiro Iwamatsu nobuhiro.iwamatsu.yj@renesas.com Signed-off-by: Nobuhiro Iwamatsu iwamatsu@nigauri.org --- board/renesas/koelsch/koelsch.c | 6 ++++++ 1 file changed, 6 insertions(+)
diff --git a/board/renesas/koelsch/koelsch.c b/board/renesas/koelsch/koelsch.c index 89f5c91..32d3b58 100644 --- a/board/renesas/koelsch/koelsch.c +++ b/board/renesas/koelsch/koelsch.c @@ -253,6 +253,12 @@ int board_early_init_f(void) return 0; }
+void arch_preboot_os(void) +{ + /* Disable TMU0 */ + mstp_setbits_le32(MSTPSR1, SMSTPCR1, TMU0_MSTP125); +} + /* LSI pin pull-up control */ #define PUPR5 0xe6060114 #define PUPR5_ETH 0x3FFC0000

On U-boot uses TMU0 as timer, but TMU0 does not use on linux kernel and other. This disables TMU0 at the request of from kernel user.
Signed-off-by: Nobuhiro Iwamatsu nobuhiro.iwamatsu.yj@renesas.com Signed-off-by: Nobuhiro Iwamatsu iwamatsu@nigauri.org --- board/renesas/lager/lager.c | 6 ++++++ 1 file changed, 6 insertions(+)
diff --git a/board/renesas/lager/lager.c b/board/renesas/lager/lager.c index cdd5b32..ad5289a 100644 --- a/board/renesas/lager/lager.c +++ b/board/renesas/lager/lager.c @@ -254,6 +254,12 @@ int board_early_init_f(void) return 0; }
+void arch_preboot_os(void) +{ + /* Disable TMU0 */ + mstp_setbits_le32(MSTPSR1, SMSTPCR1, TMU0_MSTP125); +} + DECLARE_GLOBAL_DATA_PTR; int board_init(void) {

On Thu, Dec 26, 2013 at 7:04 AM, Nobuhiro Iwamatsu nobuhiro.iwamatsu.yj@renesas.com wrote:
This supports SH-QSPI device on lager board, and enable booting from SPI flash.
Signed-off-by: Nobuhiro Iwamatsu nobuhiro.iwamatsu.yj@renesas.com Signed-off-by: Nobuhiro Iwamatsu iwamatsu@nigauri.org
include/configs/lager.h | 32 +++++++++++++++++++++++++++++--- 1 file changed, 29 insertions(+), 3 deletions(-)
diff --git a/include/configs/lager.h b/include/configs/lager.h index 8932825..097ace3 100644 --- a/include/configs/lager.h +++ b/include/configs/lager.h @@ -34,7 +34,13 @@ #define CONFIG_CMD_DHCP #define CONFIG_CMD_NFS #define CONFIG_CMD_BOOTZ
+#if defined(CONFIG_SYS_USE_BOOT_NORFLASH) #define CONFIG_CMD_FLASH +#else +#define CONFIG_CMD_SF +#define CONFIG_CMD_SPI +#endif
#define CONFIG_CMDLINE_TAG #define CONFIG_SETUP_MEMORY_TAGS @@ -104,6 +110,7 @@ #define CONFIG_SYS_GBL_DATA_SIZE (256) #define CONFIG_SYS_BOOTMAPSZ (8 * 1024 * 1024)
+#if defined(CONFIG_SYS_USE_BOOT_NORFLASH) /* USE NOR FLASH */ #define CONFIG_SYS_TEXT_BASE 0x00000000 #define CONFIG_SYS_FLASH_CFI @@ -124,13 +131,32 @@
/* ENV setting */ #define CONFIG_ENV_IS_IN_FLASH -#define CONFIG_ENV_OVERWRITE 1 -#define CONFIG_ENV_SECT_SIZE (256 * 1024) #define CONFIG_ENV_ADDR (CONFIG_SYS_FLASH_BASE + \ CONFIG_SYS_MONITOR_LEN) +#define CONFIG_ENV_SIZE_REDUND (CONFIG_SYS_MONITOR_LEN)
+#else /* CONFIG_SYS_USE_BOOT_NORFLASH */
+/* USE SPI */ +#define CONFIG_SYS_TEXT_BASE 0xE8080000
I think this macro is not part of SPI better to move away from SPI macro's area.
+#define CONFIG_SPI +#define CONFIG_SPI_FLASH_BAR +#define CONFIG_SH_QSPI +#define CONFIG_SPI_FLASH +#define CONFIG_SPI_FLASH_SPANSION +#define CONFIG_SYS_NO_FLASH +#define CONFIG_SH_QSPI_BASE 0xE6B10000
Can you define this in driver itself? i guess this base is required only in driver.
+/* ENV setting */ +#define CONFIG_ENV_IS_IN_SPI_FLASH +#define CONFIG_ENV_ADDR 0xC0000 +#endif
+/* Common ENV setting */ +#define CONFIG_ENV_OVERWRITE +#define CONFIG_ENV_SECT_SIZE (256 * 1024) #define CONFIG_ENV_OFFSET (CONFIG_ENV_ADDR) #define CONFIG_ENV_SIZE (CONFIG_ENV_SECT_SIZE) -#define CONFIG_ENV_SIZE_REDUND (CONFIG_SYS_MONITOR_LEN)
/* SH Ether */

Hi,
Thnaks for your comment.
2013/12/29 Jagan Teki jagannadh.teki@gmail.com:
On Thu, Dec 26, 2013 at 7:04 AM, Nobuhiro Iwamatsu nobuhiro.iwamatsu.yj@renesas.com wrote:
This supports SH-QSPI device on lager board, and enable booting from SPI flash.
Signed-off-by: Nobuhiro Iwamatsu nobuhiro.iwamatsu.yj@renesas.com Signed-off-by: Nobuhiro Iwamatsu iwamatsu@nigauri.org
include/configs/lager.h | 32 +++++++++++++++++++++++++++++--- 1 file changed, 29 insertions(+), 3 deletions(-)
diff --git a/include/configs/lager.h b/include/configs/lager.h index 8932825..097ace3 100644 --- a/include/configs/lager.h +++ b/include/configs/lager.h @@ -34,7 +34,13 @@ #define CONFIG_CMD_DHCP #define CONFIG_CMD_NFS #define CONFIG_CMD_BOOTZ
+#if defined(CONFIG_SYS_USE_BOOT_NORFLASH) #define CONFIG_CMD_FLASH +#else +#define CONFIG_CMD_SF +#define CONFIG_CMD_SPI +#endif
#define CONFIG_CMDLINE_TAG #define CONFIG_SETUP_MEMORY_TAGS @@ -104,6 +110,7 @@ #define CONFIG_SYS_GBL_DATA_SIZE (256) #define CONFIG_SYS_BOOTMAPSZ (8 * 1024 * 1024)
+#if defined(CONFIG_SYS_USE_BOOT_NORFLASH) /* USE NOR FLASH */ #define CONFIG_SYS_TEXT_BASE 0x00000000 #define CONFIG_SYS_FLASH_CFI @@ -124,13 +131,32 @@
/* ENV setting */ #define CONFIG_ENV_IS_IN_FLASH -#define CONFIG_ENV_OVERWRITE 1 -#define CONFIG_ENV_SECT_SIZE (256 * 1024) #define CONFIG_ENV_ADDR (CONFIG_SYS_FLASH_BASE + \ CONFIG_SYS_MONITOR_LEN) +#define CONFIG_ENV_SIZE_REDUND (CONFIG_SYS_MONITOR_LEN)
+#else /* CONFIG_SYS_USE_BOOT_NORFLASH */
+/* USE SPI */ +#define CONFIG_SYS_TEXT_BASE 0xE8080000
I think this macro is not part of SPI better to move away from SPI macro's area.
OK, I will move to first CONFIG_SYS_USE_BOOT_NORFLASH.
+#define CONFIG_SPI +#define CONFIG_SPI_FLASH_BAR +#define CONFIG_SH_QSPI +#define CONFIG_SPI_FLASH +#define CONFIG_SPI_FLASH_SPANSION +#define CONFIG_SYS_NO_FLASH +#define CONFIG_SH_QSPI_BASE 0xE6B10000
Can you define this in driver itself? i guess this base is required only in driver.
You are right. I remove this line and move as a definition of the CPU.
-- Thanks, Jagan.
Best regards, Nobuhiro
participants (2)
-
Jagan Teki
-
Nobuhiro Iwamatsu