[PATCH v2 3/3] riscv: dts: mpfs: migrate to OF_UPSTREAM

Sumit Garg sumit.garg at linaro.org
Wed Oct 23 14:13:03 CEST 2024


On Wed, 23 Oct 2024 at 15:48, Conor Dooley <conor at kernel.org> wrote:
>
> From: Conor Dooley <conor.dooley at microchip.com>
>
> The U-Boot copy of the mpfs devicetree has, in general, been neglected
> somewhat in comparison to the one in Linux. Moving to OF_UPSTREAM to
> keep both in sync should serve to eliminate that discrepancy.
>
> Additionally, moving to OF_UPSTREAM will let U-Boot automatically pick
> up the devicetree rework that is in progress at [1].
>
> Link: https://lore.kernel.org/all/20241002-private-unequal-33cfa6101338@spud/ [1]
> Signed-off-by: Conor Dooley <conor.dooley at microchip.com>
> ---
> v2:
> - rebase on master, drop !DTC_FLAGS from Makefile
> ---
>  arch/riscv/dts/Makefile                    |   1 -
>  arch/riscv/dts/mpfs-icicle-kit-fabric.dtsi |  71 ---
>  arch/riscv/dts/mpfs-icicle-kit-u-boot.dtsi |  14 -
>  arch/riscv/dts/mpfs-icicle-kit.dts         | 208 ---------
>  arch/riscv/dts/mpfs.dtsi                   | 511 ---------------------
>  configs/microchip_mpfs_icicle_defconfig    |   4 +-
>  dts/upstream/src/riscv/Makefile            |   6 +
>  7 files changed, 8 insertions(+), 807 deletions(-)
>  delete mode 100644 arch/riscv/dts/mpfs-icicle-kit-fabric.dtsi
>  delete mode 100644 arch/riscv/dts/mpfs-icicle-kit-u-boot.dtsi
>  delete mode 100644 arch/riscv/dts/mpfs-icicle-kit.dts
>  delete mode 100644 arch/riscv/dts/mpfs.dtsi
>  create mode 100644 dts/upstream/src/riscv/Makefile
>

Reviewed-by: Sumit Garg <sumit.garg at linaro.org>

-Sumit

