Skip to contentSkip to conversation

km/powerpc: various bugfixes and support for 3 new boards

PATCH Superseded Valentin Longchamp 4 participants 39 messages Nov 13, 2015 – Nov 16, 2015

v1 of 2 Superseded Latest is v2 →

lore
Share & tools
lore
#0 lore raw

cover km/powerpc: various bugfixes and support for 3 new boards

A few bugfixes have been done for the km_kirkwood bards in the last months and this series collects them all to be sumbitted to mainline. Furthermore, support for 3 new Keymile ppc boards are added:
- kmvect1_p1a: based on 8309, first hw revision of kmvect1
- kmtepr2: based on a 8321, this is another variation of tuxx1
- kmtegr1: based on 8309, similarly to kmvect1 but with a lot of different peripherals

Bagavathiannan Palanisamy (1):
board/keymile/km82xx: setting dip_switch 3 and 4 will run bootloader

Christoph Dietrich (1):
powerpc/83xx: add support for kmtepr2 board

Holger Brunck (7):
powerpc/83xx/km: add support for kmvect1 p1a hw version powerpc/82xx: make set/get_pin for km82xx more flexible powerpc/82xx/km: add testpin detection for mgcoge3ne km/powerpc: increase space for kernel imange and FDT blob km/powerpc: move open firmware defines to km-powerpc.h km/powerpc: remove unneeded defines km/powerpc82xx: remove unused function

Valentin Longchamp (8):
powerpc/km8321: define CONFIG_SYS_DDRCDR powerpc/km8321: set the DDRCDR impedance settings back to half
strength
powerpc/km8309: define CONFIG_SYS_DDRCDR powerpc/km8360: fix the ODT parameters for CS0
km83xx: use CONFIG_ENV_ADDR for the newenv env command
km8309: change the default QE_FW address powerpc/83xx: add support for kmtegr1 board km/powerpc: fix ft_board_setup prototype for km82xx & km83xx

 board/keymile/common/common.c      |  5 ++-
 board/keymile/common/common.h      |  2 ++
 board/keymile/km82xx/km82xx.c      | 57 ++++++++++++++-------------------
 board/keymile/km83xx/MAINTAINERS   |  3 ++
 board/keymile/km83xx/km83xx.c      | 10 ++++--
 configs/kmtegr1_defconfig          |  4 +++
 configs/kmtepr2_defconfig          |  4 +++
 configs/kmvect1_p1a_defconfig      |  4 +++
 include/configs/km/km-powerpc.h    | 10 ++++--
 include/configs/km/km8309-common.h | 12 +++++--
 include/configs/km/km8321-common.h |  6 ++++
 include/configs/km/km83xx-common.h | 11 ++++---
 include/configs/km82xx.h           |  3 --
 include/configs/km8360.h           |  4 +--
 include/configs/suvd3.h            | 65 +++++++++++++++++++++++++++++++++++---
 include/configs/tuxx1.h            | 43 +++++++++++++++++++++----
 16 files changed, 180 insertions(+), 63 deletions(-)
 create mode 100644 configs/kmtegr1_defconfig
 create mode 100644 configs/kmtepr2_defconfig
 create mode 100644 configs/kmvect1_p1a_defconfig
Signature · 1 line
1.8.3.1
#1 lore raw

PATCH 1/17 powerpc/83xx/km: add support for kmvect1 p1a hw version

From: Holger Brunck <[email protected]>

This first boards have the simple switch connected to a PRST line of the PRIO3. This is not allowed because it releases the PRIO3 watchdog in u-boot which causes problems with the bootloader application. This is fixed in the newer HW releases. To be able to deal with these old versions we add temporary a further target kmvect1_p1a.

---

 board/keymile/km83xx/MAINTAINERS | 1 +
 board/keymile/km83xx/km83xx.c    | 8 ++++++++
 configs/kmvect1_p1a_defconfig    | 4 ++++
 3 files changed, 13 insertions(+)
 create mode 100644 configs/kmvect1_p1a_defconfig
board/keymile/km83xx/MAINTAINERS +1 -0
index cee7e08..51367b6 100644
@@ -9,6 +9,7 @@ F:	include/configs/tuxx1.h
 F:	configs/kmopti2_defconfig
 F:	include/configs/suvd3.h
 F:	configs/kmvect1_defconfig
+F:	configs/kmvect1_p1a_defconfig
 F:	configs/suvd3_defconfig
 F:	configs/tuge1_defconfig
 F:	configs/tuxx1_defconfig
board/keymile/km83xx/km83xx.c +8 -0
index 89e9e1e..4ebcdbd 100644
@@ -241,6 +241,13 @@ int last_stage_init(void)
 #if defined(CONFIG_KMVECT1)
 	struct km_bec_fpga __iomem *base =
 		(struct km_bec_fpga __iomem *)CONFIG_SYS_KMBEC_FPGA_BASE;
+#if defined(CONFIG_HWVERSION_P1A)
+	/* Release mv88e6352 from reset */
+	u8 prst_reg;
+
+	prst_reg = in_8(&base->prst) | 0x80;
+	out_8(&base->prst, prst_reg);
+#else
 	u8 tmp_reg;
 
 	/* Release mv88e6122 from reset */
@@ -248,6 +255,7 @@ int last_stage_init(void)
 	out_8(&base->res1[0], tmp_reg);	       /* GP28 as output */
 	tmp_reg = in_8(&base->gprt3) | 0x10;   /* GP28 to high */
 	out_8(&base->gprt3, tmp_reg);
+#endif
 
 	/* configure MV88E6122 switch */
 	char *name = "UEC2";
configs/kmvect1_p1a_defconfig new file +4 -0
new file mode 100644
index 0000000..cdf50d5
@@ -0,0 +1,4 @@
+CONFIG_SYS_EXTRA_OPTIONS="KMVECT1,HWVERSION_P1A"
+CONFIG_PPC=y
+CONFIG_MPC83xx=y
+CONFIG_TARGET_SUVD3=y
Signature · 1 line
1.8.3.1
#2 lore raw

PATCH 1/17 powerpc/83xx/km: add support for kmvect1 p1a hw version

Hello Valentin,

Am 13.11.2015 um 15:59 schrieb Valentin Longchamp:

Quoted 10 lines

From: Holger Brunck <[email protected]>

This first boards have the simple switch connected to a PRST line of the PRIO3. This is not allowed because it releases the PRIO3 watchdog in u-boot which causes problems with the bootloader application. This is fixed in the newer HW releases. To be able to deal with these old versions we add temporary a further target kmvect1_p1a.

Quoted 7 lines

---

  board/keymile/km83xx/MAINTAINERS | 1 +
  board/keymile/km83xx/km83xx.c    | 8 ++++++++
  configs/kmvect1_p1a_defconfig    | 4 ++++
  3 files changed, 13 insertions(+)

create mode 100644 configs/kmvect1_p1a_defconfig

bye,
Heiko

Quoted 50 lines
board/keymile/km83xx/MAINTAINERS +1 -0
index cee7e08..51367b6 100644
@@ -9,6 +9,7 @@ F:	include/configs/tuxx1.h
  F:	configs/kmopti2_defconfig
  F:	include/configs/suvd3.h
  F:	configs/kmvect1_defconfig
+F:	configs/kmvect1_p1a_defconfig
  F:	configs/suvd3_defconfig
  F:	configs/tuge1_defconfig
  F:	configs/tuxx1_defconfig
board/keymile/km83xx/km83xx.c +8 -0
index 89e9e1e..4ebcdbd 100644
@@ -241,6 +241,13 @@ int last_stage_init(void)
  #if defined(CONFIG_KMVECT1)
  	struct km_bec_fpga __iomem *base =
  		(struct km_bec_fpga __iomem *)CONFIG_SYS_KMBEC_FPGA_BASE;
+#if defined(CONFIG_HWVERSION_P1A)
+	/* Release mv88e6352 from reset */
+	u8 prst_reg;
+
+	prst_reg = in_8(&base->prst) | 0x80;
+	out_8(&base->prst, prst_reg);
+#else
  	u8 tmp_reg;
 
  	/* Release mv88e6122 from reset */
@@ -248,6 +255,7 @@ int last_stage_init(void)
  	out_8(&base->res1[0], tmp_reg);	       /* GP28 as output */
  	tmp_reg = in_8(&base->gprt3) | 0x10;   /* GP28 to high */
  	out_8(&base->gprt3, tmp_reg);
+#endif
 
  	/* configure MV88E6122 switch */
  	char *name = "UEC2";
configs/kmvect1_p1a_defconfig new file +4 -0
new file mode 100644
index 0000000..cdf50d5
@@ -0,0 +1,4 @@
+CONFIG_SYS_EXTRA_OPTIONS="KMVECT1,HWVERSION_P1A"
+CONFIG_PPC=y
+CONFIG_MPC83xx=y
+CONFIG_TARGET_SUVD3=y
Signature · 2 lines
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
#3 lore raw

PATCH 2/17 powerpc/83xx: add support for kmtepr2 board

In reply to Valentin Longchamp

From: Christoph Dietrich <[email protected]>

This board is similar to TUXX1, but it has differend FPGAs.

---

 board/keymile/km83xx/MAINTAINERS |  1 +
 configs/kmtepr2_defconfig        |  4 ++++
 include/configs/tuxx1.h          | 43 +++++++++++++++++++++++++++++++++-------
 3 files changed, 41 insertions(+), 7 deletions(-)
 create mode 100644 configs/kmtepr2_defconfig
board/keymile/km83xx/MAINTAINERS +1 -0
index 51367b6..58969a2 100644
@@ -7,6 +7,7 @@ F:	configs/kmcoge5ne_defconfig
 F:	configs/kmeter1_defconfig
 F:	include/configs/tuxx1.h
 F:	configs/kmopti2_defconfig
