Skip to contentSkip to conversation

Initial skeleton framework for AMCC 460SX (Redwood) reference board.

PATCH New fkan at amcc.com 1 participant 1 message Jun 27, 2008 Kbuild

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 Initial skeleton framework for AMCC 460SX (Redwood) reference board.

From: Feng Kan <[email protected]>

Hi Stefan:
I have addressed most of the issues except two.
- I removed get_emac_phy_config, the board will use dip switch to determine if the bridge will be GMII or RGMII. I will submit it later when it is more mature.
- I would like to keep redwood.h. It seems one of the guys have PCIe.c file that source this file. There will be alot more defines in this file. If you think this is still a problem. I will merge the redwood.h into redwood.c.

Thanks

The AMCC Redwood reference board uses the latest PowerPC 464 CPU processor combined with a rich mix of peripheral controllers. The board will support PCIe, mutiple Gig ethernet ports, advanced hardware RAID assistance and IEEE 1588.

---
 MAINTAINERS                    |    4 +
 MAKEALL                        |    1 +
 Makefile                       |    3 +
 board/amcc/redwood/Makefile    |   50 ++++
 board/amcc/redwood/config.mk   |   42 +++
 board/amcc/redwood/init.S      |   77 +++++
 board/amcc/redwood/redwood.c   |  634 ++++++++++++++++++++++++++++++++++++++++
 board/amcc/redwood/redwood.h   |   50 ++++
 board/amcc/redwood/u-boot.lds  |  147 +++++++++
 cpu/ppc4xx/44x_spd_ddr2.c      |    3 +-
 cpu/ppc4xx/cpu.c               |   33 ++
 cpu/ppc4xx/speed.c             |    3 +-
 cpu/ppc4xx/start.S             |   19 +-
 include/asm-ppc/ppc4xx-sdram.h |    3 +-
 include/asm-ppc/processor.h    |    4 +
 include/configs/redwood.h      |  211 +++++++++++++
 include/ppc440.h               |  124 ++++++++-
 include/ppc4xx.h               |    3 +-
 18 files changed, 1397 insertions(+), 14 deletions(-)
 create mode 100644 board/amcc/redwood/Makefile
 create mode 100644 board/amcc/redwood/config.mk
 create mode 100644 board/amcc/redwood/init.S
 create mode 100644 board/amcc/redwood/redwood.c
 create mode 100644 board/amcc/redwood/redwood.h
 create mode 100644 board/amcc/redwood/u-boot.lds
 create mode 100644 include/configs/redwood.h
MAINTAINERS +4 -0
index a3d70b1..cb49a5d 100644
@@ -420,6 +420,10 @@ Guennadi Liakhovetski <[email protected]>
 
 	linkstation		MPC8241
 
+Feng Kan <[email protected]>
+
+	redwood			PPC460SX
+
 -------------------------------------------------------------------------
 
 Unknown / orphaned boards:
MAKEALL +1 -0
index 32caab7..566e63a 100755
@@ -221,6 +221,7 @@ LIST_4xx="		\
 	PPChameleonEVB	\
 	quad100hd	\
 	rainier		\
+	redwood		\
 	sbc405		\
 	sc3		\
 	sequoia		\
Makefile +3 -0
index 8bfc891..ff38e0c 100644
@@ -1417,6 +1417,9 @@ rainier_nand_config: unconfig
 	@echo "TEXT_BASE = 0x01000000" > $(obj)board/amcc/sequoia/config.tmp
 	@echo "CONFIG_NAND_U_BOOT = y" >> $(obj)include/config.mk
 
+redwood_config: unconfig
+	@$(MKCONFIG) $(@:_config=) ppc ppc4xx redwood amcc
+
 sc3_config:unconfig
 	@$(MKCONFIG) $(@:_config=) ppc ppc4xx sc3
 
board/amcc/redwood/Makefile new file +50 -0

50 lines not on this page · raw message

board/amcc/redwood/config.mk new file +42 -0

42 lines not on this page · raw message

board/amcc/redwood/init.S new file +77 -0

77 lines not on this page · raw message

