mirror of
https://git.yoctoproject.org/meta-arm
synced 2026-05-07 04:58:57 +00:00
arm-bsp/u-boot: fix autoboot issue on juno platform
this commit fixes memory corruption of uEnv.txt's DRAM memory at
${loadaddr} , by giving enough memory to kernel Image.
Change-Id: I0243b121f1e56b06b8d2f2a21420c594598fad31
Signed-off-by: Damodar Santhapuri <damodar.santhapuri@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
This commit is contained in:
committed by
Jon Mason
parent
91d5c596a6
commit
3dab98935e
@@ -1,16 +1,39 @@
|
||||
From 5372743bab931e0f31e37c3767077abd504eca2b Mon Sep 17 00:00:00 2001
|
||||
From: Damodar Santhapuri <damodar.santhapuri@arm.com>
|
||||
Date: Thu, 5 Nov 2020 22:40:48 +0530
|
||||
Subject: [PATCH] arm: juno: add custom bootcmd to autoboot from uEnv.txt file
|
||||
|
||||
enable autoboot support with custom bootcmd loads uEnv.txt
|
||||
from NOR to DRAM and import.
|
||||
|
||||
Signed-off-by: Damodar Santhapuri <damodar.santhapuri@arm.com>
|
||||
Upstream-Status: Pending
|
||||
---
|
||||
include/configs/vexpress_aemv8a.h | 40 ++++++++++++++++++++++++++-----
|
||||
1 file changed, 34 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/include/configs/vexpress_aemv8a.h b/include/configs/vexpress_aemv8a.h
|
||||
index 09cdd3dab5..7d6d231bd9 100644
|
||||
index 09cdd3dab5..9c9f8dfd16 100644
|
||||
--- a/include/configs/vexpress_aemv8a.h
|
||||
+++ b/include/configs/vexpress_aemv8a.h
|
||||
@@ -136,6 +136,32 @@
|
||||
@@ -131,11 +131,39 @@
|
||||
"kernel_name=norkern\0" \
|
||||
"kernel_alt_name=Image\0" \
|
||||
"kernel_addr_r=0x80080000\0" \
|
||||
- "ramdisk_name=ramdisk.img\0" \
|
||||
- "ramdisk_addr_r=0x88000000\0" \
|
||||
+ "initrd_name=ramdisk.img\0" \
|
||||
+ "initrd_addr_r=0x88000000\0" \
|
||||
"fdtfile=board.dtb\0" \
|
||||
"fdt_alt_name=juno\0" \
|
||||
"fdt_addr_r=0x80000000\0" \
|
||||
+ "bootenvfile=uEnv.txt\0" \
|
||||
+ "bootcmd=run envboot\0" \
|
||||
+ "envboot=if run loadbootenv; then echo Loading env from ${bootenvfile}; run importbootenv; else run default_bootcmd; fi; if test -n $uenvcmd; then echo Running uenvcmd ...; run uenvcmd;fi;\0" \
|
||||
+ "fdt_high=0xffffffffffffffff\0" \
|
||||
+ "initrd_high=0xffffffffffffffff\0" \
|
||||
+ "bootenvfile=uEnv.txt\0" \
|
||||
+ "bootcmd=run envboot\0" \
|
||||
+ "envboot=if run loadbootenv; then echo Loading env from ${bootenvfile}; run importbootenv; else run default_bootcmd; fi; if test -n $uenvcmd; then echo Running uenvcmd ...; run uenvcmd;fi;\0" \
|
||||
+ "importbootenv=echo Importing environment from memory, size ${filesize}; env import -t ${loadaddr} ${filesize}\0" \
|
||||
+ "loadaddr=0x82000000\0" \
|
||||
+ "loadaddr=0x84000000\0" \
|
||||
+ "filesize=0x4000\0" \
|
||||
+ "loadbootenv=mw.l ${loadaddr} 0 0x1000; afs load ${bootenvfile} ${loadaddr}\0" \
|
||||
+ "default_bootcmd=echo running default boot command; afs load ${kernel_name} ${kernel_addr_r} ; " \
|
||||
@@ -26,12 +49,32 @@ index 09cdd3dab5..7d6d231bd9 100644
|
||||
+ " afs load ${fdt_alt_name} ${fdt_addr_r}; "\
|
||||
+ "fi ; "\
|
||||
+ "fdt addr ${fdt_addr_r}; fdt resize; " \
|
||||
+ "if afs load ${ramdisk_name} ${ramdisk_addr_r} ; "\
|
||||
+ "if afs load ${initrd_name} ${initrd_addr_r} ; "\
|
||||
+ "then "\
|
||||
+ " setenv ramdisk_param ${ramdisk_addr_r}; "\
|
||||
+ " else setenv ramdisk_param -; "\
|
||||
+ " setenv initrd_param ${initrd_addr_r}; "\
|
||||
+ " else setenv initrd_param -; "\
|
||||
+ "fi ; " \
|
||||
+ "booti ${kernel_addr_r} ${ramdisk_param} ${fdt_addr_r}\0"
|
||||
+ "booti ${kernel_addr_r} ${initrd_param} ${fdt_addr_r}\0"
|
||||
|
||||
/* Copy the kernel and FDT to DRAM memory and boot */
|
||||
#define CONFIG_BOOTCOMMAND "afs load ${kernel_name} ${kernel_addr_r} ;"\
|
||||
@@ -151,12 +179,12 @@
|
||||
" afs load ${fdt_alt_name} ${fdt_addr_r}; "\
|
||||
"fi ; "\
|
||||
"fdt addr ${fdt_addr_r}; fdt resize; " \
|
||||
- "if afs load ${ramdisk_name} ${ramdisk_addr_r} ; "\
|
||||
+ "if afs load ${initrd_name} ${initrd_addr_r} ; "\
|
||||
"then "\
|
||||
- " setenv ramdisk_param ${ramdisk_addr_r}; "\
|
||||
- " else setenv ramdisk_param -; "\
|
||||
+ " setenv initrd_param ${initrd_addr_r}; "\
|
||||
+ " else setenv initrd_param -; "\
|
||||
"fi ; " \
|
||||
- "booti ${kernel_addr_r} ${ramdisk_param} ${fdt_addr_r}"
|
||||
+ "booti ${kernel_addr_r} ${initrd_param} ${fdt_addr_r}"
|
||||
|
||||
|
||||
#elif CONFIG_TARGET_VEXPRESS64_BASE_FVP
|
||||
--
|
||||
2.17.1
|
||||
|
||||
|
||||
Reference in New Issue
Block a user