diff mbox series

[5/5] riscv: ae350: dts: Add missing "u-boot, dm-spl" for SPL config

Message ID 20210604055113.3630286-5-bmeng.cn@gmail.com
State Accepted
Commit 77eae0ebe6858805416cdc091975156a19185427
Delegated to: Andes
Headers show
Series [1/5] riscv: ae350: dts: Add SPDX license header | expand

Commit Message

Bin Meng June 4, 2021, 5:51 a.m. UTC
At present the AE350 SPL defconfig is using OF_PRIOR_STAGE. The
intention was to use gdb to load device tree before running U-Boot
SPL/proper from RAM. When we switch to OF_SEPARATE we will have to
use our own DT but without "u-boot,dm-spl" in several essential
nodes, SPL does not boot.

Let's add all the required "u-boot,dm-spl" for SPL config.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
---

 arch/riscv/dts/ae350-u-boot.dtsi | 52 ++++++++++++++++++++++++++++++++
 arch/riscv/dts/ae350_32.dts      |  1 +
 arch/riscv/dts/ae350_64.dts      |  1 +
 3 files changed, 54 insertions(+)
 create mode 100644 arch/riscv/dts/ae350-u-boot.dtsi

Comments

Rick Chen June 9, 2021, 7:06 a.m. UTC | #1
Hi Bin,

> From: Bin Meng <bmeng.cn@gmail.com>
> Sent: Friday, June 04, 2021 1:51 PM
> To: Rick Jian-Zhi Chen(陳建志) <rick@andestech.com>; Leo Yu-Chi Liang(梁育齊) <ycliang@andestech.com>; U-Boot Mailing List <u-boot@lists.denx.de>
> Subject: [PATCH 5/5] riscv: ae350: dts: Add missing "u-boot,dm-spl" for SPL config
>
> At present the AE350 SPL defconfig is using OF_PRIOR_STAGE. The intention was to use gdb to load device tree before running U-Boot SPL/proper from RAM. When we switch to OF_SEPARATE we will have to use our own DT but without "u-boot,dm-spl" in several essential nodes, SPL does not boot.

Can you describe how do you verify and provide the steps about that
SPL boot fail that I can duplicate it. :)

Thanks,
Rick.

