Message ID | 1315837122-11952-9-git-send-email-valentin.longchamp@keymile.com |
---|---|
State | Accepted |
Commit | 9400f8fa7c064fd1e1c7ae714920f6067eec3ca4 |
Delegated to: | Wolfgang Denk |
Headers | show |
Dear Valentin Longchamp, In message <1315837122-11952-9-git-send-email-valentin.longchamp@keymile.com> you wrote: > The current km_arm boards have a Power-On test jumper. When this > jumper is set, this triggers some Power-On tests on the board. > > This patch enables the support of this jumper for starting the > memory_regions test when the jumper is set. > > Signed-off-by: Valentin Longchamp <valentin.longchamp@keymile.com> > Signed-off-by: Holger Brunck <holger.brunck@keymile.com> > Cc: Prafulla Wadaskar <prafulla@marvell.com> > --- > Changes for v2: > - adapted to CONFIG_POST_EXTERNAL_WORD_FUNCS > - implemented suggestion from Sergei > Changes for v3: > - moved arch_memory_test_prepare from post/board/km_arm to > board/keymile/km_arm/km_arm.c > Changes for v4: > - moved post_word adress because of conflict with bootcounter > --- > board/keymile/km_arm/km_arm.c | 33 +++++++++++++++++++++++++++++++++ > include/configs/km/km_arm.h | 6 ++++++ > 2 files changed, 39 insertions(+), 0 deletions(-) Applied, thanks. Best regards, Wolfgang Denk
diff --git a/board/keymile/km_arm/km_arm.c b/board/keymile/km_arm/km_arm.c index 8670567..b057182 100644 --- a/board/keymile/km_arm/km_arm.c +++ b/board/keymile/km_arm/km_arm.c @@ -488,6 +488,39 @@ int get_scl(void) } #endif +#if defined(CONFIG_POST) + +#define KM_POST_EN_L 44 +#define POST_WORD_OFF 8 + +int post_hotkeys_pressed(void) +{ + return !kw_gpio_get_value(KM_POST_EN_L); +} + +ulong post_word_load(void) +{ + volatile void* addr = (void *) (gd->ram_size - BOOTCOUNT_ADDR + POST_WORD_OFF); + return in_le32(addr); + +} +void post_word_store(ulong value) +{ + volatile void* addr = (void *) (gd->ram_size - BOOTCOUNT_ADDR + POST_WORD_OFF); + out_le32(addr, value); +} + +int arch_memory_test_prepare(u32 *vstart, u32 *size, phys_addr_t *phys_offset) +{ + *vstart = CONFIG_SYS_SDRAM_BASE; + + /* we go up to relocation plus a 1 MB margin */ + *size = CONFIG_SYS_TEXT_BASE - (1<<20); + + return 0; +} +#endif + #if defined(CONFIG_SYS_EEPROM_WREN) int eeprom_write_enable(unsigned dev_addr, int state) { diff --git a/include/configs/km/km_arm.h b/include/configs/km/km_arm.h index a3725c0..0271e7e 100644 --- a/include/configs/km/km_arm.h +++ b/include/configs/km/km_arm.h @@ -272,4 +272,10 @@ int get_scl(void); /* address for the bootcount (taken from end of RAM) */ #define BOOTCOUNT_ADDR (CONFIG_KM_RESERVED_PRAM) +/* enable POST tests */ +#define CONFIG_POST (CONFIG_SYS_POST_MEM_REGIONS) +#define CONFIG_POST_SKIP_ENV_FLAGS +#define CONFIG_POST_EXTERNAL_WORD_FUNCS +#define CONFIG_CMD_DIAG + #endif /* _CONFIG_KM_ARM_H */