All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH 1/3] board/andes: rearrange nds32 folder structure
@ 2022-02-15  2:32 Yu Chien Peter Lin
  2022-02-15  2:32 ` [Buildroot] [PATCH 2/3] board/andes/ae350: add support for Andes AE350 Yu Chien Peter Lin
  2022-02-15  2:32 ` [Buildroot] [PATCH 3/3] DEVELOPERS: add Yu-Chien Lin to board/andes Yu Chien Peter Lin
  0 siblings, 2 replies; 8+ messages in thread
From: Yu Chien Peter Lin @ 2022-02-15  2:32 UTC (permalink / raw)
  To: buildroot; +Cc: giulio.benetti, Yu Chien Peter Lin, alankao

Rearrange nds32 folder structure to add AE350 platform.

Signed-off-by: Yu Chien Peter Lin <peterlin@andestech.com>
Signed-off-by: Alan Kao <alankao@andestech.com>
---
 .../patches/linux/0001-nds32-Fix-boot-messages-garbled.patch    | 0
 ...2-scripts-dtc-Remove-redundant-YYLOC-global-declaratio.patch | 0
 board/andes/{ => ae3xx}/readme.txt                              | 0
 configs/andes_ae3xx_defconfig                                   | 2 +-
 4 files changed, 1 insertion(+), 1 deletion(-)
 rename board/andes/{ => ae3xx}/patches/linux/0001-nds32-Fix-boot-messages-garbled.patch (100%)
 rename board/andes/{ => ae3xx}/patches/linux/0002-scripts-dtc-Remove-redundant-YYLOC-global-declaratio.patch (100%)
 rename board/andes/{ => ae3xx}/readme.txt (100%)

diff --git a/board/andes/patches/linux/0001-nds32-Fix-boot-messages-garbled.patch b/board/andes/ae3xx/patches/linux/0001-nds32-Fix-boot-messages-garbled.patch
similarity index 100%
rename from board/andes/patches/linux/0001-nds32-Fix-boot-messages-garbled.patch
rename to board/andes/ae3xx/patches/linux/0001-nds32-Fix-boot-messages-garbled.patch
diff --git a/board/andes/patches/linux/0002-scripts-dtc-Remove-redundant-YYLOC-global-declaratio.patch b/board/andes/ae3xx/patches/linux/0002-scripts-dtc-Remove-redundant-YYLOC-global-declaratio.patch
similarity index 100%
rename from board/andes/patches/linux/0002-scripts-dtc-Remove-redundant-YYLOC-global-declaratio.patch
rename to board/andes/ae3xx/patches/linux/0002-scripts-dtc-Remove-redundant-YYLOC-global-declaratio.patch
diff --git a/board/andes/readme.txt b/board/andes/ae3xx/readme.txt
similarity index 100%
rename from board/andes/readme.txt
rename to board/andes/ae3xx/readme.txt
diff --git a/configs/andes_ae3xx_defconfig b/configs/andes_ae3xx_defconfig
index 52634caa50..18051115c3 100644
--- a/configs/andes_ae3xx_defconfig
+++ b/configs/andes_ae3xx_defconfig
@@ -1,5 +1,5 @@
 BR2_nds32=y
-BR2_GLOBAL_PATCH_DIR="board/andes/patches/"
+BR2_GLOBAL_PATCH_DIR="board/andes/ae3xx/patches"
 BR2_TOOLCHAIN_EXTERNAL=y
 BR2_TOOLCHAIN_EXTERNAL_ANDES_NDS32=y
 BR2_LINUX_KERNEL=y
-- 
2.25.1

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [Buildroot] [PATCH 2/3] board/andes/ae350: add support for Andes AE350
  2022-02-15  2:32 [Buildroot] [PATCH 1/3] board/andes: rearrange nds32 folder structure Yu Chien Peter Lin
@ 2022-02-15  2:32 ` Yu Chien Peter Lin
  2022-02-15  5:14   ` Yu Chien Peter Lin
  2022-02-21 19:10   ` Giulio Benetti
  2022-02-15  2:32 ` [Buildroot] [PATCH 3/3] DEVELOPERS: add Yu-Chien Lin to board/andes Yu Chien Peter Lin
  1 sibling, 2 replies; 8+ messages in thread
From: Yu Chien Peter Lin @ 2022-02-15  2:32 UTC (permalink / raw)
  To: buildroot; +Cc: giulio.benetti, Yu Chien Peter Lin, alankao

This patch provides defconfig and basic support for the Andes
45 series RISC-V architecture.

Signed-off-by: Yu Chien Peter Lin <peterlin@andestech.com>
Signed-off-by: Alan Kao <alankao@andestech.com>
---
Changes
V1->V2:
* move linux source code and its patches to AndesTech Github repo
* rename ae350_andestar45_defconfig to andes_ae350_45_defconfig
* change C library to uClibc
* remove OpenSSL package
* remove rootfs.cpio and rootfs.tar
* update DEVELOPERS
V2->V3:
* specifiy branch to download from AndesTech linux repo
* change boot.cmd to extlinux.conf
* add post-build.sh for extlinux.conf to retrieve Image and DTB
* fix format and update genimage_sdcard.cfg
* update readme.txt
* add packages (python3, pylibfdt and openssl) for u-boot binman
* reorder item in DEVELOPERS

 board/andes/ae350/ae350.dts                   | 274 ++++++++++++++++++
 board/andes/ae350/genimage_sdcard.cfg         |  26 ++
 ...isable-PIC-explicitly-for-assembling.patch |  29 ++
 ...2-Enable-cache-for-opensbi-jump-mode.patch |  25 ++
 ...001-Fix-mmc-no-partition-table-error.patch |  27 ++
 ...2-Prevent-fw_dynamic-from-relocation.patch |  27 ++
 ...0003-Fix-u-boot-proper-booting-issue.patch |  26 ++
 ...04-Enable-printing-OpenSBI-boot-logo.patch |  25 ++
 board/andes/ae350/post-build.sh               |   3 +
 board/andes/ae350/readme.txt                  |  65 +++++
 .../boot/extlinux/extlinux.conf               |   4 +
 board/andes/ae350/uboot.config.fragment       |   5 +
 configs/andes_ae350_45_defconfig              |  43 +++
 13 files changed, 579 insertions(+)
 create mode 100755 board/andes/ae350/ae350.dts
 create mode 100644 board/andes/ae350/genimage_sdcard.cfg
 create mode 100644 board/andes/ae350/patches/opensbi/0001-Disable-PIC-explicitly-for-assembling.patch
 create mode 100644 board/andes/ae350/patches/opensbi/0002-Enable-cache-for-opensbi-jump-mode.patch
 create mode 100644 board/andes/ae350/patches/uboot/0001-Fix-mmc-no-partition-table-error.patch
 create mode 100644 board/andes/ae350/patches/uboot/0002-Prevent-fw_dynamic-from-relocation.patch
 create mode 100644 board/andes/ae350/patches/uboot/0003-Fix-u-boot-proper-booting-issue.patch
 create mode 100644 board/andes/ae350/patches/uboot/0004-Enable-printing-OpenSBI-boot-logo.patch
 create mode 100755 board/andes/ae350/post-build.sh
 create mode 100644 board/andes/ae350/readme.txt
 create mode 100644 board/andes/ae350/rootfs_overlay/boot/extlinux/extlinux.conf
 create mode 100644 board/andes/ae350/uboot.config.fragment
 create mode 100644 configs/andes_ae350_45_defconfig