+F:	configs/kmtepr2_defconfig
 F:	include/configs/suvd3.h
 F:	configs/kmvect1_defconfig
 F:	configs/kmvect1_p1a_defconfig
configs/kmtepr2_defconfig new file +4 -0
new file mode 100644
index 0000000..5cffd53
@@ -0,0 +1,4 @@
+CONFIG_SYS_EXTRA_OPTIONS="KMTEPR2"
+CONFIG_PPC=y
+CONFIG_MPC83xx=y
+CONFIG_TARGET_TUXX1=y
include/configs/tuxx1.h +36 -7

76 lines not on this page · raw message

Signature · 1 line
1.8.3.1
#4 lore raw

PATCH 2/17 powerpc/83xx: add support for kmtepr2 board

Hello Valentin,

Am 13.11.2015 um 15:59 schrieb Valentin Longchamp:

Quoted 7 lines

From: Christoph Dietrich <[email protected]>

This board is similar to TUXX1, but it has differend FPGAs.

Quoted 7 lines

---

  board/keymile/km83xx/MAINTAINERS |  1 +
  configs/kmtepr2_defconfig        |  4 ++++
  include/configs/tuxx1.h          | 43 +++++++++++++++++++++++++++++++++-------
  3 files changed, 41 insertions(+), 7 deletions(-)

create mode 100644 configs/kmtepr2_defconfig

bye,
Heiko

Quoted 108 lines
board/keymile/km83xx/MAINTAINERS +1 -0
index 51367b6..58969a2 100644
@@ -7,6 +7,7 @@ F:	configs/kmcoge5ne_defconfig
  F:	configs/kmeter1_defconfig
  F:	include/configs/tuxx1.h
  F:	configs/kmopti2_defconfig
+F:	configs/kmtepr2_defconfig
  F:	include/configs/suvd3.h
  F:	configs/kmvect1_defconfig
  F:	configs/kmvect1_p1a_defconfig
configs/kmtepr2_defconfig new file +4 -0
new file mode 100644
index 0000000..5cffd53
@@ -0,0 +1,4 @@
+CONFIG_SYS_EXTRA_OPTIONS="KMTEPR2"
+CONFIG_PPC=y
+CONFIG_MPC83xx=y
+CONFIG_TARGET_TUXX1=y
include/configs/tuxx1.h +36 -7
index 08ead7f..e2ca9e3 100644
@@ -36,6 +36,9 @@
  #elif defined(CONFIG_KMOPTI2)
  #define CONFIG_KM_BOARD_NAME	"kmopti2"
  #define CONFIG_HOSTNAME		kmopti2
+#elif defined(CONFIG_KMTEPR2)
+#define CONFIG_KM_BOARD_NAME    "kmtepr2"
+#define CONFIG_HOSTNAME         kmtepr2
  #else
  #error ("Board not supported")
  #endif
@@ -47,21 +50,45 @@
 
  #define CONFIG_SYS_APP1_BASE	0xA0000000    /* PAXG */
  #define	CONFIG_SYS_APP1_SIZE	256 /* Megabytes */
-#if defined(CONFIG_TUXX1) || defined(CONFIG_KMOPTI2)
+#if defined(CONFIG_TUXX1) || defined(CONFIG_KMOPTI2) || defined(CONFIG_KMTEPR2)
  #define CONFIG_SYS_APP2_BASE	0xB0000000    /* PINC3 */
  #define	CONFIG_SYS_APP2_SIZE	256 /* Megabytes */
  #endif
 
  /*
   * Init Local Bus Memory Controller:
- *				      Device on
- * Bank Bus     Machine PortSz  Size  TUDA1  TUXA1  TUGE1  KMSUPX4 KMOPTI2
- * ---- ---     ------- ------  ----- ---------------------------------------
- *  2   Local   GPCM    8 bit  256MB  PAXG  LPXF   PAXI     LPXF   PAXE
- *  3   Local   GPCM    8 bit  256MB  PINC3 PINC2  unused  unused  OPI2(16 bit)
+ *				      Device on board
+ * Bank Bus     Machine PortSz Size   TUDA1  TUXA1  TUGE1   KMSUPX4 KMOPTI2
+ * -----------------------------------------------------------------------------
+ *  2   Local   GPCM    8 bit  256MB  PAXG   LPXF   PAXI    LPXF    PAXE
+ *  3   Local   GPCM    8 bit  256MB  PINC3  PINC2  unused  unused  OPI2(16 bit)
   *
+ *				      Device on board (continued)
+ * Bank Bus     Machine PortSz Size   KMTEPR2
+ * -----------------------------------------------------------------------------
+ *  2   Local   GPCM    8 bit  256MB  NVRAM
+ *  3   Local   GPCM    8 bit  256MB  TEP2 (16 bit)
   */
 
+#if defined(CONFIG_KMTEPRO2)
+/*
+ * Configuration for C2 (NVRAM) on the local bus
+ */
+#define CONFIG_SYS_LBLAWBAR2_PRELIM    CONFIG_SYS_APP1_BASE
+#define CONFIG_SYS_LBLAWAR2_PRELIM     (LBLAWAR_EN | LBLAWAR_256MB)
+#define CONFIG_SYS_BR2_PRELIM  (CONFIG_SYS_APP1_BASE | \
+				BR_PS_8 | \
+				BR_MS_GPCM | \
+				BR_V)
+#define CONFIG_SYS_OR2_PRELIM  (MEG_TO_AM(CONFIG_SYS_APP1_SIZE) | \
+				OR_GPCM_CSNT | \
+				OR_GPCM_ACS_DIV2 | \
+				OR_GPCM_XACS | \
+				OR_GPCM_SCY_2 | \
+				OR_GPCM_TRLX_SET | \
+				OR_GPCM_EHTR_SET | \
+				OR_GPCM_EAD)
+#else
  /*
   * Configuration for C2 on the local bus
   */
@@ -82,6 +109,8 @@
  				 OR_GPCM_TRLX_SET | \
  				 OR_GPCM_EHTR_CLEAR | \
  				 OR_GPCM_EAD)
+#endif
+
  #if defined(CONFIG_TUXX1)
  /*
   * Configuration for C3 on the local bus
@@ -108,7 +137,7 @@
  				 MxMR_WLFx_2X)
  #endif
 
-#if defined(CONFIG_KMOPTI2)
+#if defined(CONFIG_KMOPTI2) || defined(CONFIG_KMTEPR2)
  /*
   * Configuration for C3 on the local bus
   */
Signature · 2 lines
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
#5 lore raw

PATCH 2/17 powerpc/83xx: add support for kmtepr2 board

In reply to Valentin Longchamp

Hi,

Quoted 9 lines · Valentin Longchamp

From: Christoph Dietrich <[email protected]>

This board is similar to TUXX1, but it has differend FPGAs.

---

this is a repost of a patch I tried to mainline two years ago:

https://patchwork.ozlabs.org/patch/371035/

So the old version can be removed.

Regards
Holger

#6 lore raw

PATCH 3/17 powerpc/82xx: make set/get_pin for km82xx more flexible

In reply to Valentin Longchamp

From: Holger Brunck <[email protected]>

The get_pin and set_pin funciton was only used for pins on Port D and therefore the value was hard coded in the function. Enhance this with a parameter, that we are able to use this functions for other ports too.

---

 board/keymile/km82xx/km82xx.c | 24 ++++++++++++------------
 1 file changed, 12 insertions(+), 12 deletions(-)
board/keymile/km82xx/km82xx.c +12 -12
index c599b40..03cd10c 100644
@@ -343,7 +343,7 @@ int last_stage_init(void)
 }
 
 #ifdef CONFIG_MGCOGE3NE
-static void set_pin(int state, unsigned long mask);
+static void set_pin(int state, unsigned long mask, int port);
 
 /*
  * For mgcoge3ne boards, the mgcoge3un control is controlled from
@@ -357,11 +357,11 @@ static void handle_mgcoge3un_reset(void)
 	if (bobcatreset) {
 		if (strcmp(bobcatreset, "true") == 0) {
 			puts("Forcing bobcat reset\n");
-			set_pin(0, 0x00000004);	/* clear PD29 to reset arm */
+			set_pin(0, 0x00000004, 3); /* clear PD29 (reset arm) */
 			udelay(1000);
-			set_pin(1, 0x00000004);
+			set_pin(1, 0x00000004, 3);
 		} else
-			set_pin(1, 0x00000004);	/* set PD29 to not reset arm */
+			set_pin(1, 0x00000004, 3); /* don't reset arm */
 	}
 }
 #endif
@@ -410,9 +410,9 @@ int hush_init_var(void)
 #define SDA_MASK	0x00010000
 #define SCL_MASK	0x00020000
 
-static void set_pin(int state, unsigned long mask)
+static void set_pin(int state, unsigned long mask, int port)
 {
-	ioport_t *iop = ioport_addr((immap_t *)CONFIG_SYS_IMMR, 3);
+	ioport_t *iop = ioport_addr((immap_t *)CONFIG_SYS_IMMR, port);
 
 	if (state)
 		setbits_be32(&iop->pdat, mask);
@@ -422,9 +422,9 @@ static void set_pin(int state, unsigned long mask)
 	setbits_be32(&iop->pdir, mask);
 }
 
