1
0
mirror of https://git.yoctoproject.org/meta-arm synced 2026-05-08 05:09:56 +00:00

arm-bsp/u-boot: corstone1000: Implement autoboot storage device selection

This commit implements distro_bootcmd in config_bootcommand in u-boot.
This command traverses all the USB devices connected to the board and
finds a usb device that has bootable image to boot from it. If it cannot
find a usb device with the bootable image, it will boot the system using
the existing flash.

Change-Id: Ia05ca02d6f490a1b51fcf377afcc86ea0ed4e19c
Signed-off-by: Emekcan Aras <emekcan.aras@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
This commit is contained in:
Emekcan Aras
2021-12-03 12:28:55 +00:00
committed by Jon Mason
parent e7e4b7dfb3
commit a224d8eac6
2 changed files with 65 additions and 0 deletions
@@ -0,0 +1,64 @@
Upstream-Status: Pending [Not submitted to upstream yet]
Signed-off-by: Emekcan Aras <Emekcan.Aras@arm.com>
From e51542907203c46bdbbd78aa1c76058204fd75f1 Mon Sep 17 00:00:00 2001
From: Emekcan Aras <Emekcan.Aras@arm.com>
Date: Thu, 25 Nov 2021 16:54:57 +0000
Subject: [PATCH] arm-bsp/u-boot: corstone1000: Implement autoboot
storage device selection
This commit implements distro_bootcmd in config_bootcommand in u-boot.
This command traverses all the USB devices connected to the board and
finds a usb device that has bootable image to boot from it. If it cannot
find a usb device with the bootable image, it will boot the system using
the existing flash.
Signed-off-by: Emekcan Aras <emekcan.aras@arm.com>
---
configs/corstone1000_defconfig | 2 +-
include/configs/corstone1000.h | 15 ++++++++++-----
2 files changed, 11 insertions(+), 6 deletions(-)
diff --git a/configs/corstone1000_defconfig b/configs/corstone1000_defconfig
index 10b7c3ea18..0b9ead461b 100644
--- a/configs/corstone1000_defconfig
+++ b/configs/corstone1000_defconfig
@@ -66,4 +66,4 @@ CONFIG_EFI_GET_TIME=y
CONFIG_EFI_SET_TIME=y
CONFIG_RTC_EMULATION=y
CONFIG_PSCI_RESET=y
-
+CONFIG_DISTRO_DEFAULTS=y
diff --git a/include/configs/corstone1000.h b/include/configs/corstone1000.h
index b0932f9f33..d029059a81 100644
--- a/include/configs/corstone1000.h
+++ b/include/configs/corstone1000.h
@@ -85,15 +85,20 @@
#define CONFIG_SYS_CBSIZE 512 /* Console I/O Buffer Size */
#define CONFIG_SYS_MAXARGS 64 /* max command args */
-#define CONFIG_EXTRA_ENV_SETTINGS \
+#define BOOT_TARGET_DEVICES(func) \
+ func(USB, usb, 0)
+#include <config_distro_bootcmd.h>
+#define CONFIG_EXTRA_ENV_SETTINGS \
+ BOOTENV \
"usb_pgood_delay=250\0" \
"fdt_addr_r=0x82000000\0" \
"kernel_addr=0x08330000\0" \
- "kernel_addr_r=0x82100000\0" \
+ "kernel_addr_r=0x88200000\0" \
"fdt_high=0xffffffff\0"
-
-#define CONFIG_BOOTCOMMAND \
- "echo Loading Kernel to memory ... ;" \
+#define CONFIG_BOOTCOMMAND \
+ "echo Loading Kernel to memory ... ;" \
"loadm $kernel_addr $kernel_addr_r 0xc00000;" \
+ "usb start; usb reset;" \
+ "run distro_bootcmd;" \
"bootefi $kernel_addr_r $fdtcontroladdr;"
#endif
--
2.25.1
@@ -39,6 +39,7 @@ SRC_URI:append:corstone1000 = " \
file://0027-corstone1000-Make-sure-shared-buffer-contents-are-no.patch \
file://0028-arm-corstone1000-fix-unrecognized-filesystem-type-error.patch \
file://0029-corstone1000-set-CONFIG_PSCI_RESET.patch \
file://0030-arm-bsp-u-boot-corstone1000-Implement-autoboot-script.patch \
"
#