Commit Graph

38 Commits

Author SHA1 Message Date
thorpej 73f78d5e61 Fix signed/unsigned comparison warnings. 2002-11-09 18:52:20 +00:00
thorpej a1ef3f204e Avoid a strict-aliasing warning from GCC 3.3. 2002-11-09 18:49:02 +00:00
thorpej b96bc0d7bc Use CFATTACH_DECL(). 2002-10-02 04:06:36 +00:00
thorpej f818766afe Declare all cfattach structures const. 2002-09-27 20:31:45 +00:00
provos 0f09ed48a5 remove trailing \n in panic(). approved perry. 2002-09-27 15:35:29 +00:00
thorpej 6c88de3b53 Introduce a new routine, config_match(), which invokes the
cfattach->ca_match function in behalf of the caller.  Use it
rather than invoking cfattach->ca_match directly.
2002-09-27 03:17:40 +00:00
thorpej d1ad2ac4f2 Rather than referencing the cfdriver directly in the cfdata entries,
instead use a string naming the driver.  The cfdriver is then looked
up in a list which is built at run-time.
2002-09-27 02:24:06 +00:00
rafal ab8f2fbc01 Add interrupt counter for Seeq interrupts; also, make sure to reset back to
"recieve only my frames & broadcasts" and clear the ALLMULTI flag if we have
no multicast addresses in our list.
2002-05-02 20:31:19 +00:00
bouyer e5727031fb Implement mstohz() as discussed on tech-kern, and use it in SCSI drivers
to convert xs->timeout to callout() parameter.
2002-04-05 18:27:45 +00:00
simonb 707b8da2e8 Replace lots of 8x<space> with <tabs> and other miscellaneous indentation
fixes.
Wrap a couple of long lines.
Use <return-type>\n<function name> as per KNF in a few places.
2002-03-13 13:12:25 +00:00
thorpej a180cee23b Pool deals fairly well with physical memory shortage, but it doesn't
deal with shortages of the VM maps where the backing pages are mapped
(usually kmem_map).  Try to deal with this:

* Group all information about the backend allocator for a pool in a
  separate structure.  The pool references this structure, rather than
  the individual fields.
* Change the pool_init() API accordingly, and adjust all callers.
* Link all pools using the same backend allocator on a list.
* The backend allocator is responsible for waiting for physical memory
  to become available, but will still fail if it cannot callocate KVA
  space for the pages.  If this happens, carefully drain all pools using
  the same backend allocator, so that some KVA space can be freed.
* Change pool_reclaim() to indicate if it actually succeeded in freeing
  some pages, and use that information to make draining easier and more
  efficient.
* Get rid of PR_URGENT.  There was only one use of it, and it could be
  dealt with by the caller.

From art@openbsd.org.
2002-03-08 20:48:27 +00:00
wiz 66df0333a1 s/seperate/separate/ 2002-02-11 10:44:38 +00:00
rafal 5e26468b29 Less odious hack for powerfail interrupt; even thought it's still odious,
at least now we only attempt to install the handler once.
2002-01-25 04:54:31 +00:00
pooka 53aa4de53f make RTC year IRIX semantics adjustments a macro 2002-01-14 16:23:27 +00:00
soren bf7d9c855e Adjust for dsclock name change. 2001-11-25 15:26:03 +00:00
soren 45192487a5 O2 RTC attachment, based on code from Antti Kantee. 2001-11-25 15:05:04 +00:00
thorpej 741c7a2997 sbic -> wd33c93, in preparation for the core driver going into
sys/dev/ic.
2001-11-21 23:22:25 +00:00
rafal 52f4b0490c Stylistic fix to last. 2001-11-20 21:21:03 +00:00
thorpej f934d91c74 The 2nd SCSI controller is now supported; remove it from the TODO list. 2001-11-20 17:38:31 +00:00
rafal 6c04d91bae Post Jason's autoconfig cleanup, the DMA tags are actually passed in from
the parent, so we don't need to look at the innards of bus_dma anymore.
Also, remove the Todo item pertaining to autoconfig cleanup from the list
in the comments.
2001-11-20 16:10:49 +00:00
rafal c4596a56c0 Fix up Jason's last cleanup (thanks for that, btw!!)... Don't attach
hpc child devices that don't match our systype.  Attempting to attach
a wdsc1 on my Challenge S locks the box hard.
2001-11-20 16:09:00 +00:00
thorpej be010c72ef * Clean up HPC autoconfiguration a little. Pass device register and
DMA register offsets, as well as IRQ, to children.  Use direct
  config.  Use machine type/subtype to determine which devices are
  present.
