arm/km: introduce bootcount env variable and clean km_arm
This environment variable is used to set the bootcount address for the kernel. last_stage_init is not available for arm platforms. So the calls to set_km_var and set_bootcount_addr are done in misc_init_r. Additionally some unneeded printouts were removed. Signed-off-by: Valentin Longchamp <valentin.longchamp@keymile.com> Signed-off-by: Holger Brunck <holger.brunck@keymile.com> Acked-by: Heiko Schocher <hs@denx.de> cc: Wolfgang Denk <wd@denx.de> cc: Detlev Zundel <dzu@denx.de> cc: Prafulla Wadaskar <prafulla@marvell.com>
This commit is contained in:
parent
ea616d4def
commit
22c67d0839
|
@ -145,16 +145,22 @@ int initialize_unit_leds(void)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if defined(CONFIG_BOOTCOUNT_LIMIT)
|
||||||
|
void set_bootcount_addr(void)
|
||||||
|
{
|
||||||
|
uchar buf[32];
|
||||||
|
unsigned int bootcountaddr;
|
||||||
|
bootcountaddr = gd->ram_size - BOOTCOUNT_ADDR;
|
||||||
|
sprintf((char *)buf, "0x%x", bootcountaddr);
|
||||||
|
setenv("bootcountaddr", (char *)buf);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
int misc_init_r(void)
|
int misc_init_r(void)
|
||||||
{
|
{
|
||||||
char *str;
|
char *str;
|
||||||
int mach_type;
|
int mach_type;
|
||||||
|
|
||||||
puts("Piggy:");
|
|
||||||
if (ethernet_present() == 0)
|
|
||||||
puts (" not");
|
|
||||||
puts(" present\n");
|
|
||||||
|
|
||||||
str = getenv("mach_type");
|
str = getenv("mach_type");
|
||||||
if (str != NULL) {
|
if (str != NULL) {
|
||||||
mach_type = simple_strtoul(str, NULL, 10);
|
mach_type = simple_strtoul(str, NULL, 10);
|
||||||
|
@ -163,7 +169,10 @@ int misc_init_r(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
initialize_unit_leds();
|
initialize_unit_leds();
|
||||||
|
set_km_env();
|
||||||
|
#if defined(CONFIG_BOOTCOUNT_LIMIT)
|
||||||
|
set_bootcount_addr();
|
||||||
|
#endif
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -182,7 +191,6 @@ int board_early_init_f(void)
|
||||||
writel(tmp | FLASH_GPIO_PIN , KW_GPIO0_BASE);
|
writel(tmp | FLASH_GPIO_PIN , KW_GPIO0_BASE);
|
||||||
tmp = readl(KW_GPIO0_BASE + 4);
|
tmp = readl(KW_GPIO0_BASE + 4);
|
||||||
writel(tmp & (~FLASH_GPIO_PIN) , KW_GPIO0_BASE + 4);
|
writel(tmp & (~FLASH_GPIO_PIN) , KW_GPIO0_BASE + 4);
|
||||||
printf("KM: setting NAND mode\n");
|
|
||||||
|
|
||||||
#if defined(CONFIG_SOFT_I2C)
|
#if defined(CONFIG_SOFT_I2C)
|
||||||
/* init the GPIO for I2C Bitbang driver */
|
/* init the GPIO for I2C Bitbang driver */
|
||||||
|
@ -212,12 +220,6 @@ int board_init(void)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int last_stage_init(void)
|
|
||||||
{
|
|
||||||
set_km_env();
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
#if defined(CONFIG_CMD_SF)
|
#if defined(CONFIG_CMD_SF)
|
||||||
int do_spi_toggle(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
|
int do_spi_toggle(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
|
||||||
{
|
{
|
||||||
|
|
|
@ -64,6 +64,9 @@
|
||||||
#define CONFIG_KM_KERNEL_ADDR 0x2000000 /* 4096KBytes */
|
#define CONFIG_KM_KERNEL_ADDR 0x2000000 /* 4096KBytes */
|
||||||
|
|
||||||
#define CONFIG_KM_DEF_ENV_CPU \
|
#define CONFIG_KM_DEF_ENV_CPU \
|
||||||
|
"addbootcount=" \
|
||||||
|
"setenv bootargs ${bootargs} " \
|
||||||
|
"bootcountaddr=${bootcountaddr}\0" \
|
||||||
"addmtdparts=setenv bootargs ${bootargs} ${mtdparts}\0" \
|
"addmtdparts=setenv bootargs ${bootargs} ${mtdparts}\0" \
|
||||||
"boot=bootm ${actual_kernel_addr} - -\0" \
|
"boot=bootm ${actual_kernel_addr} - -\0" \
|
||||||
"cramfsloadfdt=true\0" \
|
"cramfsloadfdt=true\0" \
|
||||||
|
|
Loading…
Reference in New Issue