> > ep0: <3Com EtherLink III (3c509-TPO)> at port 0x300-0x30f irq 10 on isa0
> > ep0: eeprom failed to come ready.
...

> > ep0: Ethernet address ff:ff:ff:ff:ff:ff
> > ep1: <3Com 3C509B EtherLink III> at port 0x210-0x21f irq 5 on isa0
> > ep1: Ethernet address 00:a0:24:a1:9a:1e

I still have problems with probing ep's on one Cyrix system.

One thing that has made it better is passing a bit delay down to
elink_idseq, that is:

>  void
>  elink_idseq(u_char p, void (*bit_delay)(void))
>  {
>        register int i;
>        register u_char c;
>
>        c = 0xff;
>        for (i = 255; i; i--) {
>                (*bit_delay)();
>                outb(ELINK_ID_PORT, c);
>                if (c & 0x80) {
>                        c <<= 1;

I haven't bothered committing this since it still fails 1 out of 6 times.
Without this it fails 1 out of 3 times.  If it logically makes sense
that a delay is needed here (I don't have any docs) someone might add it.

Peter


-- 
Peter Dufault ([EMAIL PROTECTED])   Realtime development, Machine control,
HD Associates, Inc.               Safety critical systems, Agency approval


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message

Reply via email to