[PATCH v10 10/10] arm64: dts: rockchip: Enable SFC for Odroid Go Advance

Chris Morgan macromorgan at hotmail.com
Tue Jul 6 09:02:45 PDT 2021


On Wed, Jun 30, 2021 at 09:48:14PM +0800, Jon Lin wrote:
> From: Chris Morgan <macromorgan at hotmail.com>
> 
> This enables the Rockchip Serial Flash Controller for the Odroid Go
> Advance. Note that while the attached SPI NOR flash and the controller
> both support quad read mode, only 2 of the required 4 pins are present.
> The rx and tx bus width is set to 2 for this reason.
> 
> Signed-off-by: Chris Morgan <macromorgan at hotmail.com>
> Signed-off-by: Jon Lin <jon.lin at rock-chips.com>
> ---
> 
> Changes in v10: None
> Changes in v9: None
> Changes in v8: None
> Changes in v7: None
> Changes in v6: None
> Changes in v5: None
> Changes in v4: None
> Changes in v3: None
> Changes in v2: None
> Changes in v1: None
> 
>  .../boot/dts/rockchip/rk3326-odroid-go2.dts      | 16 ++++++++++++++++
>  1 file changed, 16 insertions(+)
> 
> diff --git a/arch/arm64/boot/dts/rockchip/rk3326-odroid-go2.dts b/arch/arm64/boot/dts/rockchip/rk3326-odroid-go2.dts
> index 49c97f76df77..f78e11dd8447 100644
> --- a/arch/arm64/boot/dts/rockchip/rk3326-odroid-go2.dts
> +++ b/arch/arm64/boot/dts/rockchip/rk3326-odroid-go2.dts
> @@ -484,6 +484,22 @@
>  	status = "okay";
>  };
>  
> +&sfc {
> +	pinctrl-0 = <&sfc_clk &sfc_cs0 &sfc_bus2>;
> +	pinctrl-names = "default";
> +	#address-cells = <1>;
> +	#size-cells = <0>;
> +	status = "okay";
> +
> +	flash at 0 {
> +		compatible = "jedec,spi-nor";
> +		reg = <0>;
> +		spi-max-frequency = <108000000>;
> +		spi-rx-bus-width = <2>;
> +		spi-tx-bus-width = <2>;

Confirmed on the latest patch I still need to set the spi-tx-bus-width
to 1 otherwise I receive the following errors:

This is when I do the test case of reading 4MB of random data from
/dev/urandom, then writing it to the last 4MB of the SPI flash,
then reading it back and comparing the md5sum to see if the data is
different. I usually get the errors below on the writing stage if the
spi-tx-bus-width is 2, but if it is 1 things progress as expected and
the hashes match (which I consider a passing test case). Given you have
tested this same controller/SPI-NOR combination I'm assuming this is
a board errata of some kind. Can we change the spi-tx-bus-width to 1
for this reason?

[  145.863221] mtdblock: erase of region [0xe28000, 0x1000] on "spi2.0" failed
[  145.871080] blk_update_request: I/O error, dev mtdblock0, sector 29000 op 0x1:(WRITE) flags 0x4800 phys_seg 5 prio class 0
[  145.883529] Buffer I/O error on dev mtdblock0, logical block 3625, lost async page write
 
Sorry I haven't responded to messages lately, I was out of town on
vacation the last 2 weeks. I'll check the U-boot driver next.

> +	};
> +};
> +
>  &tsadc {
>  	status = "okay";
>  };
> -- 
> 2.17.1
> 
> 
> 



More information about the linux-mtd mailing list