diff --git a/board/andes/ae350/ae350.dts b/board/andes/ae350/ae350.dts
new file mode 100755
index 0000000000..5e5d70ab25
--- /dev/null
+++ b/board/andes/ae350/ae350.dts
@@ -0,0 +1,274 @@
+/dts-v1/;
+
+/ {
+	#address-cells = <2>;
+	#size-cells = <2>;
+	compatible = "andestech,ae350";
+	model = "andestech,ax45";
+	aliases {
+		uart0 = &serial0;
+		spi0 = &spi;
+	};
+
+	chosen {
+		bootargs = "console=ttyS0,38400n8 earlycon=sbi debug loglevel=7";
+		stdout-path = "uart0:38400n8";
+	};
+	cpus {
+		#address-cells = <1>;
+		#size-cells = <0>;
+		timebase-frequency = <60000000>;
+		CPU0: cpu@0 {
+			device_type = "cpu";
+			reg = <0>;
+			status = "okay";
+			compatible = "riscv";
+			riscv,isa = "rv64i2p0m2p0a2p0f2p0d2p0c2p0xv5-1p1xdsp0p0";
+			riscv,priv-major = <1>;
+			riscv,priv-minor = <10>;
+			mmu-type = "riscv,sv48";
+			clock-frequency = <60000000>;
+			i-cache-size = <0x8000>;
+			i-cache-sets = <256>;
+			i-cache-block-size = <64>;
+			i-cache-line-size = <64>;
+			d-cache-size = <0x8000>;
+			d-cache-sets = <128>;
+			d-cache-block-size = <64>;
+			d-cache-line-size = <64>;
+			next-level-cache = <&L2>;
+			CPU0_intc: interrupt-controller {
+				#interrupt-cells = <1>;
+				interrupt-controller;
+				compatible = "riscv,cpu-intc";
+			};
+		};
+		CPU1: cpu@1 {
+			device_type = "cpu";
+			reg = <1>;
+			status = "okay";
+			compatible = "riscv";
+			riscv,isa = "rv64i2p0m2p0a2p0f2p0d2p0c2p0xv5-1p1xdsp0p0";
+			riscv,priv-major = <1>;
+			riscv,priv-minor = <10>;
+			mmu-type = "riscv,sv48";
+			clock-frequency = <60000000>;
+			i-cache-size = <0x8000>;
+			i-cache-sets = <256>;
+			i-cache-block-size = <64>;
+			i-cache-line-size = <64>;
+			d-cache-size = <0x8000>;
+			d-cache-sets = <128>;
+			d-cache-block-size = <64>;
+			d-cache-line-size = <64>;
+			next-level-cache = <&L2>;
+			CPU1_intc: interrupt-controller {
+				#interrupt-cells = <1>;
+				interrupt-controller;
+				compatible = "riscv,cpu-intc";
+			};
+		};
+		CPU2: cpu@2 {
+			device_type = "cpu";
+			reg = <2>;
+			status = "okay";
+			compatible = "riscv";
+			riscv,isa = "rv64i2p0m2p0a2p0f2p0d2p0c2p0xv5-1p1xdsp0p0";
+			riscv,priv-major = <1>;
+			riscv,priv-minor = <10>;
+			mmu-type = "riscv,sv48";
+			clock-frequency = <60000000>;
+			i-cache-size = <0x8000>;
+			i-cache-sets = <256>;
+			i-cache-block-size = <64>;
+			i-cache-line-size = <64>;
+			d-cache-size = <0x8000>;
+			d-cache-sets = <128>;
+			d-cache-block-size = <64>;
+			d-cache-line-size = <64>;
+			next-level-cache = <&L2>;
+			CPU2_intc: interrupt-controller {
+				#interrupt-cells = <1>;
+				interrupt-controller;
+				compatible = "riscv,cpu-intc";
+			};
+		};
+		CPU3: cpu@3 {
+			device_type = "cpu";
+			reg = <3>;
+			status = "okay";
+			compatible = "riscv";
+			riscv,isa = "rv64i2p0m2p0a2p0f2p0d2p0c2p0xv5-1p1xdsp0p0";
+			riscv,priv-major = <1>;
+			riscv,priv-minor = <10>;
+			mmu-type = "riscv,sv48";
+			clock-frequency = <60000000>;
+			i-cache-size = <0x8000>;
+			i-cache-sets = <256>;
+			i-cache-block-size = <64>;
+			i-cache-line-size = <64>;
+			d-cache-size = <0x8000>;
+			d-cache-sets = <128>;
+			d-cache-block-size = <64>;
+			d-cache-line-size = <64>;
+			next-level-cache = <&L2>;
+			CPU3_intc: interrupt-controller {
+				#interrupt-cells = <1>;
+				interrupt-controller;
+				compatible = "riscv,cpu-intc";
+			};
+		};
+	};
+	L2: l2-cache@e0500000 {
+		compatible = "cache";
+		cache-level = <2>;
+		cache-size = <0x80000>;
+		reg = <0x00000000 0xe0500000 0x00000000 0x00001000>;
+		andes,inst-prefetch = <3>;
+		andes,data-prefetch = <3>;
+		// The value format is <XRAMOCTL XRAMICTL>
+		andes,tag-ram-ctl = <0 0>;
+		andes,data-ram-ctl = <0 0>;
+	};
+	memory@0 {
+		reg = <0x00000000 0x00000000 0x00000000 0x80000000>;
+		device_type = "memory";
+	};
+	soc {
+		#address-cells = <2>;
+		#size-cells = <2>;
+		compatible = "andestech,riscv-ae350-soc", "simple-bus";
+		ranges;
+		plic0: interrupt-controller@e4000000 {
+			compatible = "riscv,plic0";
+			reg = <0x00000000 0xe4000000 0x00000000 0x02000000>;
+			interrupts-extended = < &CPU0_intc 11 &CPU0_intc 9 &CPU1_intc 11 &CPU1_intc 9 &CPU2_intc 11 &CPU2_intc 9 &CPU3_intc 11 &CPU3_intc 9>;
+			interrupt-controller;
+			#address-cells = <2>;
+			#interrupt-cells = <2>;
+			riscv,ndev = <71>;
+		};
+		plic1: interrupt-controller@e6400000 {
+			compatible = "riscv,plic1";
+			reg = <0x00000000 0xe6400000 0x00000000 0x00400000>;
+			interrupts-extended = < &CPU0_intc 3 &CPU1_intc 3 &CPU2_intc 3 &CPU3_intc 3>;
+			interrupt-controller;
+			#address-cells = <2>;
+			#interrupt-cells = <2>;
+			riscv,ndev = <4>;
+		};
+		plmt0: plmt0@e6000000 {
+			compatible = "riscv,plmt0";
+			reg = <0x00000000 0xe6000000 0x00000000 0x00100000>;
+			interrupts-extended = < &CPU0_intc 7 &CPU1_intc 7 &CPU2_intc 7 &CPU3_intc 7>;
+		};
+		spiclk: virt_100mhz {
+			compatible = "fixed-clock";
+			#clock-cells = <0>;
+			clock-frequency = <100000000>;
+		};
+		timer0: timer@f0400000 {
+			compatible = "andestech,atcpit100";
+			reg = <0x00000000 0xf0400000 0x00000000 0x00001000>;
+			interrupts = <3 4>;
+			interrupt-parent = <&plic0>;
+			clock-frequency = <60000000>;
+		};
+		pwm: pwm@f0400000 {
+			compatible = "andestech,atcpit100-pwm";
+			reg = <0x00000000 0xf0400000 0x00000000 0x00001000>;
+			interrupts = <3 4>;
+			interrupt-parent = <&plic0>;
+			clock-frequency = <60000000>;
+			pwm-cells = <2>;
+		};
+		wdt: wdt@f0500000 {
+			compatible = "andestech,atcwdt200";
+			reg = <0x00000000 0xf0500000 0x00000000 0x00001000>;
+			interrupts = <3 4>;
+			interrupt-parent = <&plic0>;
+			clock-frequency = <15000000>;
+		};
+		serial0: serial@f0300000 {
+			compatible = "andestech,uart16550", "ns16550a";
+			reg = <0x00000000 0xf0300000 0x00000000 0x00001000>;
+			interrupts = <9 4>;
+			interrupt-parent = <&plic0>;
+			clock-frequency = <19660800>;
+			reg-shift = <2>;
+			reg-offset = <32>;
+			no-loopback-test = <1>;
+		};
+		rtc0: rtc@f0600000 {
+			compatible = "andestech,atcrtc100";
+			reg = <0x00000000 0xf0600000 0x00000000 0x00001000>;
+			interrupts = <1 4 2 4>;
+			interrupt-parent = <&plic0>;
+			wakeup-source;
+		};
+		gpio: gpio@f0700000 {
+			compatible = "andestech,atcgpio100";
+			reg = <0x00000000 0xf0700000 0x00000000 0x00001000>;
+			interrupts = <7 4>;
+			interrupt-parent = <&plic0>;
+			wakeup-source;
+		};
+		mac0: mac@e0100000 {
+			compatible = "andestech,atmac100";
+			reg = <0x00000000 0xe0100000 0x00000000 0x00001000>;
+			interrupts = <19 4>;
+			interrupt-parent = <&plic0>;
+			dma-coherent;
+		};
+		smu: smu@f0100000 {
+			compatible = "andestech,atcsmu";
+			reg = <0x00000000 0xf0100000 0x00000000 0x00001000>;
+		};
+		mmc0: mmc@f0e00000 {
+			compatible = "andestech,atfsdc010";
+			reg = <0x00000000 0xf0e00000 0x00000000 0x00001000>;
+			interrupts = <18 4>;
+			interrupt-parent = <&plic0>;
+			clock-freq-min-max = <400000 100000000>;
+			max-frequency = <100000000>;
+			fifo-depth = <16>;
+			cap-sd-highspeed;
+			dma-coherent;
+		};
+		dma0: dma@f0c00000 {
+			compatible = "andestech,atcdmac300";
+			reg = <0x00000000 0xf0c00000 0x00000000 0x00001000>;
+			interrupts = <10 4 64 4 65 4 66 4 67 4 68 4 69 4 70 4 71 4>;
+			interrupt-parent = <&plic0>;
+			dma-channels = <8>;
+		};
+		lcd0: lcd@e0200000 {
+			compatible = "andestech,atflcdc100";
+			reg = <0x00000000 0xe0200000 0x00000000 0x00001000>;
+			interrupts = <20 4>;
+			interrupt-parent = <&plic0>;
+			dma-coherent;
+		};
+		pmu: pmu {
+			compatible = "riscv,andes-pmu";
+			device_type = "pmu";
+		};
+		spi: spi@f0b00000 {
+			compatible = "andestech,atcspi200";
+			reg = <0x00000000 0xf0b00000 0x00000000 0x00001000>;
+			interrupts = <4 4>;
+			interrupt-parent = <&plic0>;
+			#address-cells = <1>;
+			#size-cells = <0>;
+			num-cs = <1>;
+			clocks = <&spiclk>;
+			flash@0 {
+				compatible = "jedec,spi-nor";
+				reg = <0x00000000>;
+				spi-max-frequency = <50000000>;
+				spi-cpol;
+				spi-cpha;
+			};
+		};
+	};
+};
diff --git a/board/andes/ae350/genimage_sdcard.cfg b/board/andes/ae350/genimage_sdcard.cfg
new file mode 100644
index 0000000000..b8b9fe6a62
--- /dev/null
+++ b/board/andes/ae350/genimage_sdcard.cfg
@@ -0,0 +1,26 @@
+image boot.vfat {
+	vfat {
+		files = {
+			"u-boot-spl.bin",
+			"u-boot.itb",
+			"ae350.dtb",
+		}
+	}
+	size = 2M
+}
+
+image sdcard.img {
+	hdimage {
+	}
+
+	partition boot {
+		partition-type = 0xC
+		image = "boot.vfat"
+	}
+
+	partition rootfs {
+		partition-type = 0x83
+		bootable = true
+		image = "rootfs.ext4"
+	}
+}
diff --git a/board/andes/ae350/patches/opensbi/0001-Disable-PIC-explicitly-for-assembling.patch b/board/andes/ae350/patches/opensbi/0001-Disable-PIC-explicitly-for-assembling.patch
new file mode 100644
index 0000000000..aeafed4c9f
--- /dev/null
+++ b/board/andes/ae350/patches/opensbi/0001-Disable-PIC-explicitly-for-assembling.patch
@@ -0,0 +1,29 @@
+From 3ccb71eeca42dbcd5e4d00ae1877a489ae82598d Mon Sep 17 00:00:00 2001
+From: Yu Chien Peter Lin <peterlin@andestech.com>
+Date: Wed, 29 Dec 2021 16:04:54 +0800
+Subject: [PATCH] Disable PIC explicitly for assembling
+
+This patch is necessary if the fw_dynamic load address
+is not equal to link address.
+However, they are equal currently, since we include an u-boot
+patch for preventing fw_dynamic relocation.
+
+Signed-off-by: Yu Chien Peter Lin <peterlin@andestech.com>
+---
+ Makefile | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/Makefile b/Makefile
+index d6f097d..441518d 100644
+--- a/Makefile
++++ b/Makefile
+@@ -225,6 +225,7 @@ ASFLAGS		+=	-mcmodel=$(PLATFORM_RISCV_CODE_MODEL)
+ ASFLAGS		+=	$(GENFLAGS)
+ ASFLAGS		+=	$(platform-asflags-y)
+ ASFLAGS		+=	$(firmware-asflags-y)
++ASFLAGS		+=	-fno-pic
+
+ ARFLAGS		=	rcs
+
+--
+2.25.1
diff --git a/board/andes/ae350/patches/opensbi/0002-Enable-cache-for-opensbi-jump-mode.patch b/board/andes/ae350/patches/opensbi/0002-Enable-cache-for-opensbi-jump-mode.patch
new file mode 100644
index 0000000000..ae48a760c8
--- /dev/null
+++ b/board/andes/ae350/patches/opensbi/0002-Enable-cache-for-opensbi-jump-mode.patch
@@ -0,0 +1,25 @@
+From 325328f4204b40b1fcc8db3b46c7c8805710d21c Mon Sep 17 00:00:00 2001
+From: Yu Chien Peter Lin <peterlin@andestech.com>
+Date: Thu, 30 Dec 2021 08:47:34 +0800
+Subject: [PATCH] Enable cache for opensbi jump mode
+
+Signed-off-by: Yu Chien Peter Lin <peterlin@andestech.com>
+---
+ firmware/fw_base.S | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/firmware/fw_base.S b/firmware/fw_base.S
+index ab33e11..155d230 100644
+--- a/firmware/fw_base.S
++++ b/firmware/fw_base.S
+@@ -46,6 +46,8 @@
+	.globl _start
+	.globl _start_warm
+ _start:
++	li t0, 0x80003
++	csrw  0x7ca, t0
+	/* Find preferred boot HART id */
+	MOV_3R	s0, a0, s1, a1, s2, a2
+	call	fw_boot_hart
+--
+2.25.1
diff --git a/board/andes/ae350/patches/uboot/0001-Fix-mmc-no-partition-table-error.patch b/board/andes/ae350/patches/uboot/0001-Fix-mmc-no-partition-table-error.patch
new file mode 100644
index 0000000000..7aff3cebf6
--- /dev/null
+++ b/board/andes/ae350/patches/uboot/0001-Fix-mmc-no-partition-table-error.patch
@@ -0,0 +1,27 @@
+From ea4675215b53d16a72d29b8a6fc6a86cccf59cf0 Mon Sep 17 00:00:00 2001
+From: Yu Chien Peter Lin <peterlin@andestech.com>
+Date: Wed, 5 Jan 2022 11:00:59 +0800
+Subject: [PATCH] Fix mmc no partition table error
+
+Signed-off-by: Yu Chien Peter Lin <peterlin@andestech.com>
+---
+ drivers/mmc/ftsdc010_mci.c | 4 ----
+ 1 file changed, 4 deletions(-)
+
+diff --git a/drivers/mmc/ftsdc010_mci.c b/drivers/mmc/ftsdc010_mci.c
+index 570d54cf..3b1e0aa0 100644
+--- a/drivers/mmc/ftsdc010_mci.c
++++ b/drivers/mmc/ftsdc010_mci.c
+@@ -438,10 +438,6 @@ static int ftsdc010_mmc_probe(struct udevice *dev)
+		return ret;
+ #endif
+
+-	if (dev_read_bool(dev, "cap-mmc-highspeed") || \
+-		  dev_read_bool(dev, "cap-sd-highspeed"))
+-		chip->caps |= MMC_MODE_HS | MMC_MODE_HS_52MHz;
+-
+	ftsdc_setup_cfg(&plat->cfg, dev->name, chip->buswidth, chip->caps,
+			priv->minmax[1] , priv->minmax[0]);
+	chip->mmc = &plat->mmc;
+--
+2.25.1
diff --git a/board/andes/ae350/patches/uboot/0002-Prevent-fw_dynamic-from-relocation.patch b/board/andes/ae350/patches/uboot/0002-Prevent-fw_dynamic-from-relocation.patch
new file mode 100644
index 0000000000..c6e1896f1c
--- /dev/null
+++ b/board/andes/ae350/patches/uboot/0002-Prevent-fw_dynamic-from-relocation.patch
@@ -0,0 +1,27 @@
+From 4c0c5378d032f2f95577585935624baf7b4decf3 Mon Sep 17 00:00:00 2001
+From: Yu Chien Peter Lin <peterlin@andestech.com>
+Date: Wed, 5 Jan 2022 11:02:26 +0800
+Subject: [PATCH] Prevent fw_dynamic from relocation
+
+This patch prevents OpenSBI relocation, load fw_dynamic to link address
+
+Signed-off-by: Yu Chien Peter Lin <peterlin@andestech.com>
+---
+ board/AndesTech/ax25-ae350/Kconfig | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/board/AndesTech/ax25-ae350/Kconfig b/board/AndesTech/ax25-ae350/Kconfig
+index e50f505a..385c4c11 100644
+--- a/board/AndesTech/ax25-ae350/Kconfig
++++ b/board/AndesTech/ax25-ae350/Kconfig
+@@ -25,7 +25,7 @@ config SPL_TEXT_BASE
+	default 0x800000
+
+ config SPL_OPENSBI_LOAD_ADDR
+-	default 0x01000000
++	default 0x0
+
+ config BOARD_SPECIFIC_OPTIONS # dummy
+	def_bool y
+--
+2.25.1
diff --git a/board/andes/ae350/patches/uboot/0003-Fix-u-boot-proper-booting-issue.patch b/board/andes/ae350/patches/uboot/0003-Fix-u-boot-proper-booting-issue.patch
new file mode 100644
index 0000000000..20598fdba4
--- /dev/null
+++ b/board/andes/ae350/patches/uboot/0003-Fix-u-boot-proper-booting-issue.patch
@@ -0,0 +1,26 @@
+From 3d09501175ae6f5e3f6520b48b1358226a99ff16 Mon Sep 17 00:00:00 2001
+From: Yu Chien Peter Lin <peterlin@andestech.com>
+Date: Wed, 5 Jan 2022 18:17:39 +0800
+Subject: [PATCH] Fix u-boot proper booting issue
+
+Signed-off-by: Yu Chien Peter Lin <peterlin@andestech.com>
+---
+ arch/riscv/cpu/start.S | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/arch/riscv/cpu/start.S b/arch/riscv/cpu/start.S
+index 76850ec9..2ccda4f5 100644
+--- a/arch/riscv/cpu/start.S
++++ b/arch/riscv/cpu/start.S
+@@ -139,7 +139,9 @@ call_harts_early_init:
+	 * accesses gd).
+	 */
+	mv	gp, s0
++#if !CONFIG_IS_ENABLED(RISCV_SMODE)
+	bnez	tp, secondary_hart_loop
++#endif
+ #endif
+
+	jal	board_init_f_init_reserve
+--
+2.25.1
diff --git a/board/andes/ae350/patches/uboot/0004-Enable-printing-OpenSBI-boot-logo.patch b/board/andes/ae350/patches/uboot/0004-Enable-printing-OpenSBI-boot-logo.patch
new file mode 100644
index 0000000000..efd78ab26d
--- /dev/null
+++ b/board/andes/ae350/patches/uboot/0004-Enable-printing-OpenSBI-boot-logo.patch
@@ -0,0 +1,25 @@
+From 3847a959ac4c07facbd80104ca5fa6a91fad5f35 Mon Sep 17 00:00:00 2001
+From: Yu Chien Peter Lin <peterlin@andestech.com>
+Date: Thu, 6 Jan 2022 13:50:07 +0800
+Subject: [PATCH] Enable printing OpenSBI boot logo
+
+Signed-off-by: Yu Chien Peter Lin <peterlin@andestech.com>
+---
+ include/opensbi.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/include/opensbi.h b/include/opensbi.h
+index d812cc8c..91fb8fd9 100644
+--- a/include/opensbi.h
++++ b/include/opensbi.h
+@@ -20,7 +20,7 @@
+
+ enum sbi_scratch_options {
+	/** Disable prints during boot */
+-	SBI_SCRATCH_NO_BOOT_PRINTS = (1 << 0),
++	SBI_SCRATCH_NO_BOOT_PRINTS = 0,
+ };
+
+ /** Representation dynamic info passed by previous booting stage */
+--
+2.25.1
diff --git a/board/andes/ae350/post-build.sh b/board/andes/ae350/post-build.sh
new file mode 100755
index 0000000000..0e6ce228f4
--- /dev/null
+++ b/board/andes/ae350/post-build.sh
@@ -0,0 +1,3 @@
+#!/bin/sh
+cp $BINARIES_DIR/Image $TARGET_DIR/boot
+cp $BINARIES_DIR/ae350.dtb $TARGET_DIR/boot
diff --git a/board/andes/ae350/readme.txt b/board/andes/ae350/readme.txt
new file mode 100644
index 0000000000..6825468d50
--- /dev/null
+++ b/board/andes/ae350/readme.txt
@@ -0,0 +1,65 @@
+Intro
+=====
+
+Andestech AE350 Platform
+
+The AE350 prototype demonstrates the AE350 platform on the FPGA.
+
+How to build it
+===============
+
+Configure Buildroot
+-------------------
+
+  $ make andes_ae350_45_defconfig
+
+If you want to customize your configuration:
+
+  $ make menuconfig
+
+Build everything
+----------------
+Note: you will need to access to the network, since Buildroot will
+download the packages' sources.
+
+  $ make
+
+Result of the build
+-------------------
+
+After building, you should obtain the following files:
+
+  output/images/
+  |-- ae350.dtb
+  |-- boot.vfat
+  |-- fw_dynamic.bin
+  |-- fw_dynamic.elf
+  |-- fw_jump.bin
+  |-- fw_jump.elf
+  |-- Image
+  |-- rootfs.ext2
+  |-- rootfs.ext4 -> rootfs.ext2
+  |-- sdcard.img
+  |-- u-boot-spl.bin
+  `-- u-boot.itb
+
+Copy the sdcard.img to a SD card with "dd":
+
+  $ sudo dd if=sdcard.img of=/dev/sdX bs=4096
+  $ sudo sync
+
+Your SD card partition should be:
+
+  Disk /dev/sdb: 14.48 GiB, 15552479232 bytes, 30375936 sectors
+  Disk model: Multi-Card
+  Units: sectors of 1 * 512 = 512 bytes
+  Sector size (logical/physical): 512 bytes / 512 bytes
+  I/O size (minimum/optimal): 512 bytes / 512 bytes
+  Disklabel type: dos
+  Disk identifier: 0x00000000
+
+  Device     Boot Start    End Sectors Size Id Type
+  /dev/sdb1           1   4096    4096   2M  c W95 FAT32 (LBA)
+  /dev/sdb2  *     4097 126976  122880  60M 83 Linux
+
+Insert SD card and reset the board, it should boot Linux from mmc.
diff --git a/board/andes/ae350/rootfs_overlay/boot/extlinux/extlinux.conf b/board/andes/ae350/rootfs_overlay/boot/extlinux/extlinux.conf
new file mode 100644
index 0000000000..549eb93abc
--- /dev/null
+++ b/board/andes/ae350/rootfs_overlay/boot/extlinux/extlinux.conf
@@ -0,0 +1,4 @@
+label linux
+   kernel /boot/Image
+   fdt /boot/ae350.dtb
+   append earlycon=sbi root=/dev/mmcblk0p2 rootwait
diff --git a/board/andes/ae350/uboot.config.fragment b/board/andes/ae350/uboot.config.fragment
new file mode 100644
index 0000000000..4992d712a5
--- /dev/null
+++ b/board/andes/ae350/uboot.config.fragment
@@ -0,0 +1,5 @@
+CONFIG_SPL_FS_FAT=y
+CONFIG_SPL_MMC=y
+# CONFIG_SPL_RAM_SUPPORT is not set
+# CONFIG_OF_BOARD is not set
+CONFIG_OF_SEPARATE=y
diff --git a/configs/andes_ae350_45_defconfig b/configs/andes_ae350_45_defconfig
new file mode 100644
index 0000000000..a35ddd06ba
--- /dev/null
+++ b/configs/andes_ae350_45_defconfig
@@ -0,0 +1,43 @@
+BR2_riscv=y
+BR2_riscv_custom=y
+BR2_RISCV_ISA_CUSTOM_RVM=y
+BR2_RISCV_ISA_CUSTOM_RVF=y
+BR2_RISCV_ISA_CUSTOM_RVD=y
+BR2_RISCV_ISA_CUSTOM_RVC=y
+BR2_GLOBAL_PATCH_DIR="board/andes/ae350/patches"
+BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_10=y
+BR2_TARGET_GENERIC_GETTY_PORT="ttyS0"
+BR2_ROOTFS_OVERLAY="board/andes/ae350/rootfs_overlay"
+BR2_ROOTFS_POST_BUILD_SCRIPT="board/andes/ae350/post-build.sh"
+BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh"
+BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/andes/ae350/genimage_sdcard.cfg"
+BR2_LINUX_KERNEL=y
+BR2_LINUX_KERNEL_CUSTOM_GIT=y
+BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://github.com/andestech/linux.git"
+BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="v5.10.84-ae350_45"
+BR2_LINUX_KERNEL_DEFCONFIG="ae350_rv64_smp"
+BR2_LINUX_KERNEL_DTS_SUPPORT=y
+BR2_LINUX_KERNEL_CUSTOM_DTS_PATH="board/andes/ae350/ae350.dts"
+BR2_TARGET_ROOTFS_EXT2=y
+BR2_TARGET_ROOTFS_EXT2_4=y
+# BR2_TARGET_ROOTFS_TAR is not set
+BR2_TARGET_OPENSBI=y
+BR2_TARGET_OPENSBI_PLAT="andes/ae350"
+BR2_TARGET_UBOOT=y
+BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y
+BR2_TARGET_UBOOT_CUSTOM_VERSION=y
+BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2022.01"
+BR2_TARGET_UBOOT_BOARD_DEFCONFIG="ae350_rv64_spl_xip"
+BR2_TARGET_UBOOT_CONFIG_FRAGMENT_FILES="board/andes/ae350/uboot.config.fragment"
+BR2_TARGET_UBOOT_NEEDS_PYTHON3=y
+BR2_TARGET_UBOOT_NEEDS_PYLIBFDT=y
+BR2_TARGET_UBOOT_NEEDS_OPENSSL=y
+BR2_TARGET_UBOOT_NEEDS_OPENSBI=y
+# BR2_TARGET_UBOOT_FORMAT_BIN is not set
+BR2_TARGET_UBOOT_FORMAT_CUSTOM=y
+BR2_TARGET_UBOOT_FORMAT_CUSTOM_NAME="u-boot.itb"
+BR2_TARGET_UBOOT_SPL=y
+BR2_TARGET_UBOOT_CUSTOM_MAKEOPTS="ARCH_FLAGS=-march=rv64imafdc"
+BR2_PACKAGE_HOST_DOSFSTOOLS=y
+BR2_PACKAGE_HOST_GENIMAGE=y
+BR2_PACKAGE_HOST_MTOOLS=y
-- 
2.25.1

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [Buildroot] [PATCH 3/3] DEVELOPERS: add Yu-Chien Lin to board/andes
  2022-02-15  2:32 [Buildroot] [PATCH 1/3] board/andes: rearrange nds32 folder structure Yu Chien Peter Lin
  2022-02-15  2:32 ` [Buildroot] [PATCH 2/3] board/andes/ae350: add support for Andes AE350 Yu Chien Peter Lin