-static int get_pin(unsigned long mask)
+static int get_pin(unsigned long mask, int port)
 {
-	ioport_t *iop = ioport_addr((immap_t *)CONFIG_SYS_IMMR, 3);
+	ioport_t *iop = ioport_addr((immap_t *)CONFIG_SYS_IMMR, port);
 
 	clrbits_be32(&iop->pdir, mask);
 	return 0 != (in_be32(&iop->pdat) & mask);
@@ -432,22 +432,22 @@ static int get_pin(unsigned long mask)
 
 void set_sda(int state)
 {
-	set_pin(state, SDA_MASK);
+	set_pin(state, SDA_MASK, 3);
 }
 
 void set_scl(int state)
 {
-	set_pin(state, SCL_MASK);
+	set_pin(state, SCL_MASK, 3);
 }
 
 int get_sda(void)
 {
-	return get_pin(SDA_MASK);
+	return get_pin(SDA_MASK, 3);
 }
 
 int get_scl(void)
 {
-	return get_pin(SCL_MASK);
+	return get_pin(SCL_MASK, 3);
 }
 
 #if defined(CONFIG_HARD_I2C)
Signature · 1 line
1.8.3.1
#7 lore raw

PATCH 3/17 powerpc/82xx: make set/get_pin for km82xx more flexible

Hello Valentin,

Am 13.11.2015 um 15:59 schrieb Valentin Longchamp:

Quoted 6 lines

From: Holger Brunck <[email protected]>

The get_pin and set_pin funciton was only used for pins on Port D and therefore the value was hard coded in the function. Enhance this with a parameter, that we are able to use this functions for other ports too.

Quoted 6 lines

---

  board/keymile/km82xx/km82xx.c | 24 ++++++++++++------------
  1 file changed, 12 insertions(+), 12 deletions(-)

nitpick ... it would be good to add gpio support for this ...

beside of that:

bye,
Heiko

Quoted 81 lines
board/keymile/km82xx/km82xx.c +12 -12
index c599b40..03cd10c 100644
@@ -343,7 +343,7 @@ int last_stage_init(void)
  }
 
  #ifdef CONFIG_MGCOGE3NE
-static void set_pin(int state, unsigned long mask);
+static void set_pin(int state, unsigned long mask, int port);
 
  /*
   * For mgcoge3ne boards, the mgcoge3un control is controlled from
@@ -357,11 +357,11 @@ static void handle_mgcoge3un_reset(void)
  	if (bobcatreset) {
  		if (strcmp(bobcatreset, "true") == 0) {
  			puts("Forcing bobcat reset\n");
-			set_pin(0, 0x00000004);	/* clear PD29 to reset arm */
+			set_pin(0, 0x00000004, 3); /* clear PD29 (reset arm) */
  			udelay(1000);
-			set_pin(1, 0x00000004);
+			set_pin(1, 0x00000004, 3);
  		} else
-			set_pin(1, 0x00000004);	/* set PD29 to not reset arm */
+			set_pin(1, 0x00000004, 3); /* don't reset arm */
  	}
  }
  #endif
@@ -410,9 +410,9 @@ int hush_init_var(void)
  #define SDA_MASK	0x00010000
  #define SCL_MASK	0x00020000
 
-static void set_pin(int state, unsigned long mask)
+static void set_pin(int state, unsigned long mask, int port)
  {
-	ioport_t *iop = ioport_addr((immap_t *)CONFIG_SYS_IMMR, 3);
+	ioport_t *iop = ioport_addr((immap_t *)CONFIG_SYS_IMMR, port);
 
  	if (state)
  		setbits_be32(&iop->pdat, mask);
@@ -422,9 +422,9 @@ static void set_pin(int state, unsigned long mask)
  	setbits_be32(&iop->pdir, mask);
  }
 
