[PATCH 1/4] ARM: mvebu: helios4 adjust env sizes to enable SPI to work

From: Dennis Gilmore dennis@ausil.us
mirror the clearfog setup to enable SPI to work
Signed-off-by: Dennis Gilmore dennis@ausil.us --- arch/arm/mach-mvebu/Kconfig | 1 + board/kobol/helios4/Kconfig | 24 ++++++++++++++++++++++++ configs/helios4_defconfig | 2 -- 3 files changed, 25 insertions(+), 2 deletions(-) create mode 100644 board/kobol/helios4/Kconfig
diff --git a/arch/arm/mach-mvebu/Kconfig b/arch/arm/mach-mvebu/Kconfig index 0d8e0922a2..66fd771dff 100644 --- a/arch/arm/mach-mvebu/Kconfig +++ b/arch/arm/mach-mvebu/Kconfig @@ -293,5 +293,6 @@ config SECURED_MODE_CSK_INDEX depends on SECURED_MODE_IMAGE
source "board/solidrun/clearfog/Kconfig" +source "board/kobol/helios4/Kconfig"
endif diff --git a/board/kobol/helios4/Kconfig b/board/kobol/helios4/Kconfig new file mode 100644 index 0000000000..cad51c1cf0 --- /dev/null +++ b/board/kobol/helios4/Kconfig @@ -0,0 +1,24 @@ +menu "Helios4 configuration" + depends on TARGET_HELIOS4 + +config ENV_SIZE + hex "Environment Size" + default 0x10000 + +config ENV_OFFSET + hex "Environment offset" + default 0xF0000 + +config ENV_SECT_SIZE + hex "Environment Sector-Size" + # Use SPI or SATA flash erase block size of 4 KiB + default 0x1000 if MVEBU_SPL_BOOT_DEVICE_SPI || MVEBU_SPL_BOOT_DEVICE_SATA + # Use optimistic 64 KiB erase block, will vary between actual media + default 0x10000 if MVEBU_SPL_BOOT_DEVICE_MMC || MVEBU_SPL_BOOT_DEVICE_UART + +config SYS_SPI_U_BOOT_OFFS + hex "address of u-boot payload in SPI flash" + default 0x20000 + depends on MVEBU_SPL_BOOT_DEVICE_SPI + +endmenu diff --git a/configs/helios4_defconfig b/configs/helios4_defconfig index eceb85f082..bdc6f43554 100644 --- a/configs/helios4_defconfig +++ b/configs/helios4_defconfig @@ -9,8 +9,6 @@ CONFIG_SYS_MALLOC_F_LEN=0x2000 CONFIG_NR_DRAM_BANKS=2 CONFIG_TARGET_HELIOS4=y CONFIG_MVEBU_SPL_BOOT_DEVICE_MMC=y -CONFIG_ENV_SIZE=0x2000 -CONFIG_ENV_OFFSET=0xFE000 CONFIG_DM_GPIO=y CONFIG_SPL_TEXT_BASE=0x40000030 CONFIG_SPL_SERIAL_SUPPORT=y

