aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLeo Yu-Chi Liang <ycliang@andestech.com>2021-11-04 09:53:26 +0800
committerLeo Yu-Chi Liang <ycliang@andestech.com>2021-12-02 16:43:45 +0800
commit666da85dc98931b82efa68b0c1a96fc654b7a40b (patch)
tree8f707310de096fbb7efa32328d902873a0ed18e5
parent4a14bfffd42f968ed9d72a780a8d44a9053c5b95 (diff)
downloadu-boot-666da85dc98931b82efa68b0c1a96fc654b7a40b.zip
u-boot-666da85dc98931b82efa68b0c1a96fc654b7a40b.tar.gz
u-boot-666da85dc98931b82efa68b0c1a96fc654b7a40b.tar.bz2
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> Reviewed-by: Rick Chen <rick@andestech.com>
-rw-r--r--include/configs/ax25-ae350.h13
1 files changed, 12 insertions, 1 deletions
diff --git a/include/configs/ax25-ae350.h b/include/configs/ax25-ae350.h
index bf3f34e..1c3f957 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 \