powerpc/83xx: add support for kmtepr2 board

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

Signed-off-by: Christoph Dietrich <christoph.dietrich@keymile.com>
Signed-off-by: Andreas Huber <andreas.huber@keymile.com>
Signed-off-by: Valentin Longchamp <valentin.longchamp@keymile.com>
diff --git a/board/keymile/km83xx/MAINTAINERS b/board/keymile/km83xx/MAINTAINERS
index cee7e08..c4c3183 100644
--- a/board/keymile/km83xx/MAINTAINERS
+++ b/board/keymile/km83xx/MAINTAINERS
@@ -7,6 +7,7 @@
 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/suvd3_defconfig
diff --git a/configs/kmtepr2_defconfig b/configs/kmtepr2_defconfig
new file mode 100644
index 0000000..5cffd53
--- /dev/null
+++ b/configs/kmtepr2_defconfig
@@ -0,0 +1,4 @@
+CONFIG_SYS_EXTRA_OPTIONS="KMTEPR2"
+CONFIG_PPC=y
+CONFIG_MPC83xx=y
+CONFIG_TARGET_TUXX1=y
diff --git a/include/configs/tuxx1.h b/include/configs/tuxx1.h
index 08ead7f..e2ca9e3 100644
--- a/include/configs/tuxx1.h
+++ b/include/configs/tuxx1.h
@@ -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
  */