>
> Let's add all the required "u-boot,dm-spl" for SPL config.
>
> Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
> ---
>
>  arch/riscv/dts/ae350-u-boot.dtsi | 52 ++++++++++++++++++++++++++++++++
>  arch/riscv/dts/ae350_32.dts      |  1 +
>  arch/riscv/dts/ae350_64.dts      |  1 +
>  3 files changed, 54 insertions(+)
>  create mode 100644 arch/riscv/dts/ae350-u-boot.dtsi
>
> diff --git a/arch/riscv/dts/ae350-u-boot.dtsi b/arch/riscv/dts/ae350-u-boot.dtsi
> new file mode 100644
> index 0000000000..0d4201cfae
> --- /dev/null
> +++ b/arch/riscv/dts/ae350-u-boot.dtsi
> @@ -0,0 +1,52 @@
> +// SPDX-License-Identifier: (GPL-2.0 OR MIT)
> +
> +/ {
> +       cpus {
> +               u-boot,dm-spl;
> +               CPU0: cpu@0 {
> +                       u-boot,dm-spl;
> +                       CPU0_intc: interrupt-controller {
> +                               u-boot,dm-spl;
> +                       };
> +               };
> +               CPU1: cpu@1 {
> +                       u-boot,dm-spl;
> +                       CPU1_intc: interrupt-controller {
> +                               u-boot,dm-spl;
> +                       };
> +               };
> +               CPU2: cpu@2 {
> +                       u-boot,dm-spl;
> +                       CPU2_intc: interrupt-controller {
> +                               u-boot,dm-spl;
> +                       };
> +               };
> +               CPU3: cpu@3 {
> +                       u-boot,dm-spl;
> +                       CPU3_intc: interrupt-controller {
> +                               u-boot,dm-spl;
> +                       };
> +               };
> +       };
> +
> +       memory@0 {
> +               u-boot,dm-spl;
> +       };
> +
> +       soc {
> +               u-boot,dm-spl;
> +
> +               plic1: interrupt-controller@e6400000 {
> +                       u-boot,dm-spl;
> +               };
> +
> +               plmt0@e6000000 {
> +                       u-boot,dm-spl;
> +               };
> +       };
> +
> +       serial0: serial@f0300000 {
> +               u-boot,dm-spl;
> +       };
> +
> +};
> diff --git a/arch/riscv/dts/ae350_32.dts b/arch/riscv/dts/ae350_32.dts index 70576846f2..083f676333 100644
> --- a/arch/riscv/dts/ae350_32.dts
> +++ b/arch/riscv/dts/ae350_32.dts
> @@ -3,6 +3,7 @@
>  /dts-v1/;
>
>  #include "binman.dtsi"
> +#include "ae350-u-boot.dtsi"
>
>  / {
>         #address-cells = <1>;
> diff --git a/arch/riscv/dts/ae350_64.dts b/arch/riscv/dts/ae350_64.dts index 564e94a1db..74cff9122d 100644
> --- a/arch/riscv/dts/ae350_64.dts
> +++ b/arch/riscv/dts/ae350_64.dts
> @@ -3,6 +3,7 @@
>  /dts-v1/;
>
>  #include "binman.dtsi"
> +#include "ae350-u-boot.dtsi"
>
>  / {
>         #address-cells = <2>;
> --
> 2.25.1
>
> CONFIDENTIALITY NOTICE:
>
> This e-mail (and its attachments) may contain confidential and legally privileged information or information protected from disclosure. If you are not the intended recipient, you are hereby notified that any disclosure, copying, distribution, or use of the information contained herein is strictly prohibited. In this case, please immediately notify the sender by return e-mail, delete the message (and any accompanying documents) and destroy all printed hard copies. Thank you for your cooperation.
>
> Copyright ANDES TECHNOLOGY CORPORATION - All Rights Reserved.
Bin Meng June 9, 2021, 7:20 a.m. UTC | #2
Hi Rick,

On Wed, Jun 9, 2021 at 3:06 PM Rick Chen <rickchen36@gmail.com> wrote:
>
> Hi Bin,
>
> > From: Bin Meng <bmeng.cn@gmail.com>
> > Sent: Friday, June 04, 2021 1:51 PM
> > To: Rick Jian-Zhi Chen(陳建志) <rick@andestech.com>; Leo Yu-Chi Liang(梁育齊) <ycliang@andestech.com>; U-Boot Mailing List <u-boot@lists.denx.de>
> > Subject: [PATCH 5/5] riscv: ae350: dts: Add missing "u-boot,dm-spl" for SPL config
> >
> > At present the AE350 SPL defconfig is using OF_PRIOR_STAGE. The intention was to use gdb to load device tree before running U-Boot SPL/proper from RAM. When we switch to OF_SEPARATE we will have to use our own DT but without "u-boot,dm-spl" in several essential nodes, SPL does not boot.
>
> Can you describe how do you verify and provide the steps about that
> SPL boot fail that I can duplicate it. :)

$ make ae350_rv64_spl_defconfig; make -j
$ make menuconfig (change OF_PRIOR_STAGE to OF_EMBED or OF_SEPARATE)

Load u-boot.bin to RAM

Regards,
Bin
Rick Chen June 12, 2021, 1:30 p.m. UTC | #3
HI Bin

> Hi Rick,
>
> On Wed, Jun 9, 2021 at 3:06 PM Rick Chen <rickchen36@gmail.com> wrote:
> >
> > Hi Bin,
> >
> > > From: Bin Meng <bmeng.cn@gmail.com>
> > > Sent: Friday, June 04, 2021 1:51 PM
> > > To: Rick Jian-Zhi Chen(陳建志) <rick@andestech.com>; Leo Yu-Chi Liang(梁育齊) <ycliang@andestech.com>; U-Boot Mailing List <u-boot@lists.denx.de>
> > > Subject: [PATCH 5/5] riscv: ae350: dts: Add missing "u-boot,dm-spl" for SPL config
> > >
> > > At present the AE350 SPL defconfig is using OF_PRIOR_STAGE. The intention was to use gdb to load device tree before running U-Boot SPL/proper from RAM. When we switch to OF_SEPARATE we will have to use our own DT but without "u-boot,dm-spl" in several essential nodes, SPL does not boot.
> >
> > Can you describe how do you verify and provide the steps about that
> > SPL boot fail that I can duplicate it. :)
>
> $ make ae350_rv64_spl_defconfig; make -j
> $ make menuconfig (change OF_PRIOR_STAGE to OF_EMBED or OF_SEPARATE)
>
> Load u-boot.bin to RAM

