mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-10 23:24:38 +00:00
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>
This commit is contained in:
parent
a34e854948
commit
4a3ea21641
1 changed files with 13 additions and 0 deletions
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue