Commit Graph

96 Commits

Author SHA1 Message Date
sommerfeld 851de295eb Change pci_intr_map to get interrupt source information from a "struct
pci_attach_args *" instead of from four separate parameters which in
all cases were extracted from the same "struct pci_attach_args".

This both simplifies the driver api, and allows for alternate PCI
interrupt mapping schemes, such as one using the tables described in
the Intel Multiprocessor Spec which describe interrupt wirings for
devices behind pci-pci bridges based on the device's location rather
the bridge's location.

Tested on alpha and i386; welcome to 1.5Q
2000-12-28 22:59:06 +00:00
thorpej b84f740be0 Move bpfattach()/bpfdetach() calls into ether_ifattach()/ether_ifdetach(). 2000-11-15 01:02:11 +00:00
thorpej cfe0892ed3 NBPG -> PAGE_SIZE 2000-11-14 18:42:55 +00:00
tsutsui f4ef578da7 6 -> ETHER_ADDR_LEN 2000-09-28 10:29:42 +00:00
mrg 7c15053eed remove include of <vm/vm.h>. <vm/vm.h> -> <uvm/uvm_extern.h> 2000-06-28 16:08:42 +00:00
mrg 2f159a1bac remove/move more mach vm header files:
<vm/pglist.h> -> <uvm/uvm_pglist.h>
	<vm/vm_inherit.h> -> <uvm/uvm_inherit.h>
	<vm/vm_kern.h> -> into <uvm/uvm_extern.h>
	<vm/vm_object.h> -> nothing
	<vm/vm_pager.h> -> into <uvm/uvm_pager.h>

also includes a bunch of <vm/vm_page.h> include removals (due to redudancy
with <vm/vm.h>), and a scattering of other similar headers.
2000-06-26 14:20:25 +00:00
thorpej fc96443d15 New callout mechanism with two major improvements over the old
timeout()/untimeout() API:
- Clients supply callout handle storage, thus eliminating problems of
  resource allocation.
- Insertion and removal of callouts is constant time, important as
  this facility is used quite a lot in the kernel.

The old timeout()/untimeout() API has been removed from the kernel.
2000-03-23 07:01:25 +00:00
fair 7f8cdf038f Fix a missing closing parenthesis in an error diagnostic 2000-02-23 08:31:25 +00:00
matt a9e57ac54d Fixes for 21143 and MII in full-duplex mode. 2000-01-15 18:39:31 +00:00
ragge 6aabd4d0c2 CL* discarding. 1999-12-04 12:11:13 +00:00
thorpej f687b845d0 Make sure bus mastering is enabled; some broken BIOSes don't set this
up properly.
1999-06-01 19:17:59 +00:00
thorpej f98d358a1f Rework layer 2 protocol input routines. Instead of calling e.g. ether_input()
directly, call the function pointer (*if_input)(ifp, m).  The input routine
expects the packet header to be at the head of the packet, and will adjust
as necessary.  Privatize the layer 2 input and output routines, allowing
*_ifattach() to set them up as appropriate.
1999-05-18 23:52:51 +00:00
cjs ecab881e98 PR 6852 from Chris Jones <cjones@hideo.nervana.montana.edu>.
This handles the interrupt structure of Compex boards.
1999-04-12 04:31:55 +00:00
tsubai 4384fd5134 Fix big-endian support.
TULIP_BUSMODE_BIGENDIAN does bswap packet buffers also, so we should use
TULIP_BUSMODE_DESC_BIGENDIAN on big-endian machines. (PR 7027)

XXX 21040 doesn't have this bit, but supporting only 21041+ is better than
    nothing.
1999-04-01 11:02:20 +00:00
explorer 3ebb419571 Update to slightly altered rnd_attach_source() api 1999-02-28 17:08:05 +00:00
matt 1b8620b9fb Cleanup media set on Alpha. ring txpoll after setting proper tx
interrupt mask.
1998-11-09 23:41:14 +00:00
matt 1131320f18 Fix transmit underflow messages. (\0128 != \0 128) 1998-09-25 18:06:53 +00:00
matt d3e02fc461 Fix the accton support. Only set the board type it isn't an ISV. 1998-09-22 04:23:18 +00:00
matt e7be3f3601 Fix a problem where txput could "lose" dmamaps if it couldn't actually
place the packet into the ring for some reason.
1998-09-15 17:26:46 +00:00
matt 2633c65da5 This commit fixes two bugs in the de driver. The first is that the
descriptor count gets miscounted on txprobes.  The second (and more
important) is that transmit stalls should now be fixed.  The problem
was not due to lack of ring resources but dmamaps.  When Jason changed
the driver to use pre-allocated maps (instead of the dynamic ones I
used), and when there were no more maps, the driver just gave up instead
of calling tx_intr to free any transmitted but unreclaimed dma maps.
Since there was nothing being transmitted, no transmit interrupts
would fire to restore things (and OACTIVE prevented other transmits
from happenning).  So it stayed starved until another interrupt cause
(like a received packet) "woke" it up.
1998-09-15 02:39:03 +00:00
drochner 2f94f2c21c some fixes:
-use of uninitialized variable in attach (mostly harmless)
-removal of dead code in attach()
-fix of interpretation of SIA blocks on >=21142 (serious, caused strange
  things with 10Mbit)
