Date: Sat, 25 Mar 2000 18:05:41 -0500 (EST) From: "Matthew N. Dodd" <winter@jurai.net> To: Mitsuru IWASAKI <iwasaki@jp.FreeBSD.org> Cc: freebsd-stable@FreeBSD.ORG Subject: Re: FIXED --> Thanks! Re: ep0 eeprom failed to come ready... Message-ID: <Pine.BSF.4.21.0003251758220.50194-100000@sasami.jurai.net> In-Reply-To: <200003252256.HAA22589@tasogare.imasy.or.jp>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, 26 Mar 2000, Mitsuru IWASAKI wrote: > BTW, thanks for your explanations and advices. I bought and install > FD drive, then configure my 509B NIC with 3c5x9cfg.exe in Non-PnP > mode. Now I'm able to use it on 4-stable and 5-current (but still > have problems in PnP mode)! As you said, my 3c509's EEPROM seems have > some corruption, that's why FreeBSD 4-stable and 5-current can't > handle it while it works fine on 3-stable or Linux with no problems. > > With 3c5x9cfg.exe, I configured my NIC, IRQ = 10, port = 0x300, PnP > enabled first, I got following boot messages and networking very slow > because of IRQ (5) conflicts with my SB sound card (non-PnP ISA), I > suspect. Do you have drivers installed for your sound card? If not then the PnP system has no way of knowing that irq 5 is used. You might also try setting irq 5 to 'legacy/ISA' in your BIOS. > TCM5090: adding irq mask 0x9ea8 > TCM5090: adding io range 0x210-0x3ef, size=0x10, align=0x10 > : > isa0: if_ep: <3Com 3C509-TP EtherLink III> at 0x300 in PnP mode! > : ^^^ configured io-port address > isa_probe_children: probing PnP devices > ep0: <3Com 3C509B-TP EtherLink III (PnP)> at port 0x210-0x21f irq 5 on isa0 > ^^^ not 300 ^ not 10 Yep, this is exactly correct. The driver is using the PnP instance which configures the card for the first available port and irq. > Now I have a proposal. How about the restoration of traditional isa > ep configuration like this? > > device ep0 at isa? port 0x300 irq 10 No, thats not the solution. If I do anything it will be to validate the EEPROM checksum in the driver 'probe' routine and bail if a board has an invalid checksum. > Giving configuraion hints would be useful for NIC which has corrupted > EEPROM by long time usage or can conflict on resources with other > devices unkown by kernel. I have 3 more boxes with 509B running on > 3-stable. None of them have FD drive unfortunately, so I won't > upgrade them to 4-stable. > > # I probably install Linux for them in the future :) Go for it. Their 3c509 support is worse than ours. > This is my understanding what is happening now: > > > > - The PnP enumerator runs and identifies PnP devices. > > - The 3c509 board is found and a device is created. > > sys/isa/pnp.c:pnp_identify(), pnp_isolation_protocol(), > pnp_create_devices() and sys/isa/pnpparse.c:pnp_parse_resources() are > doing this, and output these messages. > > Trying Read_Port at 243 > TCM5090: adding irq mask 0x9ea8 > TCM5090: adding io range 0x210-0x3ef, size=0x10, align=0x10 > > > - ep_isa_identify() runs and finds -the same board- and > > pulls the last configured (with 3c5x9cfg.exe) settings > > from the EEPROM. The board is activated. > > ep_isa_identify() reads settings from EEPROM and retrieves IRQ and IOPORT, > then just prints this without creating device if PnP mode. > > isa0: if_ep: <3Com 3C509-TP EtherLink III> at 0x300 in PnP mode! But it wasn't printing this message earlier! It sounds like everything works as it is supposed to after you ran the 3C5X9CFG.EXE util. > > - ep_isa_probe() runs against the device created by > > ep_isa_identify(). > > Now in PnP mode, ep_isa_probe() can't be called because the device > wasn't created. But it was created before when the card was in PnP mode but not reporting it via the EEPROM. > > - The PnP system activates the 3c509 device that the > > enumerator found and assigns it resources. > > sys/isa/isa_common.c:isa_probe_children(), isa_assign_resources() > determine resources to allocate for the device based on struct > isa_config entries created by pnp_parse_resources() (?), they aren't > the same as the last configured settings from EEPROM. Unfortunately > assigned IRQ conflicts with SB card which not probed by kernel. > This makes networking very slow I guess. No, the resources that are in the EEPROM and the resources PnP activated boards use are totally different. The settings in the EEPROM are actually just 'hints'; I could make the driver override them and use whatever I want. Until the adapter is 'activated' to a specific configuration it has no IRQ/port. -- | Matthew N. Dodd | '78 Datsun 280Z | '75 Volvo 164E | FreeBSD/NetBSD | | winter@jurai.net | 2 x '84 Volvo 245DL | ix86,sparc,pmax | | http://www.jurai.net/~winter | This Space For Rent | ISO8802.5 4ever | To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-stable" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.4.21.0003251758220.50194-100000>