summaryrefslogtreecommitdiff
path: root/board/keymile/km_arm/km_arm.c
diff options
context:
space:
mode:
Diffstat (limited to 'board/keymile/km_arm/km_arm.c')
-rw-r--r--board/keymile/km_arm/km_arm.c32
1 files changed, 32 insertions, 0 deletions
diff --git a/board/keymile/km_arm/km_arm.c b/board/keymile/km_arm/km_arm.c
index 67f158c1eb..f78f754f37 100644
--- a/board/keymile/km_arm/km_arm.c
+++ b/board/keymile/km_arm/km_arm.c
@@ -481,6 +481,38 @@ int arch_memory_test_prepare(u32 *vstart, u32 *size, phys_addr_t *phys_offset)
}
#endif
+#if defined(CONFIG_POST)
+
+#define KM_POST_EN_L 44
+
+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 + 4);
+ return in_le32(addr);
+
+}
+void post_word_store(ulong value)
+{
+ volatile void* addr = (void *) (gd->ram_size - BOOTCOUNT_ADDR + 4);
+ 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)
{