[PATCH v4 07/27] rockchip: Enable building a SPI ROM image on bob

Hugh Cole-Baker sigmaris at gmail.com
Wed Oct 14 20:37:49 CEST 2020


Hello,
> On 11 Oct 2020, at 16:39, Emmanuel Vadot <manu at bidouilliste.com> wrote:
> 
> 
> Hi Simon,
> 
> On Sun, 19 Jul 2020 13:55:58 -0600
> Simon Glass <sjg at chromium.org> wrote:
> 
>> Add a simple binman config and enable CONFIG_HAS_ROM so that U-Boot
>> produces a ROM for bob.
>> 
>> Signed-off-by: Simon Glass <sjg at chromium.org>
>> ---
>> 
>> Changes in v4:
>> - Use CONFIG_ROCKCHIP_SPI_IMAGE to select the image
>> 
>> arch/arm/dts/rk3399-gru-u-boot.dtsi   |  4 ++++
>> arch/arm/dts/rk3399-gru.dtsi          |  2 +-
>> arch/arm/dts/rk3399-u-boot.dtsi       | 27 +++++++++++++++++++++++++++
>> arch/arm/mach-rockchip/rk3399/Kconfig |  2 ++
>> 4 files changed, 34 insertions(+), 1 deletion(-)
>> 
>> diff --git a/arch/arm/dts/rk3399-gru-u-boot.dtsi b/arch/arm/dts/rk3399-gru-u-boot.dtsi
>> index 7bddc3acdb..390ac2bb5a 100644
>> --- a/arch/arm/dts/rk3399-gru-u-boot.dtsi
>> +++ b/arch/arm/dts/rk3399-gru-u-boot.dtsi
>> @@ -4,3 +4,7 @@
>>  */
>> 
>> #include "rk3399-u-boot.dtsi"
>> +
>> +&spi_flash {
>> +	u-boot,dm-pre-reloc;
>> +};
>> diff --git a/arch/arm/dts/rk3399-gru.dtsi b/arch/arm/dts/rk3399-gru.dtsi
>> index 7ac88392f2..f9c5bb607b 100644
>> --- a/arch/arm/dts/rk3399-gru.dtsi
>> +++ b/arch/arm/dts/rk3399-gru.dtsi
>> @@ -537,7 +537,7 @@ ap_i2c_audio: &i2c8 {
>> 	pinctrl-names = "default", "sleep";
>> 	pinctrl-1 = <&spi1_sleep>;
>> 
>> -	spiflash at 0 {
>> +	spi_flash: spiflash at 0 {
>> 		compatible = "jedec,spi-nor";
>> 		reg = <0>;
>> 
>> diff --git a/arch/arm/dts/rk3399-u-boot.dtsi b/arch/arm/dts/rk3399-u-boot.dtsi
>> index 8237782408..ecd230c720 100644
>> --- a/arch/arm/dts/rk3399-u-boot.dtsi
>> +++ b/arch/arm/dts/rk3399-u-boot.dtsi
>> @@ -4,11 +4,14 @@
>>  */
>> #define USB_CLASS_HUB			9
>> 
>> +#include "rockchip-u-boot.dtsi"
>> +
>> / {
>> 	aliases {
>> 		mmc0 = &sdhci;
>> 		mmc1 = &sdmmc;
>> 		pci0 = &pcie0;
>> +		spi1 = &spi1;
> 
> I don't really understand why but this added alias break spi flash
> detection on rockpro64.
> Removing it make it work again.

I've noticed the same problem - rockpro64 already had an alias

spi0 = &spi1;

so after this change there are spi0 and spi1 aliases pointing to &spi1.
In U-Boot proper, that seems to cause the SPI flash to appear on bus 1
rather than the former bus 0, e.g. sf probe 1:0 works but sf probe 0:0
doesn't.

So I tried removing the spi0 alias and setting CONFIG_SF_DEFAULT_BUS=1
which fixed the flash detection in U-Boot proper, but now the SPL can't
load U-Boot from SPI flash - it fails with an "Invalid bus 1 (err=-19)"
It seems like SPL doesn't pay attention to the spi1 alias in the same
way that U-boot proper does, I haven't yet figured out why.

> 
> Cheers,
> 
>> 	};
>> 
>> 	cic: syscon at ff620000 {
>> @@ -57,6 +60,30 @@
>> 
>> };
>> 
>> +#ifdef CONFIG_ROCKCHIP_SPI_IMAGE
>> +&binman {
>> +	rom {
>> +		filename = "u-boot.rom";
>> +		size = <0x400000>;
>> +		pad-byte = <0xff>;
>> +
>> +		mkimage {
>> +			args = "-n rk3399 -T rkspi";
>> +			u-boot-spl {
>> +			};
>> +		};
>> +		u-boot-img {
>> +			offset = <0x40000>;
>> +		};
>> +		u-boot {
>> +			offset = <0x300000>;
>> +		};
>> +		fdtmap {
>> +		};
>> +	};
>> +};
>> +#endif
>> +
>> &cru {
>> 	u-boot,dm-pre-reloc;
>> };
>> diff --git a/arch/arm/mach-rockchip/rk3399/Kconfig b/arch/arm/mach-rockchip/rk3399/Kconfig
>> index 254b9c5b4d..17628f9171 100644
>> --- a/arch/arm/mach-rockchip/rk3399/Kconfig
>> +++ b/arch/arm/mach-rockchip/rk3399/Kconfig
>> @@ -5,6 +5,8 @@ choice
>> 
>> config TARGET_CHROMEBOOK_BOB
>> 	bool "Asus Flip C101PA Chromebook (RK3399)"
>> +	select HAS_ROM
>> +	select ROCKCHIP_SPI_IMAGE
>> 	help
>> 	  Bob is a small RK3299-based device similar in apperance to Minnie.
>> 	  It has two USB 3.0 type-C ports, 4GB of SDRAM, WiFi and a 10.1",
>> -- 
>> 2.28.0.rc0.105.gf9edc3c819-goog
>> 
> 
> 
> -- 
> Emmanuel Vadot <manu at bidouilliste.com> <manu at freebsd.org>



More information about the U-Boot mailing list