mirror of
https://github.com/Fishwaldo/u-boot.git
synced 2025-07-01 03:12:14 +00:00
board/BuR/kwb: Support modify bootcmd through reset-controller
For some cases it is necessary to modify temporaly the bootcommand. This can be done by writing into the Scratchregister a specific value: * 0xCC - modify bootcmd "run netboot" * 0xCD - modify bootcmd "run netscript" * 0xCE - modify bootcmd "run mmcboot" the environment in flash is NOT overwritten. Signed-off-by: Hannes Petermaier <oe5hpm@oevsv.at>
This commit is contained in:
parent
a9642925a1
commit
8db622cdd4
1 changed files with 28 additions and 2 deletions
|
@ -169,10 +169,18 @@ int board_late_init(void)
|
||||||
const unsigned int toff = 1000;
|
const unsigned int toff = 1000;
|
||||||
unsigned int cnt = 3;
|
unsigned int cnt = 3;
|
||||||
unsigned short buf = 0xAAAA;
|
unsigned short buf = 0xAAAA;
|
||||||
|
unsigned char scratchreg = 0;
|
||||||
unsigned int oldspeed;
|
unsigned int oldspeed;
|
||||||
|
|
||||||
tps65217_reg_write(TPS65217_PROT_LEVEL_NONE,
|
/* try to read out some boot-instruction from resetcontroller */
|
||||||
TPS65217_WLEDCTRL2, 0x32, 0xFF); /* 50% dimlevel */
|
oldspeed = i2c_get_bus_speed();
|
||||||
|
if (i2c_set_bus_speed(CONFIG_SYS_OMAP24_I2C_SPEED_PSOC) >= 0) {
|
||||||
|
i2c_read(RSTCTRL_ADDR, RSTCTRL_SCRATCHREG, 1,
|
||||||
|
&scratchreg, sizeof(scratchreg));
|
||||||
|
i2c_set_bus_speed(oldspeed);
|
||||||
|
} else {
|
||||||
|
puts("ERROR: i2c_set_bus_speed failed! (scratchregister)\n");
|
||||||
|
}
|
||||||
|
|
||||||
if (gpio_get_value(ESC_KEY)) {
|
if (gpio_get_value(ESC_KEY)) {
|
||||||
do {
|
do {
|
||||||
|
@ -223,6 +231,24 @@ int board_late_init(void)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
} while (cnt);
|
} while (cnt);
|
||||||
|
} else if (scratchreg == 0xCC) {
|
||||||
|
lcd_position_cursor(1, 8);
|
||||||
|
lcd_puts(
|
||||||
|
"starting vxworks from network ... ");
|
||||||
|
setenv("bootcmd", "run netboot");
|
||||||
|
cnt = 4;
|
||||||
|
} else if (scratchreg == 0xCD) {
|
||||||
|
lcd_position_cursor(1, 8);
|
||||||
|
lcd_puts(
|
||||||
|
"starting script from network ... ");
|
||||||
|
setenv("bootcmd", "run netscript");
|
||||||
|
cnt = 4;
|
||||||
|
} else if (scratchreg == 0xCE) {
|
||||||
|
lcd_position_cursor(1, 8);
|
||||||
|
lcd_puts(
|
||||||
|
"starting AR from eMMC ... ");
|
||||||
|
setenv("bootcmd", "run mmcboot");
|
||||||
|
cnt = 4;
|
||||||
}
|
}
|
||||||
|
|
||||||
lcd_position_cursor(1, 8);
|
lcd_position_cursor(1, 8);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue