[PATCH] riscv: dts: jh7110: Update qspi node with upstream

Heinrich Schuchardt heinrich.schuchardt at canonical.com
Mon May 27 15:11:59 CEST 2024


On 27.05.24 12:47, matthias.bgg at kernel.org wrote:
> From: Matthias Brugger <mbrugger at suse.com>
> 
> Upstream node uses a specific SoC compatible to make the kernel driver
> work. Copy over the upstream node to fullfill that need.

Thanks for looking into the compatibility of the U-Boot device-tree with 
Linux.

Could you, please, replace "Upstream" by "Linux" and refer to the 
relevant file:

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/riscv/boot/dts/starfive/jh7110-common.dtsi?h=v6.10-rc1

%s/fullfill/fulfill/

Please, fully describe the change, e.g.

* Define MTD partitions for StarFive VisionFive 2
* Adjust QSPI compatible string to use StarFive specific driver
* Adjust QSPI clock and reset definitions

> 
> Signed-off-by: Matthias Brugger <mbrugger at suse.com>
> ---
> 
>   .../jh7110-starfive-visionfive-2-u-boot.dtsi  |  2 +-
>   .../dts/jh7110-starfive-visionfive-2.dtsi     | 29 ++++++++++++++++---
>   arch/riscv/dts/jh7110.dtsi                    | 19 +++++++-----
>   3 files changed, 37 insertions(+), 13 deletions(-)
> 
> diff --git a/arch/riscv/dts/jh7110-starfive-visionfive-2-u-boot.dtsi b/arch/riscv/dts/jh7110-starfive-visionfive-2-u-boot.dtsi
> index 3012466b305..a69d8fcb391 100644
> --- a/arch/riscv/dts/jh7110-starfive-visionfive-2-u-boot.dtsi
> +++ b/arch/riscv/dts/jh7110-starfive-visionfive-2-u-boot.dtsi
> @@ -40,7 +40,7 @@
>   &qspi {
>   	bootph-pre-ram;
>   
> -	nor-flash at 0 {
> +	nor_flash at 0 {
>   		bootph-pre-ram;
>   	};
>   };
> diff --git a/arch/riscv/dts/jh7110-starfive-visionfive-2.dtsi b/arch/riscv/dts/jh7110-starfive-visionfive-2.dtsi
> index e11babc1cde..375449b73a8 100644
> --- a/arch/riscv/dts/jh7110-starfive-visionfive-2.dtsi
> +++ b/arch/riscv/dts/jh7110-starfive-visionfive-2.dtsi
> @@ -305,17 +305,38 @@
>   };
>   
>   &qspi {
> -	spi-max-frequency = <250000000>;
> +	#address-cells = <1>;
> +	#size-cells = <0>;
>   	status = "okay";
>   
> -	nor-flash at 0 {
> +	nor_flash: nor_flash at 0 {
>   		compatible = "jedec,spi-nor";
> -		reg=<0>;
> -		spi-max-frequency = <100000000>;
> +		reg = <0>;
> +		cdns,read-delay = <5>;
> +		spi-max-frequency = <12000000>;
>   		cdns,tshsl-ns = <1>;
>   		cdns,tsd2d-ns = <1>;
>   		cdns,tchsh-ns = <1>;
>   		cdns,tslch-ns = <1>;
> +
> +		partitions {
> +			compatible = "fixed-partitions";
> +			#address-cells = <1>;
> +			#size-cells = <1>;
> +
> +			spl at 0 {
> +				reg = <0x0 0x80000>;
> +			};

Why should we have a gap here?

%s/0x80000/0xf0000/

> +			uboot-env at f0000 {
> +				reg = <0xf0000 0x10000>;
> +			};
> +			uboot at 100000 {
> +				reg = <0x100000 0x400000>;
> +			};

And another gap here?

> +			reserved-data at 600000 {
> +				reg = <0x600000 0xa00000>;
> +			};

When replacing u-boot.itb by EDK II it would be preferable to have a 
single partition reaching to the end of the SPI-flash.

So I would suggest

uboot at 100000 {
	ret = <0x100000 0xf00000>;
}

Best regards

Heinrich

> +		};
>   	};
>   };
>   
> diff --git a/arch/riscv/dts/jh7110.dtsi b/arch/riscv/dts/jh7110.dtsi
> index 2cdc683d49b..2b331e58497 100644
> --- a/arch/riscv/dts/jh7110.dtsi
> +++ b/arch/riscv/dts/jh7110.dtsi
> @@ -480,19 +480,22 @@
>   		};
>   
>   		qspi: spi at 13010000 {
> -			compatible = "cdns,qspi-nor";
> -			reg = <0x0 0x13010000 0x0 0x10000
> -				0x0 0x21000000 0x0 0x400000>;
> -			clocks = <&syscrg JH7110_SYSCLK_QSPI_REF>;
> -			clock-names = "clk_ref";
> +			compatible = "starfive,jh7110-qspi", "cdns,qspi-nor";
> +			reg = <0x0 0x13010000 0x0 0x10000>,
> +			      <0x0 0x21000000 0x0 0x400000>;
> +			interrupts = <25>;
> +			clocks = <&syscrg JH7110_SYSCLK_QSPI_REF>,
> +				 <&syscrg JH7110_SYSCLK_QSPI_AHB>,
> +				 <&syscrg JH7110_SYSCLK_QSPI_APB>;
> +			clock-names = "ref", "ahb", "apb";
>   			resets = <&syscrg JH7110_SYSRST_QSPI_APB>,
>   				 <&syscrg JH7110_SYSRST_QSPI_AHB>,
>   				 <&syscrg JH7110_SYSRST_QSPI_REF>;
> -			reset-names = "rst_apb", "rst_ahb", "rst_ref";
> +			reset-names = "qspi", "qspi-ocp", "rstc_ref";
>   			cdns,fifo-depth = <256>;
>   			cdns,fifo-width = <4>;
> -			#address-cells = <1>;
> -			#size-cells = <0>;
> +			cdns,trigger-address = <0x0>;
> +			status = "disabled";
>   		};
>   
>   		syscrg: clock-controller at 13020000 {



More information about the U-Boot mailing list