@ 2022-02-15  2:32 ` Yu Chien Peter Lin
  1 sibling, 0 replies; 8+ messages in thread
From: Yu Chien Peter Lin @ 2022-02-15  2:32 UTC (permalink / raw)
  To: buildroot; +Cc: giulio.benetti, Yu Chien Peter Lin, alankao

Nylon is no longer at Andes.

Signed-off-by: Yu Chien Peter Lin <peterlin@andestech.com>
Signed-off-by: Alan Kao <alankao@andestech.com>
---
 DEVELOPERS | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/DEVELOPERS b/DEVELOPERS
index ac702d8d0f..8848d6a9a7 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -2146,9 +2146,10 @@ N:	Norbert Lange <nolange79@gmail.com>
 F:	package/systemd/
 F:	package/tcf-agent/
 
-N:	Nylon Chen <nylon7@andestech.com>
+N:	Yu Chien Peter Lin <peterlin@andestech.com>
 F:	arch/Config.in.nds32
 F:	board/andes
+F:	configs/andes_ae350_45_defconfig
 F:	configs/andes_ae3xx_defconfig
 F:	toolchain/toolchain-external/toolchain-external-andes-nds32/
 
-- 
2.25.1

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [Buildroot] [PATCH 2/3] board/andes/ae350: add support for Andes AE350
  2022-02-15  2:32 ` [Buildroot] [PATCH 2/3] board/andes/ae350: add support for Andes AE350 Yu Chien Peter Lin