board/amcc/redwood/redwood.c new file +634 -0

634 lines not on this page · raw message

board/amcc/redwood/redwood.h new file +50 -0

50 lines not on this page · raw message

board/amcc/redwood/u-boot.lds new file +147 -0

147 lines not on this page · raw message

cpu/ppc4xx/44x_spd_ddr2.c +2 -1
index c28fc46..937d9b5 100644
@@ -52,7 +52,8 @@
 
 #if defined(CONFIG_SPD_EEPROM) &&				\
 	(defined(CONFIG_440SP) || defined(CONFIG_440SPE) || \
-	 defined(CONFIG_460EX) || defined(CONFIG_460GT))
+	 defined(CONFIG_460EX) || defined(CONFIG_460GT)  || \
+         defined(CONFIG_460SX))
 
 /*-----------------------------------------------------------------------------+
  * Defines
cpu/ppc4xx/cpu.c +33 -0
index 39f439d..d3021b6 100644
@@ -184,6 +184,19 @@ static char *bootstrap_str[] = {
 static char bootstrap_char[] = { 'A', 'B', 'C', 'D', 'E', 'G', 'F', 'H' };
 #endif
 
+#if defined(CONFIG_460SX)
+#define SDR0_PINSTP_SHIFT	29
+static char *bootstrap_str[] = {
+	"EBC (8 bits)",
+	"EBC (16 bits)",
+	"EBC (32 bits)",
+	"NAND (8 bits)",
+	"I2C (Addr 0x54)",	/* A8 */
+	"I2C (Addr 0x52)",	/* A4 */
+};
+static char bootstrap_char[] = { 'A', 'B', 'C', 'D', 'E', 'G' };
+#endif
+
 #if defined(CONFIG_405EZ)
 #define SDR0_PINSTP_SHIFT	28
 static char *bootstrap_str[] = {
@@ -509,6 +522,26 @@ int checkcpu (void)
 		strcpy(addstr, "Security/Kasumi support");
 		break;
 
+	case PVR_460SX_RA:
+		puts("SX Rev. A");
+		strcpy(addstr, "Security support");
+		break;
+
+	case PVR_460SX_RA_V1:
+		puts("SX Rev. A");
+		strcpy(addstr, "No Security support");
+		break;
+
+	case PVR_460GX_RA:
+		puts("GX Rev. A");
+		strcpy(addstr, "Security support");
+		break;
+
+	case PVR_460GX_RA_V1:
+		puts("GX Rev. A");
+		strcpy(addstr, "No Security support");
+		break;
+
 	default:
 		printf (" UNKNOWN (PVR=%08x)", pvr);
 		break;
cpu/ppc4xx/speed.c +2 -1
index ef47ffc..336ca02 100644
@@ -205,7 +205,8 @@ ulong get_PCI_freq (void)
 
 #elif defined(CONFIG_440)
 
-#if defined(CONFIG_460EX) || defined(CONFIG_460GT)
+#if defined(CONFIG_460EX) || defined(CONFIG_460GT) || \
+    defined(CONFIG_460SX)
 static u8 pll_fwdv_multi_bits[] = {
 	/* values for:  1 - 16 */
 	0x00, 0x01, 0x0f, 0x04, 0x09, 0x0a, 0x0d, 0x0e, 0x03, 0x0c,
cpu/ppc4xx/start.S +17 -2
index 426bf3c..714f458 100644
@@ -677,7 +677,8 @@ _start:
 	/* not all PPC's have internal SRAM usable as L2-cache */
 #if defined(CONFIG_440GX) || \
     defined(CONFIG_440SP) || defined(CONFIG_440SPE) || \
-    defined(CONFIG_460EX) || defined(CONFIG_460GT)
+    defined(CONFIG_460EX) || defined(CONFIG_460GT) || \
+    defined(CONFIG_460SX)
 	mtdcr	l2_cache_cfg,r0		/* Ensure L2 Cache is off */
 #endif
 
@@ -720,6 +721,19 @@ _start:
 	lis	r1,0x4000		/* BAS = 8000_0000 */
 	ori	r1,r1,0x4580		/* 16k */
 	mtdcr	isram0_sb0cr,r1
+#elif defined(CONFIG_460SX)
+	lis	r1,0x0000		/* BAS = 0000_0000 */
+	ori	r1,r1,0x0B84		/* first 128k */
+	mtdcr	isram0_sb0cr,r1
+	lis	r1,0x0001
+	ori	r1,r1,0x0B84		/* second 128k */
+	mtdcr	isram0_sb1cr,r1
+	lis	r1, 0x0002
+	ori	r1,r1, 0x0B84		/* third 128k */
+	mtdcr	isram0_sb2cr,r1
+	lis	r1, 0x0003
+	ori	r1,r1, 0x0B84		/* fourth 128k */
+	mtdcr	isram0_sb3cr,r1
 #elif defined(CONFIG_440GP)
 	ori	r1,r1,0x0380		/* 8k rw */
 	mtdcr	isram0_sb0cr,r1
@@ -1415,7 +1429,8 @@ relocate_code:
 #if defined(CONFIG_440EP) || defined(CONFIG_440GR) || \
     defined(CONFIG_440EPX) || defined(CONFIG_440GRX) || \
     defined(CONFIG_440SP) || defined(CONFIG_440SPE) || \
-    defined(CONFIG_460EX) || defined(CONFIG_460GT)
+    defined(CONFIG_460EX) || defined(CONFIG_460GT) || \
+    defined(CONFIG_460SX)
 	/*
 	 * On some 440er platforms the cache is enabled in the first TLB (Boot-CS)
 	 * to speed up the boot process. Now this cache needs to be disabled.
include/asm-ppc/ppc4xx-sdram.h +2 -1
index 83931f1..6eb8209 100644
@@ -282,7 +282,8 @@
  * Memory Bank 0-7 configuration
  */
 #if defined(CONFIG_440SPE) || \
-    defined(CONFIG_460EX) || defined(CONFIG_460GT)
+    defined(CONFIG_460EX) || defined(CONFIG_460GT) || \
+    defined(CONFIG_460SX)
 #define SDRAM_RXBAS_SDBA_MASK		0xFFE00000	/* Base address	*/
 #define SDRAM_RXBAS_SDBA_ENCODE(n)	((((u32)(n))&0xFFE00000)>>2)
 #define SDRAM_RXBAS_SDBA_DECODE(n)	((((u32)(n))&0xFFE00000)<<2)
include/asm-ppc/processor.h +4 -0
index 139e686..9eb672d 100644
@@ -810,6 +810,10 @@
 #define PVR_460EX_RA	0x130218A3 /* 460EX rev A without Security Engine */
 #define PVR_460GT_SE_RA	0x130218A0 /* 460GT rev A with Security Engine	  */
 #define PVR_460GT_RA	0x130218A1 /* 460GT rev A without Security Engine */
+#define PVR_460SX_RA    0x13541800 /* 460SX rev A                   */
+#define PVR_460SX_RA_V1 0x13541801 /* 460SX rev A Variant 1 Security disabled */
+#define PVR_460GX_RA    0x13541802 /* 460GX rev A                   */
+#define PVR_460GX_RA_V1 0x13541803 /* 460GX rev A Variant 1 Security disabled */
 #define PVR_601		0x00010000
 #define PVR_602		0x00050000
 #define PVR_603		0x00030000
include/configs/redwood.h new file +211 -0

211 lines not on this page · raw message

include/ppc440.h +116 -8

190 lines not on this page · raw message

include/ppc4xx.h +2 -1
index 0a8479f..54897f7 100644
@@ -41,7 +41,8 @@
 
 #if defined(CONFIG_405EX) || \
     defined(CONFIG_440SP) || defined(CONFIG_440SPE) || \
-    defined(CONFIG_460EX) || defined(CONFIG_460GT)
+    defined(CONFIG_460EX) || defined(CONFIG_460GT) || \
+    defined(CONFIG_460SX)
 #define CONFIG_SDRAM_PPC4xx_IBM_DDR2	/* IBM DDR(2) controller */
 #endif
 
Signature · 1 line
1.5.2.2