@ -95,10 +95,9 @@
# define RX_BUF_LEN_IDX 0 /* 0, 1, 2 is allowed - 8,16,32K rx buffer */
# define RX_BUF_LEN (8192 << RX_BUF_LEN_IDX)
# un def DEBUG_TX
# un def DEBUG_RX
# define DEBUG_TX 0 /* set to 1 to enable debug code */
# define DEBUG_RX 0 /* set to 1 to enable debug code */
# define currticks() get_timer(0)
# define bus_to_phys(a) pci_mem_to_phys((pci_dev_t)dev->priv, a)
# define phys_to_bus(a) pci_phys_to_mem((pci_dev_t)dev->priv, a)
@ -253,7 +252,6 @@ int rtl8139_initialize(bd_t *bis)
static int rtl8139_probe ( struct eth_device * dev , bd_t * bis )
{
int i ;
int speed10 , fullduplex ;
int addr_len ;
unsigned short * ap = ( unsigned short * ) dev - > enetaddr ;
@ -266,9 +264,6 @@ static int rtl8139_probe(struct eth_device *dev, bd_t *bis)
for ( i = 0 ; i < 3 ; i + + )
* ap + + = le16_to_cpu ( read_eeprom ( i + 7 , addr_len ) ) ;
speed10 = inb ( ioaddr + MediaStatus ) & MSRSpeed10 ;
fullduplex = inw ( ioaddr + MII_BMCR ) & BMCRDuplex ;
rtl_reset ( dev ) ;
if ( inb ( ioaddr + MediaStatus ) & MSRLinkFail ) {
@ -389,9 +384,8 @@ static void rtl_reset(struct eth_device *dev)
* from the configuration EEPROM default , because the card manufacturer
* should have set that to match the card . */
# ifdef DEBUG_RX
printf ( " rx ring address is %X \n " , ( unsigned long ) rx_ring ) ;
# endif
debug_cond ( DEBUG_RX ,
" rx ring address is %lX \n " , ( unsigned long ) rx_ring ) ;
flush_cache ( ( unsigned long ) rx_ring , RX_BUF_LEN ) ;
outl ( phys_to_bus ( ( int ) rx_ring ) , ioaddr + RxBuf ) ;
@ -424,9 +418,7 @@ static int rtl_transmit(struct eth_device *dev, volatile void *packet, int lengt
memcpy ( ( char * ) tx_buffer , ( char * ) packet , ( int ) length ) ;
# ifdef DEBUG_TX
printf ( " sending %d bytes \n " , len ) ;
# endif
debug_cond ( DEBUG_TX , " sending %d bytes \n " , len ) ;
/* Note: RTL8139 doesn't auto-pad, send minimum payload (another 4
* bytes are sent automatically for the FCS , totalling to 64 bytes ) . */
@ -453,16 +445,18 @@ static int rtl_transmit(struct eth_device *dev, volatile void *packet, int lengt
if ( status & TxOK ) {
cur_tx = ( cur_tx + 1 ) % NUM_TX_DESC ;
# ifdef DEBUG_TX
printf ( " tx done (%d ticks), status %hX txstatus %X \n " ,
to - currticks ( ) , status , txstatus ) ;
# endif
debug_cond ( DEBUG_TX ,
" tx done, status %hX txstatus %lX \n " ,
status , txstatus ) ;
return length ;
} else {
# ifdef DEBUG_TX
printf ( " tx timeout/error (%d usecs), status %hX txstatus %X \n " ,
10 * i , status , txstatus ) ;
# endif
debug_cond ( DEBUG_TX ,
" tx timeout/error (%d usecs), status %hX txstatus %lX \n " ,
10 * i , status , txstatus ) ;
rtl_reset ( dev ) ;
return 0 ;
@ -486,9 +480,7 @@ static int rtl_poll(struct eth_device *dev)
/* See below for the rest of the interrupt acknowledges. */
outw ( status & ~ ( RxFIFOOver | RxOverflow | RxOK ) , ioaddr + IntrStatus ) ;
# ifdef DEBUG_RX
printf ( " rtl_poll: int %hX " , status ) ;
# endif
debug_cond ( DEBUG_RX , " rtl_poll: int %hX " , status ) ;
ring_offs = cur_rx % RX_BUF_LEN ;
/* ring_offs is guaranteed being 4-byte aligned */
@ -513,14 +505,11 @@ static int rtl_poll(struct eth_device *dev)
memcpy ( & ( rxdata [ semi_count ] ) , rx_ring , rx_size - 4 - semi_count ) ;
NetReceive ( rxdata , length ) ;
# ifdef DEBUG_RX
printf ( " rx packet %d+%d bytes " , semi_count , rx_size - 4 - semi_count ) ;
# endif
debug_cond ( DEBUG_RX , " rx packet %d+%d bytes " ,
semi_count , rx_size - 4 - semi_count ) ;
} else {
NetReceive ( rx_ring + ring_offs + 4 , length ) ;
# ifdef DEBUG_RX
printf ( " rx packet %d bytes " , rx_size - 4 ) ;
# endif
debug_cond ( DEBUG_RX , " rx packet %d bytes " , rx_size - 4 ) ;
}
flush_cache ( ( unsigned long ) rx_ring , RX_BUF_LEN ) ;