@ 2022-02-15  5:14   ` Yu Chien Peter Lin
  2022-02-15 13:00     ` Giulio Benetti
  2022-02-21 19:10   ` Giulio Benetti
  1 sibling, 1 reply; 8+ messages in thread
From: Yu Chien Peter Lin @ 2022-02-15  5:14 UTC (permalink / raw)
  To: buildroot; +Cc: giulio.benetti

> On Tue, Feb 15, 2022 at 10:32:01AM +0800, Yu Chien Peter Lin wrote:
> > This patch provides defconfig and basic support for the Andes
> > 45 series RISC-V architecture.
> > 
> > Signed-off-by: Yu Chien Peter Lin <peterlin@andestech.com>
> > Signed-off-by: Alan Kao <alankao@andestech.com>
> > ---
> > Changes
> > V1->V2:
> > * move linux source code and its patches to AndesTech Github repo
> > * rename ae350_andestar45_defconfig to andes_ae350_45_defconfig
> > * change C library to uClibc
> > * remove OpenSSL package
> > * remove rootfs.cpio and rootfs.tar
> > * update DEVELOPERS
> > V2->V3:
> > * specifiy branch to download from AndesTech linux repo
> > * change boot.cmd to extlinux.conf
> > * add post-build.sh for extlinux.conf to retrieve Image and DTB
> > * fix format and update genimage_sdcard.cfg
> > * update readme.txt
> > * add packages (python3, pylibfdt and openssl) for u-boot binman
> > * reorder item in DEVELOPERS
> > 

Sorry, I missed versioning for this revision.
I'll resend it and fix changelog format.

Regards,
Yu-Chien Peter Lin
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [Buildroot] [PATCH 2/3] board/andes/ae350: add support for Andes AE350
  2022-02-15  5:14   ` Yu Chien Peter Lin
@ 2022-02-15 13:00     ` Giulio Benetti
  2022-02-16  0:52       ` Yu Chien Peter Lin
  0 siblings, 1 reply; 8+ messages in thread
From: Giulio Benetti @ 2022-02-15 13:00 UTC (permalink / raw)
  To: Yu Chien Peter Lin; +Cc: buildroot


