All of lore.kernel.org
 help / color / mirror / Atom feed
From: Valentin Longchamp <valentin.longchamp@keymile.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH 2/8] kmp204x: handle dip-switch for factory settings
Date: Wed, 30 Apr 2014 15:01:43 +0200	[thread overview]
Message-ID: <1398862909-17580-3-git-send-email-valentin.longchamp@keymile.com> (raw)
In-Reply-To: <1398862909-17580-1-git-send-email-valentin.longchamp@keymile.com>

From: Stefan Bigler <stefan.bigler@keymile.com>

Add readout of dip-switch to revert to factory settings.
If one or more dip-switch are set, launch bank 0 that contains the
bootloader to do the required action.

Signed-off-by: Stefan Bigler <stefan.bigler@keymile.com>
Signed-off-by: Valentin Longchamp <valentin.longchamp@keymile.com>
---

 board/keymile/kmp204x/kmp204x.c | 15 +++++++++++++++
 board/keymile/kmp204x/kmp204x.h |  1 +
 board/keymile/kmp204x/qrio.c    | 13 +++++++++++++
 3 files changed, 29 insertions(+)

diff --git a/board/keymile/kmp204x/kmp204x.c b/board/keymile/kmp204x/kmp204x.c
index 5fceedd..fba1bdd 100644
--- a/board/keymile/kmp204x/kmp204x.c
+++ b/board/keymile/kmp204x/kmp204x.c
@@ -116,6 +116,9 @@ int board_early_init_r(void)
 	/* enable the Unit LED (red) & Boot LED (on) */
 	qrio_set_leds();
 
+	/* enable Application Buffer */
+	qrio_enable_app_buffer();
+
 	return ret;
 }
 
@@ -171,6 +174,18 @@ int hush_init_var(void)
 #if defined(CONFIG_LAST_STAGE_INIT)
 int last_stage_init(void)
 {
+#if defined(CONFIG_KMCOGE4)
+	/* on KMCOGE4, the BFTIC4 is on the LBAPP2 */
+	struct bfticu_iomap *bftic4 =
+		(struct bfticu_iomap *)CONFIG_SYS_LBAPP2_BASE;
+	u8 dip_switch = in_8((u8 *)&(bftic4->mswitch)) & BFTICU_DIPSWITCH_MASK;
+
+	if (dip_switch != 0) {
+		/* start bootloader */
+		puts("DIP:   Enabled\n");
+		setenv("actual_bank", "0");
+	}
+#endif
 	set_km_env();
 	return 0;
 }
diff --git a/board/keymile/kmp204x/kmp204x.h b/board/keymile/kmp204x/kmp204x.h
index 34de27e..720e225 100644
--- a/board/keymile/kmp204x/kmp204x.h
+++ b/board/keymile/kmp204x/kmp204x.h
@@ -22,5 +22,6 @@ void qrio_gpio_direction_input(u8 port_off, u8 gpio_nr);
 void qrio_prst(u8 bit, bool en, bool wden);
 void qrio_prstcfg(u8 bit, u8 mode);
 void qrio_set_leds(void);
+void qrio_enable_app_buffer(void);
 
 void pci_of_setup(void *blob, bd_t *bd);
diff --git a/board/keymile/kmp204x/qrio.c b/board/keymile/kmp204x/qrio.c
index 11949f4..c4f8dfd 100644
--- a/board/keymile/kmp204x/qrio.c
+++ b/board/keymile/kmp204x/qrio.c
@@ -158,3 +158,16 @@ void qrio_set_leds(void)
 	ctrlh |= (CTRLH_WRL_BOOT | CTRLH_WRL_UNITRUN);
 	out_8(qrio_base + CTRLH_OFF, ctrlh);
 }
+
+#define CTRLL_OFF		0x03
+#define CTRLL_WRB_BUFENA	0x20
+
+void qrio_enable_app_buffer(void)
+{
+	u8 ctrll;
+	void __iomem *qrio_base = (void *)CONFIG_SYS_QRIO_BASE;
+	/* enable application buffer */
+	ctrll = in_8(qrio_base + CTRLL_OFF);
+	ctrll |= (CTRLL_WRB_BUFENA);
+	out_8(qrio_base + CTRLL_OFF, ctrll);
+}
-- 
1.8.0.1

  parent reply	other threads:[~2014-04-30 13:01 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-04-30 13:01 [U-Boot] [PATCH 0/8] kmp204x patches for 2014.07 Valentin Longchamp
2014-04-30 13:01 ` [U-Boot] [PATCH 1/8] kmp204x: Add support for the unit LEDs Valentin Longchamp
2014-04-30 17:04   ` York Sun
2014-05-01 14:00     ` Valentin Longchamp
2014-05-01 15:47       ` York Sun
2014-05-02  8:48   ` [U-Boot] [PATCH v2 " Valentin Longchamp
2014-04-30 13:01 ` Valentin Longchamp [this message]
2014-04-30 17:04   ` [U-Boot] [PATCH 2/8] kmp204x: handle dip-switch for factory settings York Sun
2014-05-02  8:49   ` [U-Boot] [PATCH v2 " Valentin Longchamp
2014-04-30 13:01 ` [U-Boot] [PATCH 3/8] kmp204x: selftest/factory test pin support Valentin Longchamp
2014-04-30 13:01 ` [U-Boot] [PATCH 4/8] kmp204x: update the CONFIG_PRAM and CONFIG_KM_RESERVED_PRAM defines Valentin Longchamp
2014-04-30 13:01 ` [U-Boot] [PATCH 5/8] kmp204x: complete the reset sequence and PRST configuration Valentin Longchamp
2014-04-30 13:01 ` [U-Boot] [PATCH 6/8] kmp204x: update the RCW Valentin Longchamp
2014-04-30 13:01 ` [U-Boot] [PATCH 7/8] kmp204x: add workaround for A-004849 Valentin Longchamp
2014-04-30 13:01 ` [U-Boot] [PATCH 8/8] kmp204x: enable the errata command Valentin Longchamp
2014-05-13 16:38 ` [U-Boot] [PATCH 0/8] kmp204x patches for 2014.07 York Sun

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1398862909-17580-3-git-send-email-valentin.longchamp@keymile.com \
    --to=valentin.longchamp@keymile.com \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.