-static int get_pin(unsigned long mask)
+static int get_pin(unsigned long mask, int port)
  {
-	ioport_t *iop = ioport_addr((immap_t *)CONFIG_SYS_IMMR, 3);
+	ioport_t *iop = ioport_addr((immap_t *)CONFIG_SYS_IMMR, port);
 
  	clrbits_be32(&iop->pdir, mask);
  	return 0 != (in_be32(&iop->pdat) & mask);
@@ -432,22 +432,22 @@ static int get_pin(unsigned long mask)
 
  void set_sda(int state)
  {
-	set_pin(state, SDA_MASK);
+	set_pin(state, SDA_MASK, 3);
  }
 
  void set_scl(int state)
  {
-	set_pin(state, SCL_MASK);
+	set_pin(state, SCL_MASK, 3);
  }
 
  int get_sda(void)
  {
-	return get_pin(SDA_MASK);
+	return get_pin(SDA_MASK, 3);
  }
 
  int get_scl(void)
  {
-	return get_pin(SCL_MASK);
+	return get_pin(SCL_MASK, 3);
  }
 
  #if defined(CONFIG_HARD_I2C)
Signature · 2 lines
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
#8 lore raw

PATCH 4/17 powerpc/82xx/km: add testpin detection for mgcoge3ne

In reply to Valentin Longchamp

From: Holger Brunck <[email protected]>

On mgcoge3ne we also want to start the test application if the testpin is asserted. But we don't have a full POST test support yet. So simply add a function to read the testpin value.

---

 board/keymile/common/common.c | 5 ++++-
 board/keymile/common/common.h | 2 ++
 board/keymile/km82xx/km82xx.c | 9 +++++++++
 3 files changed, 15 insertions(+), 1 deletion(-)
board/keymile/common/common.c +4 -1
index b9aff1a..8de129d 100644
@@ -354,8 +354,11 @@ static int do_checktestboot(cmd_tbl_t *cmdtp, int flag, int argc,
 
 #if defined(CONFIG_POST)
 	testpin = post_hotkeys_pressed();
-	s = getenv("test_bank");
 #endif
+#if defined(CONFIG_MGCOGE3NE)
+	testpin = get_testpin();
+#endif
+	s = getenv("test_bank");
 	/* when test_bank is not set, act as if testpin is not asserted */
 	testboot = (testpin != 0) && (s);
 	if (verbose) {
board/keymile/common/common.h +2 -0
index dcfefc4..c74f569 100644
@@ -134,6 +134,8 @@ int wait_for_fpga_config(void);
 int fpga_reset(void);
 int toggle_eeprom_spi_bus(void);
 
+int get_testpin(void);
+
 int set_km_env(void);
 int fdt_set_node_and_value(void *blob,
 			char *nodename,
board/keymile/km82xx/km82xx.c +9 -0
index 03cd10c..cc9a7c9 100644
@@ -473,3 +473,12 @@ int ft_board_setup(void *blob, bd_t *bd)
 	return 0;
 }
 #endif /* defined(CONFIG_OF_BOARD_SETUP) && defined(CONFIG_OF_LIBFDT) */
+
+#if defined(CONFIG_MGCOGE3NE)
+int get_testpin(void)
+{
+	/* Testpin is Port C pin 29 - enable = low */
+	int testpin = !get_pin(0x00000004, 2);
+	return testpin;
+}
+#endif
Signature · 1 line
1.8.3.1
#9 lore raw

PATCH 4/17 powerpc/82xx/km: add testpin detection for mgcoge3ne

Hello Valentin,

Am 13.11.2015 um 15:59 schrieb Valentin Longchamp:

Quoted 6 lines

From: Holger Brunck <[email protected]>

On mgcoge3ne we also want to start the test application if the testpin is asserted. But we don't have a full POST test support yet. So simply add a function to read the testpin value.

Quoted 8 lines

---

  board/keymile/common/common.c | 5 ++++-
  board/keymile/common/common.h | 2 ++
  board/keymile/km82xx/km82xx.c | 9 +++++++++
  3 files changed, 15 insertions(+), 1 deletion(-)

same here ... gpio support would be great.

bye,
Heiko

Quoted 49 lines
board/keymile/common/common.c +4 -1
index b9aff1a..8de129d 100644
@@ -354,8 +354,11 @@ static int do_checktestboot(cmd_tbl_t *cmdtp, int flag, int argc,
 
  #if defined(CONFIG_POST)
  	testpin = post_hotkeys_pressed();
-	s = getenv("test_bank");
  #endif
+#if defined(CONFIG_MGCOGE3NE)
+	testpin = get_testpin();
+#endif
+	s = getenv("test_bank");
  	/* when test_bank is not set, act as if testpin is not asserted */
  	testboot = (testpin != 0) && (s);
  	if (verbose) {
board/keymile/common/common.h +2 -0
index dcfefc4..c74f569 100644
@@ -134,6 +134,8 @@ int wait_for_fpga_config(void);
  int fpga_reset(void);
  int toggle_eeprom_spi_bus(void);
 
+int get_testpin(void);
+
  int set_km_env(void);
  int fdt_set_node_and_value(void *blob,
  			char *nodename,
board/keymile/km82xx/km82xx.c +9 -0
index 03cd10c..cc9a7c9 100644
@@ -473,3 +473,12 @@ int ft_board_setup(void *blob, bd_t *bd)
  	return 0;
  }
  #endif /* defined(CONFIG_OF_BOARD_SETUP) && defined(CONFIG_OF_LIBFDT) */
+
+#if defined(CONFIG_MGCOGE3NE)
+int get_testpin(void)
+{
+	/* Testpin is Port C pin 29 - enable = low */
+	int testpin = !get_pin(0x00000004, 2);
+	return testpin;
+}
+#endif
Signature · 2 lines
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
#10 lore raw

PATCH 5/17 km/powerpc: increase space for kernel imange and FDT blob

In reply to Valentin Longchamp

From: Holger Brunck <[email protected]>

128kByte and 3,986MB may be in the future too little for kernel the fdt blob respectively the kernel image. So increase the reserved areas here, we have the space for this.

---

 include/configs/km/km-powerpc.h | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)
include/configs/km/km-powerpc.h +3 -3
index eb85a74..8121e5c 100644
@@ -63,9 +63,9 @@
  * is not valid yet, which is the case for when u-boot copies itself to RAM */
 #define CONFIG_PRAM		((CONFIG_KM_PNVRAM + CONFIG_KM_PHRAM)>>10)
 
-#define CONFIG_KM_CRAMFS_ADDR	0x800000
-#define CONFIG_KM_KERNEL_ADDR	0x400000	/* 3968Kbytes */
-#define CONFIG_KM_FDT_ADDR	0x7E0000	/* 128Kbytes */
+#define CONFIG_KM_CRAMFS_ADDR	0xC00000
+#define CONFIG_KM_KERNEL_ADDR	0x400000	/* 7680Kbytes */
+#define CONFIG_KM_FDT_ADDR	0xB80000	/* 512Kbytes */
 
 /* architecture specific default bootargs */
 #define CONFIG_KM_DEF_BOOT_ARGS_CPU		""
Signature · 1 line
1.8.3.1
#11 lore raw

PATCH 5/17 km/powerpc: increase space for kernel imange and FDT blob

Hello Valentin,

Am 13.11.2015 um 15:59 schrieb Valentin Longchamp:

Quoted 6 lines

From: Holger Brunck <[email protected]>

128kByte and 3,986MB may be in the future too little for kernel the fdt blob respectively the kernel image. So increase the reserved areas here, we have the space for this.

Quoted 6 lines

---

  include/configs/km/km-powerpc.h | 6 +++---
  1 file changed, 3 insertions(+), 3 deletions(-)

bye,
Heiko

Quoted 19 lines
include/configs/km/km-powerpc.h +3 -3
index eb85a74..8121e5c 100644
@@ -63,9 +63,9 @@
   * is not valid yet, which is the case for when u-boot copies itself to RAM */
  #define CONFIG_PRAM		((CONFIG_KM_PNVRAM + CONFIG_KM_PHRAM)>>10)
 
-#define CONFIG_KM_CRAMFS_ADDR	0x800000
-#define CONFIG_KM_KERNEL_ADDR	0x400000	/* 3968Kbytes */
-#define CONFIG_KM_FDT_ADDR	0x7E0000	/* 128Kbytes */
+#define CONFIG_KM_CRAMFS_ADDR	0xC00000
+#define CONFIG_KM_KERNEL_ADDR	0x400000	/* 7680Kbytes */
+#define CONFIG_KM_FDT_ADDR	0xB80000	/* 512Kbytes */
 
  /* architecture specific default bootargs */
  #define CONFIG_KM_DEF_BOOT_ARGS_CPU		""
Signature · 2 lines
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
#12 lore raw

PATCH 6/17 km/powerpc: move open firmware defines to km-powerpc.h

In reply to Valentin Longchamp

From: Holger Brunck <[email protected]>

We use the same settings for open firmware defines on all our powerpc targets, so move them from the CPU specific headers to the common powerpc header.

---

 include/configs/km/km-powerpc.h    | 4 ++++
 include/configs/km/km83xx-common.h | 3 ---
 include/configs/km82xx.h           | 3 ---
 3 files changed, 4 insertions(+), 6 deletions(-)
include/configs/km/km-powerpc.h +4 -0
index 8121e5c..cf4a91c 100644
@@ -17,6 +17,10 @@
 #define CONFIG_CMD_DTT
 #define CONFIG_JFFS2_CMDLINE
 
+/* Pass open firmware flat tree */
+#define CONFIG_OF_LIBFDT
+#define CONFIG_OF_BOARD_SETUP
+
 /* standard km ethernet_present for piggy */
 #define CONFIG_KM_COMMON_ETH_INIT
 
include/configs/km/km83xx-common.h +0 -3
index 940000e..2325451 100644
@@ -153,9 +153,6 @@
 #define CONFIG_SYS_NS16550_COM1	(CONFIG_SYS_IMMR+0x4500)
 #define CONFIG_SYS_NS16550_COM2	(CONFIG_SYS_IMMR+0x4600)
 
-/* Pass open firmware flat tree */
-#define CONFIG_OF_LIBFDT
-#define CONFIG_OF_BOARD_SETUP
 #define CONFIG_OF_STDOUT_VIA_ALIAS
 
 /*
include/configs/km82xx.h +0 -3
index 12f9d42..8c06dc1 100644
@@ -431,10 +431,7 @@ int get_scl(void);
 
 #define	CONFIG_SYS_RESET_ADDRESS 0xFDFFFFFC	/* "bad" address */
 
-/* pass open firmware flat tree */
 #define CONFIG_FIT		1
-#define CONFIG_OF_LIBFDT	1
-#define CONFIG_OF_BOARD_SETUP	1
 
 #define OF_TBCLK		(bd->bi_busfreq / 4)
 #define OF_STDOUT_PATH		"/soc/cpm/serial at 11a90"
Signature · 1 line
1.8.3.1
#13 lore raw

PATCH 6/17 km/powerpc: move open firmware defines to km-powerpc.h

Hello Valentin,

Am 13.11.2015 um 15:59 schrieb Valentin Longchamp:

Quoted 6 lines

From: Holger Brunck <[email protected]>

We use the same settings for open firmware defines on all our powerpc targets, so move them from the CPU specific headers to the common powerpc header.

Quoted 8 lines

---

  include/configs/km/km-powerpc.h    | 4 ++++
  include/configs/km/km83xx-common.h | 3 ---
  include/configs/km82xx.h           | 3 ---
  3 files changed, 4 insertions(+), 6 deletions(-)

bye,
Heiko

Quoted 46 lines
include/configs/km/km-powerpc.h +4 -0
index 8121e5c..cf4a91c 100644
@@ -17,6 +17,10 @@
  #define CONFIG_CMD_DTT
  #define CONFIG_JFFS2_CMDLINE
 
+/* Pass open firmware flat tree */
+#define CONFIG_OF_LIBFDT
+#define CONFIG_OF_BOARD_SETUP
+
  /* standard km ethernet_present for piggy */
  #define CONFIG_KM_COMMON_ETH_INIT
 
include/configs/km/km83xx-common.h +0 -3
index 940000e..2325451 100644
@@ -153,9 +153,6 @@
  #define CONFIG_SYS_NS16550_COM1	(CONFIG_SYS_IMMR+0x4500)
  #define CONFIG_SYS_NS16550_COM2	(CONFIG_SYS_IMMR+0x4600)
 
-/* Pass open firmware flat tree */
-#define CONFIG_OF_LIBFDT
-#define CONFIG_OF_BOARD_SETUP
  #define CONFIG_OF_STDOUT_VIA_ALIAS
 
  /*
include/configs/km82xx.h +0 -3
index 12f9d42..8c06dc1 100644
@@ -431,10 +431,7 @@ int get_scl(void);
 
  #define	CONFIG_SYS_RESET_ADDRESS 0xFDFFFFFC	/* "bad" address */
 
-/* pass open firmware flat tree */
  #define CONFIG_FIT		1
-#define CONFIG_OF_LIBFDT	1
-#define CONFIG_OF_BOARD_SETUP	1
 
  #define OF_TBCLK		(bd->bi_busfreq / 4)
  #define OF_STDOUT_PATH		"/soc/cpm/serial at 11a90"
Signature · 2 lines
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
#14 lore raw

PATCH 7/17 km/powerpc: remove unneeded defines

In reply to Valentin Longchamp

From: Holger Brunck <[email protected]>

We use CONFIG_OF_LIBFDT and CONFIG_OF_BOARD_SETUP on all our powerpc targets, so there is no need to check these defines within our C code.

Conflicts:

	board/keymile/km82xx/km82xx.c
	board/keymile/km83xx/km83xx.c

---

 board/keymile/km82xx/km82xx.c | 8 ++------
 board/keymile/km83xx/km83xx.c | 4 +---
 2 files changed, 3 insertions(+), 9 deletions(-)
board/keymile/km82xx/km82xx.c +2 -6
index cc9a7c9..70f816b 100644
@@ -11,10 +11,7 @@
 #include <malloc.h>
 #include <asm/io.h>
 
-#if defined(CONFIG_OF_BOARD_SETUP) && defined(CONFIG_OF_LIBFDT)
 #include <libfdt.h>
-#endif
-
 #include <i2c.h>
 #include "../common/common.h"
 
@@ -465,14 +462,13 @@ static void setports(int gpio)
 	}
 }
 #endif
-#if defined(CONFIG_OF_BOARD_SETUP) && defined(CONFIG_OF_LIBFDT)
-int ft_board_setup(void *blob, bd_t *bd)
+
+void ft_board_setup(void *blob, bd_t *bd)
 {
 	ft_cpu_setup(blob, bd);
 
 	return 0;
 }
-#endif /* defined(CONFIG_OF_BOARD_SETUP) && defined(CONFIG_OF_LIBFDT) */
 
 #if defined(CONFIG_MGCOGE3NE)
 int get_testpin(void)
board/keymile/km83xx/km83xx.c +1 -3
index 4ebcdbd..a7f2bf7 100644
@@ -369,14 +369,12 @@ int checkboard(void)
 	return 0;
 }
 
-#if defined(CONFIG_OF_BOARD_SETUP)
-int ft_board_setup(void *blob, bd_t *bd)
+void ft_board_setup(void *blob, bd_t *bd)
 {
 	ft_cpu_setup(blob, bd);
 
 	return 0;
 }
-#endif
 
 #if defined(CONFIG_HUSH_INIT_VAR)
 int hush_init_var(void)
Signature · 1 line
1.8.3.1
#15 lore raw

PATCH 7/17 km/powerpc: remove unneeded defines

Hello Valentin,

Am 13.11.2015 um 15:59 schrieb Valentin Longchamp:

Quoted 8 lines

From: Holger Brunck <[email protected]>

We use CONFIG_OF_LIBFDT and CONFIG_OF_BOARD_SETUP on all our powerpc targets, so there is no need to check these defines within our C code.

Conflicts:

Quoted 8 lines
	board/keymile/km82xx/km82xx.c
	board/keymile/km83xx/km83xx.c

---

  board/keymile/km82xx/km82xx.c | 8 ++------
  board/keymile/km83xx/km83xx.c | 4 +---
  2 files changed, 3 insertions(+), 9 deletions(-)

bye,
Heiko

Quoted 54 lines
board/keymile/km82xx/km82xx.c +2 -6
index cc9a7c9..70f816b 100644
@@ -11,10 +11,7 @@
  #include <malloc.h>
  #include <asm/io.h>
 
-#if defined(CONFIG_OF_BOARD_SETUP) && defined(CONFIG_OF_LIBFDT)
  #include <libfdt.h>
-#endif
-
  #include <i2c.h>
  #include "../common/common.h"
 
@@ -465,14 +462,13 @@ static void setports(int gpio)
  	}
  }
  #endif
