summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRob Herring <rob.herring@calxeda.com>2012-02-01 16:57:57 +0000
committerAlbert ARIBAUD <albert.u.boot@aribaud.net>2012-03-28 23:34:27 +0200
commit4a3ea216414ad762b3718775a65437c13f0accbc (patch)
tree67500bcc9c135b91462325bd7575d22b0b54cf3f
parenta34e8549480c41057aa47cea50c0785fd9ce4f4a (diff)
downloadtalos-obmc-uboot-4a3ea216414ad762b3718775a65437c13f0accbc.tar.gz
talos-obmc-uboot-4a3ea216414ad762b3718775a65437c13f0accbc.zip
ARM: highbank: setup env from boot source register
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@calxeda.com>
-rw-r--r--board/highbank/highbank.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/board/highbank/highbank.c b/board/highbank/highbank.c
index 1e2da783c6..f41bf05a51 100644
--- a/board/highbank/highbank.c
+++ b/board/highbank/highbank.c
@@ -24,6 +24,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
@@ -55,8 +56,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;
}
OpenPOWER on IntegriCloud