1998-08-28 20:58:37 +00:00
matt ea3bfd6d80 Fix bug in transmit logic that would transmits to stop. Boolean dyslexia
stricks again.
1998-08-24 14:09:15 +00:00
thorpej ff266f0937 Add some braces to make egcs happy. 1998-08-18 18:23:07 +00:00
eeh a2dd74ed79 Merge paddr_t changes into the main branch. 1998-08-13 02:10:37 +00:00
jonathan 011f2bda08 defopt NS, NSIP. 1998-07-05 06:49:00 +00:00
jonathan 3751946b97 defopt INET, NETATALK. 1998-07-05 00:51:04 +00:00
matt 4e49c5ff17 Workaround problem with stalling output. Fix later after I've moved. 1998-06-21 10:32:46 +00:00
thorpej ea3a1d9c44 Nuke __BROKEN_INDIRECT_CONFIG. 1998-06-08 06:55:54 +00:00
mark 56c82ddeda Don't make the inclusion of machine/intr.h alpha specific as other ports
require this as well.
1998-05-25 22:20:24 +00:00
matt 9eb77bf49a Change 21040 modes slightly. Prevent infinite autosense loop of 21143 that
is not connected.  Make TULIP_STS_LINFAIL only valid for chips with that
status bit defined.
1998-05-22 18:50:59 +00:00
mycroft eb466ba47f Make sure to unload and recycle the DMA map for a bad received packet.
This was (indirectly) the reason for machines `hanging' (actually, looping in
tulip_rx_intr()) with de cards.
1998-04-02 13:49:32 +00:00
mycroft 8f597a8744 Oops; make the table const. 1998-03-29 22:36:42 +00:00
mycroft a6b8b01d96 Use a 4-bit table to speed up the CRC even further, without increasing the
code size too much.
1998-03-29 22:34:27 +00:00
mycroft a3b1c4c87a Optimize the address CRC routines a bit. 1998-03-29 22:21:12 +00:00
thorpej 841fb8fd54 Don't try to dynamically create and destroy DMA maps. Instead, keep
it simple, and allocate one for each transmit and receive descriptor.

In addition to being simpler and faster, this fixes a serious memory leak
in the transmit path.
1998-02-11 01:28:22 +00:00
thorpej f955aa86e5 Properly handle error conditions from bus_dmamap_load_mbuf(). 1998-02-07 20:40:35 +00:00
thorpej 208d979613 Use BUS_DMA_NOWAIT where appropriate. Don't create DMA maps with
BUS_DMA_ALLOCNOW.
1998-02-07 10:27:12 +00:00
matt 8098a443f0 A version of the de driver which does bus_dma. Note that it has not been
tested on any other platform other than i386.  Use of bus_dma(9) can be
turned by defining TULIP_BUS_DMA_NOTX and TULIP_BUS_DMA_NORX.  These allow
one to determine if the problem is in the transmit or receive path.
A problem reported by mycroft is also fixed.
1998-02-06 20:57:12 +00:00
thorpej 06ce220790 Update for config changes. 1998-01-12 09:39:57 +00:00
thorpej bbc9422b97 Print interrupt information like all of the other PCI drivers. 1997-10-27 02:10:07 +00:00
matt 500281c8a4 21142 / 21143 chips always use ISVSROM format. (print out message is
SROM checksum is invalid).
1997-10-20 14:32:46 +00:00
matt 4d3bfb2510 Fix pr's port-i386/4127 kern/4190 kern/3700. 1997-10-16 22:02:27 +00:00
matt 940e1b9935 Fix a thinko in last night fix. We must set the media if we have reset
the chip but if we haven't the the media isn't changing, don't do anything.
1997-10-16 13:12:56 +00:00
matt 0dc780c27d Fix media/console interaction problem on Alpha. Fix 21142/21143 problems
with 10Mb/s links.
1997-10-15 19:06:59 +00:00
explorer 80513cb5ae o Make usage of /dev/random dependant on
pseudo-device   rnd                     # /dev/random and in-kernel generator
  in config files.

o Add declaration to all architectures.

o Clean up copyright message in rnd.c, rnd.h, and rndpool.c to include
  that this code is derived in part from Ted Tyso's linux code.
1997-10-13 00:46:08 +00:00
explorer 1c276eafe2 Add hooks to insert timing info into the random system 1997-10-10 01:19:37 +00:00
thorpej 76786b38b6 Mimmick the logic used by other drivers to determine if we should use
memory-mapped or i/o-mapped access to the device registers, and always
choose memory-mapped if it is enabled.  In particular, do _not_ explictly
disable the space we decide to not use, as this confuses some versions
of Alpha console software (which are arguably buggy because of this
problem).

Also, fix a logic error pointed out by Ross Harvey <ross@teraflop.com>
that would cause memory-mapped access to never be enabled.
1997-09-24 22:46:29 +00:00
thorpej 4f7a116064 Add missing "break;" statements in the code that determines the
media setup by the Alpha SRM console software.

From Ross Harvey <ross@teraflop.com>.
1997-09-12 22:40:02 +00:00
thorpej b2c3b768d3 - Add RCS tags that got lost.
- Fix a couple of typos in PCI space configuration.
1997-08-25 19:03:44 +00:00
thorpej a2a13689fd Merge with 970703 snapshot of Matt Thomas's de driver. 1997-08-25 18:56:46 +00:00