* Add support for the second SCSI controller on the Indigo2.
2001-11-18 08:16:15 +00:00
thorpej 8edf2c6d98 * Add a callback to the front-end for the 33c93 driver to reset
the controller/SCSI bus.
* Implement controller/SCSI bus reset on SGI HPC3 SCSI using the
  "channel reset" bit in the SCSI DMA channel control register.
2001-11-18 05:14:38 +00:00
wdk 571fbc80c7 Tidy up debug logic
Fix compile errors when DIAGNOSTIC or DEBUG options disabled.
2001-11-10 22:54:54 +00:00
wdk de81761c50 Complete overhaul of WD33c93 SCSI driver
- Full support for SCSI-2 Tagged commands (enabled by default)
 - Implement save and restore datapointer messages
 - Formalize interface between MI and MD drivers.
 - decouple interface between MD driver and DMA routines
 - Use scsipi layer where appropriate (Tags, Sync Negotiations etc)
 - control blocks stored using kernel pool(9) functions
 - evcnt(9) compliant counters
 - Enable advanced features on later WD33c93 chips.
   (Identify message out phase is hardware assisted)
 - Improved timeout support (one per active control block)
 - Improved MESG_IN and MESG_OUT handling
 - Start to tidy up debugging output
 - Numerous bug fixes and cleanups throughout

Changes are based largely on the NCR53c9x MI driver for ideas on
how to DTRT.
2001-11-10 07:32:42 +00:00
wdk 0ac0d0d4e4 Initial implementation of WD33C9x SCSI driver for SGI IP22 platforms.
Based on mvme68k and Atari drivers for the same chipset with the
addition of bus_space support.  Attempts have been made to seperate out the
machine dependent dma components and more work is required in this area.

Tested on SGI R4K Indy, but has little testing on other platforms.
2001-08-19 03:16:21 +00:00
thorpej edeeafe82b bcopy -> memcpy, bzero -> memset 2001-07-08 21:04:50 +00:00
thorpej 2b351e4a6f - If the multicast address list changes, make sure to kick the chip.
- Remove unnecessary includes.
- Slight cosmetic change in sq_start().
2001-07-08 20:57:34 +00:00
thorpej e9fd7a6a2b Use sys/dev/arcbios. 2001-07-08 20:30:13 +00:00
thorpej 37c37861b9 Make sure to always re-sync the rx buffer dmamap if recycling the
rx buffer.
2001-06-08 14:32:05 +00:00
thorpej 0859a7601d - Differentiate beteen the 8003 and 80c03 (the 80c03 has some additional
features).
- Implement crude multicast support -- enable reception of all multicast
  frames if we have any addresses on the multicast list.  TODO: use the
  64-bit hash table on the 80c03.
- Implement promiscuous mode.

IPv6 doesn't quite work yet -- DAD finds a duplicate for the
link-local.  The 8003 hears its own transmissions, but IFF_SIMPLEX
is not set, so I'm a little confused.
2001-06-07 23:05:51 +00:00
rafal a1830df1bb Fix a deadlock in the tx code -- the code checked the DMA status before
sync'ing the descriptor, leading to a race where the packet could complete
after the DMA check but before the sync of the descriptor, sending the code
into unknown territory and the DMA engine into space.  Also, fix a bug with
spurious watchdog resets going off due to the if_timer not always being set
on transmit.

Finally, clean up use of hardcoded magic numbers, get them from hpcreg.h
when possible.
2001-06-07 12:20:42 +00:00
rafal 63f856cb2e Add a bunch of defines for bits withing the ethernet-related registers so
the Seeq driver can use them instead of hardcoded constants.
2001-06-07 12:10:34 +00:00
thorpej ce9753d9e9 Autoconfiguration glue for HPC devices.
From Rafal K. Boni.
2001-05-11 03:23:38 +00:00
thorpej 5885656e58 Support for the Seeq 8003 Ethernet attached to the HPC ASIC,
found on Indigo2 and Indy.

From Rafal K. Boni.
2001-05-11 03:22:21 +00:00
thorpej 5d02689ede IOC1/2 memory map.
From Rafal K. Boni.
2001-05-11 03:18:57 +00:00
thorpej 726924bc4c Support for the Dallas 1286 clock found on the Indigo2 and Indy. 2001-05-11 03:16:59 +00:00
thorpej c4173c40c1 Support for the HPC I/O peripheral ASIC. There is where SCSI, Ethernet,
etc. live on the Indigo2 and Indy.

From Rafal K. Boni.
2001-05-11 03:11:20 +00:00