@ -57,9 +57,19 @@
# define CONFIG_MPC8548 1 /* MPC8548 specific */
# define CONFIG_MPC8548 1 /* MPC8548 specific */
# define CONFIG_SBC8548 1 /* SBC8548 board specific */
# define CONFIG_SBC8548 1 /* SBC8548 board specific */
/*
* If you want to boot from the SODIMM flash , instead of the soldered
* on flash , set this , and change JP12 , SW2 : 8 accordingly .
*/
# undef CONFIG_SYS_ALT_BOOT
# ifndef CONFIG_SYS_TEXT_BASE
# ifndef CONFIG_SYS_TEXT_BASE
# ifdef CONFIG_SYS_ALT_BOOT
# define CONFIG_SYS_TEXT_BASE 0xfff00000
# else
# define CONFIG_SYS_TEXT_BASE 0xfffa0000
# define CONFIG_SYS_TEXT_BASE 0xfffa0000
# endif
# endif
# endif
# undef CONFIG_RIO
# undef CONFIG_RIO
@ -109,9 +119,17 @@
/* DDR Setup */
/* DDR Setup */
# define CONFIG_FSL_DDR2
# define CONFIG_FSL_DDR2
# undef CONFIG_FSL_DDR_INTERACTIVE
# undef CONFIG_FSL_DDR_INTERACTIVE
# undef CONFIG_DDR_ECC /* only for ECC DDR module */
/*
* A hardware errata caused the LBC SDRAM SPD and the DDR2 SPD
* to collide , meaning you couldn ' t reliably read either . So
* physically remove the LBC PC100 SDRAM module from the board
* before enabling the two SPD options below , or check that you
* have the hardware fix on your board via " i2c probe " and looking
* for a device at 0x53 .
*/
# undef CONFIG_SPD_EEPROM /* Use SPD EEPROM for DDR setup */
# undef CONFIG_SPD_EEPROM /* Use SPD EEPROM for DDR setup */
# undef CONFIG_DDR_SPD
# undef CONFIG_DDR_SPD
# undef CONFIG_DDR_ECC /* only for ECC DDR module */
# define CONFIG_ECC_INIT_VIA_DDRCONTROLLER /* DDR controller or DMA? */
# define CONFIG_ECC_INIT_VIA_DDRCONTROLLER /* DDR controller or DMA? */
# define CONFIG_MEM_INIT_VALUE 0xDeadBeef
# define CONFIG_MEM_INIT_VALUE 0xDeadBeef
@ -124,14 +142,20 @@
# define CONFIG_DIMM_SLOTS_PER_CTLR 1
# define CONFIG_DIMM_SLOTS_PER_CTLR 1
# define CONFIG_CHIP_SELECTS_PER_CTRL 2
# define CONFIG_CHIP_SELECTS_PER_CTRL 2
/* I2C addresses of SPD EEPROMs */
/*
* The hardware fix for the I2C address collision puts the DDR
* SPD at 0x53 , but if we are running on an older board w / o the
* fix , it will still be at 0x51 . We check 0x53 1 st .
*/
# define SPD_EEPROM_ADDRESS 0x51 /* CTLR 0 DIMM 0 */
# define SPD_EEPROM_ADDRESS 0x51 /* CTLR 0 DIMM 0 */
# define ALT_SPD_EEPROM_ADDRESS 0x53 /* CTLR 0 DIMM 0 */
/*
/*
* Make sure required options are set
* Make sure required options are set
*/
*/
# ifndef CONFIG_SPD_EEPROM
# ifndef CONFIG_SPD_EEPROM
# define CONFIG_SYS_SDRAM_SIZE 256 /* DDR is 256MB */
# define CONFIG_SYS_SDRAM_SIZE 256 /* DDR is 256MB */
# define CONFIG_SYS_DDR_CONTROL 0xc300c000
# endif
# endif
# undef CONFIG_CLOCKS_IN_MHZ
# undef CONFIG_CLOCKS_IN_MHZ
@ -139,28 +163,54 @@
/*
/*
* FLASH on the Local Bus
* FLASH on the Local Bus
* Two banks , one 8 MB the other 64 MB , using the CFI driver .
* Two banks , one 8 MB the other 64 MB , using the CFI driver .
* Boot from BR0 / OR0 bank at 0xff80 _0000
* JP12 + SW2 .8 are used to swap CS0 and CS6 , defaults are to have
* Alternate BR6 / OR6 bank at 0xfb80 _0000
* CS0 the 8 MB boot flash , and CS6 the 64 MB flash .
*
* Default :
* ec00_0000 efff_ffff 64 MB SODIMM
* ff80_0000 ffff_ffff 8 MB soldered flash
*
* Alternate :
* ef80_0000 efff_ffff 8 MB soldered flash
* fc00_0000 ffff_ffff 64 MB SODIMM
*
*
* BR0 :
* BR0_8M :
* Base address 0 = 0xff80 _0000 = BR0 [ 0 : 16 ] = 1111 1111 1000 0000 0
* Base address 0 = 0xff80 _0000 = BR0 [ 0 : 16 ] = 1111 1111 1000 0000 0
* Port Size = 8 bits = BRx [ 19 : 20 ] = 01
* Port Size = 8 bits = BRx [ 19 : 20 ] = 01
* Use GPCM = BRx [ 24 : 26 ] = 000
* Use GPCM = BRx [ 24 : 26 ] = 000
* Valid = BRx [ 31 ] = 1
* Valid = BRx [ 31 ] = 1
*
*
* 0 4 8 12 16 20 24 28
* BR0_64M :
* 1111 1111 1000 0000 0000 1000 0000 0001 = ff800801 BR0
* Base address 0 = 0xfc00 _0000 = BR0 [ 0 : 16 ] = 1111 1100 0000 0000 0
*
* BR6 :
* Base address 6 = 0xfb80 _0000 = BR6 [ 0 : 16 ] = 1111 1011 1000 0000 0
* Port Size = 32 bits = BRx [ 19 : 20 ] = 11
* Port Size = 32 bits = BRx [ 19 : 20 ] = 11
*
* 0 4 8 12 16 20 24 28
* 1111 1111 1000 0000 0000 1000 0000 0001 = ff800801 BR0_8M
* 1111 1100 0000 0000 0001 1000 0000 0001 = fc001801 BR0_64M
*/
# define CONFIG_SYS_BR0_8M 0xff800801
# define CONFIG_SYS_BR0_64M 0xfc001801
/*
* BR6_8M :
* Base address 6 = 0xef80 _0000 = BR6 [ 0 : 16 ] = 1110 1111 1000 0000 0
* Port Size = 8 bits = BRx [ 19 : 20 ] = 01
* Use GPCM = BRx [ 24 : 26 ] = 000
* Use GPCM = BRx [ 24 : 26 ] = 000
* Valid = BRx [ 31 ] = 1
* Valid = BRx [ 31 ] = 1
* BR6_64M :
* Base address 6 = 0xec00 _0000 = BR6 [ 0 : 16 ] = 1110 1100 0000 0000 0
* Port Size = 32 bits = BRx [ 19 : 20 ] = 11
*
*
* 0 4 8 12 16 20 24 28
* 0 4 8 12 16 20 24 28
* 1111 1011 1000 0000 0001 1000 0000 0001 = fb801801 BR6
* 1110 1111 1000 0000 0000 1000 0000 0001 = ef800801 BR6_8M
*
* 1110 1100 0000 0000 0001 1000 0000 0001 = ec001801 BR6_64M
* OR0 :
*/
# define CONFIG_SYS_BR6_8M 0xef800801
# define CONFIG_SYS_BR6_64M 0xec001801
/*
* OR0_8M :
* Addr Mask = 8 M = OR1 [ 0 : 16 ] = 1111 1111 1000 0000 0
* Addr Mask = 8 M = OR1 [ 0 : 16 ] = 1111 1111 1000 0000 0
* XAM = OR0 [ 17 : 18 ] = 11
* XAM = OR0 [ 17 : 18 ] = 11
* CSNT = OR0 [ 20 ] = 1
* CSNT = OR0 [ 20 ] = 1
@ -169,11 +219,20 @@
* TRLX = use relaxed timing = OR0 [ 29 ] = 1
* TRLX = use relaxed timing = OR0 [ 29 ] = 1
* EAD = use external address latch delay = OR0 [ 31 ] = 1
* EAD = use external address latch delay = OR0 [ 31 ] = 1
*
*
* 0 4 8 12 16 20 24 28
* OR0_64M :
* 1111 1111 1000 0000 0110 1110 0110 0101 = ff806e65 OR0
* Addr Mask = 64 M = OR1 [ 0 : 16 ] = 1111 1100 0000 0000 0
*
*
*
* OR6 :
* 0 4 8 12 16 20 24 28
* Addr Mask = 64 M = OR6 [ 0 : 16 ] = 1111 1000 0000 0000 0
* 1111 1111 1000 0000 0110 1110 0110 0101 = ff806e65 OR0_8M
* 1111 1100 0000 0000 0110 1110 0110 0101 = fc006e65 OR0_64M
*/
# define CONFIG_SYS_OR0_8M 0xff806e65
# define CONFIG_SYS_OR0_64M 0xfc006e65
/*
* OR6_8M :
* Addr Mask = 8 M = OR6 [ 0 : 16 ] = 1111 1111 1000 0000 0
* XAM = OR6 [ 17 : 18 ] = 11
* XAM = OR6 [ 17 : 18 ] = 11
* CSNT = OR6 [ 20 ] = 1
* CSNT = OR6 [ 20 ] = 1
* ACS = half cycle delay = OR6 [ 21 : 22 ] = 11
* ACS = half cycle delay = OR6 [ 21 : 22 ] = 11
@ -181,20 +240,37 @@
* TRLX = use relaxed timing = OR6 [ 29 ] = 1
* TRLX = use relaxed timing = OR6 [ 29 ] = 1
* EAD = use external address latch delay = OR6 [ 31 ] = 1
* EAD = use external address latch delay = OR6 [ 31 ] = 1
*
*
* OR6_64M :
* Addr Mask = 64 M = OR6 [ 0 : 16 ] = 1111 1100 0000 0000 0
*
* 0 4 8 12 16 20 24 28
* 0 4 8 12 16 20 24 28
* 1111 1000 0000 0000 0110 1110 0110 0101 = f8006e65 OR6
* 1111 1111 1000 0000 0110 1110 0110 0101 = ff806e65 OR6_8M
* 1111 1100 0000 0000 0110 1110 0110 0101 = fc006e65 OR6_64M
*/
*/
# define CONFIG_SYS_OR6_8M 0xff806e65
# define CONFIG_SYS_OR6_64M 0xfc006e65
# ifndef CONFIG_SYS_ALT_BOOT /* JP12 in default position */
# define CONFIG_SYS_BOOT_BLOCK 0xff800000 /* start of 8MB Flash */
# define CONFIG_SYS_BOOT_BLOCK 0xff800000 /* start of 8MB Flash */
# define CONFIG_SYS_ALT_FLASH 0xfb800000 /* 64MB "user" flash */
# define CONFIG_SYS_ALT_FLASH 0xec000000 /* 64MB "user" flash */
# define CONFIG_SYS_FLASH_BASE CONFIG_SYS_BOOT_BLOCK /* start of FLASH 16M */
# define CONFIG_SYS_BR0_PRELIM 0xff800801
# define CONFIG_SYS_BR0_PRELIM CONFIG_SYS_BR0_8M
# define CONFIG_SYS_BR6_PRELIM 0xfb801801
# define CONFIG_SYS_OR0_PRELIM CONFIG_SYS_OR0_8M
# define CONFIG_SYS_OR0_PRELIM 0xff806e65
# define CONFIG_SYS_BR6_PRELIM CONFIG_SYS_BR6_64M
# define CONFIG_SYS_OR6_PRELIM 0xf8006e65
# define CONFIG_SYS_OR6_PRELIM CONFIG_SYS_OR6_64M
# else /* JP12 in alternate position */
# define CONFIG_SYS_BOOT_BLOCK 0xfc000000 /* start 64MB Flash */
# define CONFIG_SYS_ALT_FLASH 0xef800000 /* 8MB soldered flash */
# define CONFIG_SYS_BR0_PRELIM CONFIG_SYS_BR0_64M
# define CONFIG_SYS_OR0_PRELIM CONFIG_SYS_OR0_64M
# define CONFIG_SYS_BR6_PRELIM CONFIG_SYS_BR6_8M
# define CONFIG_SYS_OR6_PRELIM CONFIG_SYS_OR6_8M
# endif
# define CONFIG_SYS_FLASH_BASE CONFIG_SYS_BOOT_BLOCK
# define CONFIG_SYS_FLASH_BANKS_LIST {CONFIG_SYS_FLASH_BASE, \
# define CONFIG_SYS_FLASH_BANKS_LIST {CONFIG_SYS_FLASH_BASE, \
CONFIG_SYS_ALT_FLASH }
CONFIG_SYS_ALT_FLASH }
# define CONFIG_SYS_MAX_FLASH_BANKS 2 /* number of banks */
# define CONFIG_SYS_MAX_FLASH_BANKS 2 /* number of banks */
@ -221,6 +297,10 @@
/*
/*
* SDRAM on the Local Bus ( CS3 and CS4 )
* SDRAM on the Local Bus ( CS3 and CS4 )
* Note that most boards have a hardware errata where both the
* LBC SDRAM and the DDR2 SDRAM decode at 0x51 , making it impossible
* to use CONFIG_DDR_SPD unless you physically remove the LBC DIMM .
* A hardware workaround is also available , see README . sbc8548 file .
*/
*/
# define CONFIG_SYS_LBC_SDRAM_BASE 0xf0000000 /* Localbus SDRAM */
# define CONFIG_SYS_LBC_SDRAM_BASE 0xf0000000 /* Localbus SDRAM */
# define CONFIG_SYS_LBC_SDRAM_SIZE 128 /* LBC SDRAM is 128MB */
# define CONFIG_SYS_LBC_SDRAM_SIZE 128 /* LBC SDRAM is 128MB */
@ -300,19 +380,26 @@
/*
/*
* Common settings for all Local Bus SDRAM commands .
* Common settings for all Local Bus SDRAM commands .
* At run time , either BSMA1516 ( for CPU 1.1 )
* or BSMA1617 ( for CPU 1.0 ) ( old )
* is OR ' ed in too .
*/
*/
# define CONFIG_SYS_LBC_LSDMR_COMMON ( LSDMR_RFCR16 \
# define CONFIG_SYS_LBC_LSDMR_COMMON ( LSDMR_RFCR16 \
| LSDMR_PRETOACT7 \
| LSDMR_BSMA1516 \
| LSDMR_ACTTORW7 \
| LSDMR_PRETOACT3 \
| LSDMR_ACTTORW3 \
| LSDMR_BUFCMD \
| LSDMR_BL8 \
| LSDMR_BL8 \
| LSDMR_WRC4 \
| LSDMR_WRC2 \
| LSDMR_CL3 \
| LSDMR_CL3 \
| LSDMR_RFEN \
)
)
# define CONFIG_SYS_LBC_LSDMR_PCHALL \
( CONFIG_SYS_LBC_LSDMR_COMMON | LSDMR_OP_PCHALL )
# define CONFIG_SYS_LBC_LSDMR_ARFRSH \
( CONFIG_SYS_LBC_LSDMR_COMMON | LSDMR_OP_ARFRSH )
# define CONFIG_SYS_LBC_LSDMR_MRW \
( CONFIG_SYS_LBC_LSDMR_COMMON | LSDMR_OP_MRW )
# define CONFIG_SYS_LBC_LSDMR_RFEN \
( CONFIG_SYS_LBC_LSDMR_COMMON | LSDMR_RFEN )
# define CONFIG_SYS_INIT_RAM_LOCK 1
# define CONFIG_SYS_INIT_RAM_LOCK 1
# define CONFIG_SYS_INIT_RAM_ADDR 0xe4010000 /* Initial RAM address */
# define CONFIG_SYS_INIT_RAM_ADDR 0xe4010000 /* Initial RAM address */
# define CONFIG_SYS_INIT_RAM_SIZE 0x4000 /* Size of used area in RAM */
# define CONFIG_SYS_INIT_RAM_SIZE 0x4000 /* Size of used area in RAM */
@ -330,7 +417,7 @@
* thing for MONITOR_LEN in both cases .
* thing for MONITOR_LEN in both cases .
*/
*/
# define CONFIG_SYS_MONITOR_LEN (~CONFIG_SYS_TEXT_BASE + 1)
# define CONFIG_SYS_MONITOR_LEN (~CONFIG_SYS_TEXT_BASE + 1)
# define CONFIG_SYS_MALLOC_LEN (128 * 1024) /* Reserved for malloc */
# define CONFIG_SYS_MALLOC_LEN (1024 * 1024) /* Reserved for malloc */
/* Serial Port */
/* Serial Port */
# define CONFIG_CONS_INDEX 1
# define CONFIG_CONS_INDEX 1