Re: [U-Boot] [PATCH 6/7] arm: mvebu: helios4: Enable SPI flash support
On Wed, Nov 28, 2018 at 9:10 PM Baruch Siach wrote: > > Hi Dennis, > > On Wed, Nov 28, 2018 at 07:53:44AM -0600, Dennis Gilmore wrote: > > On Wed, 2018-11-28 at 17:00 +0800, Aditya Prayoga wrote: > > > Enable SPI flash support under U-Boot and SPL. The ENV size and > > > offset, > > > ported from U-Boot 2013.01 Marvell version: 2015_T1.0p16 > > > > > > To create U-Boot image for SPI flash, user would need to replace > > > * CONFIG_MVEBU_SPL_BOOT_DEVICE_MMC with > > > CONFIG_MVEBU_SPL_BOOT_DEVICE_SPI > > > * CONFIG_ENV_IS_IN_MMC with CONFIG_ENV_IS_IN_SPI_FLASH > > > > > > Signed-off-by: Aditya Prayoga > > > --- > > > arch/arm/dts/armada-388-helios4.dts | 7 +++ > > > configs/helios4_defconfig | 1 - > > > include/configs/helios4.h | 31 > > > +++ > > > 3 files changed, 38 insertions(+), 1 deletion(-) > > > > > > diff --git a/arch/arm/dts/armada-388-helios4.dts > > > b/arch/arm/dts/armada-388-helios4.dts > > > index 711fc22..cd3fcae 100644 > > > --- a/arch/arm/dts/armada-388-helios4.dts > > > +++ b/arch/arm/dts/armada-388-helios4.dts > > > @@ -26,6 +26,7 @@ > > > ethernet1 = > > > i2c0 = > > > i2c1 = > > > + spi1 = > > has this gone upstream to the kernel? > > > }; > > > > > > chosen { > > > @@ -244,6 +245,7 @@ > > > _spi1_cs_pins>; > > > pinctrl-names = "default"; > > > status = "okay"; > > > + u-boot,dm-spl; > > there is a method in u-boot that needs to be used where u-boot specific > > snippets go into a -u-boot.dts file, I am struggling to > > find the documentation on it, perhaps someone else can point us both at > > it. > > See tools/binman/README under "Automatic .dtsi inclusion". Thanks for the pointer Aditya > Would have been nice to be able to add u-boot.dtsi onto another .dtsi. That > would have saved us from copying the content of > armada-388-clearfog-u-boot.dtsi over and over for each board that carries the > same SOM. Maybe we can use a symlink for that? It's a little less ugly than > copy. > > baruch > > > > }; > > > > > > sdhci@d8000 { > > > @@ -308,3 +310,8 @@ > > > }; > > > }; > > > }; > > > + > > > + { > > > + status = "okay"; > > > + u-boot,dm-spl; > > > +}; > > same as above the u-boot bit should go in a armada-388-helios4-u- > > boot.dts file and the generic bits in the upstream kernel dts file. > > > > Dennis > > -- > http://baruch.siach.name/blog/ ~. .~ Tk Open Systems > =}ooO--U--Ooo{= >- bar...@tkos.co.il - tel: +972.2.679.5364, http://www.tkos.co.il - ___ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot
Re: [U-Boot] [PATCH 6/7] arm: mvebu: helios4: Enable SPI flash support
On Wed, Nov 28, 2018 at 8:53 PM Dennis Gilmore wrote: > > On Wed, 2018-11-28 at 17:00 +0800, Aditya Prayoga wrote: > > Enable SPI flash support under U-Boot and SPL. The ENV size and > > offset, > > ported from U-Boot 2013.01 Marvell version: 2015_T1.0p16 > > > > To create U-Boot image for SPI flash, user would need to replace > > * CONFIG_MVEBU_SPL_BOOT_DEVICE_MMC with > > CONFIG_MVEBU_SPL_BOOT_DEVICE_SPI > > * CONFIG_ENV_IS_IN_MMC with CONFIG_ENV_IS_IN_SPI_FLASH > > > > Signed-off-by: Aditya Prayoga > > --- > > arch/arm/dts/armada-388-helios4.dts | 7 +++ > > configs/helios4_defconfig | 1 - > > include/configs/helios4.h | 31 > > +++ > > 3 files changed, 38 insertions(+), 1 deletion(-) > > > > diff --git a/arch/arm/dts/armada-388-helios4.dts > > b/arch/arm/dts/armada-388-helios4.dts > > index 711fc22..cd3fcae 100644 > > --- a/arch/arm/dts/armada-388-helios4.dts > > +++ b/arch/arm/dts/armada-388-helios4.dts > > @@ -26,6 +26,7 @@ > > ethernet1 = > > i2c0 = > > i2c1 = > > + spi1 = > has this gone upstream to the kernel? No. Should I also send it to kernel? > > }; > > > > chosen { > > @@ -244,6 +245,7 @@ > >_spi1_cs_pins>; > > pinctrl-names = "default"; > > status = "okay"; > > + u-boot,dm-spl; > there is a method in u-boot that needs to be used where u-boot specific > snippets go into a -u-boot.dts file, I am struggling to > find the documentation on it, perhaps someone else can point us both at > it. > Yes, i saw that kind of dtsi, for example armada-388-clearfog-u-boot.dtsi but i could not find the documentation or figuring out how it works. I was expecting something like #include "armada-388-clearfog-u-boot.dtsi" I will move it to armada-388-helios4-u-boot.dtsi on next version. Aditya > > }; > > > > sdhci@d8000 { > > @@ -308,3 +310,8 @@ > > }; > > }; > > }; > > + > > + { > > + status = "okay"; > > + u-boot,dm-spl; > > +}; > same as above the u-boot bit should go in a armada-388-helios4-u- > boot.dts file and the generic bits in the upstream kernel dts file. > > Dennis > > > diff --git a/configs/helios4_defconfig b/configs/helios4_defconfig > > index 53995fe..3bb4622 100644 > > --- a/configs/helios4_defconfig > > +++ b/configs/helios4_defconfig > > @@ -6,7 +6,6 @@ CONFIG_SPL_LIBGENERIC_SUPPORT=y > > CONFIG_SYS_MALLOC_F_LEN=0x2000 > > CONFIG_TARGET_HELIOS4=y > > CONFIG_MVEBU_SPL_BOOT_DEVICE_MMC=y > > -CONFIG_SPL_MMC_SUPPORT=y > > CONFIG_SPL_SERIAL_SUPPORT=y > > CONFIG_SPL_SYS_MALLOC_SIMPLE=y > > CONFIG_SPL=y > > diff --git a/include/configs/helios4.h b/include/configs/helios4.h > > index bd59ecf..6943378 100644 > > --- a/include/configs/helios4.h > > +++ b/include/configs/helios4.h > > @@ -6,6 +6,8 @@ > > #ifndef _CONFIG_HELIOS4_H > > #define _CONFIG_HELIOS4_H > > > > +#include > > + > > /* > > * High Level Configuration Options (easy to change) > > */ > > @@ -23,6 +25,9 @@ > > > > /* SPI NOR flash default params, used by sf commands */ > > #define CONFIG_SF_DEFAULT_BUS1 > > +#define CONFIG_SF_DEFAULT_CS 0 > > +#define CONFIG_SF_DEFAULT_SPEED 10400 > > +#define CONFIG_SF_DEFAULT_MODE SPI_MODE_3 > > > > /* > > * SDIO/MMC Card Configuration > > @@ -43,6 +48,21 @@ > > #define CONFIG_SYS_SCSI_MAX_DEVICE (CONFIG_SYS_SCSI_MAX_SCSI_ID > > * \ > > CONFIG_SYS_SCSI_MAX_LUN) > > > > +#ifdef CONFIG_MVEBU_SPL_BOOT_DEVICE_SPI > > +/* > > + * SPI Flash configuration for the environment access > > + */ > > +#define CONFIG_ENV_SPI_BUS CONFIG_SF_DEFAULT_BUS > > +#define CONFIG_ENV_SPI_CSCONFIG_SF_DEFAULT_CS > > +#define CONFIG_ENV_SPI_MAX_HZCONFIG_SF_DEFAULT_SPEED > > + > > +/* Environment in SPI NOR flash */ > > +#define CONFIG_ENV_SECT_SIZE SZ_64K > > +#define CONFIG_ENV_SIZE CONFIG_ENV_SECT_SIZE > > +#define CONFIG_ENV_OFFSETSZ_1M > > +#endif > > + > > +#ifdef CONFIG_MVEBU_SPL_BOOT_DEVICE_MMC > > /* Environment in MMC */ > > #define CONFIG_SYS_MMC_ENV_DEV 0 > > #define CONFIG_ENV_SECT_SIZE 0x200 > > @@ -50,6 +70,7 @@ > > /* stay within first 1M */ > > #define CONFIG_ENV_OFFSET(SZ_1M - CONFIG_ENV_SIZE) > > #define CONFIG_ENV_ADDR CONFIG_ENV_OFFSET > > +#endif > > > > #define CONFIG_PHY_MARVELL /* there is a marvell phy */ > > #define PHY_ANEG_TIMEOUT 8000/* PHY needs a longer aneg > > time */ > > @@ -69,7 +90,13 @@ > > */ > > #define SPL_BOOT_SPI_NOR_FLASH 1 > > #define SPL_BOOT_SDIO_MMC_CARD 2 > > + > > +#ifdef CONFIG_MVEBU_SPL_BOOT_DEVICE_SPI > > +#define CONFIG_SPL_BOOT_DEVICE
Re: [U-Boot] [PATCH 6/7] arm: mvebu: helios4: Enable SPI flash support
Hi Dennis, On Wed, Nov 28, 2018 at 07:53:44AM -0600, Dennis Gilmore wrote: > On Wed, 2018-11-28 at 17:00 +0800, Aditya Prayoga wrote: > > Enable SPI flash support under U-Boot and SPL. The ENV size and > > offset, > > ported from U-Boot 2013.01 Marvell version: 2015_T1.0p16 > > > > To create U-Boot image for SPI flash, user would need to replace > > * CONFIG_MVEBU_SPL_BOOT_DEVICE_MMC with > > CONFIG_MVEBU_SPL_BOOT_DEVICE_SPI > > * CONFIG_ENV_IS_IN_MMC with CONFIG_ENV_IS_IN_SPI_FLASH > > > > Signed-off-by: Aditya Prayoga > > --- > > arch/arm/dts/armada-388-helios4.dts | 7 +++ > > configs/helios4_defconfig | 1 - > > include/configs/helios4.h | 31 > > +++ > > 3 files changed, 38 insertions(+), 1 deletion(-) > > > > diff --git a/arch/arm/dts/armada-388-helios4.dts > > b/arch/arm/dts/armada-388-helios4.dts > > index 711fc22..cd3fcae 100644 > > --- a/arch/arm/dts/armada-388-helios4.dts > > +++ b/arch/arm/dts/armada-388-helios4.dts > > @@ -26,6 +26,7 @@ > > ethernet1 = > > i2c0 = > > i2c1 = > > + spi1 = > has this gone upstream to the kernel? > > }; > > > > chosen { > > @@ -244,6 +245,7 @@ > > _spi1_cs_pins>; > > pinctrl-names = "default"; > > status = "okay"; > > + u-boot,dm-spl; > there is a method in u-boot that needs to be used where u-boot specific > snippets go into a -u-boot.dts file, I am struggling to > find the documentation on it, perhaps someone else can point us both at > it. See tools/binman/README under "Automatic .dtsi inclusion". Would have been nice to be able to add u-boot.dtsi onto another .dtsi. That would have saved us from copying the content of armada-388-clearfog-u-boot.dtsi over and over for each board that carries the same SOM. Maybe we can use a symlink for that? It's a little less ugly than copy. baruch > > }; > > > > sdhci@d8000 { > > @@ -308,3 +310,8 @@ > > }; > > }; > > }; > > + > > + { > > + status = "okay"; > > + u-boot,dm-spl; > > +}; > same as above the u-boot bit should go in a armada-388-helios4-u- > boot.dts file and the generic bits in the upstream kernel dts file. > > Dennis -- http://baruch.siach.name/blog/ ~. .~ Tk Open Systems =}ooO--U--Ooo{= - bar...@tkos.co.il - tel: +972.2.679.5364, http://www.tkos.co.il - ___ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot
Re: [U-Boot] [PATCH 6/7] arm: mvebu: helios4: Enable SPI flash support
On Wed, 2018-11-28 at 17:00 +0800, Aditya Prayoga wrote: > Enable SPI flash support under U-Boot and SPL. The ENV size and > offset, > ported from U-Boot 2013.01 Marvell version: 2015_T1.0p16 > > To create U-Boot image for SPI flash, user would need to replace > * CONFIG_MVEBU_SPL_BOOT_DEVICE_MMC with > CONFIG_MVEBU_SPL_BOOT_DEVICE_SPI > * CONFIG_ENV_IS_IN_MMC with CONFIG_ENV_IS_IN_SPI_FLASH > > Signed-off-by: Aditya Prayoga > --- > arch/arm/dts/armada-388-helios4.dts | 7 +++ > configs/helios4_defconfig | 1 - > include/configs/helios4.h | 31 > +++ > 3 files changed, 38 insertions(+), 1 deletion(-) > > diff --git a/arch/arm/dts/armada-388-helios4.dts > b/arch/arm/dts/armada-388-helios4.dts > index 711fc22..cd3fcae 100644 > --- a/arch/arm/dts/armada-388-helios4.dts > +++ b/arch/arm/dts/armada-388-helios4.dts > @@ -26,6 +26,7 @@ > ethernet1 = > i2c0 = > i2c1 = > + spi1 = has this gone upstream to the kernel? > }; > > chosen { > @@ -244,6 +245,7 @@ >_spi1_cs_pins>; > pinctrl-names = "default"; > status = "okay"; > + u-boot,dm-spl; there is a method in u-boot that needs to be used where u-boot specific snippets go into a -u-boot.dts file, I am struggling to find the documentation on it, perhaps someone else can point us both at it. > }; > > sdhci@d8000 { > @@ -308,3 +310,8 @@ > }; > }; > }; > + > + { > + status = "okay"; > + u-boot,dm-spl; > +}; same as above the u-boot bit should go in a armada-388-helios4-u- boot.dts file and the generic bits in the upstream kernel dts file. Dennis > diff --git a/configs/helios4_defconfig b/configs/helios4_defconfig > index 53995fe..3bb4622 100644 > --- a/configs/helios4_defconfig > +++ b/configs/helios4_defconfig > @@ -6,7 +6,6 @@ CONFIG_SPL_LIBGENERIC_SUPPORT=y > CONFIG_SYS_MALLOC_F_LEN=0x2000 > CONFIG_TARGET_HELIOS4=y > CONFIG_MVEBU_SPL_BOOT_DEVICE_MMC=y > -CONFIG_SPL_MMC_SUPPORT=y > CONFIG_SPL_SERIAL_SUPPORT=y > CONFIG_SPL_SYS_MALLOC_SIMPLE=y > CONFIG_SPL=y > diff --git a/include/configs/helios4.h b/include/configs/helios4.h > index bd59ecf..6943378 100644 > --- a/include/configs/helios4.h > +++ b/include/configs/helios4.h > @@ -6,6 +6,8 @@ > #ifndef _CONFIG_HELIOS4_H > #define _CONFIG_HELIOS4_H > > +#include > + > /* > * High Level Configuration Options (easy to change) > */ > @@ -23,6 +25,9 @@ > > /* SPI NOR flash default params, used by sf commands */ > #define CONFIG_SF_DEFAULT_BUS1 > +#define CONFIG_SF_DEFAULT_CS 0 > +#define CONFIG_SF_DEFAULT_SPEED 10400 > +#define CONFIG_SF_DEFAULT_MODE SPI_MODE_3 > > /* > * SDIO/MMC Card Configuration > @@ -43,6 +48,21 @@ > #define CONFIG_SYS_SCSI_MAX_DEVICE (CONFIG_SYS_SCSI_MAX_SCSI_ID > * \ > CONFIG_SYS_SCSI_MAX_LUN) > > +#ifdef CONFIG_MVEBU_SPL_BOOT_DEVICE_SPI > +/* > + * SPI Flash configuration for the environment access > + */ > +#define CONFIG_ENV_SPI_BUS CONFIG_SF_DEFAULT_BUS > +#define CONFIG_ENV_SPI_CSCONFIG_SF_DEFAULT_CS > +#define CONFIG_ENV_SPI_MAX_HZCONFIG_SF_DEFAULT_SPEED > + > +/* Environment in SPI NOR flash */ > +#define CONFIG_ENV_SECT_SIZE SZ_64K > +#define CONFIG_ENV_SIZE CONFIG_ENV_SECT_SIZE > +#define CONFIG_ENV_OFFSETSZ_1M > +#endif > + > +#ifdef CONFIG_MVEBU_SPL_BOOT_DEVICE_MMC > /* Environment in MMC */ > #define CONFIG_SYS_MMC_ENV_DEV 0 > #define CONFIG_ENV_SECT_SIZE 0x200 > @@ -50,6 +70,7 @@ > /* stay within first 1M */ > #define CONFIG_ENV_OFFSET(SZ_1M - CONFIG_ENV_SIZE) > #define CONFIG_ENV_ADDR CONFIG_ENV_OFFSET > +#endif > > #define CONFIG_PHY_MARVELL /* there is a marvell phy */ > #define PHY_ANEG_TIMEOUT 8000/* PHY needs a longer aneg > time */ > @@ -69,7 +90,13 @@ > */ > #define SPL_BOOT_SPI_NOR_FLASH 1 > #define SPL_BOOT_SDIO_MMC_CARD 2 > + > +#ifdef CONFIG_MVEBU_SPL_BOOT_DEVICE_SPI > +#define CONFIG_SPL_BOOT_DEVICE SPL_BOOT_SPI_NOR_FLASH > +#endif > +#ifdef CONFIG_MVEBU_SPL_BOOT_DEVICE_MMC > #define CONFIG_SPL_BOOT_DEVICE SPL_BOOT_SDIO_MMC_CARD > +#endif > > /* Defines for SPL */ > #define CONFIG_SPL_SIZE (140 << 10) > @@ -88,12 +115,16 @@ > > #if CONFIG_SPL_BOOT_DEVICE == SPL_BOOT_SPI_NOR_FLASH > /* SPL related SPI defines */ > +#define CONFIG_SPL_SPI_FLASH_SUPPORT > +#define CONFIG_SPL_SPI_LOAD > +#define CONFIG_SPL_SPI_SUPPORT > #define CONFIG_SYS_SPI_U_BOOT_OFFS 0x2 > #define CONFIG_SYS_U_BOOT_OFFS CONFIG_SYS_SPI_U_BOOT_O > FFS > #endif > > #if