[PATCH v2 16/17] riscv: dts: jh7110: Add initial StarFive VisionFive v2 board device tree

yanhong wang yanhong.wang at starfivetech.com
Thu Feb 16 07:20:12 CET 2023



On 2023/1/22 2:46, Sean Anderson wrote:
> On 1/18/23 03:11, Yanhong Wang wrote:
>> Add initial device tree for StarFive VisionFive v2 board.
>>
>> Signed-off-by: Yanhong Wang <yanhong.wang at starfivetech.com>
>> ---
>>   arch/riscv/dts/Makefile                       |   2 +-
>>   .../dts/starfive_visionfive2-u-boot.dtsi      |  84 +++++++
>>   arch/riscv/dts/starfive_visionfive2.dts       | 234 ++++++++++++++++++
>>   3 files changed, 319 insertions(+), 1 deletion(-)
>>   create mode 100644 arch/riscv/dts/starfive_visionfive2-u-boot.dtsi
>>   create mode 100644 arch/riscv/dts/starfive_visionfive2.dts
>>
>> diff --git a/arch/riscv/dts/Makefile b/arch/riscv/dts/Makefile
>> index 5c15a0f303..0351cc0c38 100644
>> --- a/arch/riscv/dts/Makefile
>> +++ b/arch/riscv/dts/Makefile
>> @@ -7,7 +7,7 @@ dtb-$(CONFIG_TARGET_OPENPITON_RISCV64) += openpiton-riscv64.dtb
>>   dtb-$(CONFIG_TARGET_SIFIVE_UNLEASHED) += hifive-unleashed-a00.dtb
>>   dtb-$(CONFIG_TARGET_SIFIVE_UNMATCHED) += hifive-unmatched-a00.dtb
>>   dtb-$(CONFIG_TARGET_SIPEED_MAIX) += k210-maix-bit.dtb
>> -
>> +dtb-$(CONFIG_TARGET_STARFIVE_VISIONFIVE2) += starfive_visionfive2.dtb
>>   include $(srctree)/scripts/Makefile.dts
>>     targets += $(dtb-y)
>> diff --git a/arch/riscv/dts/starfive_visionfive2-u-boot.dtsi b/arch/riscv/dts/starfive_visionfive2-u-boot.dtsi
>> new file mode 100644
>> index 0000000000..1b4e3392ab
>> --- /dev/null
>> +++ b/arch/riscv/dts/starfive_visionfive2-u-boot.dtsi
>> @@ -0,0 +1,84 @@
>> +// SPDX-License-Identifier: GPL-2.0 OR MIT
>> +/*
>> + * Copyright (C) 2022 StarFive Technology Co., Ltd.
>> + */
>> +
>> +#include "binman.dtsi"
>> +#include "jh7110-u-boot.dtsi"
>> +/ {
>> +    chosen {
>> +        u-boot,dm-spl;
>> +    };
>> +
>> +    firmware {
>> +        spi0 = &qspi;
>> +        u-boot,dm-spl;
>> +    };
>> +
>> +    config {
>> +        u-boot,dm-spl;
>> +        u-boot,spl-payload-offset = <0x100000>;
>> +    };
>> +
>> +    memory at 40000000 {
>> +        u-boot,dm-spl;
>> +    };
>> +
>> +    soc {
>> +        u-boot,dm-spl;
>> +
>> +        dmc: dmc at 15700000 {
>> +            u-boot,dm-spl;
>> +            compatible = "starfive,jh7110-dmc";
>> +            reg = <0x0 0x15700000 0x0 0x10000>,
>> +                <0x0 0x13000000 0x0 0x10000>;
>> +            resets = <&syscrg JH7110_SYSRST_DDR_AXI>,
>> +                <&syscrg JH7110_SYSRST_DDR_OSC>,
>> +                <&syscrg JH7110_SYSRST_DDR_APB>;
>> +            reset-names = "axi", "osc", "apb";
>> +            clocks = <&syscrg JH7110_SYSCLK_PLL1_OUT>;
>> +            clock-names = "pll1";
>> +            clock-frequency = <2133>;
>> +        };
> 
> Again, needs to go in SoC dtsi.
> 

Thanks. I will move the dmc node to jh7110-u-boot.dtsi in the next version.

> Here are the rules for where something should go:
> 
> - If it is part of the chip, it goes in the SoC dtsi, even if it is not always
>   used! You can disable it by default (status = "disabled") if this is the case.
> - If it is on the board, it goes in the board dts.
> - If it is a property which is added to a node to support a board peripheral,
>   it goes in the board dts.
> - If it is a U-Boot-specific property, it goes in the -u-boot.dts[i]
> 
> --Sean
> 
>> +    };
>> +};
>> +
>> +&sys_syscon {
>> +    u-boot,dm-spl;
>> +};
>> +
>> +&uart0 {
>> +    u-boot,dm-spl;
>> +};
>> +
>> +&sdio0 {
>> +    u-boot,dm-spl;
>> +};
>> +
>> +&sdio1 {
>> +    u-boot,dm-spl;
>> +};
>> +
>> +&qspi {
>> +    u-boot,dm-spl;
>> +
>> +    nor-flash at 0 {
>> +        u-boot,dm-spl;
>> +    };
>> +};
>> +
>> +&osc {
>> +    u-boot,dm-spl;
>> +};
>> +
>> +&aoncrg {
>> +    u-boot,dm-spl;
>> +};
>> +
>> +&syscrg {
>> +    u-boot,dm-spl;
>> +};
>> +
>> +&stgcrg {
>> +    u-boot,dm-spl;
>> +};
>> diff --git a/arch/riscv/dts/starfive_visionfive2.dts b/arch/riscv/dts/starfive_visionfive2.dts
>> new file mode 100644
>> index 0000000000..52b31546da
>> --- /dev/null
>> +++ b/arch/riscv/dts/starfive_visionfive2.dts
>> @@ -0,0 +1,234 @@
>> +// SPDX-License-Identifier: GPL-2.0 OR MIT
>> +/*
>> + * Copyright (C) 2022 StarFive Technology Co., Ltd.
>> + */
>> +
>> +/dts-v1/;
>> +
>> +#include "jh7110.dtsi"
>> +#include <dt-bindings/pinctrl/pinctrl-starfive-jh7110.h>
>> +/ {
>> +    #address-cells = <2>;
>> +    #size-cells = <2>;
>> +    model = "StarFive VisionFive V2";
>> +    compatible = "starfive,jh7110";
>> +
>> +    aliases {
>> +        spi0 = &qspi;
>> +        mmc0 = &sdio0;
>> +        mmc1 = &sdio1;
>> +    };
>> +
>> +    chosen {
>> +        stdout-path = "/soc/serial at 10000000:115200";
>> +    };
>> +
>> +    cpus {
>> +        timebase-frequency = <4000000>;
>> +    };
>> +
>> +    memory at 40000000 {
>> +        device_type = "memory";
>> +        reg = <0x0 0x40000000 0x1 0x0>;
>> +    };
>> +
>> +    soc {
>> +        sys_syscon: sys_syscon at 13030000 {
>> +            compatible = "syscon";
>> +            reg = <0x0 0x13030000 0x0 0x1000>;
>> +        };
>> +    };
> 
> ditto
> 

I will move sys_syscon node to jh7110.dtsi

>> +};
>> +
>> +&S76_0 {
>> +    status = "okay";
>> +};
>> +
>> +&osc {
>> +    clock-frequency = <24000000>;
>> +};
>> +
>> +&clk_rtc {
>> +    clock-frequency = <32768>;
>> +};
>> +
>> +&gmac0_rmii_refin {
>> +    clock-frequency = <50000000>;
>> +};
>> +
>> +&gmac0_rgmii_rxin {
>> +    clock-frequency = <125000000>;
>> +};
>> +
>> +&gmac1_rmii_refin {
>> +    clock-frequency = <50000000>;
>> +};
>> +
>> +&gmac1_rgmii_rxin {
>> +    clock-frequency = <125000000>;
>> +};
>> +
>> +&i2stx_bclk_ext {
>> +    clock-frequency = <12288000>;
>> +};
>> +
>> +&i2stx_lrck_ext {
>> +    clock-frequency = <192000>;
>> +};
>> +
>> +&i2srx_bclk_ext {
>> +    clock-frequency = <12288000>;
>> +};
>> +
>> +&i2srx_lrck_ext {
>> +    clock-frequency = <192000>;
>> +};
>> +
>> +&tdm_ext {
>> +    clock-frequency = <49152000>;
>> +};
>> +
>> +&mclk_ext {
>> +    clock-frequency = <12288000>;
>> +};
>> +
>> +&gpio {
>> +    status = "okay";
>> +    uart0_pins: uart0-0 {
>> +        tx-pins {
>> +            pinmux = <GPIOMUX(5, GPOUT_SYS_UART0_TX,
>> +                        GPOEN_ENABLE, GPI_NONE)>;
>> +            bias-disable;
>> +            drive-strength = <12>;
>> +            input-disable;
>> +            input-schmitt-disable;
>> +            slew-rate = <0>;
>> +        };
>> +
>> +        rx-pins {
>> +            pinmux = <GPIOMUX(6, GPOUT_LOW,
>> +                        GPOEN_DISABLE, GPI_SYS_UART0_RX)>;
>> +            bias-pull-up;
>> +            drive-strength = <2>;
>> +            input-enable;
>> +            input-schmitt-enable;
>> +            slew-rate = <0>;
>> +        };
>> +    };
>> +
>> +    mmc0_pins: mmc0-pins {
>> +         mmc0-pins-rest {
>> +            pinmux = <GPIOMUX(62, GPOUT_SYS_SDIO0_RST,
>> +                        GPOEN_ENABLE, GPI_NONE)>;
>> +            bias-pull-up;
>> +            drive-strength = <12>;
>> +            input-disable;
>> +            input-schmitt-disable;
>> +            slew-rate = <0>;
>> +        };
>> +    };
>> +
>> +    sdcard1_pins: sdcard1-pins {
>> +        sdcard1-pins0 {
>> +            pinmux = <GPIOMUX(10, GPOUT_SYS_SDIO1_CLK,
>> +                        GPOEN_ENABLE, GPI_NONE)>;
>> +            bias-pull-up;
>> +            drive-strength = <12>;
>> +            input-disable;
>> +            input-schmitt-disable;
>> +            slew-rate = <0>;
>> +        };
>> +
>> +        sdcard1-pins1 {
>> +            pinmux = <GPIOMUX(9, GPOUT_SYS_SDIO1_CMD,
>> +                        GPOEN_SYS_SDIO1_CMD, GPI_SYS_SDIO1_CMD)>;
>> +            bias-pull-up;
>> +            drive-strength = <12>;
>> +            input-enable;
>> +            input-schmitt-enable;
>> +            slew-rate = <0>;
>> +        };
>> +
>> +        sdcard1-pins2 {
>> +            pinmux = <GPIOMUX(11, GPOUT_SYS_SDIO1_DATA0,
>> +                        GPOEN_SYS_SDIO1_DATA0, GPI_SYS_SDIO1_DATA0)>;
>> +            bias-pull-up;
>> +            drive-strength = <12>;
>> +            input-enable;
>> +            input-schmitt-enable;
>> +            slew-rate = <0>;
>> +        };
>> +
>> +        sdcard1-pins3 {
>> +            pinmux = <GPIOMUX(12, GPOUT_SYS_SDIO1_DATA1,
>> +                        GPOEN_SYS_SDIO1_DATA1, GPI_SYS_SDIO1_DATA1)>;
>> +            bias-pull-up;
>> +            drive-strength = <12>;
>> +            input-enable;
>> +            input-schmitt-enable;
>> +            slew-rate = <0>;
>> +        };
>> +
>> +        sdcard1-pins4 {
>> +            pinmux = <GPIOMUX(7, GPOUT_SYS_SDIO1_DATA2,
>> +                        GPOEN_SYS_SDIO1_DATA2, GPI_SYS_SDIO1_DATA2)>;
>> +            bias-pull-up;
>> +            drive-strength = <12>;
>> +            input-enable;
>> +            input-schmitt-enable;
>> +            slew-rate = <0>;
>> +        };
>> +
>> +        sdcard1-pins5 {
>> +            pinmux = <GPIOMUX(8, GPOUT_SYS_SDIO1_DATA3,
>> +                        GPOEN_SYS_SDIO1_DATA3, GPI_SYS_SDIO1_DATA3)>;
>> +            bias-pull-up;
>> +            drive-strength = <12>;
>> +            input-enable;
>> +            input-schmitt-enable;
>> +            slew-rate = <0>;
>> +        };
>> +    };
>> +};
>> +
>> +&sdio0 {
>> +    bus-width = <8>;
>> +    pinctrl-names = "default";
>> +    pinctrl-0 = <&mmc0_pins>;
>> +    status = "okay";
>> +};
>> +
>> +&sdio1 {
>> +    bus-width = <4>;
>> +    pinctrl-names = "default";
>> +    pinctrl-0 = <&sdcard1_pins>;
>> +    status = "okay";
>> +};
>> +
>> +&uart0 {
>> +    reg-offset = <0>;
>> +    current-speed = <115200>;
>> +    clock-frequency = <24000000>;
>> +    pinctrl-names = "default";
>> +    pinctrl-0 = <&uart0_pins>;
>> +    status = "okay";
>> +};
>> +
>> +&qspi {
>> +    spi-max-frequency = <250000000>;
>> +    status = "okay";
>> +
>> +    nor-flash at 0 {
>> +        compatible = "jedec,spi-nor";
>> +        reg=<0>;
>> +        spi-max-frequency = <100000000>;
>> +        cdns,tshsl-ns = <1>;
>> +        cdns,tsd2d-ns = <1>;
>> +        cdns,tchsh-ns = <1>;
>> +        cdns,tslch-ns = <1>;
>> +    };
>> +};
>> +
>> +&syscrg {
>> +    starfive,sys-syscon = <&sys_syscon>;
>> +};
> 
> ditto

I will move it to jh7110.dtsi




More information about the U-Boot mailing list