-#if defined(CONFIG_OF_BOARD_SETUP) && defined(CONFIG_OF_LIBFDT)
-int ft_board_setup(void *blob, bd_t *bd)
+
+void ft_board_setup(void *blob, bd_t *bd)
  {
  	ft_cpu_setup(blob, bd);
 
  	return 0;
  }
-#endif /* defined(CONFIG_OF_BOARD_SETUP) && defined(CONFIG_OF_LIBFDT) */
 
  #if defined(CONFIG_MGCOGE3NE)
  int get_testpin(void)
board/keymile/km83xx/km83xx.c +1 -3
index 4ebcdbd..a7f2bf7 100644
@@ -369,14 +369,12 @@ int checkboard(void)
  	return 0;
  }
 
-#if defined(CONFIG_OF_BOARD_SETUP)
-int ft_board_setup(void *blob, bd_t *bd)
+void ft_board_setup(void *blob, bd_t *bd)
  {
  	ft_cpu_setup(blob, bd);
 
  	return 0;
  }
-#endif
 
  #if defined(CONFIG_HUSH_INIT_VAR)
  int hush_init_var(void)
Signature · 2 lines
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
#16 lore raw

PATCH 8/17 km/powerpc82xx: remove unused function

In reply to Valentin Longchamp

From: Holger Brunck <[email protected]>

commit 0a4f88b98 removed the usage of our setports function, but the function itself were not removed. So toss it it's dead code.

---

 board/keymile/km82xx/km82xx.c | 16 ----------------
 1 file changed, 16 deletions(-)
board/keymile/km82xx/km82xx.c +0 -16
index 70f816b..01a3c20 100644
@@ -447,22 +447,6 @@ int get_scl(void)
 	return get_pin(SCL_MASK, 3);
 }
 
-#if defined(CONFIG_HARD_I2C)
-static void setports(int gpio)
-{
-	ioport_t *iop = ioport_addr((immap_t *)CONFIG_SYS_IMMR, 3);
-
-	if (gpio) {
-		clrbits_be32(&iop->ppar, (SDA_MASK | SCL_MASK));
-		clrbits_be32(&iop->podr, (SDA_MASK | SCL_MASK));
-	} else {
-		setbits_be32(&iop->ppar, (SDA_MASK | SCL_MASK));
-		clrbits_be32(&iop->pdir, (SDA_MASK | SCL_MASK));
-		setbits_be32(&iop->podr, (SDA_MASK | SCL_MASK));
-	}
-}
-#endif
-
 void ft_board_setup(void *blob, bd_t *bd)
 {
 	ft_cpu_setup(blob, bd);
Signature · 1 line
1.8.3.1
#17 lore raw

PATCH 8/17 km/powerpc82xx: remove unused function

Hello Valentin,

Am 13.11.2015 um 15:59 schrieb Valentin Longchamp:

Quoted 11 lines

From: Holger Brunck <[email protected]>

commit 0a4f88b98 removed the usage of our setports function, but the function itself were not removed. So toss it it's dead code.

---

  board/keymile/km82xx/km82xx.c | 16 ----------------
  1 file changed, 16 deletions(-)

bye,
Heiko

Quoted 29 lines
board/keymile/km82xx/km82xx.c +0 -16
index 70f816b..01a3c20 100644
@@ -447,22 +447,6 @@ int get_scl(void)
  	return get_pin(SCL_MASK, 3);
  }
 
-#if defined(CONFIG_HARD_I2C)
-static void setports(int gpio)
-{
-	ioport_t *iop = ioport_addr((immap_t *)CONFIG_SYS_IMMR, 3);
-
-	if (gpio) {
-		clrbits_be32(&iop->ppar, (SDA_MASK | SCL_MASK));
-		clrbits_be32(&iop->podr, (SDA_MASK | SCL_MASK));
-	} else {
-		setbits_be32(&iop->ppar, (SDA_MASK | SCL_MASK));
-		clrbits_be32(&iop->pdir, (SDA_MASK | SCL_MASK));
-		setbits_be32(&iop->podr, (SDA_MASK | SCL_MASK));
-	}
-}
-#endif
-
  void ft_board_setup(void *blob, bd_t *bd)
  {
  	ft_cpu_setup(blob, bd);
Signature · 2 lines
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
#18 lore raw

PATCH 9/17 powerpc/km8321: define CONFIG_SYS_DDRCDR

In reply to Valentin Longchamp

On the km8321 boards is CONFIG_SYS_DDRCDR not defined, which leads to the DDRCDR not being configured at startup and still containing the reset value.

The required settings for our km8321 hardware designs are different than the reset value and must be set with CONFIG_SYS_DDRCDR, that is used by mpc83xx's cpu_init_f function at early CPU initialization.

---

 include/configs/km/km8321-common.h | 6 ++++++
 1 file changed, 6 insertions(+)
include/configs/km/km8321-common.h +6 -0
index 058b0ab..6f21c05 100644
@@ -65,6 +65,12 @@
 	HRCWH_BIG_ENDIAN | \
 	HRCWH_LALE_NORMAL)
 
+#define CONFIG_SYS_DDRCDR (\
+	DDRCDR_EN | \
+	DDRCDR_PZ_NOMZ | \
+	DDRCDR_NZ_NOMZ | \
+	DDRCDR_M_ODR)
+
 #define CONFIG_SYS_DDR_CS0_BNDS		0x0000007f
 #define CONFIG_SYS_DDR_SDRAM_CFG	(SDRAM_CFG_SDRAM_TYPE_DDR2 | \
 					 SDRAM_CFG_32_BE | \
Signature · 1 line
1.8.3.1
#19 lore raw

PATCH 9/17 powerpc/km8321: define CONFIG_SYS_DDRCDR

Hello valentin,

Am 13.11.2015 um 15:59 schrieb Valentin Longchamp:

Quoted 8 lines

On the km8321 boards is CONFIG_SYS_DDRCDR not defined, which leads to the DDRCDR not being configured at startup and still containing the reset value.

The required settings for our km8321 hardware designs are different than the reset value and must be set with CONFIG_SYS_DDRCDR, that is used by mpc83xx's cpu_init_f function at early CPU initialization.

Quoted 5 lines

---

  include/configs/km/km8321-common.h | 6 ++++++
  1 file changed, 6 insertions(+)

bye,
Heiko

Quoted 19 lines
include/configs/km/km8321-common.h +6 -0
index 058b0ab..6f21c05 100644
@@ -65,6 +65,12 @@
  	HRCWH_BIG_ENDIAN | \
  	HRCWH_LALE_NORMAL)
 
+#define CONFIG_SYS_DDRCDR (\
+	DDRCDR_EN | \
+	DDRCDR_PZ_NOMZ | \
+	DDRCDR_NZ_NOMZ | \
+	DDRCDR_M_ODR)
+
  #define CONFIG_SYS_DDR_CS0_BNDS		0x0000007f
  #define CONFIG_SYS_DDR_SDRAM_CFG	(SDRAM_CFG_SDRAM_TYPE_DDR2 | \
  					 SDRAM_CFG_32_BE | \
Signature · 2 lines
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
#20 lore raw

PATCH 10/17 powerpc/km8321: set the DDRCDR impedance settings back to half strength

In reply to Valentin Longchamp

The impedance settings have been changed with commit 2ea8ae99595ca11dd228726e854ebc6268208601 (whose goal was to set the internal voltage level to the DDR2 value - and not DDR1).

There was no other good reason to set them to nominal strength than "the others do it like that" according to Ludger. The others however very often use DIMM modules where the nominal strength makes sense.

In our case where the DRAM chips are soldered on board and the routing for these signals under control, half-strength is sufficient as a few measurements done in the lasts have shown. Since all the hardware qualification tests have been performed with half strength, the nominal strength settings are removed in favor of the default reset half strength settings.

---

 include/configs/km/km8321-common.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
include/configs/km/km8321-common.h +2 -2
index 6f21c05..b2e68e3 100644
@@ -67,8 +67,8 @@
 
 #define CONFIG_SYS_DDRCDR (\
 	DDRCDR_EN | \
-	DDRCDR_PZ_NOMZ | \
-	DDRCDR_NZ_NOMZ | \
+	DDRCDR_PZ_MAXZ | \
+	DDRCDR_NZ_MAXZ | \
 	DDRCDR_M_ODR)
 
 #define CONFIG_SYS_DDR_CS0_BNDS		0x0000007f
Signature · 1 line
1.8.3.1
#21 lore raw

PATCH 10/17 powerpc/km8321: set the DDRCDR impedance settings back to half strength

Hello Valentin,

Am 13.11.2015 um 15:59 schrieb Valentin Longchamp:

Quoted 15 lines

The impedance settings have been changed with commit 2ea8ae99595ca11dd228726e854ebc6268208601 (whose goal was to set the internal voltage level to the DDR2 value - and not DDR1).

There was no other good reason to set them to nominal strength than "the others do it like that" according to Ludger. The others however very often use DIMM modules where the nominal strength makes sense.

In our case where the DRAM chips are soldered on board and the routing for these signals under control, half-strength is sufficient as a few measurements done in the lasts have shown. Since all the hardware qualification tests have been performed with half strength, the nominal strength settings are removed in favor of the default reset half strength settings.

Quoted 5 lines

---

  include/configs/km/km8321-common.h | 4 ++--
  1 file changed, 2 insertions(+), 2 deletions(-)

bye,
Heiko

Quoted 17 lines
include/configs/km/km8321-common.h +2 -2
index 6f21c05..b2e68e3 100644
@@ -67,8 +67,8 @@
 
  #define CONFIG_SYS_DDRCDR (\
  	DDRCDR_EN | \
