Commit Graph

2177 Commits

Author SHA1 Message Date
mjacob 8adadc9bda There's a compiler bug for sparc64 that makes the construct:
char *foo = "XXXX";
	...
	foo[1] = 'Y';

blow up (in the kernel) with the 2nd assignment. Work around it here-
it's probably just as well- I was spending more in cpu instructions doing
the assignment than I was saving in string space (it would have been
cheap on a pdp11 or a 68k- but the address loads and assignments on something
like sparc or alpha way outweigh the savings in space. Tsk.).
2000-12-30 19:30:09 +00:00
wiz 1796fa4bd8 Fix pasto in comment. 2000-12-30 16:55:24 +00:00
wiz 2ad3fd958d Merge 2.18 to trunk. 2000-12-30 16:52:36 +00:00
mjacob d4c32f2a63 Apply nearly all of Bill Sommerfeld's -Wformat patches. The one
change I didn't take is the %llu format- I can't have a common
across multiple platform module assume a %ll argument capability-
which really pointed out that I shouldn't be trying to *print*
something which could long long.
2000-12-28 22:27:46 +00:00
mjacob 0dae1b3d9a Turn ISP_LOCK/ISP_UNLOCK into ISP_ILOCK/ISP_IUNLOCK macros for routines
that are driven from a timeout (oops, they're on the interrupt stack).
2000-12-28 21:37:04 +00:00
mjacob d81d268d13 Use the ISP_CFG_NOINIT flag to decide whether to complete the full init
process steps (this is used in some platforms where you want to bring
the adapter to ready (to get a WWN, e.g.) , but not engage either target
or initiator mode until some later time). Set the correct defaults WWNs.
2000-12-28 08:26:12 +00:00
mjacob a5498e1514 add an ISP_CFG_NOINIT flag 2000-12-28 08:24:17 +00:00
mjacob b551237fb6 add two minor ATIO2 offsets 2000-12-28 08:23:48 +00:00
mjacob 829a533bfb Restore the change fvdl made. Sorry about not noticing it. The
header (about 'Maintainer') is supposed to help encourage folks
to coordinate with me.
2000-12-28 08:11:52 +00:00
bjh21 a48c9194bb Print the newline after the memory test. This makes it clear that the delay's
related to this driver rather than the next device to be attached.
2000-12-23 16:37:20 +00:00
wiz c8b0b91e7e Fix pathnames in comment. 2000-12-23 01:37:57 +00:00
onoe 2079f9d276 improve an_cmd() slightly:
- strip unnecessary loop to get command result status
- ack command after clearing busy bit

XXX: it still sometimes get timeout to get status(0xff50) or statistics(0xff68)
     probably due to heavy load of firmware in receiving.
2000-12-21 15:37:18 +00:00
onoe c6607f2fef move definition of AN_INTRS from anreg.h to anvar.h
strip off AN_EV_CMD from AN_INTRS because it causes severe performance
problem.
2000-12-20 23:30:36 +00:00
briggs 9a73f8b22b Make _sure_ that we do not use selatn3 when it is not present. Fixes a
problem on pmax reported by Izumi Tsutsui.  Tested also on alpha and mac68k.
2000-12-20 15:49:03 +00:00
eeh d1ab475964 Make the driver negotiate sync again and remove some (hopefully) superfluous
DELAY()s.
2000-12-20 03:19:34 +00:00
pk c6bd81f8a6 Fix reversed logic when setting setting sync-negotiation ability flag 2000-12-19 14:08:17 +00:00
onoe 684fe5613d cleanup attach procedure, use tsleep() instead of long delay (and ignore
timeouts).
stop driver after suspend.
XXX: should use command interrupt but no document...
XXX: status update sometimes failed perhaps due to collision.
	(RID 0xff50 or 0xff68 access failed)
2000-12-19 08:00:55 +00:00
thorpej ba4b6847df Fix a problem with the ALTQ changes that can cause bogus memory
refernces.  Problem reported by Luke Mewburn.
2000-12-19 00:06:01 +00:00
thorpej 4dbafc4a71 Remove an IF_PREPEND() that slipped through. 2000-12-18 23:57:13 +00:00
briggs 7ea0edc288 If the target rejects a tag message, turn off tagged transfers for that target.
Also, adjust message/command construction in ncr53c9x_select() to work no
matter how the structure alignment works out (needed at least for m68k).
Tested by me on mac68k & alpha, and sanity-checked by eeh.
2000-12-18 23:39:44 +00:00
thorpej df6482a625 ALTQ'ify. 2000-12-18 20:32:08 +00:00
thorpej cc6e5d835f Adapt to ALTQ-related API changes (driver is not fully ALTQ'ified yet). 2000-12-18 20:23:04 +00:00
eeh 519aef8cf4 Make sure bits in the flags are disjoint. 2000-12-17 06:18:21 +00:00
briggs d25ab824c8 Back out previous change. It appears to be in error. There is something
else that is causing the esp driver on the mac68k to fail miserably.
2000-12-17 04:38:29 +00:00
briggs 0debc0e91e At least the 53c96 does not work with the selatn3 command. Disable it
for both the 53c94 and 53c96.  This also addresses PR port-mac68k/11716.
2000-12-17 03:29:03 +00:00
thorpej 8489b5e4cf if_qflush() -> IFQ_PURGE() 2000-12-14 17:48:23 +00:00
thorpej 6b16911a43 ALTQ'ify. 2000-12-14 06:27:23 +00:00
onoe a7125e435c Add PCI version of Aironet, not tested at all.
ISA/ISApnp version won't come since I don't know about isa...
2000-12-14 04:11:25 +00:00
onoe d5dd5139a3 Support 80211NWKEY and 80211POWER ioctl. 2000-12-13 20:21:10 +00:00
thorpej c5293456da Adapt to bpfattach() changes, and further centralize the bpfattach()
and bpfdetach() calls into link-type subroutines where possible.
2000-12-12 18:00:22 +00:00
onoe aa513e6338 add support(?) for PC4500 which is a 2Mbps product.
Though ifconfig -m no longer show 5Mbps/11Mbps for PC4500 by this fix,
I cannot find how to set fixed transmit speed to the firmware.
FreeBSD version of driver apparently ignore the value set by ancontrol(8).
2000-12-12 05:34:02 +00:00
onoe 99675e3dde cleanup headers: remove duplicate definition, split reg.h/var.h. 2000-12-12 05:11:15 +00:00
thorpej 41d6a62c1c s/Ethernet/802.11/ when printing the address. 2000-12-12 01:32:34 +00:00
onoe c63194c7af To fix panic at "ifconfig an0 down",
define ANCACHE in if_an_pcmcia.c (XXX)
try not to access registers after interface down.
2000-12-11 23:58:55 +00:00
onoe 9c25e9208a Port 'an' driver for Aironet PC4500/PC4800 IEEE802.11 card from FreeBSD.
This is very adhoc work for IETF meeting.
- Since it seems that 'an' and 'wi' have similar hardware, low level
  functions should be shared.
- There are PCI/ISA cards of Aironet but not supported yet.
- The wiconfig interface is changed so that wiconfig cannot be used.
- 'ancontrol' of FreeBSD is not ported.
- Only infrastructure mode is tested.
- WEP is not supported.

Though I only have an Aironet card, Cisco card should be expected to work.
2000-12-11 23:16:50 +00:00
ws 8132c2a6aa Fix the previous differently:
The intent was to protect the full range of ports on the board by the
barriers.  But the start address was wrong.  Fix it.

While here, change two other barriers to also protect the full range
(not only the nic ports), and add yet another similar barrier.
2000-12-11 17:07:38 +00:00
ad 2940363203 Report soft-errors-per-unit once per minute at most. 2000-12-11 13:19:50 +00:00
eeh af770220fa Fix for chips that don't grok NCRCMD_SELATN3. 2000-12-10 19:25:07 +00:00
mjacob af2807f9f7 Finally fix this driver to be sensible about the ENDIAN dance. It's not
quite simply a question of the Qlogic being little endian and having
to have stuff swapped on big endian machines- it also has to do with the
fact that the SBus and PCI DMA layouts are wierd with respect to this.

At any rate, now finally fixed- works on Mac G4, tested it on a SS10
for sparc, checked on alpha to see if I've broken anything, and as
soon as I get another spare afternoon I'll finally install a sparc64
version which should just work (as it'll be like the Mac).
2000-12-09 08:06:31 +00:00
tsutsui fd97da6384 Add (missed) bus_dmemem_free() in rtk_detach(). 2000-12-09 02:02:20 +00:00
tsutsui e8bfefe60c - Since rtk_rxeof() was rewritten, we don't have to reserve a few bytes
before the Rx buffer.
- Reduce delay on EEPROM access.
- Some more cosmetics.
2000-12-05 11:11:49 +00:00
fvdl d26269e0a6 'error' was not initialized in the _ioctl function, potentially returning
!= 0 values in the non-error case.
2000-12-04 11:18:49 +00:00
fvdl 0888965bb7 Remove uninitialized variable usage (it was redundant anyway). 2000-12-04 11:05:32 +00:00
eeh 03e0f9950a Fix bug in non-dma select code i added. 2000-12-03 23:25:24 +00:00
jlam 9cfd45593f Set range of memory protected by read/write bus space barriers to the
correct size, instead of extending past the mapped region.
2000-12-03 23:15:23 +00:00
tsutsui 311a1a842c Clean up receive interrupt routine:
- Use MGETHDR + MCLGET + memcpy rathar than m_devget + m_adj + m_copyback.
- Call bus_dmamap_sync(9) correctly for Rx buffer.

Mostly from thorpej's if_rtp.c.
2000-12-03 14:24:17 +00:00
fvdl 2b69243845 Add AHC_NO_TAGS option to switch off tagged queueing. Done because
tagged queueing has a severe performance impact (60%) on write
throughput with UBC. Needs investigation.
2000-12-02 14:53:01 +00:00
augustss a51ea43fd6 Make this compile again (on i386). 2000-12-01 04:37:54 +00:00
pk d736ce5086 We don't need <sys/proc.h>, <sys/user.h> and <machine/cpu.h>. 2000-11-30 23:21:39 +00:00
pk 55fa60c3e5 De-__P(). 2000-11-30 23:12:43 +00:00
pk 58b6f2ef7d KNF patrol && De-__P(). 2000-11-30 23:06:44 +00:00
pk 03903e1da8 KNF patrol. 2000-11-30 23:01:03 +00:00
tsutsui 786dc5161c Clarify RX status header length and some cosmetics. 2000-11-30 15:51:57 +00:00
tsutsui fd4d074b27 After rev 1.16 rtk driver uses the CRC from the chip,
so no need to adjust Rx address for it. Fixes kern/11301.
2000-11-30 15:33:04 +00:00
thorpej 64222ad03a Fix some printf formats, and remove SPARC-specific debugging stuff. 2000-11-30 14:41:46 +00:00
pk 7006bcd449 Fix two cases of reversed arguments to printf(); 2000-11-30 09:58:03 +00:00
eeh 9e7aa98aa6 Add TAG QUEUE support to the ncr53c9x driver. 2000-11-30 00:19:25 +00:00
thorpej 997701c6c1 Define additional AC'97 registers. 2000-11-28 16:54:17 +00:00
ad 57ea462da2 lsu -> ld, by popular request. 2000-11-26 17:44:02 +00:00
takemura 3c9d9276dc Add new powerhook argument values, PWR_SOFTSUSPEND, PWR_SOFTSTANDBY and
PWR_SOFTRESUME. Apm calls powerhook with the values in normal interrupt
priority level while others are protected with splhigh().
2000-11-26 11:08:57 +00:00
soren 290a66c213 Reduce probe noise. 2000-11-21 05:23:37 +00:00
sommerfeld acc196c4a9 Initialize ring buffer pointers when the ring buffer is allocated.
(comsoft() can be invoked before comopen() on serial consoles; a character
received before the console is opened "for real" can result in a fatal trap
unless the ring buffer pointers are initialized early)
2000-11-18 15:46:23 +00:00
bouyer 42681a6a9f Supports ETHERCAP_VLAN_MTU. Tested on sbus hme on Ultra/1.
Thanks to Andrei Petrov for the hint !
2000-11-17 19:08:00 +00:00
thorpej b84f740be0 Move bpfattach()/bpfdetach() calls into ether_ifattach()/ether_ifdetach(). 2000-11-15 01:02:11 +00:00
thorpej 60f33f91c2 Pull in <uvm/uvm_extern.h> 2000-11-14 18:35:10 +00:00
thorpej 275539f03c NBPG -> PAGE_SIZE 2000-11-14 18:21:00 +00:00
pk 4c54ce2034 Define ncr53c9x_ioctl() and use it to start sync negotiation. 2000-11-13 15:24:22 +00:00
pk ad9bda9339 Change `nvram size' data type to `bus_size_t'. 2000-11-11 11:59:42 +00:00
pk 035ceca5b2 Add note about time-of-day and interval timer programming on this chip
are combined into the same (write-only!) control register.
2000-11-11 11:18:07 +00:00
pk 526def8fd1 Add a function to retrieve the size of the on-chip NVRAM area. 2000-11-11 11:03:31 +00:00
eeh faa5920bd2 Use the MI console magic sequence framework. 2000-11-08 23:13:03 +00:00
ad 142ab5b1ec Move lsu stuff to more logical locations, and push queueing into the lsu
driver.
2000-11-08 19:20:33 +00:00
wrstuden 88cbfbe36d Move guts of pciide_print_modes() to wdc_print_modes() so that non-pciide
wdc drivers (like macppc's obio IDE interface) can use it. Also add
support to both wd attach line and to wdc_print_modes() to print
Ultra/{33,66,100} for respective UDMA modes (From Manuel Bouyer).
2000-11-08 17:57:36 +00:00
thorpej d764c4d540 One more fix to multicast hash computation. Submitter confirms that
with this fix, multicast does indeed work properly on the EPIC.

From Zdenek Salvet <salvet@ics.muni.cz>.
2000-11-08 15:20:29 +00:00
chs b6b3ee8657 remove what looks to be a bit of leftover debug code. 2000-11-05 23:00:10 +00:00
thorpej aac73109ae Feh, fix st00p1d braino in last. 2000-11-05 05:41:25 +00:00
scw 3b5fce6c46 Invert the sense of i82586_init()'s return value so that
it matches what ether_ioctl() expects.
2000-11-04 19:48:38 +00:00
veego 232ac6b3d1 Print the vendor and chip id in the DPRINTF with 0x%x and not just %d. 2000-11-04 18:28:19 +00:00
thorpej 05d5f37522 Shadow the AC'97 codec registers. This adds two capabilities:
* support devices that crash when reading the codec registers; a flags
  interface is added to the host interface and one flag is defined
  (AC97_HOST_DONT_READ).
* new API (restore_ports) for restoring the user's settings.  This
  can be useful after an APM resume after a suspend to disk.

From OpenBSD.
2000-11-04 08:07:14 +00:00
thorpej 0bb6525f5b Add some more codec IDs. From OpenBSD. 2000-11-04 05:45:57 +00:00
tsutsui 39355e9743 Make this compilie with LANCE_REVC_BUG. 2000-11-03 06:21:32 +00:00
tsutsui d952450835 Wrap function declaration with "#ifndef sun3/#endif"
because sun3 does not have bus_space(9) support and
it have not switched to MI intersil7170 driver.

XXX We should split this into intersil7170{reg,var}.h ?
2000-11-03 05:23:07 +00:00
bjh21 930c4cf062 First attempt at multicast stuff. I suspect it doesn't work.
Use ether_ioctl -- saves 300 bytes of text.
2000-11-03 00:25:36 +00:00
bjh21 42e564ed45 Remove unnecessary includes.
Add a compiled-in RCSID.
2000-11-02 21:56:46 +00:00
bjh21 13234acd0f Convert to using ether_ioctl().
G/C huge swathes of unused code and outdated comments.
2000-11-02 21:42:41 +00:00
eeh 2a860a3de9 Adapt to the new line discipline scheme. 2000-11-01 23:54:57 +00:00
eeh f9a51c7b15 Clean up a #define that doesn't belong. Oops. That's what I get for
working this late.
2000-10-31 08:06:14 +00:00
eeh 37486bb837 Get the bpp driver to work properly. 2000-10-31 06:32:06 +00:00
mjl a7fcd8b686 Fix hanging token ring when data size is multiple of 514, using
patch in PR/11316 by YAMAMOTO Takashi.
This fixes random hangs I experienced, and probably also
remedies PR/11300 and PR/9321.
2000-10-31 01:22:08 +00:00
bouyer fc92601259 Fixes related to QUEUE FULL status:
- move status handling in siop_scsicmd_end(), it's better than in siop_intr()
- define 2 internal SIOP status, for "no status reported by device" and
  reset condition
- add a list of "urgent" command, to be executed before the list of command
  queued the normal way; this is used for command which got aborted
  by a QUEUE FULL and have to be requeued in order.
- Don't accept to send a Q_TAG message not immediatly folowing a IDENTIFY
2000-10-23 23:18:10 +00:00
bouyer 7777f61cbe Rearrange for script changes (scheduler core in main script, command part
of the scheduler in command table).
Add tagged command queuing support.
2000-10-23 14:56:16 +00:00
onoe 644aa13a51 Fixed the value of TULIPF_DBO; which was accidentaly shared with the same
value of TULIPF_BLE.  Pointed out by Enami-san.
2000-10-23 04:05:21 +00:00
bouyer 2ebf1a0cd0 Ops, sync the script DMA map when the script RAM *don't* exists. 2000-10-21 13:56:17 +00:00
bouyer e999ecae48 Support ETHERCAP_VLAN_MTU. Tested on a sparc 2 with:
le0 at sbus0 slot 0 offset 0xc00000 level 5: address 00:00:3b:86:19:92
le0: 8 receive buffers, 2 transmit buffers
2000-10-20 09:40:26 +00:00
mrg 0c6aa8d3ed ensure DMA mappings are not mapped streamable. fixes ethernet problems on
ultrasparc sbus class machines.  from eeh.
2000-10-20 06:08:02 +00:00
ad 67fe5fbbb4 Update for lsu; untested. 2000-10-19 14:28:46 +00:00
bouyer d239df5374 Adapt for script change: don't assume Ent_lun_switch_entry == 0 2000-10-19 07:22:06 +00:00
bouyer f629a0ae67 Ops, add proper bus_dmamap_sync() calls for reselect switch operations. 2000-10-18 20:06:54 +00:00
bouyer 9d3f5d7fbd Adapt for new lun switch script.
Implement SCBUSACCEL ioctl.
Snapshot of work in progress on tagged queuing: we can send/receive
queue tag messages. Infrastructure to manage multiple commands per
devices not here yet.
2000-10-18 17:06:52 +00:00
bouyer 9836ff3913 Looks like frame size isn't checked; just say we can do VLAN MTU.
Tested with a SMC9432TX.
2000-10-18 16:49:13 +00:00
bouyer f87b1573c3 Support ETHERCAP_VLAN_MTU by ignoring the EX_UPD_ERROR and EX_UPD_OVERSIZED
status bits. Tested with a 3c905-TX.
2000-10-17 16:16:52 +00:00
bouyer 5cc13a273b Support ETHERCAP_VLAN_MTU. It seems the chip doesn't check the frame size.
Tested with a NetVin 5000 and a WD8013EBT.
2000-10-17 16:14:42 +00:00
mjacob c64069308b Make changes relevant to changes in WWN defaults.
Also fix egregious bug where we would never decrement
the islocked recursion counter. I guess this means
that we don't recurse on this platform! All of this should
go away when we have real lock primitives to use in drivers.
2000-10-16 05:18:15 +00:00
mjacob c7c2783178 Change some of the WWN macros- eliminate PORT_FROM_NODE_WWN and make
sure we have a DEFAULT_{PORT,NODE}WWN and ISP_{NODE,PORT}WWN macro
as a requirement for all platforms.
2000-10-16 05:16:56 +00:00
mjacob ffdbddbd79 Add in commented-out hiwater measurement.
Remove egregious older bug which had us refusing to log into
fabric devices unless they were NL ports. Whuff.
2000-10-16 05:15:55 +00:00
mjacob 298ec0ecd9 Clarify/cleanup how node and port names are derived from nvram. Remove
clause 2 of licence. Remember to print initiator ID (LOGINFO level).
2000-10-16 05:15:05 +00:00
thorpej 4318834442 Don't trim off the FCS, pass it up. 2000-10-15 19:56:31 +00:00
bjh21 83666f01fa Shuffle printfs around so they look right when we've got a drive attached. 2000-10-14 23:45:57 +00:00
matt b885772956 The input packet has the FCS attached to set M_HASFCS before passing up.
Revove eh = ... since it's no longer used.
2000-10-14 20:06:02 +00:00
thorpej 2198741306 Use ether_ioctl(). 2000-10-11 16:57:45 +00:00
onoe fcde56c9ba Add flags to indicate that tlp_init() should set some more BUSMODE bits.
TULIPF_BLE	/* data is big endian */
	TULIPF_DBO	/* descriptor is big endian */
These setting is required for Big-endian bus front-end (such as APbus for
newsmips) to work with tulip.  Also,
	sc_maxburst
member is added to the tulip_softc to limit the maximum burst length.
This member defaults to zero which means no restriction for burst length.
2000-10-11 14:59:52 +00:00
itojun b69ea2a63d make it work right on non-32bit arch. from kjc@csl.sony.co.jp 2000-10-10 10:15:00 +00:00
enami db6fba6bdf Move inclusion of rnd.h and sys/rnd.h from tulip.c to tulipvar.h. 2000-10-09 14:31:01 +00:00
enami ca88e2b6bd Make tulip a random source. 2000-10-09 12:54:28 +00:00
nathanw 34f3869cdc Change int->bus_addr_t in com_kgdb_attach() prototype.
Compiles again with KGDB enabled.
2000-10-06 21:12:01 +00:00
bouyer f6bf6762ab Ops, disable debugging messages. 2000-10-06 20:07:10 +00:00
bouyer 171adcf634 Fix recurent typo: shed->sched 2000-10-06 16:39:04 +00:00
bouyer e353a6d9b2 Adapt for reselect handling from the script. While here, fix typo
(SIOP_SCXFER -> SIOP_SXFER).
2000-10-06 16:35:13 +00:00
bouyer 2e6cb6a878 When 802.1Q MTU, we have to ignore the Frame Too Long errors, and there's no
need to disable RWT and JAB.
2000-10-05 07:22:43 +00:00
tsutsui d11ef545cd Enable sanity checks in mk48txx_gettime().
(Many news68k have dead NVRAM.)
2000-10-04 17:00:45 +00:00
thorpej 5fcde4924f Support ETHERCAP_VLAN_MTU by igorning Receive Watchdog and Transmit Jabber
errors if VLANs are configured on the interface.
2000-10-03 23:35:55 +00:00
thorpej cbfe7605c9 Support ETHERCAP_VLAN_MTU by doing extra error checking upon packet
reception and saving other "bad frames" (i.e. ones that are larger
than the standard Ethernet frame length) if we have VLANs configured
on the interface.
2000-10-03 23:35:02 +00:00
simonb 5d4fa9b0ce Revert rev 1.31 of bha.c (and associtated changes in the headers and
config glue files).

Fixes PR kern/9841.  Tested by Tracy J. Di Marco White with a bt948
and 6 disks.
2000-10-03 14:07:36 +00:00
tsutsui 91959d389e Typo in comment. 2000-10-03 13:54:02 +00:00
tsutsui 33e8ebeef3 1970 -> POSIX_BASE_YEAR 2000-10-03 13:52:39 +00:00
thorpej 7edd5d54bc Add support for the ADMtek AN983 and AN985. 2000-10-03 04:32:00 +00:00
itojun 1af3d80bce fix compilation without INET. 2000-10-02 03:53:07 +00:00
thorpej 7ca3fb9ef0 Move the check for "promisc + unicast + not for us" into ether_input(),
and change Ethernet drivers to always pass all received frames to
ether_input() (with a few exceptions, which are documented in the
code).
2000-10-01 23:32:39 +00:00
tsutsui 710c43c745 6 -> ETHER_ADDR_LEN 2000-09-28 10:56:57 +00:00
tsutsui ab9b015dce 6 -> ETHER_ADDR_LEN 2000-09-28 10:10:14 +00:00
sommerfeld 91178eae70 Add missing '&& defined(COM_MPLOCK)' 2000-09-26 14:12:42 +00:00
enami d52ba1b85f Fix merge lossage in disabled code. 2000-09-25 01:07:25 +00:00
jdolecek 5eb24d5dd0 am7990[0]_intr(): only print the "entering with isr=XX" debug message
if compiled with LEDEBUG > 1
2000-09-24 18:37:22 +00:00
jdolecek 5fea96167f use new generic bootverbose instead of local definition 2000-09-24 12:37:03 +00:00
sommerfeld 6a71867356 Add `COM_MPLOCK' option to use a device-instance-specific spinlocks
when running at splserial().  This is a temporary measure (until
there's a MP-safe interrupt handling structure); until then, it should
be used when MULTIPROCESSOR and IPL_SERIAL > IPL_SCHED.
2000-09-23 17:17:11 +00:00
bjh21 a48f581877 Substantial overhaul, factoring out of common code, removal of redundancy
and general cleanup.  Still not a beautiful driver, but one I'd be willing to
introduce to my parents now.
2000-09-23 15:13:02 +00:00
bjh21 65c1db338c paddr_t -> bus_addr_t in prototypes too. 2000-09-23 12:08:16 +00:00
eeh d651adf44a paddr_t -> bus_addr_t. 2000-09-22 14:46:38 +00:00
soren cf3c3f9410 Rename to match Ben's naming scheme. 2000-09-22 05:48:50 +00:00
eeh 56cf963264 Support for SPARC machines with `su' devices. 2000-09-21 23:27:32 +00:00
bjh21 f3ef35c447 Add rudimentary 80C04 support (basically saying "Oh look, an 80C04!").
Move printing the initial ":" into the board driver, like i82586.c does.
Don't bother printing the amount of RAM, as it's always 64 KB.
2000-09-21 22:20:38 +00:00
fvdl c5d8401866 Add support for the 3c555, 556 and 556B MiniPCI cards. Based on the
cardbus code and the FreeBSD xl driver.
2000-09-19 01:15:06 +00:00
bjh21 40aba7cd4d Split the arm26 Ether3 (ea) driver into an MI driver for the SEEQ 8005 chip,
and a front-end driver for the Ether3.  Only semantic change is to remove
ea_claimirq() and ea_releaseirq() on the grounds that the seem too spurious
to warrant a callback to the front-end.
2000-09-18 20:51:14 +00:00
toshii faf55ac40c Change tiocm_to_{com,zs}'s second argument to u_long to match with
the type in their caller.
2000-09-17 22:07:39 +00:00
drochner a960881851 -make the default screentype override less invasive, call it
VGA_CONSOLE_SCREENTYPE because the screen types are hardware specific
 and make it affect the console only (no need to change runtime
 behaviour), don't call vga_setscreentype() unless necessary (to avoid
 trouble with strange hardware - PR kern/11025)
-some beginnings of ISO-7 (greek) font support
2000-09-15 14:13:01 +00:00
lukem 6439b28202 * rename vga_stdscreen* -> vga_25lscreen*
* in vga_init(), set the screen type to WSCONS_DEFAULT_TYPE, which defaults
  to "80x25".
    XXX: the code currently makes no attempt to ensure that a font
	 with the appropriate width & height is available, effectively
	 limiting this default to either "80x25" or "80x24" at this
	 time.
* make wsdisplay_screentype_pick() non static, so that vga_init() can use it
2000-09-10 11:44:13 +00:00
ad 237007cd69 - Set CCB_ACTIVE flag in all cases when DIAGNOSTIC is defined.
- Correct arguments to bus_dmamap_create().
2000-09-08 12:16:17 +00:00
thorpej e79103cb0a Cast the arg to vtophys() to vaddr_t. 2000-09-06 18:48:36 +00:00
eeh 0d01e04003 Add support for write protecting clock registers. 2000-09-01 19:04:49 +00:00
drochner 641326ee44 -fix multicast filter programming
-support access to MII_ANER too for completeness
-remove some hacks which disappeared in FreeBSD if_rl.c
 rev. 1.25 (Aug 31 14:45:49 1999)
(the driver could need more updating, but this is what I've tested
for months)
2000-09-01 15:07:23 +00:00
ad f729f26133 FLUSH_CACHE will not return until complete. 2000-09-01 14:17:15 +00:00
ad 40f6cd2b96 The `cac' driver now frees CCBs on our behalf. 2000-09-01 12:23:57 +00:00
ad 671d7f91ae - Interface cleanup. static, const in places.
- Move convenience macros from cacreg.h to cacvar.h.
- Add one hardware check in DIAGNOSTIC case.
- Declare `cac_l0'.
2000-09-01 12:12:29 +00:00
ad ac2883e218 - Interface cleanup. static, const in places.
- Pull in linkage useful for both PCI and EISA boards from cac_pci.c.
- cac_ccb_done() now frees the done CCB if the CCB callback completes.
- Model-specific linkage is now responsible for DMA synchronization.
- Use wakeup_one() in cac_ccb_free().
- Start synchronous commands `manually'.
- Add one hardware check in DIAGNOSTIC case.
- Improve error messages.
- Start firmware background tasks on controllers that need it.
2000-09-01 12:11:37 +00:00
ad d8e5466776 - Move convenience macros from cacreg.h to cacvar.h.
- Define EISA board register set and some other magic numbers.
- Add missing elements to `struct cac_controller_info'.
2000-09-01 12:10:21 +00:00
haya ea9ef4ff69 Correct LED polarity bit. This bit and PHY power bit should be
defined in elinkxlreg.h.
2000-08-31 08:42:29 +00:00
haya 25147761ff Add support 3C[CX]FE575CT. 2000-08-29 08:54:50 +00:00
mjacob 37c83e1340 fix some missing initializations 2000-08-27 21:43:26 +00:00
haya 0e2c6c0cc1 Access on ELINK_W3_INTERNAL_CONFIG register with 32-bit mode. Remove
16-bit access code.  This register is 32-bit.  16-bit access with the
register causes data inconsistency (especially for CardBus cards).
2000-08-25 09:01:59 +00:00
jeffs d3afa878a2 Fix typo in SIATXRX_SPP comment. 2000-08-25 08:03:10 +00:00
haya 6cbde58ee4 Add flag defines for 3CCFE575BT and 3CCCFE575CT (CardBus cards). 2000-08-24 08:54:31 +00:00
thorpej 7951ece147 Use splsched() instead of splhigh(), and explain why in a comment,
as well as document a pitfall of the approach being used.
2000-08-21 14:25:14 +00:00
castor 0c05c0b9f2 Add register definitions for S.M.A.R.T. -- an autonomous disk monitoring
standard.
2000-08-21 03:53:55 +00:00
sommerfeld 8f5586c98f Avoid calling tsleep when running above splhigh() 2000-08-18 13:22:39 +00:00
bjh21 d7eebd9227 Basic driver for CHIPS 82C710 Universal Peripheral Controller and friends,
as used on later arm26 system (A5000, A4, A3010, A3020, A4000).

What we have got:
...
upc0 at iobus0 base 0x010000: config state bb 87 1c 00 00
fdc at upc0 offset 0x3f4 not configured
wdc0 at upc0 offset 0x1f0
lpt0 at upc0 offset 0x278
com0 at upc0 offset 0x3f8: ns8250 or ns16450, no fifo
...

What we haven't got:
 - FDC support (found, but not configured).
 - Clearing lpt interrupts on arm26 systems (needs help from IOEB).
 - A upc(4) manual page.
 - More than minimal testing (my A3020s don't have root devices).
 - A proper probe routine (arm26 can't use one anyway).
2000-08-16 23:56:08 +00:00
mjacob 4f5e77ca58 Change _res field in ispstatusreq_t to be req_response for FC.
Add some more FC specific response defines and split the response
defines into common, SCSI only and FC only cases.
2000-08-16 18:11:38 +00:00
mjacob d9162135d4 Add some changes/notes suggested by eeh@netbsd.org (zero header of
response queue entry). Clean up some of the Fibre Channel completion
stuff so that thing we check actually match the current manual. There's
only one silly lossage that the manual doesn't cover at present- if
an FC command completes with SV (sense valid), the f/w does *not* s
et "GOT_STATUS" in the state bits- I guess they assume that you'd figure
out that if you have SENSE DATA you probably have a CHECK CONDITION. Still-
yet another fine f/w frotz from Qlogic. Add in an ISP_EXEC_THROTTLE
define to set a per-device execution throttle.
2000-08-16 18:10:21 +00:00
thorpej f80d70f19a Just add the mmap argument to vga_common_attach(), don't bother
with vga_extended_attach().
2000-08-14 20:14:50 +00:00
onoe 7f6e2386a6 Make sure to reset length of data (len) and offset of mbuf (mlen) when
CRC is splitted into two mbufs in receiving.  This fixes panic or hangup
in arc4_encrypt() when WEP is enabled on awi.
2000-08-14 11:28:03 +00:00
mjacob ec701021fd Add a maintenance note. Fix QFREE and QAVAIL macros to match change in usage. 2000-08-14 07:12:15 +00:00
mjacob ed05406b77 Add a maintenance note 2000-08-14 07:11:14 +00:00
mjacob b1c18a6bc7 Add a maintenance note. Move the single bit tags of islocked and
onintstack to be real integers. Add ISP_ILOCK/ISP_IUNLOCK macros.

Fix the isp_lock/isp_unlock inlines to stop being so embarrassingly
in error. Why, or why, can't I have mutex_enter/mutex_exit, pretty please?
2000-08-14 07:10:09 +00:00
mjacob 22ef6ec857 Add a maintenance note. Change all splbio's to use the ISP_LOCK/ISP_UNLOCK
or ISP_ILOCK/ISP_IUNLOCK macros.
2000-08-14 07:08:12 +00:00
mjacob 8801250c70 Add a maintenance note. Add a cast to u_int16_t which will keep
Solaris lint && the SUNPro SC5.0 complier happy.
2000-08-14 07:06:50 +00:00
mjacob d7ee06672f Add a maintenance note.
Clarify some startup SCSI mode settings. Insist that the FC f/w options
*must* have ICBOPT_PDBCHANGE_AE set (wasted a half day on this crock).

Make a specific comment in isp_start that the tags being selected for FC
cards, in lieu of any set by the outer layers, are there for safety's sake.
This removes the change from a previous commit.

For the ISP_TOGGLE_TMODE function, do a complete reset, not just an
isp_init (info from Solaris port). Make some cleanup changes for
code clarity.
2000-08-14 07:05:28 +00:00
augustss 0390dd7f3e Fix spelling in comment. 2000-08-12 22:24:26 +00:00
tls c9dc8413bb Make our policy WRT tagged queueing consistent and sane: ordered tags for sync writes, simple tags for all else. Should make ahc and adv a bit more reliable (metadata writes won't get reordered incorrectly...) and isp a bit more performant (it was using ordered tags all the time). 2000-08-11 21:31:19 +00:00
thorpej 8cb7deb85b Add support for the DEC DE422 Ethernet, which is a DEPCA
attached to the EISA bus.  This board is commonly found
on Alpha Jensen systems.
2000-08-11 02:27:07 +00:00
tv 389bf995b5 %b -> bitmask_snprintf() 2000-08-09 01:56:33 +00:00
mjacob 0dc8c1fb35 Remove ispcmd_slow routine- SCBUSACCEL routine will set/clear tag/wide/sync.
Make some changes about where some things sit in the softc.
2000-08-08 22:58:30 +00:00
bjh21 4f33d5a8ab Register definitions for the C&T 82C710, 82C711 and 82C721, as used in
the Acorn A5000, A4, A4000, A3010 and A3020.
2000-08-08 22:14:53 +00:00
jeffs aaa5c58d70 Update arc map routine prototype to compile again. 2000-08-08 02:11:05 +00:00
briggs b103a8ca48 Label the buffer size as such on probe. 128 KB makes sense, but 4608 does not. 2000-08-06 00:19:04 +00:00
bouyer a8421d4787 Some W83781 have ID 0x11 instead of 0x10; handle these too.
Restore printing sdata for each sensors if DEBUG.
2000-08-03 09:27:01 +00:00
castor b6dd28b4ce Support some differences in the Macronix 98715AEC-C and E chips from the other
98715* series.

The MX98715AEC-[C,E] use a different location in the serial eerom for
LED control, and programming it with the original location's values
caused unpredictable behavior.

Also, start integrating fixes where media changes on an adapter
under load may fail.  There's more work to be done here, but I need
to sort out our internal changes a little more carefully.
2000-08-03 03:07:30 +00:00
jeffs e97c2066ab Add options DDB_BREAK_CHAR. This overrides break on the serial console
break character with the supplied one.  This is useful for cases where
break is hard to generate, or you are connected to a PC that "sends"
breaks when power cycled.  For this mode in com, interpret break char
in the polling section, which allows entry into the debugger before
the tty is opened.  Only supported in the com driver currently.
2000-08-03 00:30:47 +00:00
bouyer de378db998 W83781D: Explicitely reselect bank0 before using "value RAM" registers.
Hopefully this will make the W83781D works.
Also use common functions to set up fan & temp info[] & sensors[] for
the W83781D.
2000-08-02 22:20:41 +00:00
bouyer e445e43ddc Add support for the W83697HF - basically a W83627HF with only 2 temp sensors. 2000-08-02 21:50:37 +00:00
mjacob 068c76fc80 Core version 2.0 (platform version 1.0) rewrite of ISP driver. Some
interace cleanups, some new common functions. The major impact that
will be noticeable right away is that if you boot with not Fibre connected
to the FC cards, you no longer hang indefinitely.
2000-08-01 23:55:09 +00:00
briggs 02e3c1ef40 Use bus_space_read/write_multi_stream_2 for FIFO instead of bsr/w_multi_2. 2000-07-31 22:48:49 +00:00
ad 067f5e9814 Previous would have misbehaved if polled commands overlapped. 2000-07-31 13:16:34 +00:00
briggs 3628f3e00c Make sure that we do not call bus_space_*_multi_* with zero count. 2000-07-31 02:14:47 +00:00
bouyer 100a4a6b22 Add support for the W83781D and W83782D hardware monitors. 2000-07-30 22:23:53 +00:00
briggs e6dde2bd42 Add MII support to smc91cxx driver. This is supported for the 91c100
and 91c100FD (FEAST) controllers.  Existing controllers should continue
to work as they have.  Added the card's memory to the probe message.
2000-07-30 21:34:47 +00:00
bouyer 538126d75a swap lm_match() and wb_match(), as wb_match() is more restrictive.
Otherwise a winbond can be mis-probed as a lm if it has the rigth device ID.
Problem reported by Bernd Ernesti.
2000-07-30 17:22:26 +00:00
bouyer e955a714ba Add support for the W83627HF: lm7x like, but with more sensors, and more
registers.
2000-07-27 21:49:22 +00:00
bouyer ca5b9b0c22 Force 64bit arithmetic for timeout computation; a 32bit int opverflows for
large timeouts. Should fix PR kern/10575.
2000-07-27 21:28:17 +00:00
pk 4ba0c6b55c New time-of-day clock chip drivers. These implement the todr(9) interface. 2000-07-25 22:33:02 +00:00
bouyer 10afc4e0a8 create a funcion, siop_busreset(), to reset the scsibus.
Reset the scsi bus at attach time, to be sure all devices start in narrow/async
mode.
Defer sync/wide negotiation until after whe have a valid
xs->sc_link->device_softc, so that we can honnor the NOSYNC/NOWIDE quirks.
2000-07-24 15:15:00 +00:00
ad 74cf7af4a9 Increase polled command timeout to 2s. 2000-07-24 12:28:31 +00:00