Line 230... |
Line 230... |
|
|
break;
|
break;
|
}
|
}
|
|
|
/* Reschedule */
|
/* Reschedule */
|
SCHED_ADD( eth_controller_tx_clock, dat, runtime.sim.cycles + 1 );
|
SCHED_ADD( eth_controller_tx_clock, dat, 1 );
|
}
|
}
|
/* ========================================================================= */
|
/* ========================================================================= */
|
|
|
|
|
/* ========================================================================= */
|
/* ========================================================================= */
|
Line 432... |
Line 432... |
}
|
}
|
break;
|
break;
|
}
|
}
|
|
|
/* Reschedule */
|
/* Reschedule */
|
SCHED_ADD( eth_controller_rx_clock, dat, runtime.sim.cycles + 1 );
|
SCHED_ADD( eth_controller_rx_clock, dat, 1 );
|
}
|
}
|
|
|
/* ========================================================================= */
|
/* ========================================================================= */
|
/* Move to next RX BD */
|
/* Move to next RX BD */
|
void eth_rx_next_packet( struct eth_device *eth )
|
void eth_rx_next_packet( struct eth_device *eth )
|
Line 697... |
Line 697... |
switch( addr ) {
|
switch( addr ) {
|
case ETH_MODER:
|
case ETH_MODER:
|
|
|
if ( !TEST_FLAG( eth->regs.moder, ETH_MODER, RXEN) &&
|
if ( !TEST_FLAG( eth->regs.moder, ETH_MODER, RXEN) &&
|
TEST_FLAG( value, ETH_MODER, RXEN) )
|
TEST_FLAG( value, ETH_MODER, RXEN) )
|
SCHED_ADD( eth_controller_rx_clock, dat, runtime.sim.cycles + 1 );
|
SCHED_ADD( eth_controller_rx_clock, dat, 1 );
|
else if ( !TEST_FLAG( value, ETH_MODER, RXEN) )
|
else if ( !TEST_FLAG( value, ETH_MODER, RXEN) )
|
SCHED_FIND_REMOVE( eth_controller_rx_clock, dat);
|
SCHED_FIND_REMOVE( eth_controller_rx_clock, dat);
|
|
|
if ( !TEST_FLAG( eth->regs.moder, ETH_MODER, TXEN) &&
|
if ( !TEST_FLAG( eth->regs.moder, ETH_MODER, TXEN) &&
|
TEST_FLAG( value, ETH_MODER, TXEN) )
|
TEST_FLAG( value, ETH_MODER, TXEN) )
|
SCHED_ADD( eth_controller_tx_clock, dat, runtime.sim.cycles + 1 );
|
SCHED_ADD( eth_controller_tx_clock, dat, 1 );
|
else if ( !TEST_FLAG( value, ETH_MODER, TXEN) )
|
else if ( !TEST_FLAG( value, ETH_MODER, TXEN) )
|
SCHED_FIND_REMOVE( eth_controller_tx_clock, dat);
|
SCHED_FIND_REMOVE( eth_controller_tx_clock, dat);
|
|
|
eth->regs.moder = value;
|
eth->regs.moder = value;
|
|
|