summaryrefslogtreecommitdiff
path: root/board/keymile
diff options
context:
space:
mode:
authorHolger Brunck <holger.brunck@keymile.com>2015-11-13 15:01:16 +0100
committerTom Rini <trini@konsulko.com>2015-11-18 15:28:48 -0500
commite23fde7d1f54b9fb2661a895b08f4a74c5a2459a (patch)
tree12dc57bcfdadf78194f8de0c3c961a58c57d2009 /board/keymile
parent9ff739e42257099a797572bf21a218ee526c58df (diff)
downloadu-boot-imx-e23fde7d1f54b9fb2661a895b08f4a74c5a2459a.zip
u-boot-imx-e23fde7d1f54b9fb2661a895b08f4a74c5a2459a.tar.gz
u-boot-imx-e23fde7d1f54b9fb2661a895b08f4a74c5a2459a.tar.bz2
arm/mgcoge3un: check dip_switch at startup
Similar to kmcoge5un we need to check the dip switch at startup connected to the kirkwood at MPP43. If it's set we need to set the actual_bank to zero to boot from SW bank zero. Additional to kmcoge5un we need to check also the pin in misc_init to decide wether we wait for the ne to start or not. If the dip_switch is set we don't wait and continue immediately. Signed-off-by: Holger Brunck <holger.brunck@keymile.com> Signed-off-by: Valentin Longchamp <valentin.longchamp@keymile.com>
Diffstat (limited to 'board/keymile')
-rw-r--r--board/keymile/km_arm/km_arm.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/board/keymile/km_arm/km_arm.c b/board/keymile/km_arm/km_arm.c
index 64cf2ed..f54f14e 100644
--- a/board/keymile/km_arm/km_arm.c
+++ b/board/keymile/km_arm/km_arm.c
@@ -55,6 +55,9 @@ DECLARE_GLOBAL_DATA_PTR;
#define PHY_MARVELL_88E1118R_LED_CTRL_LED1_ACT (0x3<<4)
#define PHY_MARVELL_88E1118R_LED_CTRL_LED2_LINK (0x0<<8)
+/* I/O pin to erase flash RGPP09 = MPP43 */
+#define KM_FLASH_ERASE_ENABLE 43
+
/* Multi-Purpose Pins Functionality configuration */
static const u32 kwmpp_config[] = {
MPP0_NF_IO2,
@@ -201,8 +204,10 @@ int misc_init_r(void)
{
#if defined(CONFIG_KM_MGCOGE3UN)
char *wait_for_ne;
+ u8 dip_switch = kw_gpio_get_value(KM_FLASH_ERASE_ENABLE);
wait_for_ne = getenv("waitforne");
- if (wait_for_ne != NULL) {
+
+ if ((wait_for_ne != NULL) && (dip_switch == 0)) {
if (strcmp(wait_for_ne, "true") == 0) {
int cnt = 0;
int abort = 0;
@@ -291,9 +296,7 @@ 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
+#if (defined(CONFIG_KMCOGE5UN) | defined(CONFIG_KM_MGCOGE3UN))
u8 dip_switch = kw_gpio_get_value(KM_FLASH_ERASE_ENABLE);
/* if pin 1 do full erase */