[PATCH] Add support for Prodrive SCPU (PDNB3 variant) board
Signed-off-by: Stefan Roese <sr@denx.de>
diff --git a/MAINTAINERS b/MAINTAINERS
index 81c113d..e9203eb 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -465,6 +465,7 @@
ixdpg425 xscale
pdnb3 xscale
+ scpu xscale
Robert Schwebel <r.schwebel@pengutronix.de>
diff --git a/MAKEALL b/MAKEALL
index b3e16bc..40a5c77 100755
--- a/MAKEALL
+++ b/MAKEALL
@@ -225,7 +225,7 @@
xsengine zylonite \
"
-LIST_ixp="ixdp425 ixdpg425 pdnb3"
+LIST_ixp="ixdp425 ixdpg425 pdnb3 scpu"
LIST_arm=" \
diff --git a/Makefile b/Makefile
index af33006..b1952ed 100644
--- a/Makefile
+++ b/Makefile
@@ -2066,8 +2066,15 @@
logodl_config : unconfig
@$(MKCONFIG) $(@:_config=) arm pxa logodl
-pdnb3_config : unconfig
- @$(MKCONFIG) $(@:_config=) arm ixp pdnb3 prodrive
+pdnb3_config \
+scpu_config: unconfig
+ @if [ "$(findstring scpu_,$@)" ] ; then \
+ echo "#define CONFIG_SCPU" >>include/config.h ; \
+ echo "... on SCPU board variant" ; \
+ else \
+ >include/config.h ; \
+ fi
+ @$(MKCONFIG) -a pdnb3 arm ixp pdnb3 prodrive
pxa255_idp_config: unconfig
@$(MKCONFIG) $(@:_config=) arm pxa pxa255_idp
diff --git a/board/prodrive/pdnb3/flash.c b/board/prodrive/pdnb3/flash.c
index d0e5fe7..518ea9c 100644
--- a/board/prodrive/pdnb3/flash.c
+++ b/board/prodrive/pdnb3/flash.c
@@ -24,6 +24,8 @@
#include <common.h>
#include <asm/arch/ixp425.h>
+#if !defined(CFG_FLASH_CFI_DRIVER)
+
/*
* include common flash code (for esd boards)
*/
@@ -83,3 +85,5 @@
return size;
}
+
+#endif /* CFG_FLASH_CFI_DRIVER */
diff --git a/include/configs/pdnb3.h b/include/configs/pdnb3.h
index ba6b113..2cc137c 100644
--- a/include/configs/pdnb3.h
+++ b/include/configs/pdnb3.h
@@ -71,12 +71,18 @@
#define CONFIG_BAUDRATE 115200
#define CFG_IXP425_CONSOLE IXP425_UART1 /* we use UART1 for console */
+#if defined(CONFIG_SCPU)
+#define CMD_NAND_ADD 0
+#else
+#define CMD_NAND_ADD CFG_CMD_NAND
+#endif
+
#define CONFIG_COMMANDS (CONFIG_CMD_DFL | \
CFG_CMD_DHCP | \
CFG_CMD_DATE | \
CFG_CMD_NET | \
CFG_CMD_MII | \
- CFG_CMD_NAND | \
+ CMD_NAND_ADD | \
CFG_CMD_I2C | \
CFG_CMD_ELF | \
CFG_CMD_PING)
@@ -176,12 +182,20 @@
#define CFG_FLASH_BASE 0x50000000
#define CFG_MONITOR_BASE CFG_FLASH_BASE
+#if defined(CONFIG_SCPU)
+#define CFG_MONITOR_LEN (384 << 10) /* Reserve 512 kB for Monitor */
+#else
#define CFG_MONITOR_LEN (504 << 10) /* Reserve 512 kB for Monitor */
+#endif
/*
* Expansion bus settings
*/
+#if defined(CONFIG_SCPU)
+#define CFG_EXP_CS0 0x94d23C42 /* 8bit, max size */
+#else
#define CFG_EXP_CS0 0x94913C43 /* 8bit, max size */
+#endif
#define CFG_EXP_CS1 0x85000043 /* 8bit, 512bytes */
/*
@@ -194,6 +208,12 @@
/*
* FLASH and environment organization
*/
+#if defined(CONFIG_SCPU)
+#define CFG_FLASH_CFI /* The flash is CFI compatible */
+#define CFG_FLASH_CFI_DRIVER /* Use common CFI driver */
+#define CFG_FLASH_CFI_WIDTH FLASH_CFI_16BIT /* no byte writes on IXP4xx */
+#endif
+
#define FLASH_BASE0_PRELIM CFG_FLASH_BASE /* FLASH bank #0 */
#define CFG_MAX_FLASH_BANKS 1 /* max number of memory banks */
@@ -217,20 +237,27 @@
#define CFG_ENV_IS_IN_FLASH 1
+#if defined(CONFIG_SCPU)
+#define CFG_ENV_SECT_SIZE 0x20000 /* size of one complete sector */
+#define CFG_ENV_SIZE 0x4000 /* Total Size of Environment Sector */
+#else
#define CFG_ENV_SECT_SIZE 0x1000 /* size of one complete sector */
-#define CFG_ENV_ADDR (CFG_FLASH_BASE + CFG_MONITOR_LEN)
#define CFG_ENV_SIZE 0x1000 /* Total Size of Environment Sector */
+#endif
+#define CFG_ENV_ADDR (CFG_FLASH_BASE + CFG_MONITOR_LEN)
/* Address and size of Redundant Environment Sector */
#define CFG_ENV_ADDR_REDUND (CFG_ENV_ADDR + CFG_ENV_SECT_SIZE)
#define CFG_ENV_SIZE_REDUND (CFG_ENV_SIZE)
+#if !defined(CONFIG_SCPU)
/*
* NAND-FLASH stuff
*/
#define CFG_MAX_NAND_DEVICE 1
#define NAND_MAX_CHIPS 1
#define CFG_NAND_BASE 0x51000000 /* NAND FLASH Base Address */
+#endif
/*
* GPIO settings
@@ -284,9 +311,15 @@
/*
* I2C RTC
*/
+#if 0 /* test-only */
+#define CONFIG_RTC_DS1340 1
+#define CFG_I2C_RTC_ADDR 0x68
+#else
+/* M41T11 Serial Access Timekeeper(R) SRAM */
#define CONFIG_RTC_M41T11 1
#define CFG_I2C_RTC_ADDR 0x68
#define CFG_M41T11_BASE_YEAR 1900 /* play along with the linux driver */
+#endif
/*
* Spartan3 FPGA configuration support