@ -32,9 +32,170 @@ void ext_bus_cntlr_init(void);
void configure_ppc440ep_pins ( void ) ;
int is_nand_selected ( void ) ;
unsigned char cfg_simulate_spd_eeprom [ 128 ] ;
# if !(defined(CONFIG_NAND_U_BOOT) || defined(CONFIG_NAND_SPL))
/*************************************************************************
*
* Bamboo has one bank onboard sdram ( plus DIMM )
*
* Fixed memory is composed of :
* MT46V16M16TG - 75 from Micron ( x 2 ) , 256 Mb , 16 M x16 , DDR266 ,
* 13 row add bits , 10 column add bits ( but 12 row used only ) .
* ECC device : MT46V16M8TG - 75 from Micron ( x 1 ) , 128 Mb , x8 , DDR266 ,
* 12 row add bits , 10 column add bits .
* Prepare a subset ( only the used ones ) of SPD data
*
* Note : if the ECC is enabled ( SDRAM_ECC_ENABLE ) the size of
* the corresponding bank is divided by 2 due to number of Row addresses
* 12 in the ECC module
*
* Assumes : 64 MB , ECC , non - registered
* PLB @ 133 MHz
*
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
const unsigned char cfg_simulate_spd_eeprom [ 128 ] = {
0x80 , /* number of SPD bytes used: 128 */
0x08 , /* total number bytes in SPD device = 256 */
0x07 , /* DDR ram */
# ifdef CONFIG_DDR_ECC
0x0C , /* num Row Addr: 12 */
# else
0x0D , /* num Row Addr: 13 */
# endif
0x09 , /* numColAddr: 9 */
0x01 , /* numBanks: 1 */
0x20 , /* Module data width: 32 bits */
0x00 , /* Module data width continued: +0 */
0x04 , /* 2.5 Volt */
0x75 , /* SDRAM Cycle Time (cas latency 2.5) = 7.5 ns */
# ifdef CONFIG_DDR_ECC
0x02 , /* ECC ON : 02 OFF : 00 */
# else
0x00 , /* ECC ON : 02 OFF : 00 */
# endif
0x82 , /* refresh Rate Type: Normal (15.625us) + Self refresh */
0 ,
0 ,
0 ,
0x01 , /* wcsbc = 1 */
0 ,
0 ,
0x0C , /* casBit (2,2.5) */
0 ,
0 ,
0x00 , /* not registered: 0 registered : 0x02*/
0 ,
0xA0 , /* SDRAM Cycle Time (cas latency 2) = 10 ns */
0 ,
0x00 , /* SDRAM Cycle Time (cas latency 1.5) = N.A */
0 ,
0x50 , /* tRpNs = 20 ns */
0 ,
0x50 , /* tRcdNs = 20 ns */
45 , /* tRasNs */
# ifdef CONFIG_DDR_ECC
0x08 , /* bankSizeID: 32MB */
# else
0x10 , /* bankSizeID: 64MB */
# endif
0 ,
0 ,
0 ,
0 ,
0 ,
0 ,
0 ,
0 ,
0 ,
0 ,
0 ,
0 ,
0 ,
0 ,
0 ,
0 ,
0 ,
0 ,
0 ,
0 ,
0 ,
0 ,
0 ,
0 ,
0 ,
0 ,
0 ,
0 ,
0 ,
0 ,
0 ,
0 ,
0 ,
0 ,
0 ,
0 ,
0 ,
0 ,
0 ,
0 ,
0 ,
0 ,
0 ,
0 ,
0 ,
0 ,
0 ,
0 ,
0 ,
0 ,
0 ,
0 ,
0 ,
0 ,
0 ,
0 ,
0 ,
0 ,
0 ,
0 ,
0 ,
0 ,
0 ,
0 ,
0 ,
0 ,
0 ,
0 ,
0 ,
0 ,
0 ,
0 ,
0 ,
0 ,
0 ,
0 ,
0 ,
0 ,
0 ,
0 ,
0 ,
0 ,
0 ,
0 ,
0 ,
0 ,
0 ,
0 ,
0 ,
0 ,
0 ,
0 ,
0 ,
0 ,
0 ,
0
} ;
# endif
gpio_param_s gpio_tab [ GPIO_GROUP_MAX ] [ GPIO_MAX ] ;
#if 0
{ /* GPIO Alternate1 Alternate2 Alternate3 */
{
@ -291,73 +452,12 @@ int checkboard(void)
return ( 0 ) ;
}
# if !(defined(CONFIG_NAND_U_BOOT) || defined(CONFIG_NAND_SPL))
/*************************************************************************
*
* init_spd_array - - Bamboo has one bank onboard sdram ( plus DIMM )
*
* Fixed memory is composed of :
* MT46V16M16TG - 75 from Micron ( x 2 ) , 256 Mb , 16 M x16 , DDR266 ,
* 13 row add bits , 10 column add bits ( but 12 row used only ) .
* ECC device : MT46V16M8TG - 75 from Micron ( x 1 ) , 128 Mb , x8 , DDR266 ,
* 12 row add bits , 10 column add bits .
* Prepare a subset ( only the used ones ) of SPD data
*
* Note : if the ECC is enabled ( SDRAM_ECC_ENABLE ) the size of
* the corresponding bank is divided by 2 due to number of Row addresses
* 12 in the ECC module
*
* Assumes : 64 MB , ECC , non - registered
* PLB @ 133 MHz
*
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
static void init_spd_array ( void )
{
cfg_simulate_spd_eeprom [ 8 ] = 0x04 ; /* 2.5 Volt */
cfg_simulate_spd_eeprom [ 2 ] = 0x07 ; /* DDR ram */
# ifdef CONFIG_DDR_ECC
cfg_simulate_spd_eeprom [ 11 ] = 0x02 ; /* ECC ON : 02 OFF : 00 */
cfg_simulate_spd_eeprom [ 31 ] = 0x08 ; /* bankSizeID: 32MB */
cfg_simulate_spd_eeprom [ 3 ] = 0x0C ; /* num Row Addr: 12 */
# else
cfg_simulate_spd_eeprom [ 11 ] = 0x00 ; /* ECC ON : 02 OFF : 00 */
cfg_simulate_spd_eeprom [ 31 ] = 0x10 ; /* bankSizeID: 64MB */
cfg_simulate_spd_eeprom [ 3 ] = 0x0D ; /* num Row Addr: 13 */
# endif
cfg_simulate_spd_eeprom [ 4 ] = 0x09 ; /* numColAddr: 9 */
cfg_simulate_spd_eeprom [ 5 ] = 0x01 ; /* numBanks: 1 */
cfg_simulate_spd_eeprom [ 0 ] = 0x80 ; /* number of SPD bytes used: 128 */
cfg_simulate_spd_eeprom [ 1 ] = 0x08 ; /* total number bytes in SPD device = 256 */
cfg_simulate_spd_eeprom [ 21 ] = 0x00 ; /* not registered: 0 registered : 0x02*/
cfg_simulate_spd_eeprom [ 6 ] = 0x20 ; /* Module data width: 32 bits */
cfg_simulate_spd_eeprom [ 7 ] = 0x00 ; /* Module data width continued: +0 */
cfg_simulate_spd_eeprom [ 15 ] = 0x01 ; /* wcsbc = 1 */
cfg_simulate_spd_eeprom [ 27 ] = 0x50 ; /* tRpNs = 20 ns */
cfg_simulate_spd_eeprom [ 29 ] = 0x50 ; /* tRcdNs = 20 ns */
cfg_simulate_spd_eeprom [ 30 ] = 45 ; /* tRasNs */
cfg_simulate_spd_eeprom [ 18 ] = 0x0C ; /* casBit (2,2.5) */
cfg_simulate_spd_eeprom [ 9 ] = 0x75 ; /* SDRAM Cycle Time (cas latency 2.5) = 7.5 ns */
cfg_simulate_spd_eeprom [ 23 ] = 0xA0 ; /* SDRAM Cycle Time (cas latency 2) = 10 ns */
cfg_simulate_spd_eeprom [ 25 ] = 0x00 ; /* SDRAM Cycle Time (cas latency 1.5) = N.A */
cfg_simulate_spd_eeprom [ 12 ] = 0x82 ; /* refresh Rate Type: Normal (15.625us) + Self refresh */
}
# endif
long int initdram ( int board_type )
{
# if !(defined(CONFIG_NAND_U_BOOT) || defined(CONFIG_NAND_SPL))
long dram_size ;
/*
* First write simulated values in eeprom array for onboard bank 0
*/
init_spd_array ( ) ;
dram_size = spd_sdram ( ) ;
return dram_size ;
@ -371,11 +471,12 @@ int testdram(void)
{
unsigned long * mem = ( unsigned long * ) 0 ;
const unsigned long kend = ( 1024 / sizeof ( unsigned long ) ) ;
unsigned long k , n ;
unsigned long k , n , * p32 , ctr ;
const unsigned long bend = CFG_MBYTES_SDRAM * 1024 * 1024 ;
mtmsr ( 0 ) ;
for ( k = 0 ; k < CFG_KBYTES_SDRAM ;
for ( k = 0 ; k < CFG_MBYTES_SDRAM * 1024 ;
+ + k , mem + = ( 1024 / sizeof ( unsigned long ) ) ) {
if ( ( k & 1023 ) = = 0 ) {
printf ( " %3d MB \r " , k / 1024 ) ;
@ -399,6 +500,34 @@ int testdram(void)
}
}
}
/*
* Perform a sequence test to ensure that all
* memory locations are uniquely addressable
*/
ctr = 0 ;
p32 = 0 ;
while ( ( unsigned long ) p32 ! = bend ) {
if ( 0 = = ( ( unsigned long ) p32 & ( ( 1 < < 20 ) - 1 ) ) )
printf ( " Writing %3d MB \r " , ( unsigned long ) p32 > > 20 ) ;
* p32 + + = ctr + + ;
}
ctr = 0 ;
p32 = 0 ;
while ( ( unsigned long ) p32 ! = bend ) {
if ( 0 = = ( ( unsigned long ) p32 & ( ( 1 < < 20 ) - 1 ) ) )
printf ( " Verifying %3d MB \r " , ( unsigned long ) p32 > > 20 ) ;
if ( * p32 ! = ctr ) {
printf ( " SDRAM test fails at: %08x \n " , p32 ) ;
return 1 ;
}
ctr + + ;
p32 + + ;
}
printf ( " SDRAM test passes \n " ) ;
return 0 ;
}
@ -1211,7 +1340,7 @@ void uart_selection_in_fpga(uart_config_nb_t uart_config)
/*----------------------------------------------------------------------------+
| init_default_gpio
+ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
void init_default_gpio ( void )
void init_default_gpio ( gpio_param_s ( * gpio_tab ) [ GPIO_MAX ] )
{
int i ;
@ -1281,7 +1410,7 @@ void init_default_gpio(void)
|
+ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
void update_uart_ios ( uart_config_nb_t uart_config )
void update_uart_ios ( uart_config_nb_t uart_config , gpio_param_s ( * gpio_tab ) [ GPIO_MAX ] )
{
switch ( uart_config )
{
@ -1409,7 +1538,7 @@ void update_uart_ios(uart_config_nb_t uart_config)
/*----------------------------------------------------------------------------+
| update_ndfc_ios ( void ) .
+ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
void update_ndfc_ios ( void )
void update_ndfc_ios ( gpio_param_s ( * gpio_tab ) [ GPIO_MAX ] )
{
/* Update GPIO Configuration Table */
gpio_tab [ GPIO0 ] [ 6 ] . in_out = GPIO_OUT ; /* EBC_CS_N(1) */
@ -1427,7 +1556,7 @@ void update_ndfc_ios(void)
/*----------------------------------------------------------------------------+
| update_zii_ios ( void ) .
+ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
void update_zii_ios ( void )
void update_zii_ios ( gpio_param_s ( * gpio_tab ) [ GPIO_MAX ] )
{
/* Update GPIO Configuration Table */
gpio_tab [ GPIO0 ] [ 12 ] . in_out = GPIO_IN ; /* ZII_p0Rxd(0) */
@ -1477,7 +1606,7 @@ void update_zii_ios(void)
/*----------------------------------------------------------------------------+
| update_uic_0_3_irq_ios ( ) .
+ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
void update_uic_0_3_irq_ios ( void )
void update_uic_0_3_irq_ios ( gpio_param_s ( * gpio_tab ) [ GPIO_MAX ] )
{
gpio_tab [ GPIO1 ] [ 8 ] . in_out = GPIO_IN ; /* UIC_IRQ(0) */
gpio_tab [ GPIO1 ] [ 8 ] . alt_nb = GPIO_ALT1 ;
@ -1495,7 +1624,7 @@ void update_uic_0_3_irq_ios(void)
/*----------------------------------------------------------------------------+
| update_uic_4_9_irq_ios ( ) .
+ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
void update_uic_4_9_irq_ios ( void )
void update_uic_4_9_irq_ios ( gpio_param_s ( * gpio_tab ) [ GPIO_MAX ] )
{
gpio_tab [ GPIO1 ] [ 12 ] . in_out = GPIO_IN ; /* UIC_IRQ(4) */
gpio_tab [ GPIO1 ] [ 12 ] . alt_nb = GPIO_ALT1 ;
@ -1516,7 +1645,7 @@ void update_uic_4_9_irq_ios(void)
/*----------------------------------------------------------------------------+
| update_dma_a_b_ios ( ) .
+ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
void update_dma_a_b_ios ( void )
void update_dma_a_b_ios ( gpio_param_s ( * gpio_tab ) [ GPIO_MAX ] )
{
gpio_tab [ GPIO1 ] [ 12 ] . in_out = GPIO_OUT ; /* DMA_ACK(1) */
gpio_tab [ GPIO1 ] [ 12 ] . alt_nb = GPIO_ALT2 ;
@ -1537,7 +1666,7 @@ void update_dma_a_b_ios(void)
/*----------------------------------------------------------------------------+
| update_dma_c_d_ios ( ) .
+ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
void update_dma_c_d_ios ( void )
void update_dma_c_d_ios ( gpio_param_s ( * gpio_tab ) [ GPIO_MAX ] )
{
gpio_tab [ GPIO0 ] [ 0 ] . in_out = GPIO_IN ; /* DMA_REQ(2) */
gpio_tab [ GPIO0 ] [ 0 ] . alt_nb = GPIO_ALT2 ;
@ -1562,7 +1691,7 @@ void update_dma_c_d_ios(void)
/*----------------------------------------------------------------------------+
| update_ebc_master_ios ( ) .
+ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
void update_ebc_master_ios ( void )
void update_ebc_master_ios ( gpio_param_s ( * gpio_tab ) [ GPIO_MAX ] )
{
gpio_tab [ GPIO0 ] [ 27 ] . in_out = GPIO_IN ; /* EXT_EBC_REQ */
gpio_tab [ GPIO0 ] [ 27 ] . alt_nb = GPIO_ALT1 ;
@ -1580,7 +1709,7 @@ void update_ebc_master_ios(void)
/*----------------------------------------------------------------------------+
| update_usb2_device_ios ( ) .
+ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
void update_usb2_device_ios ( void )
void update_usb2_device_ios ( gpio_param_s ( * gpio_tab ) [ GPIO_MAX ] )
{
gpio_tab [ GPIO0 ] [ 26 ] . in_out = GPIO_IN ; /* USB2D_RXVALID */
gpio_tab [ GPIO0 ] [ 26 ] . alt_nb = GPIO_ALT2 ;
@ -1611,20 +1740,21 @@ void update_usb2_device_ios(void)
/*----------------------------------------------------------------------------+
| update_pci_patch_ios ( ) .
+ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
void update_pci_patch_ios ( void )
void update_pci_patch_ios ( gpio_param_s ( * gpio_tab ) [ GPIO_MAX ] )
{
gpio_tab [ GPIO0 ] [ 29 ] . in_out = GPIO_OUT ; /* EBC_EXT_HDLA */
gpio_tab [ GPIO0 ] [ 29 ] . alt_nb = GPIO_ALT1 ;
}
/*----------------------------------------------------------------------------+
| set_chip_gpio_configuration ( unsigned char gpio_core )
| set_chip_gpio_configuration ( unsigned char gpio_core ,
| gpio_param_s ( * gpio_tab ) [ GPIO_MAX ] )
| Put the core impacted by clock modification and sharing in reset .
| Config the select registers to resolve the sharing depending of the config .
| Configure the GPIO registers .
|
+ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
void set_chip_gpio_configuration ( unsigned char gpio_core )
void set_chip_gpio_configuration ( unsigned char gpio_core , gpio_param_s ( * gpio_tab ) [ GPIO_MAX ] )
{
unsigned char i = 0 , j = 0 , reg_offset = 0 ;
unsigned long gpio_reg , gpio_core_add ;
@ -1778,11 +1908,12 @@ void configure_ppc440ep_pins(void)
CORE_NOT_SELECTED /* PCI_PATCH */
} ;
gpio_param_s gpio_tab [ GPIO_GROUP_MAX ] [ GPIO_MAX ] ;
/* Table Default Initialisation + FPGA Access */
init_default_gpio ( ) ;
set_chip_gpio_configuration ( GPIO0 ) ;
set_chip_gpio_configuration ( GPIO1 ) ;
init_default_gpio ( gpio_tab ) ;
set_chip_gpio_configuration ( GPIO0 , gpio_tab ) ;
set_chip_gpio_configuration ( GPIO1 , gpio_tab ) ;
/* Update Table */
force_bup_core_selection ( ppc440ep_core_selection , & config_val ) ;
@ -1817,7 +1948,7 @@ void configure_ppc440ep_pins(void)
/* UIC 0:3 Selection */
if ( ppc440ep_core_selection [ UIC_0_3 ] = = CORE_SELECTED )
{
update_uic_0_3_irq_ios ( ) ;
update_uic_0_3_irq_ios ( gpio_tab ) ;
dma_a_b_unselect_in_fpga ( ) ;
}
@ -1825,21 +1956,21 @@ void configure_ppc440ep_pins(void)
if ( ppc440ep_core_selection [ UIC_4_9 ] = = CORE_SELECTED )
{
sdr0_pfc1 = ( sdr0_pfc1 & ~ SDR0_PFC1_DIS_MASK ) | SDR0_PFC1_DIS_UICIRQ5_SEL ;
update_uic_4_9_irq_ios ( ) ;
update_uic_4_9_irq_ios ( gpio_tab ) ;
}
/* DMA AB Selection */
if ( ppc440ep_core_selection [ DMA_CHANNEL_AB ] = = CORE_SELECTED )
{
sdr0_pfc1 = ( sdr0_pfc1 & ~ SDR0_PFC1_DIS_MASK ) | SDR0_PFC1_DIS_DMAR_SEL ;
update_dma_a_b_ios ( ) ;
update_dma_a_b_ios ( gpio_tab ) ;
dma_a_b_selection_in_fpga ( ) ;
}
/* DMA CD Selection */
if ( ppc440ep_core_selection [ DMA_CHANNEL_CD ] = = CORE_SELECTED )
{
update_dma_c_d_ios ( ) ;
update_dma_c_d_ios ( gpio_tab ) ;
dma_c_d_selection_in_fpga ( ) ;
}
@ -1848,14 +1979,14 @@ void configure_ppc440ep_pins(void)
{
sdr0_pfc1 = ( sdr0_pfc1 & ~ SDR0_PFC1_ERE_MASK ) | SDR0_PFC1_ERE_EXTR_SEL ;
sdr0_pfc1 = ( sdr0_pfc1 & ~ SDR0_PFC1_UES_MASK ) | SDR0_PFC1_UES_EBCHR_SEL ;
update_ebc_master_ios ( ) ;
update_ebc_master_ios ( gpio_tab ) ;
}
/* PCI Patch Enable */
if ( ppc440ep_core_selection [ PCI_PATCH ] = = CORE_SELECTED )
{
sdr0_pfc1 = ( sdr0_pfc1 & ~ SDR0_PFC1_UES_MASK ) | SDR0_PFC1_UES_EBCHR_SEL ;
update_pci_patch_ios ( ) ;
update_pci_patch_ios ( gpio_tab ) ;
}
/* USB2 Host Selection - Not Implemented in PowerPC 440EP Pass1 */
@ -1871,7 +2002,7 @@ void configure_ppc440ep_pins(void)
/* USB2.0 Device Selection */
if ( ppc440ep_core_selection [ USB2_DEVICE ] = = CORE_SELECTED )
{
update_usb2_device_ios ( ) ;
update_usb2_device_ios ( gpio_tab ) ;
sdr0_pfc1 = ( sdr0_pfc1 & ~ SDR0_PFC1_UES_MASK ) | SDR0_PFC1_UES_USB2D_SEL ;
sdr0_pfc1 = ( sdr0_pfc1 & ~ SDR0_PFC1_UPR_MASK ) | SDR0_PFC1_UPR_DISABLE ;
@ -1904,7 +2035,7 @@ void configure_ppc440ep_pins(void)
/* NAND Flash Selection */
if ( ppc440ep_core_selection [ NAND_FLASH ] = = CORE_SELECTED )
{
update_ndfc_ios ( ) ;
update_ndfc_ios ( gpio_tab ) ;
# if !(defined(CONFIG_NAND_U_BOOT) || defined(CONFIG_NAND_SPL))
mtsdr ( sdr_cust0 , SDR0_CUST0_MUX_NDFC_SEL |
@ -1933,7 +2064,7 @@ void configure_ppc440ep_pins(void)
/* MII Selection */
if ( ppc440ep_core_selection [ MII_SEL ] = = CORE_SELECTED )
{
update_zii_ios ( ) ;
update_zii_ios ( gpio_tab ) ;
mfsdr ( sdr_mfr , sdr0_mfr ) ;
sdr0_mfr = ( sdr0_mfr & ~ SDR0_MFR_ZMII_MODE_MASK ) | SDR0_MFR_ZMII_MODE_MII ;
mtsdr ( sdr_mfr , sdr0_mfr ) ;
@ -1944,7 +2075,7 @@ void configure_ppc440ep_pins(void)
/* RMII Selection */
if ( ppc440ep_core_selection [ RMII_SEL ] = = CORE_SELECTED )
{
update_zii_ios ( ) ;
update_zii_ios ( gpio_tab ) ;
mfsdr ( sdr_mfr , sdr0_mfr ) ;
sdr0_mfr = ( sdr0_mfr & ~ SDR0_MFR_ZMII_MODE_MASK ) | SDR0_MFR_ZMII_MODE_RMII_10M ;
mtsdr ( sdr_mfr , sdr0_mfr ) ;
@ -1955,7 +2086,7 @@ void configure_ppc440ep_pins(void)
/* SMII Selection */
if ( ppc440ep_core_selection [ SMII_SEL ] = = CORE_SELECTED )
{
update_zii_ios ( ) ;
update_zii_ios ( gpio_tab ) ;
mfsdr ( sdr_mfr , sdr0_mfr ) ;
sdr0_mfr = ( sdr0_mfr & ~ SDR0_MFR_ZMII_MODE_MASK ) | SDR0_MFR_ZMII_MODE_SMII ;
mtsdr ( sdr_mfr , sdr0_mfr ) ;
@ -1992,7 +2123,7 @@ void configure_ppc440ep_pins(void)
sdr0_pfc1 = ( sdr0_pfc1 & ~ SDR0_PFC1_U1ME_MASK ) | SDR0_PFC1_U1ME_DSR_DTR ;
break ;
}
update_uart_ios ( uart_configuration ) ;
update_uart_ios ( uart_configuration , gpio_tab ) ;
/* UART Selection in all cases */
uart_selection_in_fpga ( uart_configuration ) ;
@ -2014,8 +2145,8 @@ void configure_ppc440ep_pins(void)
/* Perform effective access to hardware */
mtsdr ( sdr_pfc1 , sdr0_pfc1 ) ;
set_chip_gpio_configuration ( GPIO0 ) ;
set_chip_gpio_configuration ( GPIO1 ) ;
set_chip_gpio_configuration ( GPIO0 , gpio_tab ) ;
set_chip_gpio_configuration ( GPIO1 , gpio_tab ) ;
/* USB2.0 Device Reset must be done after GPIO setting */
if ( ppc440ep_core_selection [ USB2_DEVICE ] = = CORE_SELECTED )