It can boot with OF_EMBED.
But it compile fail with choosing OF_EMBED at the first time, fail
messages as below:

binman: [Errno 2] No such file or directory: 'u-boot.dtb'
Makefile:1084: recipe for target 'all' failed
make: *** [all] Error 1

Thanks,
Rick

>
> Regards,
> Bin
Bin Meng June 12, 2021, 2:33 p.m. UTC | #4
Hi Rick,

On Sat, Jun 12, 2021 at 9:30 PM Rick Chen <rickchen36@gmail.com> wrote:
>
> HI Bin
>
> > Hi Rick,
> >
> > On Wed, Jun 9, 2021 at 3:06 PM Rick Chen <rickchen36@gmail.com> wrote:
> > >
> > > Hi Bin,
> > >
> > > > From: Bin Meng <bmeng.cn@gmail.com>
> > > > Sent: Friday, June 04, 2021 1:51 PM
> > > > To: Rick Jian-Zhi Chen(陳建志) <rick@andestech.com>; Leo Yu-Chi Liang(梁育齊) <ycliang@andestech.com>; U-Boot Mailing List <u-boot@lists.denx.de>
> > > > Subject: [PATCH 5/5] riscv: ae350: dts: Add missing "u-boot,dm-spl" for SPL config
> > > >
> > > > At present the AE350 SPL defconfig is using OF_PRIOR_STAGE. The intention was to use gdb to load device tree before running U-Boot SPL/proper from RAM. When we switch to OF_SEPARATE we will have to use our own DT but without "u-boot,dm-spl" in several essential nodes, SPL does not boot.
> > >
> > > Can you describe how do you verify and provide the steps about that
> > > SPL boot fail that I can duplicate it. :)
> >
> > $ make ae350_rv64_spl_defconfig; make -j
> > $ make menuconfig (change OF_PRIOR_STAGE to OF_EMBED or OF_SEPARATE)
> >
> > Load u-boot.bin to RAM
>
> It can boot with OF_EMBED.
> But it compile fail with choosing OF_EMBED at the first time, fail
> messages as below:
>
> binman: [Errno 2] No such file or directory: 'u-boot.dtb'
> Makefile:1084: recipe for target 'all' failed
> make: *** [all] Error 1

Yes, this is a known issue of the binman conversion for SPL. OF_EMBED
is a debugging purpose hence I am inclined to leave it as is.