-	DDRCDR_PZ_NOMZ | \
-	DDRCDR_NZ_NOMZ | \
+	DDRCDR_PZ_MAXZ | \
+	DDRCDR_NZ_MAXZ | \
  	DDRCDR_M_ODR)
 
  #define CONFIG_SYS_DDR_CS0_BNDS		0x0000007f
Signature · 2 lines
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
#22 lore raw

PATCH 10/17 powerpc/km8321: set the DDRCDR impedance settings back to half strength

In reply to Valentin Longchamp

Hi Valentin,

Quoted 4 lines · Valentin Longchamp

The impedance settings have been changed with commit 2ea8ae99595ca11dd228726e854ebc6268208601 (whose goal was to set the internal voltage level to the DDR2 value - and not DDR1).

you are referencing the previous patch 09/17 here, shouldn't these two then not be squashed?

Regards
Holger

#23 lore raw

PATCH 10/17 powerpc/km8321: set the DDRCDR impedance settings back to half strength

Quoted 10 lines · Holger Brunck

Hi Valentin,

Quoted 4 lines · Valentin Longchamp

The impedance settings have been changed with commit 2ea8ae99595ca11dd228726e854ebc6268208601 (whose goal was to set the internal voltage level to the DDR2 value - and not DDR1).

you are referencing the previous patch 09/17 here, shouldn't these two then not be squashed?

It's bad form to reference commit IDs of previous parts of a series as they will not match what happens when commited to the tree so please say the commit subject instead. And as Holger suggests, if this reference patch 9/17 here, just squash the two together and v2 just that patch please (assuming no further feedback on the series), thanks!

Signature · 8 lines
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20151116/23beeb28/attachment.sig>
#24 lore raw

PATCH 10/17 powerpc/km8321: set the DDRCDR impedance settings back to half strength

Quoted 9 lines · Tom Rini
Quoted 8 lines · Holger Brunck

Hi Valentin,

Quoted 4 lines · Valentin Longchamp

The impedance settings have been changed with commit 2ea8ae99595ca11dd228726e854ebc6268208601 (whose goal was to set the internal voltage level to the DDR2 value - and not DDR1).

Quoted 9 lines
Quoted 2 lines

you are referencing the previous patch 09/17 here, shouldn't these two then not be squashed?

It's bad form to reference commit IDs of previous parts of a series as they will not match what happens when commited to the tree so please say the commit subject instead. And as Holger suggests, if this reference patch 9/17 here, just squash the two together and v2 just that patch please (assuming no further feedback on the series), thanks!

Sure, I will squash the 2 commits together and avoid all the internal commit references.

Thanks

Valentin

#25 lore raw

PATCH 11/17 powerpc/km8309: define CONFIG_SYS_DDRCDR

In reply to Valentin Longchamp

For consistency with all the other km83xx plaforms, this should also be defined for km8309. The same settings as for km8321 are taken.

---

 include/configs/km/km8309-common.h | 6 ++++++
 1 file changed, 6 insertions(+)
include/configs/km/km8309-common.h +6 -0
index ec133f9..d7f6cb1 100644
@@ -99,6 +99,12 @@
 	HRCWH_BIG_ENDIAN | \
 	HRCWH_LALE_NORMAL)
 
+#define CONFIG_SYS_DDRCDR (\
+	DDRCDR_EN | \
+	DDRCDR_PZ_MAXZ | \
+	DDRCDR_NZ_MAXZ | \
+	DDRCDR_M_ODR)
+
 #define CONFIG_SYS_DDR_CS0_BNDS		0x0000007f
 #define CONFIG_SYS_DDR_SDRAM_CFG	(SDRAM_CFG_SDRAM_TYPE_DDR2 | \
 					 SDRAM_CFG_32_BE | \
Signature · 1 line
1.8.3.1
#26 lore raw

PATCH 11/17 powerpc/km8309: define CONFIG_SYS_DDRCDR

Hello Valentin,

Am 13.11.2015 um 15:59 schrieb Valentin Longchamp:

Quoted 8 lines

For consistency with all the other km83xx plaforms, this should also be defined for km8309. The same settings as for km8321 are taken.

---

  include/configs/km/km8309-common.h | 6 ++++++
  1 file changed, 6 insertions(+)

bye,
Heiko

Quoted 19 lines
include/configs/km/km8309-common.h +6 -0
index ec133f9..d7f6cb1 100644
@@ -99,6 +99,12 @@
  	HRCWH_BIG_ENDIAN | \
  	HRCWH_LALE_NORMAL)
 
+#define CONFIG_SYS_DDRCDR (\
+	DDRCDR_EN | \
+	DDRCDR_PZ_MAXZ | \
+	DDRCDR_NZ_MAXZ | \
+	DDRCDR_M_ODR)
+
  #define CONFIG_SYS_DDR_CS0_BNDS		0x0000007f
  #define CONFIG_SYS_DDR_SDRAM_CFG	(SDRAM_CFG_SDRAM_TYPE_DDR2 | \
  					 SDRAM_CFG_32_BE | \
Signature · 2 lines
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
#27 lore raw

PATCH 12/17 powerpc/km8360: fix the ODT parameters for CS0

In reply to Valentin Longchamp

The ODT parameters for km8360 set the ODT_WR_ACS bit in u-boot KM-2011.09 that is used in the release bootpackage for kmcoge5ne. During the transition from the kmeter1 to km8360 and with the migration to KM-2012.10 (commit 0f2b721c80fa50c8e09548f0ad1b4210d2197bf9), this was changed to ODT_RD_ONLY_CURRENT, which is uncorrect and causes faulty RAM accesses at low temperatures.

This is now changed to ODT_WR_ONLY_CURRENT which is the equivalent of ODT_WR_ACS.

---

 include/configs/km8360.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
include/configs/km8360.h +2 -2
index 04cde46..5034fda 100644
@@ -100,7 +100,7 @@
 #define CONFIG_SYS_DDR_CS0_CONFIG (\
 	CSCONFIG_EN | \
 	CSCONFIG_AP | \
-	CSCONFIG_ODT_RD_ONLY_CURRENT | \
+	CSCONFIG_ODT_WR_ONLY_CURRENT | \
 	CSCONFIG_BANK_BIT_3 | \
 	CSCONFIG_ROW_BIT_13 | \
 	CSCONFIG_COL_BIT_10)
@@ -108,7 +108,7 @@
 #define CONFIG_SYS_DDR_CS0_CONFIG	(CSCONFIG_EN | CSCONFIG_AP | \
 					 CSCONFIG_ROW_BIT_13 | \
 					 CSCONFIG_COL_BIT_10 | \
-					 CSCONFIG_ODT_RD_ONLY_CURRENT)
+					 CSCONFIG_ODT_WR_ONLY_CURRENT)
 #endif
 
 #define CONFIG_SYS_DDR_CLK_CNTL (\
Signature · 1 line
1.8.3.1
#28 lore raw

PATCH 12/17 powerpc/km8360: fix the ODT parameters for CS0

Hello Valentin,

Am 13.11.2015 um 15:59 schrieb Valentin Longchamp:

Quoted 7 lines

The ODT parameters for km8360 set the ODT_WR_ACS bit in u-boot KM-2011.09 that is used in the release bootpackage for kmcoge5ne. During the transition from the kmeter1 to km8360 and with the migration to KM-2012.10 (commit 0f2b721c80fa50c8e09548f0ad1b4210d2197bf9), this was changed to ODT_RD_ONLY_CURRENT, which is uncorrect and causes faulty RAM accesses at low temperatures.

Quoted 8 lines

This is now changed to ODT_WR_ONLY_CURRENT which is the equivalent of ODT_WR_ACS.

---

  include/configs/km8360.h | 4 ++--
  1 file changed, 2 insertions(+), 2 deletions(-)

bye,
Heiko

Quoted 24 lines
include/configs/km8360.h +2 -2
index 04cde46..5034fda 100644
@@ -100,7 +100,7 @@
  #define CONFIG_SYS_DDR_CS0_CONFIG (\
  	CSCONFIG_EN | \
  	CSCONFIG_AP | \
-	CSCONFIG_ODT_RD_ONLY_CURRENT | \
+	CSCONFIG_ODT_WR_ONLY_CURRENT | \
  	CSCONFIG_BANK_BIT_3 | \
  	CSCONFIG_ROW_BIT_13 | \
  	CSCONFIG_COL_BIT_10)
@@ -108,7 +108,7 @@
  #define CONFIG_SYS_DDR_CS0_CONFIG	(CSCONFIG_EN | CSCONFIG_AP | \
  					 CSCONFIG_ROW_BIT_13 | \
  					 CSCONFIG_COL_BIT_10 | \
-					 CSCONFIG_ODT_RD_ONLY_CURRENT)
+					 CSCONFIG_ODT_WR_ONLY_CURRENT)
  #endif
 
  #define CONFIG_SYS_DDR_CLK_CNTL (\
Signature · 2 lines
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
#29 lore raw

PATCH 13/17 board/keymile/km82xx: setting dip_switch 3 and 4 will run bootloader

In reply to Valentin Longchamp

From: Bagavathiannan Palanisamy <[email protected]>

Setting dip_switch 3 and 4 also will run bootloader in COGE3 and COGE6 It is required remove local mgmt IP address, when DIP Switch PIN3 is enabled. DIP Switch 4 also enabled to avoid u-boot update in future for DIP switch enhancements.

---

 board/keymile/km82xx/km82xx.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
board/keymile/km82xx/km82xx.c +2 -2
index 01a3c20..9e285ec 100644
@@ -329,8 +329,8 @@ int last_stage_init(void)
 
 	dip_switch = in_8(&base->mswitch);
 	dip_switch &= BFTICU_DIPSWITCH_MASK;
