mirror of
https://git.yoctoproject.org/meta-arm
synced 2026-05-08 05:09:56 +00:00
arm-bsp/u-boot: identify which bank to load kernel from
Secure enclave, based on the firmware update state of the system, decides the boot bank. In this commit, u-boot identifies the selected boot bank and loads the kernel from it. Change-Id: Ifcef126dc79c7808b30ef0319d83482d2d29fd13 Signed-off-by: Satish Kumar <satish.kumar01@arm.com> Signed-off-by: Jon Mason <jon.mason@arm.com>
This commit is contained in:
+66
@@ -0,0 +1,66 @@
|
||||
Upstream-Status: Pending [Not submitted to upstream yet]
|
||||
Signed-off-by: Satish Kumar <satish.kumar01@arm.com>
|
||||
|
||||
From abc455d29aa9c983c6af2fa75870a7ee95da2496 Mon Sep 17 00:00:00 2001
|
||||
From: Satish Kumar <satish.kumar01@arm.com>
|
||||
Date: Wed, 1 Dec 2021 19:17:57 +0000
|
||||
Subject: [PATCH] arm: corstone1000: identify which bank to load kernel from
|
||||
|
||||
Secure enclave, based on the firmware update state of the
|
||||
system, decides the boot bank. In this commit, u-boot
|
||||
identifies the selected boot bank and loads the kernel
|
||||
from it.
|
||||
|
||||
Signed-off-by: Satish Kumar <satish.kumar01@arm.com>
|
||||
---
|
||||
configs/corstone1000_defconfig | 2 +-
|
||||
include/configs/corstone1000.h | 18 ++++++++++++++----
|
||||
2 files changed, 15 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/configs/corstone1000_defconfig b/configs/corstone1000_defconfig
|
||||
index 0b9ead461b..3c00e13ceb 100644
|
||||
--- a/configs/corstone1000_defconfig
|
||||
+++ b/configs/corstone1000_defconfig
|
||||
@@ -29,7 +29,7 @@ CONFIG_CMD_BOOTEFI_HELLO=y
|
||||
CONFIG_CMD_NVEDIT_EFI=y
|
||||
# CONFIG_CMD_LOADS is not set
|
||||
CONFIG_CMD_USB=y
|
||||
-# CONFIG_CMD_ITEST is not set
|
||||
+CONFIG_CMD_ITEST=y
|
||||
# CONFIG_CMD_SETEXPR is not set
|
||||
CONFIG_CMD_DHCP=y
|
||||
# CONFIG_CMD_NFS is not set
|
||||
diff --git a/include/configs/corstone1000.h b/include/configs/corstone1000.h
|
||||
index baa0720fb5..7c6f66c891 100644
|
||||
--- a/include/configs/corstone1000.h
|
||||
+++ b/include/configs/corstone1000.h
|
||||
@@ -97,12 +97,22 @@
|
||||
BOOTENV \
|
||||
"usb_pgood_delay=250\0" \
|
||||
"fdt_addr_r=0x82000000\0" \
|
||||
- "kernel_addr=0x083EE000\0" \
|
||||
- "kernel_addr_r=0x88200000\0" \
|
||||
+ "boot_bank_flag=0x08002000\0" \
|
||||
+ "kernel_addr_bank_0=0x083EE000\0" \
|
||||
+ "kernel_addr_bank_1=0x0936E000\0" \
|
||||
+ "retrieve_kernel_load_addr=" \
|
||||
+ "if itest.l *${boot_bank_flag} == 0; then " \
|
||||
+ "setenv kernel_addr $kernel_addr_bank_0;" \
|
||||
+ "else " \
|
||||
+ "setenv kernel_addr $kernel_addr_bank_1;" \
|
||||
+ "fi;" \
|
||||
+ "\0" \
|
||||
+ "kernel_addr_r=0x88200000\0" \
|
||||
"fdt_high=0xffffffff\0"
|
||||
#define CONFIG_BOOTCOMMAND \
|
||||
- "echo Loading Kernel to memory ... ;" \
|
||||
- "loadm $kernel_addr $kernel_addr_r 0xc00000;" \
|
||||
+ "run retrieve_kernel_load_addr;" \
|
||||
+ "echo Loading kernel from $kernel_addr to memory ... ;" \
|
||||
+ "loadm $kernel_addr $kernel_addr_r 0xc00000;" \
|
||||
"usb start; usb reset;" \
|
||||
"run distro_bootcmd;" \
|
||||
"bootefi $kernel_addr_r $fdtcontroladdr;"
|
||||
--
|
||||
2.17.1
|
||||
|
||||
@@ -41,6 +41,7 @@ SRC_URI:append:corstone1000 = " \
|
||||
file://0029-corstone1000-set-CONFIG_PSCI_RESET.patch \
|
||||
file://0030-arm-bsp-u-boot-corstone1000-Implement-autoboot-script.patch \
|
||||
file://0031-corstone1000-change-base-address-of-kernel-in-the-fl.patch \
|
||||
file://0032-arm-corstone1000-identify-which-bank-to-load-kernel.patch \
|
||||
"
|
||||
|
||||
#
|
||||
|
||||
Reference in New Issue
Block a user