From: Dennis Gilmore dennis@ausil.us
mirror seettings for the clearfog on the helios4 to get SPI working.
Signed-off-by: Dennis Gilmore dennis@ausil.us --- arch/arm/dts/armada-388-helios4-u-boot.dtsi | 22 ++++++---- arch/arm/dts/armada-388-helios4.dts | 46 ++++++++++++++++++++- 2 files changed, 58 insertions(+), 10 deletions(-)
diff --git a/arch/arm/dts/armada-388-helios4-u-boot.dtsi b/arch/arm/dts/armada-388-helios4-u-boot.dtsi index 0753889854..82513a1ce7 100644 --- a/arch/arm/dts/armada-388-helios4-u-boot.dtsi +++ b/arch/arm/dts/armada-388-helios4-u-boot.dtsi @@ -1,13 +1,5 @@ // SPDX-License-Identifier: GPL-2.0+
-/ { - aliases { - i2c0 = &i2c0; - i2c1 = &i2c1; - spi1 = &spi1; - }; -}; - ð0 { phy-reset-gpios = <&gpio0 19 GPIO_ACTIVE_LOW>; }; @@ -37,5 +29,17 @@ };
&sdhci { - u-boot,dm-spl; + u-boot,dm-spl; +}; + +&i2c0 { + u-boot,dm-spl; + + eeprom@52 { + u-boot,dm-spl; + }; + + eeprom@53 { + u-boot,dm-spl; + }; }; diff --git a/arch/arm/dts/armada-388-helios4.dts b/arch/arm/dts/armada-388-helios4.dts index fb49df2a3b..e948b94090 100644 --- a/arch/arm/dts/armada-388-helios4.dts +++ b/arch/arm/dts/armada-388-helios4.dts @@ -22,10 +22,14 @@ };
aliases { - /* So that mvebu u-boot can update the MAC addresses */ + /* So that mvebu u-boot can update the MAC address */ ethernet1 = ð0; + spi1 = &spi1; + i2c0 = &i2c0; + i2c1 = &i2c1; };
+ chosen { stdout-path = "serial0:115200n8"; }; @@ -306,3 +310,43 @@ }; }; }; + +&pinctrl { + helios4_spi1_cs_pins: spi1-cs-pins { + marvell,pins = "mpp55"; + marvell,function = "spi1"; + }; + mikro_pins: mikro-pins { + /* int: mpp22 rst: mpp29 */ + marvell,pins = "mpp22", "mpp29"; + marvell,function = "gpio"; + }; + mikro_spi_pins: mikro-spi-pins { + marvell,pins = "mpp43"; + marvell,function = "spi1"; + }; + mikro_uart_pins: mikro-uart-pins { + marvell,pins = "mpp24", "mpp25"; + marvell,function = "ua1"; + }; + rear_button_pins: rear-button-pins { + marvell,pins = "mpp34"; + marvell,function = "gpio"; + }; +}; + +&w25q32 { + status = "okay"; +}; + +&spi1 { + /* + * Add SPI CS pins for helios4: + * CS0: W25Q32 + * CS1: + * CS2: mikrobus + */ + pinctrl-0 = <&spi1_pins &mikro_spi_pins>; + pinctrl-names = "default"; + status = "okay"; +};

Hi Dennis,
On Mon, Dec 07 2020, dgilmore@redhat.com wrote:
From: Dennis Gilmore dennis@ausil.us
mirror seettings for the clearfog on the helios4 to get SPI working.
Signed-off-by: Dennis Gilmore dennis@ausil.us
arch/arm/dts/armada-388-helios4-u-boot.dtsi | 22 ++++++---- arch/arm/dts/armada-388-helios4.dts | 46 ++++++++++++++++++++- 2 files changed, 58 insertions(+), 10 deletions(-)
diff --git a/arch/arm/dts/armada-388-helios4-u-boot.dtsi b/arch/arm/dts/armada-388-helios4-u-boot.dtsi index 0753889854..82513a1ce7 100644 --- a/arch/arm/dts/armada-388-helios4-u-boot.dtsi +++ b/arch/arm/dts/armada-388-helios4-u-boot.dtsi @@ -1,13 +1,5 @@ // SPDX-License-Identifier: GPL-2.0+
-/ {
- aliases {
i2c0 = &i2c0;
i2c1 = &i2c1;
spi1 = &spi1;
- };
-};
ð0 { phy-reset-gpios = <&gpio0 19 GPIO_ACTIVE_LOW>; }; @@ -37,5 +29,17 @@ };
&sdhci {
u-boot,dm-spl;
- u-boot,dm-spl;
+};
+&i2c0 {
- u-boot,dm-spl;
- eeprom@52 {
u-boot,dm-spl;
- };
- eeprom@53 {
u-boot,dm-spl;
- };
}; diff --git a/arch/arm/dts/armada-388-helios4.dts b/arch/arm/dts/armada-388-helios4.dts index fb49df2a3b..e948b94090 100644 --- a/arch/arm/dts/armada-388-helios4.dts +++ b/arch/arm/dts/armada-388-helios4.dts @@ -22,10 +22,14 @@ };
aliases {
/* So that mvebu u-boot can update the MAC addresses */
/* So that mvebu u-boot can update the MAC address */
ethernet1 = ð0;
spi1 = &spi1;
i2c0 = &i2c0;
i2c1 = &i2c1;
};
chosen { stdout-path = "serial0:115200n8"; };
@@ -306,3 +310,43 @@ }; }; };
+&pinctrl {
- helios4_spi1_cs_pins: spi1-cs-pins {
marvell,pins = "mpp55";
marvell,function = "spi1";
- };
- mikro_pins: mikro-pins {
/* int: mpp22 rst: mpp29 */
marvell,pins = "mpp22", "mpp29";
marvell,function = "gpio";
- };
- mikro_spi_pins: mikro-spi-pins {
marvell,pins = "mpp43";
marvell,function = "spi1";
- };
- mikro_uart_pins: mikro-uart-pins {
marvell,pins = "mpp24", "mpp25";
marvell,function = "ua1";
- };
- rear_button_pins: rear-button-pins {
marvell,pins = "mpp34";
marvell,function = "gpio";
- };
There is no MikroBUS header or rear button on the Helios4 carrier as far as I can see.
+};
+&w25q32 {
- status = "okay";
+};
+&spi1 {
- /*
* Add SPI CS pins for helios4:
* CS0: W25Q32
* CS1:
* CS2: mikrobus
Ditto.
*/
- pinctrl-0 = <&spi1_pins &mikro_spi_pins>;
- pinctrl-names = "default";
- status = "okay";
+};
baruch

