diff options
| author | Valentin Longchamp <valentin.longchamp@keymile.com> | 2011-09-12 04:18:42 +0000 | 
|---|---|---|
| committer | Wolfgang Denk <wd@denx.de> | 2011-10-05 22:03:11 +0200 | 
| commit | 9400f8fa7c064fd1e1c7ae714920f6067eec3ca4 (patch) | |
| tree | 7c4f8239d8f60ebd7275315f80cc8cc7e7714966 | |
| parent | e5847b7730844f35aefab778d1c36fdc327f03e5 (diff) | |
| download | olio-uboot-2014.01-9400f8fa7c064fd1e1c7ae714920f6067eec3ca4.tar.xz olio-uboot-2014.01-9400f8fa7c064fd1e1c7ae714920f6067eec3ca4.zip | |
km_arm: enable POST for these boards
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>
| -rw-r--r-- | board/keymile/km_arm/km_arm.c | 33 | ||||
| -rw-r--r-- | include/configs/km/km_arm.h | 6 | 
2 files changed, 39 insertions, 0 deletions
| diff --git a/board/keymile/km_arm/km_arm.c b/board/keymile/km_arm/km_arm.c index a8f2b2317..67f158c1e 100644 --- a/board/keymile/km_arm/km_arm.c +++ b/board/keymile/km_arm/km_arm.c @@ -448,6 +448,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 71fe1499e..8476eb77b 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 */ |