summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorValentin Longchamp <valentin.longchamp@keymile.com>2011-05-31 02:12:47 +0000
committerU-Boot <uboot@lilith.(none)>2011-05-31 19:45:27 +0200
commit22c67d08398f0101e26fcbf75ac93433764cb4ae (patch)
treed22fdf9c9e2ff36c14d28e2f9cadc0a9c53b53ca
parentea616d4defbf90b1b0cbdf5d8425b574d606cd35 (diff)
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>
-rw-r--r--board/keymile/km_arm/km_arm.c28
-rw-r--r--include/configs/km/km_arm.h3
2 files changed, 18 insertions, 13 deletions
diff --git a/board/keymile/km_arm/km_arm.c b/board/keymile/km_arm/km_arm.c
index c772ee2a55..4049a4e86e 100644
--- a/board/keymile/km_arm/km_arm.c
+++ b/board/keymile/km_arm/km_arm.c
@@ -145,16 +145,22 @@ int initialize_unit_leds(void)
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)
{
char *str;
int mach_type;
- puts("Piggy:");
- if (ethernet_present() == 0)
- puts (" not");
- puts(" present\n");
-
str = getenv("mach_type");
if (str != NULL) {
mach_type = simple_strtoul(str, NULL, 10);
@@ -163,7 +169,10 @@ int misc_init_r(void)
}
initialize_unit_leds();
-
+ set_km_env();
+#if defined(CONFIG_BOOTCOUNT_LIMIT)
+ set_bootcount_addr();
+#endif
return 0;
}
@@ -182,7 +191,6 @@ int board_early_init_f(void)
writel(tmp | FLASH_GPIO_PIN , KW_GPIO0_BASE);
tmp = readl(KW_GPIO0_BASE + 4);
writel(tmp & (~FLASH_GPIO_PIN) , KW_GPIO0_BASE + 4);
- printf("KM: setting NAND mode\n");
#if defined(CONFIG_SOFT_I2C)
/* init the GPIO for I2C Bitbang driver */
@@ -212,12 +220,6 @@ int board_init(void)
return 0;
}
-int last_stage_init(void)
-{
- set_km_env();
- return 0;
-}
-
#if defined(CONFIG_CMD_SF)
int do_spi_toggle(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
{
diff --git a/include/configs/km/km_arm.h b/include/configs/km/km_arm.h
index 80a56dd1b7..5a915f3084 100644
--- a/include/configs/km/km_arm.h
+++ b/include/configs/km/km_arm.h
@@ -64,6 +64,9 @@
#define CONFIG_KM_KERNEL_ADDR 0x2000000 /* 4096KBytes */
#define CONFIG_KM_DEF_ENV_CPU \
+ "addbootcount=" \
+ "setenv bootargs ${bootargs} " \
+ "bootcountaddr=${bootcountaddr}\0" \
"addmtdparts=setenv bootargs ${bootargs} ${mtdparts}\0" \
"boot=bootm ${actual_kernel_addr} - -\0" \
"cramfsloadfdt=true\0" \