arm/km: add implementation for read_dip_switch
authorThomas Herzmann <thomas.herzmann@keymile.com>
Thu, 5 Jul 2012 05:05:10 +0000 (05:05 +0000)
committerAlbert ARIBAUD <albert.u.boot@aribaud.net>
Sat, 7 Jul 2012 12:07:37 +0000 (14:07 +0200)
Add a function to read the dip_switch on kmcoge5un. If the
switch is set the actual_bank is set to 0 and this SW is
booted.

Signed-off-by: Thomas Herzmann <thomas.herzmann@keymile.com>
Signed-off-by: Holger Brunck <holger.brunck@keymile.com>
board/keymile/km_arm/km_arm.c
include/configs/km_kirkwood.h

index ed2454ff0c0908b9cdd1815d14c2c0c9c8202523..ea5d0db1ca076ebc99c116bc0008c94400690e35 100644 (file)
@@ -285,12 +285,24 @@ int board_init(void)
 
 int board_late_init(void)
 {
+#if defined(CONFIG_KMCOGE5UN)
+/* I/O pin to erase flash RGPP09 = MPP43 */
+#define KM_FLASH_ERASE_ENABLE  43
+       u8 dip_switch = kw_gpio_get_value(KM_FLASH_ERASE_ENABLE);
+
+       /* if pin 1 do full erase */
+       if (dip_switch != 0) {
+               /* start bootloader */
+               puts("DIP:   Enabled\n");
+               setenv("actual_bank", "0");
+       }
+#endif
+
 #if defined(CONFIG_KM_FPGA_CONFIG)
        wait_for_fpga_config();
        fpga_reset();
        toggle_eeprom_spi_bus();
 #endif
-
        return 0;
 }
 
index a95c6657ba176ea9d99757931cc5a96959325afd..fba181fffa1463e0e6073036ac9a0cf78cf74c4e 100644 (file)
 #undef  CONFIG_KIRKWOOD_PCIE_INIT
 #endif
 
-#ifndef CONFIG_KM_FPGA_CONFIG
-#undef  BOARD_LATE_INIT
-#endif
 
 #endif /* _CONFIG_KM_KIRKWOOD */