-	/* dip switch 'full reset' or 'db erase' */
-	if (dip_switch & 0x1 || dip_switch & 0x2) {
+	/* dip switch 'full reset' or 'db erase' or 'Local mgmt IP' or any */
+	if (dip_switch != 0) {
 		/* start bootloader */
 		puts("DIP:   Enabled\n");
 		setenv("actual_bank", "0");
Signature · 1 line
1.8.3.1
#30 lore raw

PATCH 13/17 board/keymile/km82xx: setting dip_switch 3 and 4 will run bootloader

Hello Valentin,

Am 13.11.2015 um 15:59 schrieb Valentin Longchamp:

Quoted 7 lines

From: Bagavathiannan Palanisamy <[email protected]>

Setting dip_switch 3 and 4 also will run bootloader in COGE3 and COGE6 It is required remove local mgmt IP address, when DIP Switch PIN3 is enabled. DIP Switch 4 also enabled to avoid u-boot update in future for DIP switch enhancements.

Quoted 6 lines

---

  board/keymile/km82xx/km82xx.c | 4 ++--
  1 file changed, 2 insertions(+), 2 deletions(-)

bye,
Heiko

Quoted 17 lines
board/keymile/km82xx/km82xx.c +2 -2
index 01a3c20..9e285ec 100644
@@ -329,8 +329,8 @@ int last_stage_init(void)
 
  	dip_switch = in_8(&base->mswitch);
  	dip_switch &= BFTICU_DIPSWITCH_MASK;
-	/* dip switch 'full reset' or 'db erase' */
-	if (dip_switch & 0x1 || dip_switch & 0x2) {
+	/* dip switch 'full reset' or 'db erase' or 'Local mgmt IP' or any */
+	if (dip_switch != 0) {
  		/* start bootloader */
  		puts("DIP:   Enabled\n");
  		setenv("actual_bank", "0");
Signature · 2 lines
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
#31 lore raw

PATCH 14/17 km83xx: use CONFIG_ENV_ADDR for the newenv env command

In reply to Valentin Longchamp

The hardcoded value are bad, since the address could change between different boards.

Furthermore, the relevant #defines are set only if #undefined here, so that they can be changed by some boards if required.

---

 include/configs/km/km83xx-common.h | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)
include/configs/km/km83xx-common.h +6 -2
index 2325451..27b47d7 100644
@@ -182,10 +182,14 @@
 
 #ifndef CONFIG_SYS_RAMBOOT
 #define CONFIG_ENV_IS_IN_FLASH
+#ifndef CONFIG_ENV_ADDR
 #define CONFIG_ENV_ADDR		(CONFIG_SYS_MONITOR_BASE + \
 					CONFIG_SYS_MONITOR_LEN)
+#endif
 #define CONFIG_ENV_SECT_SIZE	0x20000 /* 128K(one sector) for env */
+#ifndef CONFIG_ENV_OFFSET
 #define CONFIG_ENV_OFFSET	(CONFIG_SYS_MONITOR_LEN)
+#endif
 
 /* Address and size of Redundant Environment Sector	*/
 #define CONFIG_ENV_OFFSET_REDUND	(CONFIG_ENV_OFFSET + \
@@ -320,8 +324,8 @@
 	CONFIG_KM_DEF_ENV						\
 	CONFIG_KM_DEF_ARCH						\
 	"newenv="							\
-		"prot off 0xF00C0000 +0x40000 && "			\
-		"era 0xF00C0000 +0x40000\0"				\
+		"prot off "__stringify(CONFIG_ENV_ADDR)" +0x40000 && "	\
+		"era "__stringify(CONFIG_ENV_ADDR)" +0x40000\0"		\
 	"unlock=yes\0"							\
 	""
 
Signature · 1 line
1.8.3.1
#32 lore raw

PATCH 14/17 km83xx: use CONFIG_ENV_ADDR for the newenv env command

Hello Valentin,

Am 13.11.2015 um 15:59 schrieb Valentin Longchamp:

Quoted 11 lines

The hardcoded value are bad, since the address could change between different boards.

Furthermore, the relevant #defines are set only if #undefined here, so that they can be changed by some boards if required.

---

  include/configs/km/km83xx-common.h | 8 ++++++--
  1 file changed, 6 insertions(+), 2 deletions(-)

bye,
Heiko

Quoted 32 lines
include/configs/km/km83xx-common.h +6 -2
index 2325451..27b47d7 100644
@@ -182,10 +182,14 @@
 
  #ifndef CONFIG_SYS_RAMBOOT
  #define CONFIG_ENV_IS_IN_FLASH
+#ifndef CONFIG_ENV_ADDR
  #define CONFIG_ENV_ADDR		(CONFIG_SYS_MONITOR_BASE + \
  					CONFIG_SYS_MONITOR_LEN)
+#endif
  #define CONFIG_ENV_SECT_SIZE	0x20000 /* 128K(one sector) for env */
+#ifndef CONFIG_ENV_OFFSET
  #define CONFIG_ENV_OFFSET	(CONFIG_SYS_MONITOR_LEN)
+#endif
 
  /* Address and size of Redundant Environment Sector	*/
  #define CONFIG_ENV_OFFSET_REDUND	(CONFIG_ENV_OFFSET + \
@@ -320,8 +324,8 @@
  	CONFIG_KM_DEF_ENV						\
  	CONFIG_KM_DEF_ARCH						\
  	"newenv="							\
-		"prot off 0xF00C0000 +0x40000 && "			\
-		"era 0xF00C0000 +0x40000\0"				\
+		"prot off "__stringify(CONFIG_ENV_ADDR)" +0x40000 && "	\
+		"era "__stringify(CONFIG_ENV_ADDR)" +0x40000\0"		\
  	"unlock=yes\0"							\
  	""
 
Signature · 2 lines
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
#33 lore raw

PATCH 15/17 km8309: change the default QE_FW address

In reply to Valentin Longchamp

It should be after the u-boot reserved sectors and before the env sectors, since the solution used for kmvect1 (tell the linker to put the firmware into the u-boot produced binary, at the end of the area) should be the exception.

The #define is only "conditional" so that we can still support kmvect1.

---

 include/configs/km/km8309-common.h | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)
include/configs/km/km8309-common.h +4 -2
index d7f6cb1..a69fdf1 100644
@@ -29,8 +29,10 @@
 
 /* QE microcode/firmware address */
 #define CONFIG_SYS_QE_FMAN_FW_IN_NOR
-/* at end of uboot partition, before env */
-#define CONFIG_SYS_QE_FW_ADDR   0xF00B0000
+/* between the u-boot partition and env */
+#ifndef CONFIG_SYS_QE_FW_ADDR
+#define CONFIG_SYS_QE_FW_ADDR   0xF00C0000
+#endif
 
 /*
  * System IO Config
Signature · 1 line
1.8.3.1
#34 lore raw

PATCH 15/17 km8309: change the default QE_FW address

Hello Valentin,

Am 13.11.2015 um 15:59 schrieb Valentin Longchamp:

Quoted 5 lines

It should be after the u-boot reserved sectors and before the env sectors, since the solution used for kmvect1 (tell the linker to put the firmware into the u-boot produced binary, at the end of the area) should be the exception.

Quoted 7 lines

The #define is only "conditional" so that we can still support kmvect1.

---

  include/configs/km/km8309-common.h | 6 ++++--
  1 file changed, 4 insertions(+), 2 deletions(-)

bye,
Heiko

Quoted 19 lines
include/configs/km/km8309-common.h +4 -2
index d7f6cb1..a69fdf1 100644
@@ -29,8 +29,10 @@
 
  /* QE microcode/firmware address */
  #define CONFIG_SYS_QE_FMAN_FW_IN_NOR
-/* at end of uboot partition, before env */
-#define CONFIG_SYS_QE_FW_ADDR   0xF00B0000
+/* between the u-boot partition and env */
+#ifndef CONFIG_SYS_QE_FW_ADDR
+#define CONFIG_SYS_QE_FW_ADDR   0xF00C0000
+#endif
 
  /*
   * System IO Config
Signature · 2 lines
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
#35 lore raw

PATCH 16/17 powerpc/83xx: add support for kmtegr1 board

In reply to Valentin Longchamp

This board uses the same CPU (8309) as VECT1. The memory however is different since it has NAND Flash, the NOR Flash partitioning is different and of course the FPGAs as well.

---

 board/keymile/km83xx/MAINTAINERS |  1 +
 configs/kmtegr1_defconfig        |  4 +++
 include/configs/suvd3.h          | 65 +++++++++++++++++++++++++++++++++++++---
 3 files changed, 66 insertions(+), 4 deletions(-)
 create mode 100644 configs/kmtegr1_defconfig
board/keymile/km83xx/MAINTAINERS +1 -0
index 58969a2..f765575 100644
@@ -9,6 +9,7 @@ F:	include/configs/tuxx1.h
 F:	configs/kmopti2_defconfig
 F:	configs/kmtepr2_defconfig
 F:	include/configs/suvd3.h
+F:	configs/kmtegr1_defconfig
 F:	configs/kmvect1_defconfig
 F:	configs/kmvect1_p1a_defconfig
 F:	configs/suvd3_defconfig
configs/kmtegr1_defconfig new file +4 -0
new file mode 100644
index 0000000..aee9886
@@ -0,0 +1,4 @@
+CONFIG_SYS_EXTRA_OPTIONS="KMTEGR1"
+CONFIG_PPC=y
+CONFIG_MPC83xx=y
+CONFIG_TARGET_SUVD3=y
include/configs/suvd3.h +61 -4

113 lines not on this page · raw message

Signature · 1 line
1.8.3.1
#36 lore raw

PATCH 16/17 powerpc/83xx: add support for kmtegr1 board

Hello Valentin,

Am 13.11.2015 um 15:59 schrieb Valentin Longchamp:

Quoted 6 lines

This board uses the same CPU (8309) as VECT1. The memory however is different since it has NAND Flash, the NOR Flash partitioning is different and of course the FPGAs as well.

Quoted 7 lines

---

  board/keymile/km83xx/MAINTAINERS |  1 +
  configs/kmtegr1_defconfig        |  4 +++
  include/configs/suvd3.h          | 65 +++++++++++++++++++++++++++++++++++++---
  3 files changed, 66 insertions(+), 4 deletions(-)

create mode 100644 configs/kmtegr1_defconfig

bye,
Heiko

Quoted 147 lines
board/keymile/km83xx/MAINTAINERS +1 -0
index 58969a2..f765575 100644
@@ -9,6 +9,7 @@ F:	include/configs/tuxx1.h
  F:	configs/kmopti2_defconfig
  F:	configs/kmtepr2_defconfig
  F:	include/configs/suvd3.h
+F:	configs/kmtegr1_defconfig
  F:	configs/kmvect1_defconfig
  F:	configs/kmvect1_p1a_defconfig
  F:	configs/suvd3_defconfig
configs/kmtegr1_defconfig new file +4 -0
new file mode 100644
index 0000000..aee9886
@@ -0,0 +1,4 @@
+CONFIG_SYS_EXTRA_OPTIONS="KMTEGR1"
+CONFIG_PPC=y
+CONFIG_MPC83xx=y
+CONFIG_TARGET_SUVD3=y
include/configs/suvd3.h +61 -4
index fddba92..af8730a 100644
@@ -29,13 +29,48 @@
  #define CONFIG_KM_BOARD_NAME   "suvd3"
  /* include common defines/options for all 8321 Keymile boards */
  #include "km/km8321-common.h"
