diff mbox series

[1/1] board: ae350: Support autoboot from RAM

Message ID 20211104015326.32238-1-ycliang@andestech.com
State Accepted
Commit 666da85dc98931b82efa68b0c1a96fc654b7a40b
Delegated to: Andes
Headers show
Series [1/1] board: ae350: Support autoboot from RAM | expand

Commit Message

Leo Liang Nov. 4, 2021, 1:53 a.m. UTC
Add boot command "bootcmd_ram" to support autoboot from RAM.

This feature could be useful at the very initial state of chip design
when there is only a minimal set of peripheral. (e.g. without mmc and mac ..etc)

The kernel image is default to be loaded at 0x2000000 via debug port,
and the following script serves as an example:

spl()
{
	cmd="riscv64-linux-gdb -q \
	-ex \"target remote $host:$port\" \
	-ex \"load\" \
	-ex \"thread apply all set \\\$pc=&_start\" \
	-ex \"thread apply all set \\\$a0=\\\$mhartid\" \
	-ex \"thread apply all set \\\$a1=<dtb address>\" \
	-ex \"restore u-boot.itb binary 0x200000\" \
	-ex \"restore Image binary 0x2000000\" \
	-ex \"c\" \
	spl/u-boot-spl
	"

	echo $cmd
	eval $cmd
}

The address where the kernel is loaded can be altered by
changing the value of KERNEL_IMAGE_ADDR.

Signed-off-by: Leo Yu-Chi Liang <ycliang@andestech.com>
---
 include/configs/ax25-ae350.h | 13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)

Comments

Rick Chen Nov. 4, 2021, 2:39 a.m. UTC | #1
> From: Leo Yu-Chi Liang(梁育齊) <ycliang@andestech.com>
> Sent: Thursday, November 04, 2021 9:53 AM
> To: u-boot@lists.denx.de
> Cc: Rick Jian-Zhi Chen(陳建志) <rick@andestech.com>; Leo Yu-Chi Liang(梁育齊) <ycliang@andestech.com>
> Subject: [PATCH 1/1] board: ae350: Support autoboot from RAM
>
> Add boot command "bootcmd_ram" to support autoboot from RAM.
>
> This feature could be useful at the very initial state of chip design when there is only a minimal set of peripheral. (e.g. without mmc and mac ..etc)
>
> The kernel image is default to be loaded at 0x2000000 via debug port, and the following script serves as an example:
>
> spl()
> {
>         cmd="riscv64-linux-gdb -q \
>         -ex \"target remote $host:$port\" \
>         -ex \"load\" \
>         -ex \"thread apply all set \\\$pc=&_start\" \
>         -ex \"thread apply all set \\\$a0=\\\$mhartid\" \
>         -ex \"thread apply all set \\\$a1=<dtb address>\" \
>         -ex \"restore u-boot.itb binary 0x200000\" \
>         -ex \"restore Image binary 0x2000000\" \
>         -ex \"c\" \
>         spl/u-boot-spl
>         "
>
>         echo $cmd
>         eval $cmd
> }
>
> The address where the kernel is loaded can be altered by changing the value of KERNEL_IMAGE_ADDR.
>
> Signed-off-by: Leo Yu-Chi Liang <ycliang@andestech.com>
> ---
>  include/configs/ax25-ae350.h | 13 ++++++++++++-
>  1 file changed, 12 insertions(+), 1 deletion(-)

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

Patch

diff --git a/include/configs/ax25-ae350.h b/include/configs/ax25-ae350.h
index bf3f34e428..1c3f957d32 100644
--- a/include/configs/ax25-ae350.h
+++ b/include/configs/ax25-ae350.h
@@ -119,12 +119,23 @@ 
 /* Increase max gunzip size */
 #define CONFIG_SYS_BOOTM_LEN	(64 << 20)
 
+/* Support autoboot from RAM (kernel image is loaded via debug port) */
+#define KERNEL_IMAGE_ADDR	"0x2000000 "
+#define BOOTENV_DEV_NAME_RAM(devtypeu, devtypel, instance) \
+	"ram "
+#define BOOTENV_DEV_RAM(devtypeu, devtypel, instance) \
+	"bootcmd_ram=" \
+	"booti " \
+	KERNEL_IMAGE_ADDR \
+	"- $fdtcontroladdr\0"
+
 /* When we use RAM as ENV */
 
 /* Enable distro boot */
 #define BOOT_TARGET_DEVICES(func) \
 	func(MMC, mmc, 0) \
-	func(DHCP, dhcp, na)
+	func(DHCP, dhcp, na) \
+	func(RAM, ram, na)
 #include <config_distro_bootcmd.h>
 
 #define CONFIG_EXTRA_ENV_SETTINGS	\