Regards,
Bin
Rick Chen June 15, 2021, 3:19 a.m. UTC | #5
> Hi Rick,
>
> On Sat, Jun 12, 2021 at 9:30 PM Rick Chen <rickchen36@gmail.com> wrote:
> >
> > HI Bin
> >
> > > Hi Rick,
> > >
> > > On Wed, Jun 9, 2021 at 3:06 PM Rick Chen <rickchen36@gmail.com> wrote:
> > > >
> > > > Hi Bin,
> > > >
> > > > > From: Bin Meng <bmeng.cn@gmail.com>
> > > > > Sent: Friday, June 04, 2021 1:51 PM
> > > > > To: Rick Jian-Zhi Chen(陳建志) <rick@andestech.com>; Leo Yu-Chi Liang(梁育齊) <ycliang@andestech.com>; U-Boot Mailing List <u-boot@lists.denx.de>
> > > > > Subject: [PATCH 5/5] riscv: ae350: dts: Add missing "u-boot,dm-spl" for SPL config
> > > > >
> > > > > At present the AE350 SPL defconfig is using OF_PRIOR_STAGE. The intention was to use gdb to load device tree before running U-Boot SPL/proper from RAM. When we switch to OF_SEPARATE we will have to use our own DT but without "u-boot,dm-spl" in several essential nodes, SPL does not boot.
> > > >
> > > > Can you describe how do you verify and provide the steps about that
> > > > SPL boot fail that I can duplicate it. :)
> > >
> > > $ make ae350_rv64_spl_defconfig; make -j
> > > $ make menuconfig (change OF_PRIOR_STAGE to OF_EMBED or OF_SEPARATE)
> > >
> > > Load u-boot.bin to RAM
> >
> > It can boot with OF_EMBED.
> > But it compile fail with choosing OF_EMBED at the first time, fail
> > messages as below:
> >
> > binman: [Errno 2] No such file or directory: 'u-boot.dtb'
> > Makefile:1084: recipe for target 'all' failed
> > make: *** [all] Error 1
>
> Yes, this is a known issue of the binman conversion for SPL. OF_EMBED
> is a debugging purpose hence I am inclined to leave it as is.

Reviewed-by: Rick Chen <rick@andestech.com>

>
> Regards,
> Bin
diff mbox series

Patch

diff --git a/arch/riscv/dts/ae350-u-boot.dtsi b/arch/riscv/dts/ae350-u-boot.dtsi
new file mode 100644
index 0000000000..0d4201cfae
--- /dev/null
+++ b/arch/riscv/dts/ae350-u-boot.dtsi
@@ -0,0 +1,52 @@ 
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
+
+/ {
+	cpus {
+		u-boot,dm-spl;
+		CPU0: cpu@0 {
+			u-boot,dm-spl;
+			CPU0_intc: interrupt-controller {
+				u-boot,dm-spl;
+			};
+		};
+		CPU1: cpu@1 {
+			u-boot,dm-spl;
+			CPU1_intc: interrupt-controller {
+				u-boot,dm-spl;
+			};
+		};
+		CPU2: cpu@2 {
+			u-boot,dm-spl;
+			CPU2_intc: interrupt-controller {
+				u-boot,dm-spl;
+			};
+		};
+		CPU3: cpu@3 {
+			u-boot,dm-spl;
+			CPU3_intc: interrupt-controller {
+				u-boot,dm-spl;
+			};
+		};
+	};
+
+	memory@0 {
+		u-boot,dm-spl;
+	};
+
+	soc {
+		u-boot,dm-spl;
+
+		plic1: interrupt-controller@e6400000 {
+			u-boot,dm-spl;
+		};
+
+		plmt0@e6000000 {
+			u-boot,dm-spl;
+		};
+	};
+
+	serial0: serial@f0300000 {
+		u-boot,dm-spl;
+	};
+
+};
diff --git a/arch/riscv/dts/ae350_32.dts b/arch/riscv/dts/ae350_32.dts
index 70576846f2..083f676333 100644
--- a/arch/riscv/dts/ae350_32.dts
+++ b/arch/riscv/dts/ae350_32.dts
@@ -3,6 +3,7 @@ 
 /dts-v1/;
 
 #include "binman.dtsi"
+#include "ae350-u-boot.dtsi"
 
 / {
 	#address-cells = <1>;
diff --git a/arch/riscv/dts/ae350_64.dts b/arch/riscv/dts/ae350_64.dts
index 564e94a1db..74cff9122d 100644
--- a/arch/riscv/dts/ae350_64.dts
+++ b/arch/riscv/dts/ae350_64.dts
@@ -3,6 +3,7 @@ 
 /dts-v1/;
 
 #include "binman.dtsi"
+#include "ae350-u-boot.dtsi"
 
 / {
 	#address-cells = <2>;