> diff --git a/arch/riscv/dts/Makefile b/arch/riscv/dts/Makefile
> index f3dfd751cb4..bf32ead01b0 100644
> --- a/arch/riscv/dts/Makefile
> +++ b/arch/riscv/dts/Makefile
> @@ -1,7 +1,6 @@
>  # SPDX-License-Identifier: GPL-2.0+
>
>  dtb-$(CONFIG_TARGET_ANDES_AE350) += ae350_32.dtb ae350_64.dtb
> -dtb-$(CONFIG_TARGET_MICROCHIP_ICICLE) += mpfs-icicle-kit.dtb
>  dtb-$(CONFIG_TARGET_MILKV_DUO) += cv1800b-milkv-duo.dtb
>  dtb-$(CONFIG_TARGET_QEMU_VIRT) += qemu-virt32.dtb qemu-virt64.dtb
>  dtb-$(CONFIG_TARGET_OPENPITON_RISCV64) += openpiton-riscv64.dtb
> diff --git a/arch/riscv/dts/mpfs-icicle-kit-fabric.dtsi b/arch/riscv/dts/mpfs-icicle-kit-fabric.dtsi
> deleted file mode 100644
> index 1069134f2e1..00000000000
> --- a/arch/riscv/dts/mpfs-icicle-kit-fabric.dtsi
> +++ /dev/null
> @@ -1,71 +0,0 @@
> -// SPDX-License-Identifier: (GPL-2.0 OR MIT)
> -/* Copyright (c) 2020-2021 Microchip Technology Inc */
> -
> -/ {
> -       compatible = "microchip,mpfs-icicle-reference-rtlv2210", "microchip,mpfs-icicle-kit",
> -                    "microchip,mpfs";
> -
> -       core_pwm0: pwm at 40000000 {
> -               compatible = "microchip,corepwm-rtl-v4";
> -               reg = <0x0 0x40000000 0x0 0xF0>;
> -               microchip,sync-update-mask = /bits/ 32 <0>;
> -               #pwm-cells = <3>;
> -               clocks = <&ccc_nw CLK_CCC_PLL0_OUT3>;
> -               status = "disabled";
> -       };
> -
> -       i2c2: i2c at 40000200 {
> -               compatible = "microchip,corei2c-rtl-v7";
> -               reg = <0x0 0x40000200 0x0 0x100>;
> -               #address-cells = <1>;
> -               #size-cells = <0>;
> -               clocks = <&ccc_nw CLK_CCC_PLL0_OUT3>;
> -               interrupt-parent = <&plic>;
> -               interrupts = <122>;
> -               clock-frequency = <100000>;
> -               status = "disabled";
> -       };
> -
> -       pcie: pcie at 3000000000 {
> -               compatible = "microchip,pcie-host-1.0";
> -               #address-cells = <0x3>;
> -               #interrupt-cells = <0x1>;
> -               #size-cells = <0x2>;
> -               device_type = "pci";
> -               reg = <0x30 0x0 0x0 0x8000000>, <0x0 0x43000000 0x0 0x10000>;
> -               reg-names = "cfg", "apb";
> -               bus-range = <0x0 0x7f>;
> -               interrupt-parent = <&plic>;
> -               interrupts = <119>;
> -               interrupt-map = <0 0 0 1 &pcie_intc 0>,
> -                               <0 0 0 2 &pcie_intc 1>,
> -                               <0 0 0 3 &pcie_intc 2>,
> -                               <0 0 0 4 &pcie_intc 3>;
> -               interrupt-map-mask = <0 0 0 7>;
> -               clocks = <&ccc_nw CLK_CCC_PLL0_OUT1>, <&ccc_nw CLK_CCC_PLL0_OUT3>;
> -               clock-names = "fic1", "fic3";
> -               ranges = <0x3000000 0x0 0x8000000 0x30 0x8000000 0x0 0x80000000>;
> -               dma-ranges = <0x02000000 0x0 0x00000000 0x0 0x00000000 0x1 0x00000000>;
> -               msi-parent = <&pcie>;
> -               msi-controller;
> -               status = "disabled";
> -               pcie_intc: interrupt-controller {
> -                       #address-cells = <0>;
> -                       #interrupt-cells = <1>;
> -                       interrupt-controller;
> -               };
> -       };
> -
> -       refclk_ccc: cccrefclk {
> -               compatible = "fixed-clock";
> -               #clock-cells = <0>;
> -       };
> -};
> -
> -&ccc_nw {
> -       clocks = <&refclk_ccc>, <&refclk_ccc>, <&refclk_ccc>, <&refclk_ccc>,
> -                <&refclk_ccc>, <&refclk_ccc>;
> -       clock-names = "pll0_ref0", "pll0_ref1", "pll1_ref0", "pll1_ref1",
> -                     "dll0_ref", "dll1_ref";
> -       status = "okay";
> -};
> diff --git a/arch/riscv/dts/mpfs-icicle-kit-u-boot.dtsi b/arch/riscv/dts/mpfs-icicle-kit-u-boot.dtsi
> deleted file mode 100644
> index f60283fb6b3..00000000000
> --- a/arch/riscv/dts/mpfs-icicle-kit-u-boot.dtsi
> +++ /dev/null
> @@ -1,14 +0,0 @@
> -// SPDX-License-Identifier: (GPL-2.0 OR MIT)
> -/*
> - * Copyright (C) 2020 Microchip Technology Inc.
> - * Padmarao Begari <padmarao.begari at microchip.com>
> - */
> -
> -/ {
> -       aliases {
> -               cpu1 = &cpu1;
> -               cpu2 = &cpu2;
> -               cpu3 = &cpu3;
> -               cpu4 = &cpu4;
> -       };
> -};
> diff --git a/arch/riscv/dts/mpfs-icicle-kit.dts b/arch/riscv/dts/mpfs-icicle-kit.dts
> deleted file mode 100644
> index 8aa5fb17d64..00000000000
> --- a/arch/riscv/dts/mpfs-icicle-kit.dts
> +++ /dev/null
> @@ -1,208 +0,0 @@
> -// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
> -/*
> - * Copyright (C) 2021-2022 Microchip Technology Inc.
> - * Padmarao Begari <padmarao.begari at microchip.com>
> - */
> -
> -/dts-v1/;
> -
> -#include "mpfs.dtsi"
> -#include "mpfs-icicle-kit-fabric.dtsi"
> -#include <dt-bindings/gpio/gpio.h>
> -#include <dt-bindings/leds/common.h>
> -
> -/* Clock frequency (in Hz) of the rtcclk */
> -#define RTCCLK_FREQ            1000000
> -
> -/ {
> -       model = "Microchip PolarFire-SoC Icicle Kit";
> -       compatible = "microchip,mpfs-icicle-reference-rtlv2210", "microchip,mpfs-icicle-kit",
> -                    "microchip,mpfs";
> -
> -       aliases {
> -               ethernet0 = &mac1;
> -               serial0 = &mmuart0;
> -               serial1 = &mmuart1;
> -               serial2 = &mmuart2;
> -               serial3 = &mmuart3;
> -               serial4 = &mmuart4;
> -       };
> -
> -       chosen {
> -               stdout-path = "serial1:115200n8";
> -       };
> -
> -       cpus {
> -               timebase-frequency = <RTCCLK_FREQ>;
> -       };
> -
> -       leds {
> -               compatible = "gpio-leds";
> -
> -               led-1 {
> -                       gpios = <&gpio2 16 GPIO_ACTIVE_HIGH>;
> -                       color = <LED_COLOR_ID_RED>;
> -                       label = "led1";
> -               };
> -
> -               led-2 {
> -                       gpios = <&gpio2 17 GPIO_ACTIVE_HIGH>;
> -                       color = <LED_COLOR_ID_RED>;
> -                       label = "led2";
> -               };
> -
> -               led-3 {
> -                       gpios = <&gpio2 18 GPIO_ACTIVE_HIGH>;
> -                       color = <LED_COLOR_ID_AMBER>;
> -                       label = "led3";
> -               };
> -
> -               led-4 {
> -                       gpios = <&gpio2 19 GPIO_ACTIVE_HIGH>;
> -                       color = <LED_COLOR_ID_AMBER>;
> -                       label = "led4";
> -               };
> -       };
> -
> -       ddrc_cache_lo: memory at 80000000 {
> -               device_type = "memory";
> -               reg = <0x0 0x80000000 0x0 0x40000000>;
> -               status = "okay";
> -       };
> -
> -       ddrc_cache_hi: memory at 1040000000 {
> -               device_type = "memory";
> -               reg = <0x10 0x40000000 0x0 0x40000000>;
> -               status = "okay";
> -       };
> -
> -       reserved-memory {
> -               #address-cells = <2>;
> -               #size-cells = <2>;
> -               ranges;
> -
> -               hss_payload: region at BFC00000 {
> -                       reg = <0x0 0xBFC00000 0x0 0x400000>;
> -                       no-map;
> -               };
> -       };
> -};
> -
> -&core_pwm0 {
> -       status = "okay";
> -};
> -
> -&gpio2 {
> -       interrupts = <53>, <53>, <53>, <53>,
> -                    <53>, <53>, <53>, <53>,
> -                    <53>, <53>, <53>, <53>,
> -                    <53>, <53>, <53>, <53>,
> -                    <53>, <53>, <53>, <53>,
> -                    <53>, <53>, <53>, <53>,
> -                    <53>, <53>, <53>, <53>,
> -                    <53>, <53>, <53>, <53>;
> -       status = "okay";
> -};
> -
> -&i2c0 {
> -       status = "okay";
> -};
> -
> -&i2c1 {
> -       status = "okay";
> -};
> -
> -&i2c2 {
> -       status = "okay";
> -};
> -
> -&mac0 {
> -       phy-mode = "sgmii";
> -       phy-handle = <&phy0>;
> -       status = "enabled";
> -};
> -
> -&mac1 {
> -       phy-mode = "sgmii";
> -       phy-handle = <&phy1>;
> -       status = "okay";
> -
> -       phy1: ethernet-phy at 9 {
> -               reg = <9>;
> -       };
> -
> -       phy0: ethernet-phy at 8 {
> -               reg = <8>;
> -       };
> -};
> -
> -&mbox {
> -       status = "okay";
> -};
> -
> -&mmc {
> -       bus-width = <4>;
> -       disable-wp;
> -       cap-sd-highspeed;
> -       cap-mmc-highspeed;
> -       mmc-ddr-1_8v;
> -       mmc-hs200-1_8v;
> -       sd-uhs-sdr12;
> -       sd-uhs-sdr25;
> -       sd-uhs-sdr50;
> -       sd-uhs-sdr104;
> -       status = "okay";
> -};
> -
> -&mmuart1 {
> -       status = "okay";
> -};
> -
> -&mmuart2 {
> -       status = "okay";
> -};
> -
> -&mmuart3 {
> -       status = "okay";
> -};
> -
> -&mmuart4 {
> -       status = "okay";
> -};
> -
> -&pcie {
> -       status = "okay";
> -};
> -
> -&qspi {
> -       status = "okay";
> -};
> -
> -&refclk {
> -       clock-frequency = <125000000>;
> -};
> -
> -&refclk_ccc {
> -       clock-frequency = <50000000>;
> -};
> -
> -&rtc {
> -       status = "okay";
> -};
> -
> -&spi0 {
> -       status = "okay";
> -};
> -
> -&spi1 {
> -       status = "okay";
> -};
> -
> -&syscontroller {
> -       status = "okay";
> -};
> -
> -&usb {
> -       status = "okay";
> -       dr_mode = "host";
> -};
> diff --git a/arch/riscv/dts/mpfs.dtsi b/arch/riscv/dts/mpfs.dtsi
> deleted file mode 100644
> index 6012a285070..00000000000
> --- a/arch/riscv/dts/mpfs.dtsi
> +++ /dev/null
> @@ -1,511 +0,0 @@
> -// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
> -/* Copyright (c) 2020-2021 Microchip Technology Inc */
> -
> -#include "dt-bindings/clock/microchip-mpfs-clock.h"
> -
> -/ {
> -       #address-cells = <2>;
> -       #size-cells = <2>;
> -       model = "Microchip PolarFire SoC";
> -       compatible = "microchip,mpfs";
> -
> -       cpus {
> -               #address-cells = <1>;
> -               #size-cells = <0>;
> -
> -               cpu0: cpu at 0 {
> -                       compatible = "sifive,e51", "sifive,rocket0", "riscv";
> -                       device_type = "cpu";
> -                       i-cache-block-size = <64>;
> -                       i-cache-sets = <128>;
> -                       i-cache-size = <16384>;
> -                       reg = <0>;
> -                       riscv,isa = "rv64imac";
> -                       clocks = <&clkcfg CLK_CPU>;
> -                       status = "disabled";
> -
> -                       cpu0_intc: interrupt-controller {
> -                               #interrupt-cells = <1>;
> -                               compatible = "riscv,cpu-intc";
> -                               interrupt-controller;
> -                       };
> -               };
> -
> -               cpu1: cpu at 1 {
> -                       compatible = "sifive,u54-mc", "sifive,rocket0", "riscv";
> -                       d-cache-block-size = <64>;
> -                       d-cache-sets = <64>;
> -                       d-cache-size = <32768>;
> -                       d-tlb-sets = <1>;
> -                       d-tlb-size = <32>;
> -                       device_type = "cpu";
> -                       i-cache-block-size = <64>;
> -                       i-cache-sets = <64>;
> -                       i-cache-size = <32768>;
> -                       i-tlb-sets = <1>;
> -                       i-tlb-size = <32>;
> -                       mmu-type = "riscv,sv39";
> -                       reg = <1>;
> -                       riscv,isa = "rv64imafdc";
> -                       clocks = <&clkcfg CLK_CPU>;
> -                       tlb-split;
> -                       next-level-cache = <&cctrllr>;
> -                       status = "okay";
> -
> -                       cpu1_intc: interrupt-controller {
> -                               #interrupt-cells = <1>;
> -                               compatible = "riscv,cpu-intc";
> -                               interrupt-controller;
> -                       };
> -               };
> -
> -               cpu2: cpu at 2 {
> -                       compatible = "sifive,u54-mc", "sifive,rocket0", "riscv";
> -                       d-cache-block-size = <64>;
> -                       d-cache-sets = <64>;
> -                       d-cache-size = <32768>;
> -                       d-tlb-sets = <1>;
> -                       d-tlb-size = <32>;
> -                       device_type = "cpu";
> -                       i-cache-block-size = <64>;
> -                       i-cache-sets = <64>;
> -                       i-cache-size = <32768>;
> -                       i-tlb-sets = <1>;
> -                       i-tlb-size = <32>;
> -                       mmu-type = "riscv,sv39";
> -                       reg = <2>;
> -                       riscv,isa = "rv64imafdc";
> -                       clocks = <&clkcfg CLK_CPU>;
> -                       tlb-split;
> -                       next-level-cache = <&cctrllr>;
> -                       status = "okay";
> -
> -                       cpu2_intc: interrupt-controller {
> -                               #interrupt-cells = <1>;
> -                               compatible = "riscv,cpu-intc";
> -                               interrupt-controller;
> -                       };
> -               };
> -
> -               cpu3: cpu at 3 {
> -                       compatible = "sifive,u54-mc", "sifive,rocket0", "riscv";
> -                       d-cache-block-size = <64>;
> -                       d-cache-sets = <64>;
> -                       d-cache-size = <32768>;
> -                       d-tlb-sets = <1>;
> -                       d-tlb-size = <32>;
> -                       device_type = "cpu";
> -                       i-cache-block-size = <64>;
> -                       i-cache-sets = <64>;
> -                       i-cache-size = <32768>;
> -                       i-tlb-sets = <1>;
> -                       i-tlb-size = <32>;
> -                       mmu-type = "riscv,sv39";
> -                       reg = <3>;
> -                       riscv,isa = "rv64imafdc";
> -                       clocks = <&clkcfg CLK_CPU>;
> -                       tlb-split;
> -                       next-level-cache = <&cctrllr>;
> -                       status = "okay";
> -
> -                       cpu3_intc: interrupt-controller {
> -                               #interrupt-cells = <1>;
> -                               compatible = "riscv,cpu-intc";
> -                               interrupt-controller;
> -                       };
> -               };
> -
> -               cpu4: cpu at 4 {
> -                       compatible = "sifive,u54-mc", "sifive,rocket0", "riscv";
> -                       d-cache-block-size = <64>;
> -                       d-cache-sets = <64>;
> -                       d-cache-size = <32768>;
> -                       d-tlb-sets = <1>;
> -                       d-tlb-size = <32>;
> -                       device_type = "cpu";
> -                       i-cache-block-size = <64>;
> -                       i-cache-sets = <64>;
> -                       i-cache-size = <32768>;
> -                       i-tlb-sets = <1>;
> -                       i-tlb-size = <32>;
> -                       mmu-type = "riscv,sv39";
> -                       reg = <4>;
> -                       riscv,isa = "rv64imafdc";
> -                       clocks = <&clkcfg CLK_CPU>;
> -                       tlb-split;
> -                       next-level-cache = <&cctrllr>;
> -                       status = "okay";
> -                       cpu4_intc: interrupt-controller {
> -                               #interrupt-cells = <1>;
> -                               compatible = "riscv,cpu-intc";
> -                               interrupt-controller;
> -                       };
> -               };
> -
> -               cpu-map {
> -                       cluster0 {
> -                               core0 {
> -                                       cpu = <&cpu0>;
> -                               };
> -
> -                               core1 {
> -                                       cpu = <&cpu1>;
> -                               };
> -
> -                               core2 {
> -                                       cpu = <&cpu2>;
> -                               };
> -
> -                               core3 {
> -                                       cpu = <&cpu3>;
> -                               };
> -
> -                               core4 {
> -                                       cpu = <&cpu4>;
> -                               };
> -                       };
> -               };
> -       };
> -
> -       refclk: mssrefclk {
> -               compatible = "fixed-clock";
> -               #clock-cells = <0>;
> -       };
> -
> -       syscontroller: syscontroller {
> -               compatible = "microchip,mpfs-sys-controller";
> -               mboxes = <&mbox 0>;
> -       };
> -
> -       soc {
> -               #address-cells = <2>;
> -               #size-cells = <2>;
> -               compatible = "simple-bus";
> -               ranges;
> -
> -               cctrllr: cache-controller at 2010000 {
> -                       compatible = "microchip,mpfs-ccache", "sifive,fu540-c000-ccache", "cache";
> -                       reg = <0x0 0x2010000 0x0 0x1000>;
> -                       cache-block-size = <64>;
> -                       cache-level = <2>;
> -                       cache-sets = <1024>;
> -                       cache-size = <2097152>;
> -                       cache-unified;
> -                       interrupt-parent = <&plic>;
> -                       interrupts = <1>, <3>, <4>, <2>;
> -               };
> -
> -               clint: clint at 2000000 {
> -                       compatible = "sifive,fu540-c000-clint", "sifive,clint0";
> -                       reg = <0x0 0x2000000 0x0 0xC000>;
> -                       interrupts-extended = <&cpu0_intc 3>, <&cpu0_intc 7>,
> -                                             <&cpu1_intc 3>, <&cpu1_intc 7>,
> -                                             <&cpu2_intc 3>, <&cpu2_intc 7>,
> -                                             <&cpu3_intc 3>, <&cpu3_intc 7>,
> -                                             <&cpu4_intc 3>, <&cpu4_intc 7>;
> -               };
> -
> -               plic: interrupt-controller at c000000 {
> -                       compatible = "sifive,fu540-c000-plic", "sifive,plic-1.0.0";
> -                       reg = <0x0 0xc000000 0x0 0x4000000>;
> -                       #address-cells = <0>;
> -                       #interrupt-cells = <1>;
> -                       interrupt-controller;
> -                       interrupts-extended = <&cpu0_intc 11>,
> -                                             <&cpu1_intc 11>, <&cpu1_intc 9>,
> -                                             <&cpu2_intc 11>, <&cpu2_intc 9>,
> -                                             <&cpu3_intc 11>, <&cpu3_intc 9>,
> -                                             <&cpu4_intc 11>, <&cpu4_intc 9>;
> -                       riscv,ndev = <186>;
> -               };
> -
> -               pdma: dma-controller at 3000000 {
> -                       compatible = "sifive,fu540-c000-pdma", "sifive,pdma0";
> -                       reg = <0x0 0x3000000 0x0 0x8000>;
> -                       interrupt-parent = <&plic>;
> -                       interrupts = <5 6>, <7 8>, <9 10>, <11 12>;
> -                       dma-channels = <4>;
> -                       #dma-cells = <1>;
> -               };
> -
> -               clkcfg: clkcfg at 20002000 {
> -                       compatible = "microchip,mpfs-clkcfg";
> -                       reg = <0x0 0x20002000 0x0 0x1000>, <0x0 0x3E001000 0x0 0x1000>;
> -                       clocks = <&refclk>;
> -                       #clock-cells = <1>;
> -                       #reset-cells = <1>;
> -               };
> -
> -               ccc_se: clock-controller at 38010000 {
> -                       compatible = "microchip,mpfs-ccc";
> -                       reg = <0x0 0x38010000 0x0 0x1000>, <0x0 0x38020000 0x0 0x1000>,
> -                             <0x0 0x39010000 0x0 0x1000>, <0x0 0x39020000 0x0 0x1000>;
> -                       #clock-cells = <1>;
> -                       status = "disabled";
> -               };
> -
> -               ccc_ne: clock-controller at 38040000 {
> -                       compatible = "microchip,mpfs-ccc";
> -                       reg = <0x0 0x38040000 0x0 0x1000>, <0x0 0x38080000 0x0 0x1000>,
> -                             <0x0 0x39040000 0x0 0x1000>, <0x0 0x39080000 0x0 0x1000>;
> -                       #clock-cells = <1>;
> -                       status = "disabled";
> -               };
> -
> -               ccc_nw: clock-controller at 38100000 {
> -                       compatible = "microchip,mpfs-ccc";
> -                       reg = <0x0 0x38100000 0x0 0x1000>, <0x0 0x38200000 0x0 0x1000>,
> -                             <0x0 0x39100000 0x0 0x1000>, <0x0 0x39200000 0x0 0x1000>;
> -                       #clock-cells = <1>;
> -                       status = "disabled";
> -               };
> -
> -               ccc_sw: clock-controller at 38400000 {
> -                       compatible = "microchip,mpfs-ccc";
> -                       reg = <0x0 0x38400000 0x0 0x1000>, <0x0 0x38800000 0x0 0x1000>,
> -                             <0x0 0x39400000 0x0 0x1000>, <0x0 0x39800000 0x0 0x1000>;
> -                       #clock-cells = <1>;
> -                       status = "disabled";
> -               };
> -
> -               mmuart0: serial at 20000000 {
> -                       compatible = "ns16550a";
> -                       reg = <0x0 0x20000000 0x0 0x400>;
> -                       reg-io-width = <4>;
> -                       reg-shift = <2>;
> -                       interrupt-parent = <&plic>;
> -                       interrupts = <90>;
> -                       current-speed = <115200>;
> -                       clocks = <&clkcfg CLK_MMUART0>;
> -                       status = "disabled"; /* Reserved for the HSS */
> -               };
> -
> -               mmuart1: serial at 20100000 {
> -                       compatible = "ns16550a";
> -                       reg = <0x0 0x20100000 0x0 0x400>;
> -                       reg-io-width = <4>;
> -                       reg-shift = <2>;
> -                       interrupt-parent = <&plic>;
> -                       interrupts = <91>;
> -                       current-speed = <115200>;
> -                       clocks = <&clkcfg CLK_MMUART1>;
> -                       status = "disabled";
> -               };
> -
> -               mmuart2: serial at 20102000 {
> -                       compatible = "ns16550a";
> -                       reg = <0x0 0x20102000 0x0 0x400>;
> -                       reg-io-width = <4>;
> -                       reg-shift = <2>;
> -                       interrupt-parent = <&plic>;
> -                       interrupts = <92>;
> -                       current-speed = <115200>;
> -                       clocks = <&clkcfg CLK_MMUART2>;
> -                       status = "disabled";
> -               };
> -
> -               mmuart3: serial at 20104000 {
> -                       compatible = "ns16550a";
> -                       reg = <0x0 0x20104000 0x0 0x400>;
> -                       reg-io-width = <4>;
> -                       reg-shift = <2>;
> -                       interrupt-parent = <&plic>;
> -                       interrupts = <93>;
> -                       current-speed = <115200>;
> -                       clocks = <&clkcfg CLK_MMUART3>;
> -                       status = "disabled";
> -               };
> -
> -               mmuart4: serial at 20106000 {
> -                       compatible = "ns16550a";
> -                       reg = <0x0 0x20106000 0x0 0x400>;
> -                       reg-io-width = <4>;
> -                       reg-shift = <2>;
> -                       interrupt-parent = <&plic>;
> -                       interrupts = <94>;
> -                       clocks = <&clkcfg CLK_MMUART4>;
> -                       current-speed = <115200>;
> -                       status = "disabled";
> -               };
> -
> -               /* Common node entry for emmc/sd */
> -               mmc: mmc at 20008000 {
> -                       compatible = "microchip,mpfs-sd4hc", "cdns,sd4hc";
> -                       reg = <0x0 0x20008000 0x0 0x1000>;
> -                       interrupt-parent = <&plic>;
> -                       interrupts = <88>;
> -                       clocks = <&clkcfg CLK_MMC>;
> -                       max-frequency = <200000000>;
> -                       status = "disabled";
> -               };
> -
> -               spi0: spi at 20108000 {
> -                       compatible = "microchip,mpfs-spi";
> -                       #address-cells = <1>;
> -                       #size-cells = <0>;
> -                       reg = <0x0 0x20108000 0x0 0x1000>;
> -                       interrupt-parent = <&plic>;
> -                       interrupts = <54>;
> -                       clocks = <&clkcfg CLK_SPI0>;
> -                       status = "disabled";
> -               };
> -
> -               spi1: spi at 20109000 {
> -                       compatible = "microchip,mpfs-spi";
> -                       #address-cells = <1>;
> -                       #size-cells = <0>;
> -                       reg = <0x0 0x20109000 0x0 0x1000>;
> -                       interrupt-parent = <&plic>;
> -                       interrupts = <55>;
> -                       clocks = <&clkcfg CLK_SPI1>;
> -                       status = "disabled";
> -               };
> -
> -               qspi: spi at 21000000 {
> -                       compatible = "microchip,mpfs-qspi", "microchip,coreqspi-rtl-v2";
> -                       #address-cells = <1>;
> -                       #size-cells = <0>;
> -                       reg = <0x0 0x21000000 0x0 0x1000>;
> -                       interrupt-parent = <&plic>;
> -                       interrupts = <85>;
> -                       clocks = <&clkcfg CLK_QSPI>;
> -                       status = "disabled";
> -               };
> -
> -               i2c0: i2c at 2010a000 {
> -                       compatible = "microchip,mpfs-i2c", "microchip,corei2c-rtl-v7";
> -                       reg = <0x0 0x2010a000 0x0 0x1000>;
> -                       #address-cells = <1>;
> -                       #size-cells = <0>;
> -                       interrupt-parent = <&plic>;
> -                       interrupts = <58>;
> -                       clocks = <&clkcfg CLK_I2C0>;
> -                       clock-frequency = <100000>;
> -                       status = "disabled";
> -               };
> -
> -               i2c1: i2c at 2010b000 {
> -                       compatible = "microchip,mpfs-i2c", "microchip,corei2c-rtl-v7";
> -                       reg = <0x0 0x2010b000 0x0 0x1000>;
> -                       #address-cells = <1>;
> -                       #size-cells = <0>;
> -                       interrupt-parent = <&plic>;
> -                       interrupts = <61>;
> -                       clocks = <&clkcfg CLK_I2C1>;
> -                       clock-frequency = <100000>;
> -                       status = "disabled";
> -               };
> -
> -               can0: can at 2010c000 {
> -                       compatible = "microchip,mpfs-can";
> -                       reg = <0x0 0x2010c000 0x0 0x1000>;
> -                       clocks = <&clkcfg CLK_CAN0>;
> -                       interrupt-parent = <&plic>;
> -                       interrupts = <56>;
> -                       status = "disabled";
> -               };
> -
> -               can1: can at 2010d000 {
> -                       compatible = "microchip,mpfs-can";
> -                       reg = <0x0 0x2010d000 0x0 0x1000>;
> -                       clocks = <&clkcfg CLK_CAN1>;
> -                       interrupt-parent = <&plic>;
> -                       interrupts = <57>;
> -                       status = "disabled";
> -               };
> -
> -               mac0: ethernet at 20110000 {
> -                       compatible = "microchip,mpfs-macb", "cdns,macb";
> -                       reg = <0x0 0x20110000 0x0 0x2000>;
> -                       #address-cells = <1>;
> -                       #size-cells = <0>;
> -                       interrupt-parent = <&plic>;
> -                       interrupts = <64>, <65>, <66>, <67>, <68>, <69>;
> -                       local-mac-address = [00 00 00 00 00 00];
> -                       clocks = <&clkcfg CLK_MAC0>, <&clkcfg CLK_AHB>;
> -                       clock-names = "pclk", "hclk";
> -                       resets = <&clkcfg CLK_MAC0>;
> -                       status = "disabled";
> -               };
> -
> -               mac1: ethernet at 20112000 {
> -                       compatible = "microchip,mpfs-macb", "cdns,macb";
> -                       reg = <0x0 0x20112000 0x0 0x2000>;
> -                       #address-cells = <1>;
> -                       #size-cells = <0>;
> -                       interrupt-parent = <&plic>;
> -                       interrupts = <70>, <71>, <72>, <73>, <74>, <75>;
> -                       local-mac-address = [00 00 00 00 00 00];
> -                       clocks = <&clkcfg CLK_MAC1>, <&clkcfg CLK_AHB>;
> -                       clock-names = "pclk", "hclk";
> -                       resets = <&clkcfg CLK_MAC1>;
> -                       status = "disabled";
> -               };
> -
> -               gpio0: gpio at 20120000 {
> -                       compatible = "microchip,mpfs-gpio";
> -                       reg = <0x0 0x20120000 0x0 0x1000>;
> -                       interrupt-parent = <&plic>;
> -                       interrupt-controller;
> -                       #interrupt-cells = <1>;
> -                       clocks = <&clkcfg CLK_GPIO0>;
> -                       gpio-controller;
> -                       #gpio-cells = <2>;
> -                       status = "disabled";
> -               };
> -
> -               gpio1: gpio at 20121000 {
> -                       compatible = "microchip,mpfs-gpio";
> -                       reg = <0x0 0x20121000 0x0 0x1000>;
> -                       interrupt-parent = <&plic>;
> -                       interrupt-controller;
> -                       #interrupt-cells = <1>;
> -                       clocks = <&clkcfg CLK_GPIO1>;
> -                       gpio-controller;
> -                       #gpio-cells = <2>;
> -                       status = "disabled";
> -               };
> -
> -               gpio2: gpio at 20122000 {
> -                       compatible = "microchip,mpfs-gpio";
> -                       reg = <0x0 0x20122000 0x0 0x1000>;
> -                       interrupt-parent = <&plic>;
> -                       interrupt-controller;
> -                       #interrupt-cells = <1>;
> -                       clocks = <&clkcfg CLK_GPIO2>;
> -                       gpio-controller;
> -                       #gpio-cells = <2>;
> -                       status = "disabled";
> -               };
> -
> -               rtc: rtc at 20124000 {
> -                       compatible = "microchip,mpfs-rtc";
> -                       reg = <0x0 0x20124000 0x0 0x1000>;
> -                       interrupt-parent = <&plic>;
> -                       interrupts = <80>, <81>;
> -                       clocks = <&clkcfg CLK_RTC>, <&clkcfg CLK_RTCREF>;
> -                       clock-names = "rtc", "rtcref";
> -                       status = "disabled";
> -               };
> -
> -               usb: usb at 20201000 {
> -                       compatible = "microchip,mpfs-musb";
> -                       reg = <0x0 0x20201000 0x0 0x1000>;
> -                       interrupt-parent = <&plic>;
> -                       interrupts = <86>, <87>;
> -                       clocks = <&clkcfg CLK_USB>;
> -                       interrupt-names = "dma","mc";
> -                       status = "disabled";
> -               };
> -
> -               mbox: mailbox at 37020000 {
> -                       compatible = "microchip,mpfs-mailbox";
> -                       reg = <0x0 0x37020000 0x0 0x58>, <0x0 0x2000318C 0x0 0x40>,
> -                             <0x0 0x37020800 0x0 0x100>;
> -                       interrupt-parent = <&plic>;
> -                       interrupts = <96>;
> -                       #mbox-cells = <1>;
> -                       status = "disabled";
> -               };
> -       };
> -};
> diff --git a/configs/microchip_mpfs_icicle_defconfig b/configs/microchip_mpfs_icicle_defconfig
> index 94952a96762..a35721a8a89 100644
> --- a/configs/microchip_mpfs_icicle_defconfig
> +++ b/configs/microchip_mpfs_icicle_defconfig
> @@ -4,8 +4,8 @@ CONFIG_SYS_MALLOC_F_LEN=0x2000
>  CONFIG_HAS_CUSTOM_SYS_INIT_SP_ADDR=y
>  CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0x80200000
>  CONFIG_ENV_SIZE=0x2000
> -CONFIG_DEFAULT_DEVICE_TREE="mpfs-icicle-kit"
> -CONFIG_SYS_BOOTM_LEN=0x4000000
> +CONFIG_DEFAULT_DEVICE_TREE="microchip/mpfs-icicle-kit"
> +CONFIG_OF_UPSTREAM=y
>  CONFIG_SYS_LOAD_ADDR=0x80200000
>  CONFIG_SYS_MEM_TOP_HIDE=0x400000
>  CONFIG_TARGET_MICROCHIP_ICICLE=y
> diff --git a/dts/upstream/src/riscv/Makefile b/dts/upstream/src/riscv/Makefile
> new file mode 100644
> index 00000000000..980617e6de3
> --- /dev/null
> +++ b/dts/upstream/src/riscv/Makefile
> @@ -0,0 +1,6 @@
> +# SPDX-License-Identifier: GPL-2.0+
> +
> +include $(srctree)/scripts/Makefile.dts
> +
> +DTC_FLAGS += -R 4 -p 0x1000
> +
> --
> 2.45.2
>


More information about the U-Boot mailing list