@ -56,15 +56,15 @@ int checkboard (void)
volatile u_char * rev = ( void * ) CONFIG_SYS_BD_REV ;
printf ( " Board: Wind River SBC8548 Rev. 0x%01x \n " ,
( * rev ) > > 4 ) ;
in_8 ( rev ) > > 4 ) ;
/*
* Initialize local bus .
*/
local_bus_init ( ) ;
ecm - > eedr = 0xffffffff ; /* clear ecm errors */
ecm - > eeer = 0xffffffff ; /* enable ecm errors */
out_be32 ( & ecm - > eedr , 0xffffffff ) ; /* clear ecm errors */
out_be32 ( & ecm - > eeer , 0xffffffff ) ; /* enable ecm errors */
return 0 ;
}
@ -86,7 +86,7 @@ initdram(int board_type)
volatile ccsr_gur_t * gur = ( void * ) ( CONFIG_SYS_MPC85xx_GUTS_ADDR ) ;
gur - > ddrdllcr = 0x81000000 ;
out_be32 ( & gur - > ddrdllcr , 0x81000000 ) ;
asm ( " sync;isync;msync " ) ;
udelay ( 200 ) ;
}
@ -123,24 +123,24 @@ local_bus_init(void)
sys_info_t sysinfo ;
get_sys_info ( & sysinfo ) ;
clkdiv = ( lbc - > lcrr & LCRR_CLKDIV ) * 2 ;
clkdiv = ( in_be32 ( & lbc - > lcrr ) & LCRR_CLKDIV ) * 2 ;
lbc_hz = sysinfo . freqSystemBus / 1000000 / clkdiv ;
gur - > lbiuiplldcr1 = 0x00078080 ;
out_be32 ( & gur - > lbiuiplldcr1 , 0x00078080 ) ;
if ( clkdiv = = 16 ) {
gur - > lbiuiplldcr0 = 0x7c0f1bf0 ;
out_be32 ( & gur - > lbiuiplldcr0 , 0x7c0f1bf0 ) ;
} else if ( clkdiv = = 8 ) {
gur - > lbiuiplldcr0 = 0x6c0f1bf0 ;
out_be32 ( & gur - > lbiuiplldcr0 , 0x6c0f1bf0 ) ;
} else if ( clkdiv = = 4 ) {
gur - > lbiuiplldcr0 = 0x5c0f1bf0 ;
out_be32 ( & gur - > lbiuiplldcr0 , 0x5c0f1bf0 ) ;
}
lbc - > lcrr | = 0x00030000 ;
setbits_be32 ( & lbc - > lcrr , 0x00030000 ) ;
asm ( " sync;isync;msync " ) ;
lbc - > ltesr = 0xffffffff ; /* Clear LBC error interrupt s */
lbc - > lteir = 0xffffffff ; /* Enable LBC error interrupt s */
out_be32 ( & lbc - > ltesr , 0xffffffff ) ; /* Clear LBC error IRQ s */
out_be32 ( & lbc - > lteir , 0xffffffff ) ; /* Enable LBC error IRQ s */
}
/*
@ -163,18 +163,18 @@ sdram_init(void)
/*
* Setup SDRAM Base and Option Registers
*/
lbc - > or3 = CONFIG_SYS_OR3_PRELIM ;
out_be32 ( & lbc - > or3 , CONFIG_SYS_OR3_PRELIM ) ;
asm ( " msync " ) ;
lbc - > br3 = CONFIG_SYS_BR3_PRELIM ;
out_be32 ( & lbc - > br3 , CONFIG_SYS_BR3_PRELIM ) ;
asm ( " msync " ) ;
lbc - > lbcr = CONFIG_SYS_LBC_LBCR ;
out_be32 ( & lbc - > lbcr , CONFIG_SYS_LBC_LBCR ) ;
asm ( " msync " ) ;
lbc - > lsrt = CONFIG_SYS_LBC_LSRT ;
lbc - > mrtpr = CONFIG_SYS_LBC_MRTPR ;
out_be32 ( & lbc - > lsrt , CONFIG_SYS_LBC_LSRT ) ;
out_be32 ( & lbc - > mrtpr , CONFIG_SYS_LBC_MRTPR ) ;
asm ( " msync " ) ;
/*
@ -186,7 +186,7 @@ sdram_init(void)
/*
* Issue PRECHARGE ALL command .
*/
lbc - > lsdmr = lsdmr_common | LSDMR_OP_PCHALL ;
out_be32 ( & lbc - > lsdmr , lsdmr_common | LSDMR_OP_PCHALL ) ;
asm ( " sync;msync " ) ;
* sdram_addr = 0xff ;
ppcDcbf ( ( unsigned long ) sdram_addr ) ;
@ -196,7 +196,7 @@ sdram_init(void)
* Issue 8 AUTO REFRESH commands .
*/
for ( idx = 0 ; idx < 8 ; idx + + ) {
lbc - > lsdmr = lsdmr_common | LSDMR_OP_ARFRSH ;
out_be32 ( & lbc - > lsdmr , lsdmr_common | LSDMR_OP_ARFRSH ) ;
asm ( " sync;msync " ) ;
* sdram_addr = 0xff ;
ppcDcbf ( ( unsigned long ) sdram_addr ) ;
@ -206,7 +206,7 @@ sdram_init(void)
/*
* Issue 8 MODE - set command .
*/
lbc - > lsdmr = lsdmr_common | LSDMR_OP_MRW ;
out_be32 ( & lbc - > lsdmr , lsdmr_common | LSDMR_OP_MRW ) ;
asm ( " sync;msync " ) ;
* sdram_addr = 0xff ;
ppcDcbf ( ( unsigned long ) sdram_addr ) ;
@ -215,7 +215,7 @@ sdram_init(void)
/*
* Issue NORMAL OP command .
*/
lbc - > lsdmr = lsdmr_common | LSDMR_OP_NORMAL ;
out_be32 ( & lbc - > lsdmr , lsdmr_common | LSDMR_OP_NORMAL ) ;
asm ( " sync;msync " ) ;
* sdram_addr = 0xff ;
ppcDcbf ( ( unsigned long ) sdram_addr ) ;
@ -263,45 +263,44 @@ testdram(void)
}
# endif
# if !defined(CONFIG_SPD_EEPROM)
# if !defined(CONFIG_SPD_EEPROM)
# define CONFIG_SYS_DDR_CONTROL 0xc300c000
/*************************************************************************
* fixed_sdram init - - doesn ' t use serial presence detect .
* assumes 256 MB DDR2 SDRAM SODIMM , without ECC , running at DDR400 speed .
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
long int fixed_sdram ( void )
{
# define CONFIG_SYS_DDR_CONTROL 0xc300c000
volatile ccsr_ddr_t * ddr = ( void * ) ( CONFIG_SYS_MPC85xx_DDR_ADDR ) ;
ddr - > cs0_bnds = 0x0000007f ;
ddr - > cs1_bnds = 0x008000ff ;
ddr - > cs2_bnds = 0x00000000 ;
ddr - > cs3_bnds = 0x00000000 ;
ddr - > cs0_config = 0x80010101 ;
ddr - > cs1_config = 0x80010101 ;
ddr - > cs2_config = 0x00000000 ;
ddr - > cs3_config = 0x00000000 ;
ddr - > timing_cfg_3 = 0x00000000 ;
ddr - > timing_cfg_0 = 0x00220802 ;
ddr - > timing_cfg_1 = 0x38377322 ;
ddr - > timing_cfg_2 = 0x0fa044C7 ;
ddr - > sdram_cfg = 0x4300C000 ;
ddr - > sdram_cfg_2 = 0x24401000 ;
ddr - > sdram_mode = 0x23C00542 ;
ddr - > sdram_mode_2 = 0x00000000 ;
ddr - > sdram_interval = 0x05080100 ;
ddr - > sdram_md_cntl = 0x00000000 ;
ddr - > sdram_data_init = 0x00000000 ;
ddr - > sdram_clk_cntl = 0x03800000 ;
out_be32 ( & ddr - > cs0_bnds , 0x0000007f ) ;
out_be32 ( & ddr - > cs1_bnds , 0x008000ff ) ;
out_be32 ( & ddr - > cs2_bnds , 0x00000000 ) ;
out_be32 ( & ddr - > cs3_bnds , 0x00000000 ) ;
out_be32 ( & ddr - > cs0_config , 0x80010101 ) ;
out_be32 ( & ddr - > cs1_config , 0x80010101 ) ;
out_be32 ( & ddr - > cs2_config , 0x00000000 ) ;
out_be32 ( & ddr - > cs3_config , 0x00000000 ) ;
out_be32 ( & ddr - > timing_cfg_3 , 0x00000000 ) ;
out_be32 ( & ddr - > timing_cfg_0 , 0x00220802 ) ;
out_be32 ( & ddr - > timing_cfg_1 , 0x38377322 ) ;
out_be32 ( & ddr - > timing_cfg_2 , 0x0fa044C7 ) ;
out_be32 ( & ddr - > sdram_cfg , 0x4300C000 ) ;
out_be32 ( & ddr - > sdram_cfg_2 , 0x24401000 ) ;
out_be32 ( & ddr - > sdram_mode , 0x23C00542 ) ;
out_be32 ( & ddr - > sdram_mode_2 , 0x00000000 ) ;
out_be32 ( & ddr - > sdram_interval , 0x05080100 ) ;
out_be32 ( & ddr - > sdram_md_cntl , 0x00000000 ) ;
out_be32 ( & ddr - > sdram_data_init , 0x00000000 ) ;
out_be32 ( & ddr - > sdram_clk_cntl , 0x03800000 ) ;
asm ( " sync;isync;msync " ) ;
udelay ( 500 ) ;
# if defined (CONFIG_DDR_ECC)
/* Enable ECC checking */
ddr - > sdram_cfg = ( CONFIG_SYS_DDR_CONTROL | 0x20000000 ) ;
out_be32 ( & ddr - > sdram_cfg , CONFIG_SYS_DDR_CONTROL | 0x20000000 ) ;
# else
ddr - > sdram_cfg = CONFIG_SYS_DDR_CONTROL ;
out_be32 ( & ddr - > sdram_cfg , CONFIG_SYS_DDR_CONTROL ) ;
# endif
return CONFIG_SYS_SDRAM_SIZE * 1024 * 1024 ;