[-- Attachment #1.1: Type: text/plain, Size: 1576 bytes --]

Hi Peter,

> Il giorno 15 feb 2022, alle ore 06:16, Yu Chien Peter Lin <peterlin@andestech.com> ha scritto:
> 
> 
>> 
>>> On Tue, Feb 15, 2022 at 10:32:01AM +0800, Yu Chien Peter Lin wrote:
>>> This patch provides defconfig and basic support for the Andes
>>> 45 series RISC-V architecture.
>>> 
>>> Signed-off-by: Yu Chien Peter Lin <peterlin@andestech.com>
>>> Signed-off-by: Alan Kao <alankao@andestech.com>
>>> ---
>>> Changes
>>> V1->V2:
>>> * move linux source code and its patches to AndesTech Github repo
>>> * rename ae350_andestar45_defconfig to andes_ae350_45_defconfig
>>> * change C library to uClibc
>>> * remove OpenSSL package
>>> * remove rootfs.cpio and rootfs.tar
>>> * update DEVELOPERS
>>> V2->V3:
>>> * specifiy branch to download from AndesTech linux repo
>>> * change boot.cmd to extlinux.conf
>>> * add post-build.sh for extlinux.conf to retrieve Image and DTB
>>> * fix format and update genimage_sdcard.cfg
>>> * update readme.txt
>>> * add packages (python3, pylibfdt and openssl) for u-boot binman
>>> * reorder item in DEVELOPERS
>>> 
> 
> Sorry, I missed versioning for this revision.
> I'll resend it and fix changelog format.

Can you please subscribe to patchwork[1] and tag your patches without V3 prefix as rejected?

[1]: https://patchwork.ozlabs.org/project/buildroot/list/

Thank you!
Giulio

> 
> Regards,
> Yu-Chien Peter Lin
> _______________________________________________
> buildroot mailing list
> buildroot@buildroot.org
> https://lists.buildroot.org/mailman/listinfo/buildroot

[-- Attachment #1.2: Type: text/html, Size: 4168 bytes --]

[-- Attachment #2: Type: text/plain, Size: 150 bytes --]

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [Buildroot] [PATCH 2/3] board/andes/ae350: add support for Andes AE350
  2022-02-15 13:00     ` Giulio Benetti
@ 2022-02-16  0:52       ` Yu Chien Peter Lin
  2022-02-16  1:52         ` Giulio Benetti
  0 siblings, 1 reply; 8+ messages in thread
From: Yu Chien Peter Lin @ 2022-02-16  0:52 UTC (permalink / raw)
  To: Giulio Benetti; +Cc: buildroot

Hi Giulio,

> On Tue, Feb 15, 2022 at 02:00:36PM +0100, Giulio Benetti wrote:
> > Hi Peter,
> > 
> > > Il giorno 15 feb 2022, alle ore 06:16, Yu Chien Peter Lin <peterlin@andestech.com> ha scritto:
> > > 
> > > 
> > >> 
> > >>> On Tue, Feb 15, 2022 at 10:32:01AM +0800, Yu Chien Peter Lin wrote:
> > >>> This patch provides defconfig and basic support for the Andes
> > >>> 45 series RISC-V architecture.
> > >>> 
> > >>> Signed-off-by: Yu Chien Peter Lin <peterlin@andestech.com>
> > >>> Signed-off-by: Alan Kao <alankao@andestech.com>
> > >>> ---
> > >>> Changes
> > >>> V1->V2:
> > >>> * move linux source code and its patches to AndesTech Github repo
> > >>> * rename ae350_andestar45_defconfig to andes_ae350_45_defconfig
> > >>> * change C library to uClibc
> > >>> * remove OpenSSL package
> > >>> * remove rootfs.cpio and rootfs.tar
> > >>> * update DEVELOPERS
> > >>> V2->V3:
> > >>> * specifiy branch to download from AndesTech linux repo
> > >>> * change boot.cmd to extlinux.conf
> > >>> * add post-build.sh for extlinux.conf to retrieve Image and DTB
> > >>> * fix format and update genimage_sdcard.cfg
> > >>> * update readme.txt
> > >>> * add packages (python3, pylibfdt and openssl) for u-boot binman
> > >>> * reorder item in DEVELOPERS
> > >>> 
> > > 
> > > Sorry, I missed versioning for this revision.
> > > I'll resend it and fix changelog format.
> > 
> > Can you please subscribe to patchwork[1] and tag your patches without V3 prefix as rejected?
> > 
> > [1]: https://patchwork.ozlabs.org/project/buildroot/list/
> > 
> > Thank you!
> > Giulio

Sure, I've updated. Sorry about that.

Yu-Chien Peter Lin
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [Buildroot] [PATCH 2/3] board/andes/ae350: add support for Andes AE350
  2022-02-16  0:52       ` Yu Chien Peter Lin
@ 2022-02-16  1:52         ` Giulio Benetti
  0 siblings, 0 replies; 8+ messages in thread
From: Giulio Benetti @ 2022-02-16  1:52 UTC (permalink / raw)
  To: Yu Chien Peter Lin; +Cc: buildroot


> Il giorno 16 feb 2022, alle ore 01:53, Yu Chien Peter Lin <peterlin@andestech.com> ha scritto:
> 
> Hi Giulio,
> 
>>> On Tue, Feb 15, 2022 at 02:00:36PM +0100, Giulio Benetti wrote:
>>> Hi Peter,
>>> 
>>>> Il giorno 15 feb 2022, alle ore 06:16, Yu Chien Peter Lin <peterlin@andestech.com> ha scritto:
>>>> 
>>>> 
>>>>> 
>>>>>> On Tue, Feb 15, 2022 at 10:32:01AM +0800, Yu Chien Peter Lin wrote:
>>>>>> This patch provides defconfig and basic support for the Andes
>>>>>> 45 series RISC-V architecture.
>>>>>> 
>>>>>> Signed-off-by: Yu Chien Peter Lin <peterlin@andestech.com>
>>>>>> Signed-off-by: Alan Kao <alankao@andestech.com>
>>>>>> ---
>>>>>> Changes
>>>>>> V1->V2:
>>>>>> * move linux source code and its patches to AndesTech Github repo
>>>>>> * rename ae350_andestar45_defconfig to andes_ae350_45_defconfig
>>>>>> * change C library to uClibc
>>>>>> * remove OpenSSL package
>>>>>> * remove rootfs.cpio and rootfs.tar
>>>>>> * update DEVELOPERS
>>>>>> V2->V3:
>>>>>> * specifiy branch to download from AndesTech linux repo
>>>>>> * change boot.cmd to extlinux.conf
>>>>>> * add post-build.sh for extlinux.conf to retrieve Image and DTB
>>>>>> * fix format and update genimage_sdcard.cfg
>>>>>> * update readme.txt
>>>>>> * add packages (python3, pylibfdt and openssl) for u-boot binman
>>>>>> * reorder item in DEVELOPERS
>>>>>> 
>>>> 
>>>> Sorry, I missed versioning for this revision.
>>>> I'll resend it and fix changelog format.
>>> 
>>> Can you please subscribe to patchwork[1] and tag your patches without V3 prefix as rejected?
>>> 
>>> [1]: https://patchwork.ozlabs.org/project/buildroot/list/
>>> 
>>> Thank you!
>>> Giulio
> 
> Sure, I've updated. Sorry about that.

No problem, please also the v2 version.
You can filter by your name and check your patches.

Thank you!

Best regards
Giulio

> 
> Yu-Chien Peter Lin
> _______________________________________________
> buildroot mailing list
> buildroot@buildroot.org
> https://lists.buildroot.org/mailman/listinfo/buildroot

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [Buildroot] [PATCH 2/3] board/andes/ae350: add support for Andes AE350
  2022-02-15  2:32 ` [Buildroot] [PATCH 2/3] board/andes/ae350: add support for Andes AE350 Yu Chien Peter Lin
  2022-02-15  5:14   ` Yu Chien Peter Lin
@ 2022-02-21 19:10   ` Giulio Benetti
  1 sibling, 0 replies; 8+ messages in thread
From: Giulio Benetti @ 2022-02-21 19:10 UTC (permalink / raw)
  To: Yu Chien Peter Lin, buildroot; +Cc: alankao

Hi Peter, Alan,

On 15/02/22 03:32, Yu Chien Peter Lin wrote:
> This patch provides defconfig and basic support for the Andes
> 45 series RISC-V architecture.

Please add the board or SoC URL website here.

Thank you!

Best regards
-- 
Giulio Benetti
Benetti Engineering sas

> Signed-off-by: Yu Chien Peter Lin <peterlin@andestech.com>
> Signed-off-by: Alan Kao <alankao@andestech.com>
> ---
> Changes
> V1->V2:
> * move linux source code and its patches to AndesTech Github repo
> * rename ae350_andestar45_defconfig to andes_ae350_45_defconfig
> * change C library to uClibc
> * remove OpenSSL package
> * remove rootfs.cpio and rootfs.tar
> * update DEVELOPERS
> V2->V3:
> * specifiy branch to download from AndesTech linux repo
> * change boot.cmd to extlinux.conf
> * add post-build.sh for extlinux.conf to retrieve Image and DTB
> * fix format and update genimage_sdcard.cfg
> * update readme.txt
> * add packages (python3, pylibfdt and openssl) for u-boot binman
> * reorder item in DEVELOPERS
> 
>   board/andes/ae350/ae350.dts                   | 274 ++++++++++++++++++
>   board/andes/ae350/genimage_sdcard.cfg         |  26 ++
>   ...isable-PIC-explicitly-for-assembling.patch |  29 ++
>   ...2-Enable-cache-for-opensbi-jump-mode.patch |  25 ++
>   ...001-Fix-mmc-no-partition-table-error.patch |  27 ++
>   ...2-Prevent-fw_dynamic-from-relocation.patch |  27 ++
>   ...0003-Fix-u-boot-proper-booting-issue.patch |  26 ++
>   ...04-Enable-printing-OpenSBI-boot-logo.patch |  25 ++
>   board/andes/ae350/post-build.sh               |   3 +
>   board/andes/ae350/readme.txt                  |  65 +++++
>   .../boot/extlinux/extlinux.conf               |   4 +
>   board/andes/ae350/uboot.config.fragment       |   5 +
>   configs/andes_ae350_45_defconfig              |  43 +++
>   13 files changed, 579 insertions(+)
>   create mode 100755 board/andes/ae350/ae350.dts
>   create mode 100644 board/andes/ae350/genimage_sdcard.cfg
>   create mode 100644 board/andes/ae350/patches/opensbi/0001-Disable-PIC-explicitly-for-assembling.patch
>   create mode 100644 board/andes/ae350/patches/opensbi/0002-Enable-cache-for-opensbi-jump-mode.patch
>   create mode 100644 board/andes/ae350/patches/uboot/0001-Fix-mmc-no-partition-table-error.patch
>   create mode 100644 board/andes/ae350/patches/uboot/0002-Prevent-fw_dynamic-from-relocation.patch
>   create mode 100644 board/andes/ae350/patches/uboot/0003-Fix-u-boot-proper-booting-issue.patch
>   create mode 100644 board/andes/ae350/patches/uboot/0004-Enable-printing-OpenSBI-boot-logo.patch
>   create mode 100755 board/andes/ae350/post-build.sh
>   create mode 100644 board/andes/ae350/readme.txt
>   create mode 100644 board/andes/ae350/rootfs_overlay/boot/extlinux/extlinux.conf
>   create mode 100644 board/andes/ae350/uboot.config.fragment
>   create mode 100644 configs/andes_ae350_45_defconfig
> 
> diff --git a/board/andes/ae350/ae350.dts b/board/andes/ae350/ae350.dts
> new file mode 100755
> index 0000000000..5e5d70ab25
> --- /dev/null
> +++ b/board/andes/ae350/ae350.dts
> @@ -0,0 +1,274 @@
> +/dts-v1/;
> +
> +/ {
> +	#address-cells = <2>;
> +	#size-cells = <2>;
> +	compatible = "andestech,ae350";
> +	model = "andestech,ax45";
> +	aliases {
> +		uart0 = &serial0;
> +		spi0 = &spi;
> +	};
> +
> +	chosen {
> +		bootargs = "console=ttyS0,38400n8 earlycon=sbi debug loglevel=7";
> +		stdout-path = "uart0:38400n8";
> +	};
> +	cpus {
> +		#address-cells = <1>;
> +		#size-cells = <0>;
> +		timebase-frequency = <60000000>;
> +		CPU0: cpu@0 {
> +			device_type = "cpu";
> +			reg = <0>;
> +			status = "okay";
> +			compatible = "riscv";
> +			riscv,isa = "rv64i2p0m2p0a2p0f2p0d2p0c2p0xv5-1p1xdsp0p0";
> +			riscv,priv-major = <1>;
> +			riscv,priv-minor = <10>;
> +			mmu-type = "riscv,sv48";
> +			clock-frequency = <60000000>;
> +			i-cache-size = <0x8000>;
> +			i-cache-sets = <256>;
> +			i-cache-block-size = <64>;
> +			i-cache-line-size = <64>;
> +			d-cache-size = <0x8000>;
> +			d-cache-sets = <128>;
> +			d-cache-block-size = <64>;
> +			d-cache-line-size = <64>;
> +			next-level-cache = <&L2>;
> +			CPU0_intc: interrupt-controller {
> +				#interrupt-cells = <1>;
> +				interrupt-controller;
> +				compatible = "riscv,cpu-intc";
> +			};
> +		};
> +		CPU1: cpu@1 {
> +			device_type = "cpu";
> +			reg = <1>;
> +			status = "okay";
> +			compatible = "riscv";
> +			riscv,isa = "rv64i2p0m2p0a2p0f2p0d2p0c2p0xv5-1p1xdsp0p0";
> +			riscv,priv-major = <1>;
> +			riscv,priv-minor = <10>;
> +			mmu-type = "riscv,sv48";
> +			clock-frequency = <60000000>;
> +			i-cache-size = <0x8000>;
> +			i-cache-sets = <256>;
> +			i-cache-block-size = <64>;
> +			i-cache-line-size = <64>;
> +			d-cache-size = <0x8000>;
> +			d-cache-sets = <128>;
> +			d-cache-block-size = <64>;
> +			d-cache-line-size = <64>;
> +			next-level-cache = <&L2>;
> +			CPU1_intc: interrupt-controller {
> +				#interrupt-cells = <1>;
> +				interrupt-controller;
> +				compatible = "riscv,cpu-intc";
> +			};
> +		};
> +		CPU2: cpu@2 {
> +			device_type = "cpu";
> +			reg = <2>;
> +			status = "okay";
> +			compatible = "riscv";
> +			riscv,isa = "rv64i2p0m2p0a2p0f2p0d2p0c2p0xv5-1p1xdsp0p0";
> +			riscv,priv-major = <1>;
> +			riscv,priv-minor = <10>;
> +			mmu-type = "riscv,sv48";
> +			clock-frequency = <60000000>;
> +			i-cache-size = <0x8000>;
> +			i-cache-sets = <256>;
> +			i-cache-block-size = <64>;
> +			i-cache-line-size = <64>;
> +			d-cache-size = <0x8000>;
> +			d-cache-sets = <128>;
> +			d-cache-block-size = <64>;
> +			d-cache-line-size = <64>;
> +			next-level-cache = <&L2>;
> +			CPU2_intc: interrupt-controller {
> +				#interrupt-cells = <1>;
> +				interrupt-controller;
> +				compatible = "riscv,cpu-intc";
> +			};
> +		};
> +		CPU3: cpu@3 {
> +			device_type = "cpu";
> +			reg = <3>;
> +			status = "okay";
> +			compatible = "riscv";
> +			riscv,isa = "rv64i2p0m2p0a2p0f2p0d2p0c2p0xv5-1p1xdsp0p0";
> +			riscv,priv-major = <1>;
> +			riscv,priv-minor = <10>;
> +			mmu-type = "riscv,sv48";
> +			clock-frequency = <60000000>;
> +			i-cache-size = <0x8000>;
> +			i-cache-sets = <256>;
> +			i-cache-block-size = <64>;
> +			i-cache-line-size = <64>;
> +			d-cache-size = <0x8000>;
> +			d-cache-sets = <128>;
> +			d-cache-block-size = <64>;
> +			d-cache-line-size = <64>;
> +			next-level-cache = <&L2>;
> +			CPU3_intc: interrupt-controller {
> +				#interrupt-cells = <1>;
> +				interrupt-controller;
> +				compatible = "riscv,cpu-intc";
> +			};
> +		};
> +	};
> +	L2: l2-cache@e0500000 {
> +		compatible = "cache";
> +		cache-level = <2>;
> +		cache-size = <0x80000>;
> +		reg = <0x00000000 0xe0500000 0x00000000 0x00001000>;
> +		andes,inst-prefetch = <3>;
> +		andes,data-prefetch = <3>;
> +		// The value format is <XRAMOCTL XRAMICTL>
> +		andes,tag-ram-ctl = <0 0>;
> +		andes,data-ram-ctl = <0 0>;
> +	};
> +	memory@0 {
> +		reg = <0x00000000 0x00000000 0x00000000 0x80000000>;
> +		device_type = "memory";
> +	};
> +	soc {
> +		#address-cells = <2>;
> +		#size-cells = <2>;
> +		compatible = "andestech,riscv-ae350-soc", "simple-bus";
> +		ranges;
> +		plic0: interrupt-controller@e4000000 {
> +			compatible = "riscv,plic0";
> +			reg = <0x00000000 0xe4000000 0x00000000 0x02000000>;
> +			interrupts-extended = < &CPU0_intc 11 &CPU0_intc 9 &CPU1_intc 11 &CPU1_intc 9 &CPU2_intc 11 &CPU2_intc 9 &CPU3_intc 11 &CPU3_intc 9>;
> +			interrupt-controller;
> +			#address-cells = <2>;
> +			#interrupt-cells = <2>;
> +			riscv,ndev = <71>;
> +		};
> +		plic1: interrupt-controller@e6400000 {
> +			compatible = "riscv,plic1";
> +			reg = <0x00000000 0xe6400000 0x00000000 0x00400000>;
> +			interrupts-extended = < &CPU0_intc 3 &CPU1_intc 3 &CPU2_intc 3 &CPU3_intc 3>;
> +			interrupt-controller;
> +			#address-cells = <2>;
> +			#interrupt-cells = <2>;
> +			riscv,ndev = <4>;
> +		};
> +		plmt0: plmt0@e6000000 {
> +			compatible = "riscv,plmt0";
> +			reg = <0x00000000 0xe6000000 0x00000000 0x00100000>;
> +			interrupts-extended = < &CPU0_intc 7 &CPU1_intc 7 &CPU2_intc 7 &CPU3_intc 7>;
> +		};
> +		spiclk: virt_100mhz {
> +			compatible = "fixed-clock";
> +			#clock-cells = <0>;
> +			clock-frequency = <100000000>;
> +		};
> +		timer0: timer@f0400000 {
> +			compatible = "andestech,atcpit100";
> +			reg = <0x00000000 0xf0400000 0x00000000 0x00001000>;
> +			interrupts = <3 4>;
> +			interrupt-parent = <&plic0>;
> +			clock-frequency = <60000000>;
> +		};
> +		pwm: pwm@f0400000 {
> +			compatible = "andestech,atcpit100-pwm";
> +			reg = <0x00000000 0xf0400000 0x00000000 0x00001000>;
> +			interrupts = <3 4>;
> +			interrupt-parent = <&plic0>;
> +			clock-frequency = <60000000>;
> +			pwm-cells = <2>;
> +		};
> +		wdt: wdt@f0500000 {
> +			compatible = "andestech,atcwdt200";
> +			reg = <0x00000000 0xf0500000 0x00000000 0x00001000>;
> +			interrupts = <3 4>;
> +			interrupt-parent = <&plic0>;
> +			clock-frequency = <15000000>;
> +		};
> +		serial0: serial@f0300000 {
> +			compatible = "andestech,uart16550", "ns16550a";
> +			reg = <0x00000000 0xf0300000 0x00000000 0x00001000>;
> +			interrupts = <9 4>;
> +			interrupt-parent = <&plic0>;
> +			clock-frequency = <19660800>;
> +			reg-shift = <2>;
> +			reg-offset = <32>;
> +			no-loopback-test = <1>;
> +		};
> +		rtc0: rtc@f0600000 {
> +			compatible = "andestech,atcrtc100";
> +			reg = <0x00000000 0xf0600000 0x00000000 0x00001000>;
> +			interrupts = <1 4 2 4>;
> +			interrupt-parent = <&plic0>;
> +			wakeup-source;
> +		};
> +		gpio: gpio@f0700000 {
> +			compatible = "andestech,atcgpio100";
> +			reg = <0x00000000 0xf0700000 0x00000000 0x00001000>;
> +			interrupts = <7 4>;
> +			interrupt-parent = <&plic0>;
> +			wakeup-source;
> +		};
> +		mac0: mac@e0100000 {
> +			compatible = "andestech,atmac100";
> +			reg = <0x00000000 0xe0100000 0x00000000 0x00001000>;
> +			interrupts = <19 4>;
> +			interrupt-parent = <&plic0>;
> +			dma-coherent;
> +		};
> +		smu: smu@f0100000 {
> +			compatible = "andestech,atcsmu";
> +			reg = <0x00000000 0xf0100000 0x00000000 0x00001000>;
> +		};
> +		mmc0: mmc@f0e00000 {
> +			compatible = "andestech,atfsdc010";
> +			reg = <0x00000000 0xf0e00000 0x00000000 0x00001000>;
> +			interrupts = <18 4>;
> +			interrupt-parent = <&plic0>;
> +			clock-freq-min-max = <400000 100000000>;
> +			max-frequency = <100000000>;
> +			fifo-depth = <16>;
> +			cap-sd-highspeed;
> +			dma-coherent;
> +		};
> +		dma0: dma@f0c00000 {
> +			compatible = "andestech,atcdmac300";
> +			reg = <0x00000000 0xf0c00000 0x00000000 0x00001000>;
> +			interrupts = <10 4 64 4 65 4 66 4 67 4 68 4 69 4 70 4 71 4>;
> +			interrupt-parent = <&plic0>;
> +			dma-channels = <8>;
> +		};
> +		lcd0: lcd@e0200000 {
> +			compatible = "andestech,atflcdc100";
> +			reg = <0x00000000 0xe0200000 0x00000000 0x00001000>;
> +			interrupts = <20 4>;
> +			interrupt-parent = <&plic0>;
> +			dma-coherent;
> +		};
> +		pmu: pmu {
> +			compatible = "riscv,andes-pmu";
> +			device_type = "pmu";
> +		};
> +		spi: spi@f0b00000 {
> +			compatible = "andestech,atcspi200";
> +			reg = <0x00000000 0xf0b00000 0x00000000 0x00001000>;
> +			interrupts = <4 4>;
> +			interrupt-parent = <&plic0>;
> +			#address-cells = <1>;
> +			#size-cells = <0>;
> +			num-cs = <1>;
> +			clocks = <&spiclk>;
> +			flash@0 {
> +				compatible = "jedec,spi-nor";
> +				reg = <0x00000000>;
> +				spi-max-frequency = <50000000>;
> +				spi-cpol;
> +				spi-cpha;
> +			};
> +		};
> +	};
> +};
> diff --git a/board/andes/ae350/genimage_sdcard.cfg b/board/andes/ae350/genimage_sdcard.cfg
> new file mode 100644
> index 0000000000..b8b9fe6a62
> --- /dev/null
> +++ b/board/andes/ae350/genimage_sdcard.cfg
> @@ -0,0 +1,26 @@
> +image boot.vfat {
> +	vfat {
> +		files = {
> +			"u-boot-spl.bin",
> +			"u-boot.itb",
> +			"ae350.dtb",
> +		}
> +	}
> +	size = 2M
> +}
> +
> +image sdcard.img {
> +	hdimage {
> +	}
> +
> +	partition boot {
> +		partition-type = 0xC
> +		image = "boot.vfat"
> +	}
> +
> +	partition rootfs {
> +		partition-type = 0x83
> +		bootable = true
> +		image = "rootfs.ext4"
> +	}
> +}
> diff --git a/board/andes/ae350/patches/opensbi/0001-Disable-PIC-explicitly-for-assembling.patch b/board/andes/ae350/patches/opensbi/0001-Disable-PIC-explicitly-for-assembling.patch
> new file mode 100644
> index 0000000000..aeafed4c9f
> --- /dev/null
> +++ b/board/andes/ae350/patches/opensbi/0001-Disable-PIC-explicitly-for-assembling.patch
> @@ -0,0 +1,29 @@
> +From 3ccb71eeca42dbcd5e4d00ae1877a489ae82598d Mon Sep 17 00:00:00 2001
> +From: Yu Chien Peter Lin <peterlin@andestech.com>
> +Date: Wed, 29 Dec 2021 16:04:54 +0800
> +Subject: [PATCH] Disable PIC explicitly for assembling
> +
> +This patch is necessary if the fw_dynamic load address
> +is not equal to link address.
> +However, they are equal currently, since we include an u-boot
> +patch for preventing fw_dynamic relocation.
> +
> +Signed-off-by: Yu Chien Peter Lin <peterlin@andestech.com>
> +---
> + Makefile | 1 +
> + 1 file changed, 1 insertion(+)
> +
> +diff --git a/Makefile b/Makefile
> +index d6f097d..441518d 100644
> +--- a/Makefile
> ++++ b/Makefile
> +@@ -225,6 +225,7 @@ ASFLAGS		+=	-mcmodel=$(PLATFORM_RISCV_CODE_MODEL)
> + ASFLAGS		+=	$(GENFLAGS)
> + ASFLAGS		+=	$(platform-asflags-y)
> + ASFLAGS		+=	$(firmware-asflags-y)
> ++ASFLAGS		+=	-fno-pic
> +
> + ARFLAGS		=	rcs
> +
> +--
> +2.25.1
> diff --git a/board/andes/ae350/patches/opensbi/0002-Enable-cache-for-opensbi-jump-mode.patch b/board/andes/ae350/patches/opensbi/0002-Enable-cache-for-opensbi-jump-mode.patch
> new file mode 100644
> index 0000000000..ae48a760c8
> --- /dev/null
> +++ b/board/andes/ae350/patches/opensbi/0002-Enable-cache-for-opensbi-jump-mode.patch
> @@ -0,0 +1,25 @@
> +From 325328f4204b40b1fcc8db3b46c7c8805710d21c Mon Sep 17 00:00:00 2001
> +From: Yu Chien Peter Lin <peterlin@andestech.com>
> +Date: Thu, 30 Dec 2021 08:47:34 +0800
> +Subject: [PATCH] Enable cache for opensbi jump mode
> +
> +Signed-off-by: Yu Chien Peter Lin <peterlin@andestech.com>
> +---
> + firmware/fw_base.S | 2 ++
> + 1 file changed, 2 insertions(+)
> +
> +diff --git a/firmware/fw_base.S b/firmware/fw_base.S
> +index ab33e11..155d230 100644
> +--- a/firmware/fw_base.S
> ++++ b/firmware/fw_base.S
> +@@ -46,6 +46,8 @@
> +	.globl _start
> +	.globl _start_warm
> + _start:
> ++	li t0, 0x80003
> ++	csrw  0x7ca, t0
> +	/* Find preferred boot HART id */
> +	MOV_3R	s0, a0, s1, a1, s2, a2
> +	call	fw_boot_hart
> +--
> +2.25.1
> diff --git a/board/andes/ae350/patches/uboot/0001-Fix-mmc-no-partition-table-error.patch b/board/andes/ae350/patches/uboot/0001-Fix-mmc-no-partition-table-error.patch
> new file mode 100644
> index 0000000000..7aff3cebf6
> --- /dev/null
> +++ b/board/andes/ae350/patches/uboot/0001-Fix-mmc-no-partition-table-error.patch
> @@ -0,0 +1,27 @@
> +From ea4675215b53d16a72d29b8a6fc6a86cccf59cf0 Mon Sep 17 00:00:00 2001
> +From: Yu Chien Peter Lin <peterlin@andestech.com>
> +Date: Wed, 5 Jan 2022 11:00:59 +0800
> +Subject: [PATCH] Fix mmc no partition table error
> +
> +Signed-off-by: Yu Chien Peter Lin <peterlin@andestech.com>
> +---
> + drivers/mmc/ftsdc010_mci.c | 4 ----
> + 1 file changed, 4 deletions(-)
> +
> +diff --git a/drivers/mmc/ftsdc010_mci.c b/drivers/mmc/ftsdc010_mci.c
> +index 570d54cf..3b1e0aa0 100644
> +--- a/drivers/mmc/ftsdc010_mci.c
> ++++ b/drivers/mmc/ftsdc010_mci.c
> +@@ -438,10 +438,6 @@ static int ftsdc010_mmc_probe(struct udevice *dev)
> +		return ret;
> + #endif
> +
> +-	if (dev_read_bool(dev, "cap-mmc-highspeed") || \
> +-		  dev_read_bool(dev, "cap-sd-highspeed"))
> +-		chip->caps |= MMC_MODE_HS | MMC_MODE_HS_52MHz;
> +-
> +	ftsdc_setup_cfg(&plat->cfg, dev->name, chip->buswidth, chip->caps,
> +			priv->minmax[1] , priv->minmax[0]);
> +	chip->mmc = &plat->mmc;
> +--
> +2.25.1
> diff --git a/board/andes/ae350/patches/uboot/0002-Prevent-fw_dynamic-from-relocation.patch b/board/andes/ae350/patches/uboot/0002-Prevent-fw_dynamic-from-relocation.patch
> new file mode 100644
> index 0000000000..c6e1896f1c
> --- /dev/null
> +++ b/board/andes/ae350/patches/uboot/0002-Prevent-fw_dynamic-from-relocation.patch
> @@ -0,0 +1,27 @@
> +From 4c0c5378d032f2f95577585935624baf7b4decf3 Mon Sep 17 00:00:00 2001
> +From: Yu Chien Peter Lin <peterlin@andestech.com>
> +Date: Wed, 5 Jan 2022 11:02:26 +0800
> +Subject: [PATCH] Prevent fw_dynamic from relocation
> +
> +This patch prevents OpenSBI relocation, load fw_dynamic to link address
> +
> +Signed-off-by: Yu Chien Peter Lin <peterlin@andestech.com>
> +---
> + board/AndesTech/ax25-ae350/Kconfig | 2 +-
> + 1 file changed, 1 insertion(+), 1 deletion(-)
> +
> +diff --git a/board/AndesTech/ax25-ae350/Kconfig b/board/AndesTech/ax25-ae350/Kconfig
> +index e50f505a..385c4c11 100644
> +--- a/board/AndesTech/ax25-ae350/Kconfig
> ++++ b/board/AndesTech/ax25-ae350/Kconfig
> +@@ -25,7 +25,7 @@ config SPL_TEXT_BASE
> +	default 0x800000
> +
> + config SPL_OPENSBI_LOAD_ADDR
> +-	default 0x01000000
> ++	default 0x0
> +
> + config BOARD_SPECIFIC_OPTIONS # dummy
> +	def_bool y
> +--
> +2.25.1
> diff --git a/board/andes/ae350/patches/uboot/0003-Fix-u-boot-proper-booting-issue.patch b/board/andes/ae350/patches/uboot/0003-Fix-u-boot-proper-booting-issue.patch
> new file mode 100644
> index 0000000000..20598fdba4
> --- /dev/null
> +++ b/board/andes/ae350/patches/uboot/0003-Fix-u-boot-proper-booting-issue.patch
> @@ -0,0 +1,26 @@
> +From 3d09501175ae6f5e3f6520b48b1358226a99ff16 Mon Sep 17 00:00:00 2001
> +From: Yu Chien Peter Lin <peterlin@andestech.com>
> +Date: Wed, 5 Jan 2022 18:17:39 +0800
> +Subject: [PATCH] Fix u-boot proper booting issue
> +
> +Signed-off-by: Yu Chien Peter Lin <peterlin@andestech.com>
> +---
> + arch/riscv/cpu/start.S | 2 ++
> + 1 file changed, 2 insertions(+)
> +
> +diff --git a/arch/riscv/cpu/start.S b/arch/riscv/cpu/start.S
> +index 76850ec9..2ccda4f5 100644
> +--- a/arch/riscv/cpu/start.S
> ++++ b/arch/riscv/cpu/start.S
> +@@ -139,7 +139,9 @@ call_harts_early_init:
> +	 * accesses gd).
> +	 */
> +	mv	gp, s0
> ++#if !CONFIG_IS_ENABLED(RISCV_SMODE)
> +	bnez	tp, secondary_hart_loop
> ++#endif
> + #endif
> +
> +	jal	board_init_f_init_reserve
> +--
> +2.25.1
> diff --git a/board/andes/ae350/patches/uboot/0004-Enable-printing-OpenSBI-boot-logo.patch b/board/andes/ae350/patches/uboot/0004-Enable-printing-OpenSBI-boot-logo.patch
> new file mode 100644
> index 0000000000..efd78ab26d
> --- /dev/null
> +++ b/board/andes/ae350/patches/uboot/0004-Enable-printing-OpenSBI-boot-logo.patch
> @@ -0,0 +1,25 @@
> +From 3847a959ac4c07facbd80104ca5fa6a91fad5f35 Mon Sep 17 00:00:00 2001
> +From: Yu Chien Peter Lin <peterlin@andestech.com>
> +Date: Thu, 6 Jan 2022 13:50:07 +0800
> +Subject: [PATCH] Enable printing OpenSBI boot logo
> +
> +Signed-off-by: Yu Chien Peter Lin <peterlin@andestech.com>
> +---
> + include/opensbi.h | 2 +-
> + 1 file changed, 1 insertion(+), 1 deletion(-)
> +
> +diff --git a/include/opensbi.h b/include/opensbi.h
> +index d812cc8c..91fb8fd9 100644
> +--- a/include/opensbi.h
> ++++ b/include/opensbi.h
> +@@ -20,7 +20,7 @@
> +
> + enum sbi_scratch_options {
> +	/** Disable prints during boot */
> +-	SBI_SCRATCH_NO_BOOT_PRINTS = (1 << 0),
> ++	SBI_SCRATCH_NO_BOOT_PRINTS = 0,
> + };
> +
> + /** Representation dynamic info passed by previous booting stage */
> +--
> +2.25.1
> diff --git a/board/andes/ae350/post-build.sh b/board/andes/ae350/post-build.sh
> new file mode 100755
> index 0000000000..0e6ce228f4
> --- /dev/null
> +++ b/board/andes/ae350/post-build.sh
> @@ -0,0 +1,3 @@
> +#!/bin/sh
> +cp $BINARIES_DIR/Image $TARGET_DIR/boot
> +cp $BINARIES_DIR/ae350.dtb $TARGET_DIR/boot
> diff --git a/board/andes/ae350/readme.txt b/board/andes/ae350/readme.txt
> new file mode 100644
> index 0000000000..6825468d50
> --- /dev/null
> +++ b/board/andes/ae350/readme.txt
> @@ -0,0 +1,65 @@
> +Intro
> +=====
> +
> +Andestech AE350 Platform
> +
> +The AE350 prototype demonstrates the AE350 platform on the FPGA.
> +
> +How to build it
> +===============
> +
> +Configure Buildroot
> +-------------------
> +
> +  $ make andes_ae350_45_defconfig
> +
> +If you want to customize your configuration:
> +
> +  $ make menuconfig
> +
> +Build everything
> +----------------
> +Note: you will need to access to the network, since Buildroot will
> +download the packages' sources.
> +
> +  $ make
> +
> +Result of the build
> +-------------------
> +
> +After building, you should obtain the following files:
> +
> +  output/images/
> +  |-- ae350.dtb
> +  |-- boot.vfat
> +  |-- fw_dynamic.bin
> +  |-- fw_dynamic.elf
> +  |-- fw_jump.bin
> +  |-- fw_jump.elf
> +  |-- Image
> +  |-- rootfs.ext2
> +  |-- rootfs.ext4 -> rootfs.ext2
> +  |-- sdcard.img
> +  |-- u-boot-spl.bin
> +  `-- u-boot.itb
> +
> +Copy the sdcard.img to a SD card with "dd":
> +
> +  $ sudo dd if=sdcard.img of=/dev/sdX bs=4096
> +  $ sudo sync
> +
> +Your SD card partition should be:
> +
> +  Disk /dev/sdb: 14.48 GiB, 15552479232 bytes, 30375936 sectors
> +  Disk model: Multi-Card
> +  Units: sectors of 1 * 512 = 512 bytes
> +  Sector size (logical/physical): 512 bytes / 512 bytes
> +  I/O size (minimum/optimal): 512 bytes / 512 bytes
> +  Disklabel type: dos
> +  Disk identifier: 0x00000000
> +
> +  Device     Boot Start    End Sectors Size Id Type
> +  /dev/sdb1           1   4096    4096   2M  c W95 FAT32 (LBA)
> +  /dev/sdb2  *     4097 126976  122880  60M 83 Linux
> +
> +Insert SD card and reset the board, it should boot Linux from mmc.
> diff --git a/board/andes/ae350/rootfs_overlay/boot/extlinux/extlinux.conf b/board/andes/ae350/rootfs_overlay/boot/extlinux/extlinux.conf
> new file mode 100644
> index 0000000000..549eb93abc
> --- /dev/null
> +++ b/board/andes/ae350/rootfs_overlay/boot/extlinux/extlinux.conf
> @@ -0,0 +1,4 @@
> +label linux
> +   kernel /boot/Image
> +   fdt /boot/ae350.dtb
> +   append earlycon=sbi root=/dev/mmcblk0p2 rootwait
> diff --git a/board/andes/ae350/uboot.config.fragment b/board/andes/ae350/uboot.config.fragment
> new file mode 100644
> index 0000000000..4992d712a5
> --- /dev/null
> +++ b/board/andes/ae350/uboot.config.fragment
> @@ -0,0 +1,5 @@
> +CONFIG_SPL_FS_FAT=y
> +CONFIG_SPL_MMC=y
> +# CONFIG_SPL_RAM_SUPPORT is not set
> +# CONFIG_OF_BOARD is not set
> +CONFIG_OF_SEPARATE=y
> diff --git a/configs/andes_ae350_45_defconfig b/configs/andes_ae350_45_defconfig
> new file mode 100644
> index 0000000000..a35ddd06ba
> --- /dev/null
> +++ b/configs/andes_ae350_45_defconfig
> @@ -0,0 +1,43 @@
> +BR2_riscv=y
> +BR2_riscv_custom=y
> +BR2_RISCV_ISA_CUSTOM_RVM=y
> +BR2_RISCV_ISA_CUSTOM_RVF=y
> +BR2_RISCV_ISA_CUSTOM_RVD=y
> +BR2_RISCV_ISA_CUSTOM_RVC=y
> +BR2_GLOBAL_PATCH_DIR="board/andes/ae350/patches"
> +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_10=y
> +BR2_TARGET_GENERIC_GETTY_PORT="ttyS0"
> +BR2_ROOTFS_OVERLAY="board/andes/ae350/rootfs_overlay"
> +BR2_ROOTFS_POST_BUILD_SCRIPT="board/andes/ae350/post-build.sh"
> +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh"
> +BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/andes/ae350/genimage_sdcard.cfg"
> +BR2_LINUX_KERNEL=y
> +BR2_LINUX_KERNEL_CUSTOM_GIT=y
> +BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://github.com/andestech/linux.git"
> +BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="v5.10.84-ae350_45"
> +BR2_LINUX_KERNEL_DEFCONFIG="ae350_rv64_smp"
> +BR2_LINUX_KERNEL_DTS_SUPPORT=y
> +BR2_LINUX_KERNEL_CUSTOM_DTS_PATH="board/andes/ae350/ae350.dts"
> +BR2_TARGET_ROOTFS_EXT2=y
> +BR2_TARGET_ROOTFS_EXT2_4=y
> +# BR2_TARGET_ROOTFS_TAR is not set
> +BR2_TARGET_OPENSBI=y
> +BR2_TARGET_OPENSBI_PLAT="andes/ae350"
> +BR2_TARGET_UBOOT=y
> +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y
> +BR2_TARGET_UBOOT_CUSTOM_VERSION=y
> +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2022.01"
> +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="ae350_rv64_spl_xip"
> +BR2_TARGET_UBOOT_CONFIG_FRAGMENT_FILES="board/andes/ae350/uboot.config.fragment"
> +BR2_TARGET_UBOOT_NEEDS_PYTHON3=y
> +BR2_TARGET_UBOOT_NEEDS_PYLIBFDT=y
> +BR2_TARGET_UBOOT_NEEDS_OPENSSL=y
> +BR2_TARGET_UBOOT_NEEDS_OPENSBI=y
> +# BR2_TARGET_UBOOT_FORMAT_BIN is not set
> +BR2_TARGET_UBOOT_FORMAT_CUSTOM=y
> +BR2_TARGET_UBOOT_FORMAT_CUSTOM_NAME="u-boot.itb"
> +BR2_TARGET_UBOOT_SPL=y
> +BR2_TARGET_UBOOT_CUSTOM_MAKEOPTS="ARCH_FLAGS=-march=rv64imafdc"
> +BR2_PACKAGE_HOST_DOSFSTOOLS=y
> +BR2_PACKAGE_HOST_GENIMAGE=y
> +BR2_PACKAGE_HOST_MTOOLS=y

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2022-02-21 19:11 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-02-15  2:32 [Buildroot] [PATCH 1/3] board/andes: rearrange nds32 folder structure Yu Chien Peter Lin
2022-02-15  2:32 ` [Buildroot] [PATCH 2/3] board/andes/ae350: add support for Andes AE350 Yu Chien Peter Lin
2022-02-15  5:14   ` Yu Chien Peter Lin
2022-02-15 13:00     ` Giulio Benetti
2022-02-16  0:52       ` Yu Chien Peter Lin
2022-02-16  1:52         ` Giulio Benetti
2022-02-21 19:10   ` Giulio Benetti
2022-02-15  2:32 ` [Buildroot] [PATCH 3/3] DEVELOPERS: add Yu-Chien Lin to board/andes Yu Chien Peter Lin

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.