bug in Intel 8255x ethernet controller driver (if_fxp.c)
Eugene Denisov
dea at sendmail.ru
Tue Mar 16 10:10:15 UTC 2004
Hello all.
Recently I attempted to use RTEMS 4.6.0pre5 'if_fxp' driver for Intel
EEPro100+ adapter (PCI IDs: 0x8086 / 0x1229).
Original drier doesn't wor so I made two modifications in the driver:
First I uncomment PCI ID for this adapter:
static struct fxp_ident fxp_ident_table[] = {
/* currently untested */
/* dea: uncommenting i82557 chip */
{ 0x1229, "Intel Pro 10/100B/100+ Ethernet" },
...
Second I made workaround for one bug in fxp_init() function (added line
mareked by 'dea'):
static void
fxp_init(void *xsc)
{
struct fxp_softc *sc = xsc;
struct ifnet *ifp = &sc->sc_if;
struct fxp_cb_config *cbp;
struct fxp_cb_ias *cb_ias;
struct fxp_cb_tx *txp;
int i, prm, s;
rtems_task_wake_after(100);
DBGLVL_PRINTK(2,"fxp_init called\n");
s = splimp();
/*
* Cancel any pending I/O
*/
/* dea: preventing hung... ugly? */
sc->stat_ch = fxp_timeout_stopped;
fxp_stop(sc);
....
I have no time to investigate accurtely where is the problem, but fxp_stop()
call causes hung because it waits for timer routine that was not planned yet
(I think the problem is in inaccurate initialisation of 'sc' struture).
Sorry, I have no time to make full bugreport and patch.
Best regards.
Denisov Eugene.
More information about the users
mailing list