From: Dennis Gilmore dennis@ausil.us
SATA and UART ClearFog imaages are not buildable as ENV_SECT_SIZE is not defined set values for both possible targets
Signed-off-by: Dennis Gilmore dennis@ausil.us --- board/solidrun/clearfog/Kconfig | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/board/solidrun/clearfog/Kconfig b/board/solidrun/clearfog/Kconfig index e8c3f53d84..cf95258090 100644 --- a/board/solidrun/clearfog/Kconfig +++ b/board/solidrun/clearfog/Kconfig @@ -50,9 +50,9 @@ config ENV_OFFSET config ENV_SECT_SIZE hex "Environment Sector-Size" # Use SPI flash erase block size of 4 KiB - default 0x1000 if MVEBU_SPL_BOOT_DEVICE_SPI + default 0x1000 if MVEBU_SPL_BOOT_DEVICE_SPI || MVEBU_SPL_BOOT_DEVICE_SATA # Use optimistic 64 KiB erase block, will vary between actual media - default 0x10000 if MVEBU_SPL_BOOT_DEVICE_MMC + default 0x10000 if MVEBU_SPL_BOOT_DEVICE_MMC || MVEBU_SPL_BOOT_DEVICE_UART
config SYS_SPI_U_BOOT_OFFS hex "address of u-boot payload in SPI flash"

From: Dennis Gilmore dennis@ausil.us
sync config options from clearfog to db-mv784mp-gp to enable building a SPI image
Signed-off-by: Dennis Gilmore dennis@ausil.us --- include/configs/db-mv784mp-gp.h | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-)
diff --git a/include/configs/db-mv784mp-gp.h b/include/configs/db-mv784mp-gp.h index 3e20516e94..79ee5909d5 100644 --- a/include/configs/db-mv784mp-gp.h +++ b/include/configs/db-mv784mp-gp.h @@ -78,8 +78,17 @@ #define CONFIG_SPL_STACK (0x40000000 + ((192 - 16) << 10)) #define CONFIG_SPL_BOOTROM_SAVE (CONFIG_SPL_STACK + 4)
+#if defined(CONFIG_MVEBU_SPL_BOOT_DEVICE_SPI) /* SPL related SPI defines */ -#define CONFIG_SYS_U_BOOT_OFFS CONFIG_SYS_SPI_U_BOOT_OFFS +#define CONFIG_SYS_U_BOOT_OFFS CONFIG_SYS_SPI_U_BOOT_OFFS +#elif defined(CONFIG_MVEBU_SPL_BOOT_DEVICE_MMC) || defined(CONFIG_MVEBU_SPL_BOOT_DEVICE_SATA) +/* SPL related MMC defines */ +#define CONFIG_SYS_MMC_U_BOOT_OFFS (160 << 10) +#define CONFIG_SYS_U_BOOT_OFFS CONFIG_SYS_MMC_U_BOOT_OFFS +#ifdef CONFIG_SPL_BUILD +#define CONFIG_FIXED_SDHCI_ALIGNED_BUFFER 0x00180000 /* in SDRAM */ +#endif +#endif
/* Enable DDR support in SPL (DDR3 training from Marvell bin_hdr) */ #define CONFIG_SPD_EEPROM 0x4e
participants (2)
-
Baruch Siach
-
dgilmore@redhat.com