+
  #elif defined(CONFIG_KMVECT1)   /* VECT1 board specific */
  #define CONFIG_HOSTNAME		kmvect1
  #define CONFIG_KM_BOARD_NAME   "kmvect1"
+/* at end of uboot partition, before env */
+#define CONFIG_SYS_QE_FW_ADDR   0xF00B0000
+/* include common defines/options for all 8309 Keymile boards */
+#include "km/km8309-common.h"
+
+#elif defined(CONFIG_KMTEGR1)   /* TEGR1 board specific */
+#define CONFIG_HOSTNAME   kmtegr1
+#define CONFIG_KM_BOARD_NAME   "kmtegr1"
+#define CONFIG_KM_UBI_PARTITION_NAME_BOOT	"ubi0"
+#define CONFIG_KM_UBI_PARTITION_NAME_APP	"ubi1"
+#define MTDIDS_DEFAULT			"nor0=boot,nand0=app"
+#define MTDPARTS_DEFAULT		"mtdparts="			\
+	"boot:"								\
+		"768k(u-boot),"						\
+		"256k(qe-fw),"						\
+		"128k(env),"						\
+		"128k(envred),"						\
+		"-(" CONFIG_KM_UBI_PARTITION_NAME_BOOT ");"		\
+	"app:"								\
+		"-(" CONFIG_KM_UBI_PARTITION_NAME_APP ");"
+
+#define CONFIG_ENV_ADDR		0xF0100000
+#define CONFIG_ENV_OFFSET	0x100000
+
+#define CONFIG_CMD_NAND
+#define CONFIG_NAND_ECC_BCH
+#define CONFIG_BCH
+#define CONFIG_NAND_KMETER1
+#define CONFIG_SYS_MAX_NAND_DEVICE		1
+#define NAND_MAX_CHIPS				1
+
  /* include common defines/options for all 8309 Keymile boards */
  #include "km/km8309-common.h"
+/* must be after the include because KMBEC_FPGA is otherwise undefined */
+#define CONFIG_SYS_NAND_BASE CONFIG_SYS_KMBEC_FPGA_BASE /* PRIO_BASE_ADDRESS */
+
  #else
-#error Supported boards are: SUVD3, KMVECT1
+#error Supported boards are: SUVD3, KMVECT1, KMTEGR1
  #endif
 
  #define CONFIG_SYS_APP1_BASE		0xA0000000
@@ -56,6 +91,7 @@
   *
   */
 
+#if defined(CONFIG_SUVD3) || defined(CONFIG_KMVECT1)
  /*
   * APP1 on the local bus CS2
   */
@@ -82,14 +118,26 @@
  			 0x0000c000 | \
  			 MxMR_WLFx_2X)
 
+#elif defined(CONFIG_KMTEGR1)
+#define CONFIG_SYS_BR3_PRELIM (CONFIG_SYS_APP2_BASE | \
+				 BR_PS_16 | \
+				 BR_MS_GPCM | \
+				 BR_V)
+
+#define CONFIG_SYS_OR3_PRELIM (MEG_TO_AM(CONFIG_SYS_APP2_SIZE) | \
+				 OR_GPCM_SCY_5 | \
+				 OR_GPCM_TRLX_CLEAR | \
+				 OR_GPCM_EHTR_CLEAR)
+
+#endif /* CONFIG_KMTEGR1 */
+
  #define CONFIG_SYS_LBLAWBAR3_PRELIM	CONFIG_SYS_APP2_BASE
  #define CONFIG_SYS_LBLAWAR3_PRELIM	(LBLAWAR_EN | LBLAWAR_256MB)
 
  /*
   * MMU Setup
   */
-
-
+#if defined(CONFIG_SUVD3) || defined(CONFIG_KMVECT1)
  /* APP1:  icache cacheable, but dcache-inhibit and guarded */
  #define CONFIG_SYS_IBAT5L	(CONFIG_SYS_APP1_BASE | BATL_PP_RW | \
  				 BATL_MEMCOHERENCE)
@@ -99,6 +147,13 @@
  				 BATL_CACHEINHIBIT | BATL_GUARDEDSTORAGE)
  #define CONFIG_SYS_DBAT5U	CONFIG_SYS_IBAT5U
 
+#elif defined(CONFIG_KMTEGR1)
+#define CONFIG_SYS_IBAT5L (0)
+#define CONFIG_SYS_IBAT5U (0)
+#define CONFIG_SYS_DBAT5L CONFIG_SYS_IBAT5L
+#define CONFIG_SYS_DBAT5U CONFIG_SYS_IBAT5U
+#endif /* CONFIG_KMTEGR1 */
+
  #define CONFIG_SYS_IBAT6L	(CONFIG_SYS_APP2_BASE | BATL_PP_RW | \
  				 BATL_MEMCOHERENCE)
  #define CONFIG_SYS_IBAT6U	(CONFIG_SYS_APP2_BASE | BATU_BL_256M | \
@@ -131,7 +186,9 @@
  #define CONFIG_SYS_UEC1_PHY_ADDR	CONFIG_SYS_FIXED_PHY_ADDR
  #define CONFIG_SYS_UEC1_INTERFACE_TYPE	PHY_INTERFACE_MODE_MII
  #define CONFIG_SYS_UEC1_INTERFACE_SPEED	100
+#endif /* CONFIG_KMVECT1 */
 
+#if defined(CONFIG_KMVECT1) || defined(CONFIG_KMTEGR1)
  /* ethernet port connected to piggy (UEC2) */
  #define CONFIG_HAS_ETH1
  #define CONFIG_UEC_ETH2
@@ -142,6 +199,6 @@
  #define CONFIG_SYS_UEC2_PHY_ADDR	0
  #define CONFIG_SYS_UEC2_INTERFACE_TYPE	PHY_INTERFACE_MODE_RMII
  #define CONFIG_SYS_UEC2_INTERFACE_SPEED	100
-#endif /* CONFIG_KMVECT1 */
+#endif /* CONFIG_KMVECT1 || CONFIG_KMTEGR1 */
 
  #endif /* __CONFIG_H */
Signature · 2 lines
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
#37 lore raw

PATCH 17/17 km/powerpc: fix ft_board_setup prototype for km82xx & km83xx

In reply to Valentin Longchamp

---

 board/keymile/km82xx/km82xx.c | 2 +-
 board/keymile/km83xx/km83xx.c | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)
board/keymile/km82xx/km82xx.c +1 -1
index 9e285ec..c2a7a5f 100644
@@ -447,7 +447,7 @@ int get_scl(void)
 	return get_pin(SCL_MASK, 3);
 }
 
-void ft_board_setup(void *blob, bd_t *bd)
+int ft_board_setup(void *blob, bd_t *bd)
 {
 	ft_cpu_setup(blob, bd);
 
board/keymile/km83xx/km83xx.c +1 -1
index a7f2bf7..92c8ccf 100644
@@ -369,7 +369,7 @@ int checkboard(void)
 	return 0;
 }
 
-void ft_board_setup(void *blob, bd_t *bd)
+int ft_board_setup(void *blob, bd_t *bd)
 {
 	ft_cpu_setup(blob, bd);
 
Signature · 1 line
1.8.3.1
#38 lore raw

PATCH 17/17 km/powerpc: fix ft_board_setup prototype for km82xx & km83xx

Hello Valentin,

Am 13.11.2015 um 15:59 schrieb Valentin Longchamp:

Quoted 6 lines

---

  board/keymile/km82xx/km82xx.c | 2 +-
  board/keymile/km83xx/km83xx.c | 2 +-
  2 files changed, 2 insertions(+), 2 deletions(-)

bye,
Heiko

Quoted 28 lines
board/keymile/km82xx/km82xx.c +1 -1
index 9e285ec..c2a7a5f 100644
@@ -447,7 +447,7 @@ int get_scl(void)
  	return get_pin(SCL_MASK, 3);
  }
 
-void ft_board_setup(void *blob, bd_t *bd)
+int ft_board_setup(void *blob, bd_t *bd)
  {
  	ft_cpu_setup(blob, bd);
 
board/keymile/km83xx/km83xx.c +1 -1
index a7f2bf7..92c8ccf 100644
@@ -369,7 +369,7 @@ int checkboard(void)
  	return 0;
  }
 
-void ft_board_setup(void *blob, bd_t *bd)
+int ft_board_setup(void *blob, bd_t *bd)
  {
  	ft_cpu_setup(blob, bd);
 
Signature · 2 lines
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany