Thanks to Michael Smith for reporting, Jason Thorpe for pointing to the
report, doing a quick workaround which pointed me to the right code part and
for testing the final fix.
does not supply media types, default to the "manual" type.
- Clean up the ETHER_CMP stuff slightly.
- Keep track of our carrier status, for media status requests.
Some of the stuff (e.g., rarpd, bootpd, dhcpd etc., libsa) still will
only support Ethernet. Tcpdump itself should be ok, but libpcap needs
lot of work.
For the detailed change history, look at the commit log entries for
the is-newarp branch.
the base address. This allows for a more flexible layout of buffers
in the Lance's memory.
- Add a new element 'sc_saved_csr0' to am7990_softc. It's value is or-ed
with the current csr0 value in the am7990_intr() function. This allowes
for a 'deferred' interrupt sceme.
to prepare for if_media, and to support EISA 3c59x cards:
* change epconfig() to take a short that encodes the chipset
type (3c509, or Demon/Vortex/Boomerang).
* add distinct 3c509 and Demon/Vortex/Boomerang media-sense
functions to back end.
* Add EISA match/attach support for the 3c592 and 3c597
(Demon) cards as well as the 3c509-comatibl EISA 3c509/3c579.
* Assume that ISA and ISA PnP cards are 3c509-style, until
proof to the contrary (e.g. large packet support).
Tested on 3c595, 3c590, and 3c509b. Not tested on 3c515 or Demon.
(RX_RESET, TX_RESET, GLOBAL_RESET).
Commands issued while a reset is in progress may be dropped. The driver
must wait until resets are complete; ep_complete_cmd() does so.
* Change RX_RESET, TX_RESET, GLOBAL_RESET to use ep_complete_cmd().
* Revert epconfig() to use inline RX_RESET, TX_RESET.
That avoids accidentally setting IFF_UP, which breaks both diskless boot,
and "halt" commands issued before the interface is brought up.
- if aal5 frame has a CRC error then the length field in the aal5 trailer
may not be valid, so we can not use it [and we must dump the frame]
[Yuhang Sun <sunyh@dworkin.wustl.edu> & chuck@ccrc.wustl.edu]
Newer boards (e.g., Vortex) take time to reset, and wedge on some machines.
Polling on S_COMMAND_IN_PROGRESS would be better, but that doesn't
work with xx_RESET commands on 3c509s.
CONFIG_CNTRL bits by making the "conn" argument to epconfig()
a u_int, not a u_int16_t, and by defining 100mbit media
bits in the upper 16 bits.
A redesigned interface that fixes this properly is in the pipeline.
comments in pr port-i386/2358: "if_ep/3C590 no longer working"
* Only call Vortex media-config code on PCI-attached devices, until
we know if it works on ISA and EISA large-packet devices also.
* Fix typo in printf of MAC address
look for 100mbit Xcvrs, print their names, add to ep_connectors.
* Print 10baseT as 10baseT, since media name (utp) is no longer a unique
transceiver type.
* Redo FIFO memory size printing, also show Tx/Rx split (xxx isa 3c509?).
* Print MAC address on a separate line, with 100Mbit media and fifo-ram
info it no longer fits on the same line as media types.
* Comment the fact that the "connection" media-selection code just doesn't
grok 100Mbit media.
* add code to look for 3c59x/3c90x media-select and autoconfig bits, though
we don't yet dynamically probe media when the autoconfig bit is set
(see previous bullet).
* XXX the whole connector/media code should be redone, perhaps a' la
the BSDI ifmedia design.
For now, we really only need 8 bits of media type.
* Add bogus definitions for 100mbit transcievers, to be set in the
"conn" argument to ep_config(). Should really use the same bits
as in EP_W0_CONFIG_CTRL bits, but I don't know what bits the 3c515
&c use for 100mbit media.
* Define bitflags for 100Mbit transceiver options in ep_connectors.
* Add definitions of powerup/powerdown commands. for interfaces with
power management. Should send a powerup after APM resume?
* Add definition of fragment-busmaster (vortex) START_DMA command.
* Add definition of PCI configuration-space media-present bits.
(really just EP_W3_RESET_OPTIONS remapped into pci config space.)
* Add comments describing what the #define's above are used for.
For now, we really only need 8 bits of media type.
* Add bogus definitions for 100mbit transcievers, to be set in the
"conn" argument to ep_config(). Should really use the same bits
as in EP_W0_CONFIG_CTRL bits, but I don't know what bits the 3c515
&c use for 100mbit media.
* Define bitflags for 100Mbit transceiver options in ep_connectors.
* Add definitions of powerup/powerdown commands. for interfaces with
power management. Should send a powerup after APM resume?
* Add definition of fragment-busmaster (vortex) START_DMA command.
* Add definition of PCI configuration-space media-present bits.
(really just EP_W3_RESET_OPTIONS remapped into pci config space.)
* Add comments describing what the #define's above are used for.
bit from the extended setup inquiry and key off it to:
- Force synchronous negotiation on targs > 7.
- Read additional information returned by wide cards on inquire setup.
- Read sync period on targs > 7.
- Display sync period/offset on targs > 7.
- Set scsi_link.max_target to 15.
cvs: ----------------------------------------------------------------------