bjh21
8bd452c648
Create an MI Ether3 driver. It's derived from the arm26 driver, which uses
...
my MI SEEQ 8005 driver, which is based on the arm32 ea driver.
2001-03-24 00:14:52 +00:00
bjh21
86d6442c28
Move machine-dependent podulebus headers to <machine/podulebus_machdep.h>.
...
<dev/podulebus/podulebus.h> is the canonical file to include, and includes
<machine/podulebus_machdep.h>.
<arch/${MACHINE}/poudulebus/podulebus.h> remains for backward compatibility.
2001-03-20 22:59:39 +00:00
bjh21
0fe2c0aedc
These have moved to sys/dev/podulebus.
2001-03-20 00:13:16 +00:00
bjh21
1c300d3ee8
Make pa_*_base bus_addr_ts.
2001-03-19 21:03:47 +00:00
bjh21
5c98fe3fec
Gratuitous change of signature for podulebus_irq_establish(). It now takes
...
an opaque podulebus_intr_handle_t, which can be found in podulebus_attach_args.
It's actually the slot number, but don't tell anyone.
2001-03-18 15:56:04 +00:00
bjh21
16198f2b92
Podulebus convergence:
...
pa_memc_[th] -> pa_mod_[th]
Add pa_easi_*
Add pa_*_base
Add pa_slot_flags to indicate whether EASI is supported.
2001-03-17 21:56:06 +00:00
bjh21
697e84ed46
Update for new location of podules.h and podule_data.h
2001-03-17 20:34:43 +00:00
bjh21
29e609e3c5
Update for recent changes to the i82586 driver.
2001-03-10 22:32:17 +00:00
bjh21
4acea3a8cc
Don't do arithmetic on void *s.
2001-02-17 19:04:36 +00:00
bjh21
f942342607
Fix a typo in the last change (eh_init_media -> eh_media_init).
2001-02-13 18:20:57 +00:00
thorpej
043e519d55
Adjust the way that media is initialized on DP8390-compatible
...
chips. The dp8390_softc now has media_init and media_fini
function pointers that do the work.
2001-02-12 18:49:03 +00:00
bjh21
3c3ed6cecd
Flush out cf_unit abuses.
...
Also, most device functions related to IRQ handling no longer take a device
pointer. We make so many assumptions about the machine's layout in irq.c that
this just seemed silly.
2001-01-23 23:58:31 +00:00
bjh21
f32fc0fc90
Use evcnts properly for interrupt counting.
...
The architecture here follows that of the vax port -- each device has its
evcnt in its softc, but defers actually incrementing it to the IRQ
dispatcher. This way, devices can attach sub-counts (e.g. Rx and Tx counts
for Ethernet interfaces), but don't all have to have code to increment the
counters.
Drivers deliberately call evcnt_attach_dynamic() before establishing their
interrupt handler so that the establish routine can attach a parent event if
that's appropriate. At present, it isn't.
2001-01-23 22:07:59 +00:00
bjh21
fe3273fbb4
Patch from PR kern/8001, submitted by Rafal Boni.
...
This adds support for EtherExpress/16 cards with 16k of RAM, and in the
process adds general support for PIO mode on these cards. This entails
changing the way the i82586 driver handles bus barriers, since it doesn't
allow for strange cases like this.
This has been tested on the i386 port with the 'ix' driver in both
16KB (which was the source of the problem) and 32KB modes, as well
as with the 'ef' driver. I've tested it (briefly) with 'ei' on arm26
as well. In theory, drivers other than 'ix' should follow precisely the
same code paths as before.
2001-01-22 22:28:43 +00:00
bjh21
d74ad44e33
Document format of various chunk types.
2001-01-12 00:13:26 +00:00
bjh21
2b076072d3
Add a "name" argument to irq_establish and friends, in imitation of arm32.
2001-01-07 15:56:01 +00:00
bjh21
610a127a3d
Fix a stupid = vs == bug that prevented the code working usefully at all.
...
While I'm here, fix all the other GCC warnings too.
2001-01-07 00:30:29 +00:00
bjh21
fa64805abd
Specify (void) arguments, hence avoiding GCC warning.
2001-01-07 00:07:58 +00:00
bjh21
5568314c66
Since the Arc's interrupt layout is fixed, only print IRQ numbers in
...
verbose mode. This helps to ensure the kernel version number doesn't disappear
too quickly.
2000-12-23 21:49:13 +00:00
bjh21
0c0d8f3775
Support for identifying MAUs attached to EtherLan 200-series cards.
2000-12-22 22:21:37 +00:00
bjh21
15d214bd18
Looks like I got the state of the link-detect bit inverted. Fixing that
...
gets me working auto-media selection, which is nice.
2000-12-20 23:08:44 +00:00
bjh21
9ca53819f0
Actually use 10baseT when we say we will.
2000-12-20 22:48:15 +00:00
bjh21
f8e732cd45
Use the podule loader code to get at the card description the official way,
...
and get our Ethernet address from there. This works on both of my cards.
2000-12-20 10:59:32 +00:00
bjh21
b66603547a
Add support for using RISC OS podule loaders to get at ROM chunks on podules.
...
By default, they aren't used, since most cards seem to put the non-OS-dependent
stuff in the main chunk directory. i-cubed cards are a notable exception.
2000-12-20 10:57:38 +00:00
bjh21
5b4c3dc909
Disable media autoselection entirely, but use whatever medium the card was
...
found using (presumably having been set up by RISC OS) as the default.
NB that this doesn't seem to be right for the EtherLan 200.
2000-12-20 00:01:56 +00:00
bjh21
c25ab2f1ec
Rudimentary facilities for extracting the card's Ethernet address from the
...
ROM. Only works on one of my two cards, though. It looks like we'll need
to use the RISC OS loader on the podule to get this right. *mutter*
2000-12-18 00:46:47 +00:00
bjh21
4942923809
Handle detecting the available media and state of medium selection links
...
on EtherLan 100 (and presumably 500) boards.
2000-12-17 22:29:26 +00:00
bjh21
72735aa75a
Correct embarrassing null-pointer-dereference bug. Also fixes interrupt
...
enabling.
Default to 10base2 for now, since automatic media selection doesn't work.
2000-12-16 18:24:36 +00:00
bjh21
3ebcd51009
I think bit 0 of the status register is the interrupt status on read.
2000-12-16 18:23:14 +00:00
bjh21
e266a563d8
Filter out non-ASCII characters from podule descriptions.
...
I think my MIDI card had a \r at the end, which was confusing.
2000-12-14 20:40:29 +00:00
bjh21
38d918f85f
Proper support for the Unix backplane in those machines that have one.
...
Not very well-tested, but it seems to work.
2000-12-09 17:52:44 +00:00
bjh21
cb5273b547
First attempt at an EtherH driver. Can just about transmit and receive
...
packets. Interrupt enabling is left to the RISC OS driver, medium selection
is untested and it's hard-wired to the MAC address of my card. Not really
for production use.
2000-12-01 14:28:36 +00:00
bjh21
7270db5ec0
Change to semantics of irq_establish: IRQs are now enabled by default, which
...
I think is the same as all other ports.
2000-10-14 23:41:01 +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
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
bjh21
6e3e3a755d
Don't include <machine/spl.h> any more.
...
Include <machine/intr.h> everywhere than uses spl(9) functions.
2000-08-22 21:22:48 +00:00
bjh21
ba6517aa9c
Adjust register spacing to take A0 into account. This should make supporting
...
8-bit uses of the 8005 (such as, I suspect, 8-bit Ether3 cards) easier.
2000-08-20 13:43:23 +00:00
bjh21
5317f1db63
General cleanup and factoring out of common code in ea_readbuf and ea_writebuf.
2000-08-12 18:18:52 +00:00
bjh21
7d96bc05ba
Make various types unsigned, for ease of comparison.
...
Use bus_space_read_multi_2 and bus_space_write_multi_2 to copy packets to/from
board.
2000-08-12 17:03:44 +00:00
bjh21
f096772215
Two changes for endianness-independence (when we finally split of the SEEQ 8005
...
driver and make it MI):
Set the ByteSwap bit on big-endian hosts, so we can use 16-bit transfers to get
at packets whatever.
Treat Tx/Rx headers as arrays of four bytes rather than as 32-bit words.
2000-08-12 15:29:35 +00:00
bjh21
7d83a5201a
bus_space version of if_ea.c -- should have been committed before.
...
Transmit and receive buffer sizes aren't an intrinsic property of the card,
so they belong in if_ea.c rather than if_eareg.h.
Correct some comments in if_ea.c
2000-08-12 14:06:29 +00:00
bjh21
4493200775
Use bus_space stuff. No more ReadShort and WriteShort.
...
Also a few minor cleanups.
2000-08-12 13:35:08 +00:00
bjh21
7ba12358d7
return isn't a function call
2000-08-12 12:20:17 +00:00
bjh21
b108872b97
Remove spurious reset of card in probe routine -- it can almost certainly
...
safely be left till attach time.
2000-08-12 12:15:59 +00:00
bjh21
ef01128d16
Avoid gratuitously copying data on transmission as well, and hence do away
...
with the 2k packet buffer in the softc.
2000-08-12 11:56:46 +00:00
bjh21
e801d41011
Remove void casts from splx(). It returns void anyway.
2000-08-10 23:06:38 +00:00
bjh21
c636092423
Use ETHER_IS_MULTICAST where relevant.
2000-08-10 23:03:04 +00:00
bjh21
24ab4fb4f8
Check the podule has a description before using it.
2000-08-10 22:57:01 +00:00
bjh21
2fb8a3feb8
Clean up packet reception. Notably, copy data straight from the card to
...
mbuf(s) without using the packet buffer in the softc. Also, clean up error
messages.
2000-08-10 22:43:45 +00:00
bjh21
b642a6e612
ANSIfication and general cleaning.
2000-08-08 21:16:59 +00:00