[U-Boot] [PATCH 6/6] ARM: highbank: setup env from boot source register
Rob Herring
robherring2 at gmail.com
Thu Feb 2 03:57:57 CET 2012
From: Rob Herring <rob.herring at calxeda.com>
Add support to read the boot src register and set bootcmd env from the
selected bootcmdX env setting.
Based on Linkstation boot choice selection.
Signed-off-by: Rob Herring <rob.herring at calxeda.com>
---
board/highbank/highbank.c | 13 +++++++++++++
1 files changed, 13 insertions(+), 0 deletions(-)
diff --git a/board/highbank/highbank.c b/board/highbank/highbank.c
index b771cc8..e2dce53 100644
--- a/board/highbank/highbank.c
+++ b/board/highbank/highbank.c
@@ -23,6 +23,7 @@
#include <asm/io.h>
#define HB_SREG_A9_PWR_REQ 0xfff3cf00
+#define HB_SREG_A9_BOOT_SRC_STAT 0xfff3cf04
#define HB_PWR_SUSPEND 0
#define HB_PWR_SOFT_RESET 1
#define HB_PWR_HARD_RESET 2
@@ -54,8 +55,20 @@ int board_eth_init(bd_t *bis)
int misc_init_r(void)
{
+ char envbuffer[16];
+ u32 boot_choice;
+
ahci_init(0xffe08000);
scsi_scan(1);
+
+ boot_choice = readl(HB_SREG_A9_BOOT_SRC_STAT) & 0xff;
+ sprintf(envbuffer, "bootcmd%d", boot_choice);
+ if (getenv(envbuffer)) {
+ sprintf(envbuffer, "run bootcmd%d", boot_choice);
+ setenv("bootcmd", envbuffer);
+ } else
+ setenv("bootcmd", "");
+
return 0;
}
--
1.7.5.4
More information about the U-Boot
mailing list