Initial skeleton framework for AMCC 460SX (Redwood) reference board.
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
@@ -420,6 +420,10 @@ Guennadi Liakhovetski <[email protected]> linkstation MPC8241 +Feng Kan <[email protected]> + + redwood PPC460SX + ------------------------------------------------------------------------- Unknown / orphaned boards:
MAKEALL +1 -0
@@ -221,6 +221,7 @@ LIST_4xx=" \ PPChameleonEVB \ quad100hd \ rainier \ + redwood \ sbc405 \ sc3 \ sequoia \
Makefile +3 -0
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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