Commit Graph

148 Commits

Author SHA1 Message Date
scottr 034bf6b188 Clean up some DIAGNOSTIC messages: use %x to display the slot number. 1997-07-14 23:05:35 +00:00
scottr d00173ae5a Add support for Portrait Video Card. From SUNAGAWA Keiki
<kei_sun@ba2.so-net.or.jp> in PR 3821.
1997-07-01 19:04:18 +00:00
scottr b1f4ee5c2a Identify and use the Apple Twisted Pair NB card properly, from PR 3789
submitted by Denny Gentry <denny1@home.com>; investigation on the hardware
done by Bob Nestor.
1997-06-26 21:08:10 +00:00
scottr 36b75f2735 Update from Denny Gentry <denny1@home.com>, PR 3685:
Simplify the way transmit buffers are managed, remove assumptions about
NBPG, simplify sonic_get handling, update snioctl to be more like other
current drivers, and probably a few other changes I've now forgotten about.
1997-06-15 20:20:07 +00:00
scottr fac0bcfedb Update a recently-added comment re: bytelanes values. 1997-05-13 13:22:56 +00:00
scottr 3b7a1d3ab0 Convert several interrupt handlers to bus space model, removing some
XXX's.  Also, fix a bug in grfmv_intr_generic() that I found and
confirmed with Allen.
1997-05-12 20:35:50 +00:00
scottr ee80f1200e Implement new NuBus slot space mapping/probing code, utilizing bus.h (and
our MD bus_space_probe() extension).  This has several side effects:

 - NuBus drivers must map and unmap slot space, rather than relying
   on this happening before they are attached.
 - Functions exported to NuBus drivers from nubus.c now need to be
   supplied with a bus space tag/handle pair.
 - Old bus map/peek functions can be garbage collected, as can pmap
   support for the same.

Because of some current limitations of the bus space specification, we
are violating the abstraction in grf_mv (NuBus grf driver).  All such
violations are clearly marked /* XXX */, and must be addressed when
the specification is updated.
1997-05-11 19:11:27 +00:00
briggs 5230506ca5 Support for clearing interrupts on a Rasterops Colorboard 364.
Thanks go to Michel Chalufour <michelc@tiac.net> for grovelling around for
me.
1997-05-03 02:29:54 +00:00
briggs 1b2e317732 Thanks to Tobias Beal <tbeal41@maine.maine.edu>, we can clear interrupts
on at least one Radius Precisioncolor 8 board.
1997-05-02 00:54:28 +00:00
briggs aba671db48 Treat drhw 118 and 119 the same for Apple ethernet cards. 1997-05-01 18:17:13 +00:00
briggs a64bc3c19c Clear the interrupts properly on an E-Machines Futura II LX and make a wild
guess at clearing them on a Futura II SX/DSP and RasterOps ColorBoard 364.
Thanks to Michel Chalufour <michelc@tiac.net> for loaning me the II LX.
1997-05-01 03:34:07 +00:00
briggs ef185efb22 Add in a couple more board types. 1997-05-01 03:31:07 +00:00
scottr 19f1b8dd3f Remove dependency on if_aereg.h for vendor constants; these are really
driver-, not architecture-specific.
1997-04-30 19:47:11 +00:00
scottr b28e1b9459 Fix typo in last change. 1997-04-30 19:32:32 +00:00
scottr 4a36cdfd19 Adjust to use16bit -> dcr_reg change in MI driver. 1997-04-30 18:10:37 +00:00
scottr 63ac9ee6e0 Use the new MI 8390 driver, and garbage collect. 1997-04-29 04:40:22 +00:00
briggs ed74d8f653 On video devices, if we're loading non-default resource values, save the
resource ID.  Thanks to Paul Goyette <paul@pgoyette.bdt.com> for spotting
this one.
1997-04-23 13:37:43 +00:00
scottr a653364eb1 Remove obsolete drsw diagnostic; make formatting consistent; KNF. 1997-04-22 20:32:08 +00:00
scottr 2111f73a90 Remove obsolete drsw diagnostic 1997-04-22 20:21:59 +00:00
scottr e733e600d3 #ifdef DIAGNOSTIC, print the NuBus type fields for unrecognized boards. 1997-04-22 20:20:32 +00:00
briggs d13ebf0e72 Make sure that we unmap the space that we mapped if we can't identify the card. 1997-04-22 13:45:38 +00:00
briggs d2a4acec48 Initialize 'offset' to make gcc happy. 1997-04-22 03:04:33 +00:00
scottr 7793be9949 Purely cosmetic cleanup:
- Remove unused `register' modifier on declarations
  - Reverse the sense of some tests to make the code more clear
  - Type casts per KNF
  - Move a static variable into the only function that uses it (perhaps
    we can eliminate it entirely, someday?)
1997-04-14 16:28:34 +00:00
briggs 13175a1a16 Use an offset parameter when loading the reg_map--some cards use the "other"
16 bits of the words.
1997-04-14 00:44:01 +00:00
briggs 6d338ace93 Oops. We do not want to unmap something that we've used bus_space_subregion
to get.
1997-04-13 16:42:34 +00:00
briggs 4a3016b6b6 Some updates based on information from Bob Nestor <rnestor@metronet.com>
about his SONIC-T LC/PDS card.
1997-04-13 14:21:09 +00:00
briggs 306e81deb2 Ignore SE/30 faux-video card. 1997-04-10 20:34:23 +00:00
briggs 0350ba7412 Some patches from Bob Nestor <rnestor@metronet.com> and myself to edge
toward support for an Apple SONIC-based ethernet card.  Some cards, like
his, were being missed and/or probed like video cards!
1997-04-10 03:28:54 +00:00
briggs b38a17b793 Comment video cards and add define for SuperMac Thunder/24. 1997-04-10 03:25:02 +00:00
briggs 6287b4096d Changes from Denny Gentry <denny1@home.com>:
Change in the way receive buffer areas are handled.  Before we gave
the chip 16 buffers, each 1536 bytes (big enough for one packet).
Now we're handing the chip 8 buffers, each 4 Kbytes, and letting
the chip fit as many packets as it can in each one.  This should
help keep it from running out of buffer space.  Also make some of
the performance-crucial routines inline.  It made no measurable
difference except to make me feel better

Changes from Bob Nestor <rnestor@metronet.com> to get closer to support
for his Apple SONIC-based nubus card.

Changes from me to try to get SONIC's MAC address from MacOS settings if
we can't read the PROM space.
1997-04-10 03:22:45 +00:00
briggs 574874a2a9 Changes from Bob Nestor to come closer to supporting his Apple SONIC-based
nubus card.
1997-04-10 03:19:46 +00:00
briggs ca0531b7f4 Add DrHW for RasterOps CB264--From Scott Reynolds--and link it in to the
proper interrupt routine.
1997-04-01 13:31:38 +00:00
briggs a3d5b32614 - Support DAFB machines mo' better. Actually detect if a monitor is
present and initialize a few things.  No color support, yet.
  - Properly disable interrupts for DAFB.
  - Rearrange for better nubus display card interrupt support.  Only register
    an interrupt if we know how to clear it.
  - Complain if we don't know about a given display card and can not install
    an interrupt handler.
  - Change MYSTERY stuff to cb264--still need to get the DrSW so we can
    actually call the routine to clear an interrupt from this card.
1997-04-01 05:41:59 +00:00
briggs 2606fe6cbd Some new SONIC code from Denny Gentry <denny1@home.com> with a couple of
tweaks and bug fixes by yours truly.

Here's what Denny had to say:

nubus.h:
        - add a drsw entry for my card
	[ I also added a couple of constants for more display cards ]
if_sn.c:
        - allocate sc->space using malloc (Scott wanted this).
        - make csr accesses use NIC_PUT/GET, remove sc->sc_csr.
        - add multicast and IFF_PROMISC support. multicast isn't
                well tested, but I made sure the unicast case still
                works.
        - finish the new arp interface, remove sc->sc_enaddr
if_snreg.h:
        - remove struct sonic_reg
if_snvar.h:
        - add NIC_PUT and NIC_GET macros a la if_ae
        - remove sc_txhead, it isn't used.
if_sn_nubus.c:
        - clean up support for my SE/30 card.
        - Move add_nubus_intr from if_sn.c (to keep if_sn.c MI)
if_sn_obio.c:
        - make Q610, C610, Q650, C650, Q800 use EXBUS.
        - PB500 had a "return" where "break" was intended. PB500
                probably wasn't working.
        - move add_nubus_intr from if_sn.c.
        - add an "explanation" why Apple's ethernet addr is encoded
                in token ring format in the PROM.
1997-03-30 19:51:44 +00:00
scottr 1c0a3c8ce7 Several more changes to move us toward MI-ness:
- Use more consistent and portable types in the softc.
 - Map registers using an array of bus_size_t offsets, and set up the
   mapping in the attach code (thanks to Jason Thorpe for suggesting
   this!).
 - Disable the ae-specific watchdog, which is no longer necessary in
   the general case.

Still remaining:  split out functions used to copy data to/from the
card, and retain a way to have a local driver name with the MI code.
1997-03-19 08:04:38 +00:00
briggs 79c7b2b3f4 Help this compile and get the nubus address into myaddr instead of
sc->sc_arpcom.ac_enaddr.
1997-03-18 00:34:31 +00:00
scottr 52348e9646 Some cards we identify as InterLAN cards do not seem to have the MAC
address in the configuration ROM.  For these, fall back to the old method
if we can't find the expected sResource record.
1997-03-17 20:26:01 +00:00
is 530a88d144 On request from Allen Briggs, converted this to new ARP
system. Somebody should actually test if this compiles (and works) on
Mac68k... I only carefully checked cvs diff -u.
1997-03-16 13:41:14 +00:00
briggs 4b6b2bb9f8 SONIC driver--originally from pica. Much work done by Dennis Gentry and
Takeshi Yanagisawa to get it working.  Some minor hacking by me here and
there.
1997-03-15 20:26:35 +00:00
scottr 702735759b Defer enabling NuBus slot interrupts until all slots have been probed
and drivers attached.  This removes the need for the MAC68K_BROKEN_VIDEO
option.  From Allen Briggs.
1997-03-15 18:33:44 +00:00
is 07b064e02e New ARP system, supports IPv4 over any hardware link.
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.
1997-03-15 18:09:08 +00:00
scottr 12098dae8a Add missing call to ae_nb_get_enaddr(), from <kei_sun@ba2.so-net.or.jp>.
Fixes PR 3312.
1997-03-10 17:55:15 +00:00
scottr 705c637874 Define aesetup() to return an int, so that the attach function can
determine whether there was an error (if so, we unmap the slot space
for this device).  Use this functionality to tell the attach function
that we couldn't clear the card's buffer.

Also in aesetup(), eliminate the bogus repetition of the error message
we print when the buffer clear actually fails.  Noticed by Hauke Fath.
1997-02-28 08:56:05 +00:00
scottr 0b3eb5f3f2 Remove duplicate <machine/bus.h> include that crept in. 1997-02-28 07:54:02 +00:00
scottr 17fdd597df Move the NuBus-specific watchdog function from if_ae.c to if_ae_nubus.c,
and allow the attach function to override the default watchdog.  Also,
do some minor cosmetic surgery (rename bus space tags/handles and some
KNFing I missed the first time around).
1997-02-28 07:52:44 +00:00
scottr a2a40938b1 Move bus-independent setup code back into if_ae.c; enable the use of
configuration flags.  For NuBus cards, attempt to find the MAC address
in the declaration ROM resources.
1997-02-25 06:36:04 +00:00
scottr f03ee128a3 Add support for the Kinetics EtherPort SE/30, from Ken Nakata. 1997-02-24 07:34:18 +00:00
scottr 965cffaf20 NUBUS_SLOT_TO_PADDR -> NUBUS_SLOT2PA 1997-02-24 06:20:04 +00:00
scottr 6b0774a865 Split out the NuBus attachment code, and convert to bus.h 1997-02-24 06:03:55 +00:00
scottr ec6725f267 Make this compile again; missed this file when fixing nubus.h errors. 1997-02-22 00:00:34 +00:00
scottr b1e5912330 We need bus.h now, due to recent nubus_attach_args change. 1997-02-20 00:23:25 +00:00
scottr c079123e89 Add a bus space tag field to nubus_attach_args 1997-02-19 06:21:49 +00:00
scottr 07bde0d4e7 Revamp mainbus and obio autoconfiguration, with some direction (and the
indirect bus code framework) from Jason Thorpe.  This allows us to dump
bus_scan() and bus_print(), and move bus_peek() and bus_mapin() to the
NuBus code (since they'll eventually go away, anyway).
1996-12-17 06:47:37 +00:00
scottr b96c3097ed Define struct nubus_attach_args 1996-12-17 03:56:11 +00:00
scottr 9b4055eb72 Convert all foo_match() functions to use a `struct cfdata *' for their
second argument.  The NuBus autoconfig code had to be reorganized as a
result of this, and looks much more like a directly-attached bus now.
These changes eliminate __BROKEN_INDIRECT_CONFIG.
1996-12-16 16:17:02 +00:00
scottr 289b73be85 Fix a raft of printf format strings and some declaration problems for
the case where we define DEBUG.  From Erik Bertelsen, closes PR 2871.
1996-10-21 05:42:23 +00:00
christos 40ecbf8e72 backout previous kprintf change 1996-10-13 03:21:13 +00:00
christos 06555645c2 printf -> kprintf, sprintf -> ksprintf 1996-10-11 00:24:36 +00:00
cgd 2a73ef60b7 change cfprint_t type definition to take a const char *, rather than
a char *, because that's what was really intended, and because
if the print function modifies the string, various things could become
unhappy (so the string should _not_ be modified).
1996-08-27 21:53:46 +00:00
scottr 89f4fddbfe Add a way to tell grf_establish() that internal video doesn't actually
occupy a slot.  This is necessary so that GRFIOCMAP can find the correct
physical address of the framebuffer.  Fixes P550, some LC models, and
perhaps the PB520.
1996-08-04 06:03:47 +00:00
scottr d048582c60 New grf attachment code, mostly by Jason Thorpe with some cleanup by me.
This will allow dt and X to work with a generic kernel, rather than
compiling different kernels that attach grf0 to a NuBus adapter or
internal video.
1996-05-19 22:27:04 +00:00
scottr 5b680d94ba Make this compile if DEBUG is defined. 1996-05-08 15:14:53 +00:00
briggs 38b11e7c82 Get rid of some old, now meaningless macros. 1996-05-07 03:13:40 +00:00
briggs 8ed57c561e Clean up an error printf() and use proper macro. 1996-05-07 03:12:12 +00:00
briggs 314dd5b20b Set sc_slot--we need it later. 1996-05-06 03:27:20 +00:00
briggs 6026c5dfd7 Ooops. Remove debugging printf(). 1996-05-06 03:27:06 +00:00
briggs db495102be Do not depend on the nubus being mapped in one huge segment. 1996-05-06 01:08:24 +00:00
briggs 37163421a3 Prototype for -Wall -Wstrict-prototypes -Wmissing-prototypes -Wno-uninitialized
Also change the device probing scheme to use something a bit more rational.
A current side-effect is that nubus cards are double-mapped.  I expect
to fix that shortly.
Also change splclock() to block everything but serial hardware interrupts.
1996-05-05 06:15:56 +00:00
scottr 9d1cd5e9be Make this compile again; will need to deal with matchbyname() later, though. 1996-04-04 06:59:29 +00:00
briggs 1fa595a2f1 Clean up for higher warning level. 1996-04-01 01:35:48 +00:00
thorpej 82d914d090 New device attachment scheme:
- split softc size and match/attach out from cfdriver into
	  a new struct cfattach.

	- new "attach" directive for files.*.  May specify the name of
	  the cfattach structure, so that devices may be easily attached
	  to parents with different autoconfiguration semantics.
1996-03-17 01:26:49 +00:00
briggs 2a61903be4 Patch to at least recognise FOCUS EtherLAN. From Erik Bertelson
<erik@sockdev.uni-c.dk>
1996-01-12 04:52:58 +00:00
briggs 46a202fc6a Fixes from PR #1931 w/ minor mod in vm_machdep.c 1996-01-12 04:16:25 +00:00
briggs 4d52f57876 Add Technology Works ethernet card. From
Kazunari Nakamura <kazu@nkk.co.jp>.
1995-09-24 14:13:56 +00:00
briggs 503d3c4927 Add constants for CSI's communications card. 1995-08-25 21:20:57 +00:00
briggs 1ed5c0babc Some code to support a vector passed in from booter 1.8. 1995-08-24 04:27:16 +00:00
briggs 70065c2ed5 Nuke int_video_start in favor of consistent use of mac68k_vidlog.
Don't find the internal video more than once.
Probe for internal video before nubus instead of after.
1995-08-04 02:55:06 +00:00
briggs ff5fa674dd Fix the internal video probe again. 1995-07-30 21:35:00 +00:00
briggs 3758e23b79 Add another routine for the grf display-specific drivers to return a physical
address.
1995-07-06 17:13:45 +00:00
briggs 932a8fc9af Set and use new fboff element from grfmode structure. 1995-07-02 00:30:25 +00:00
briggs 3401cca400 Fix buglet that was missed when converting nubus to non pa==va mapping. 1995-07-01 23:40:38 +00:00
briggs 705e6bd12b Fix oversight. 1995-06-30 05:21:33 +00:00
briggs 697011742c Add some debugging (conditional on DEBUG). Add a more correct probe for
internal video.  Clean up nubusprint() a bit.
1995-06-21 02:59:08 +00:00
briggs e4ff96e47c Make NUBUS_BASE_TO_SLOT and reverse not depend on VA==PA for NuBus.
Add constant for DRSW_FARALLON.
1995-06-21 02:57:19 +00:00
briggs 6ff2537ad3 Make no assumptions about the absolute address of nubus cards. 1995-06-21 02:52:09 +00:00
briggs 56b5c26854 Get rid of a printf() that got left behind in the probe. 1995-05-06 18:44:48 +00:00
briggs 331e2bd82b Add some code/defines to differentiate Asante and Interlan/Gator cards
correctly with the new nubus code.
1995-05-05 05:40:13 +00:00
briggs 59b4da2b39 Add new nubus handling that's much more robust.
Update via, if_ae, and grf accordingly.
Revamp grf.
1995-04-29 20:23:36 +00:00
briggs 13efb6c197 First pass of KNFication. Needs more. 1995-04-21 02:47:35 +00:00
briggs 13dc6a7a07 Make nubus indirect. Duh. 1995-04-12 14:57:40 +00:00
cgd 4fdae7a0ae new RCS ID format. 1994-10-26 08:45:48 +00:00
briggs 03095bbdd6 Don't assume NuBus is at NBBASE. We might remap it. 1994-06-26 12:59:19 +00:00
briggs ffe153db27 Do a cleaner probe. This still needs lots of work, but will work on
reasonable cards...
1994-02-23 04:38:24 +00:00
briggs 42ad9a0be4 Minor tweaks to prevent hangs and other bad behavior... Needs much more
work now that we have more info (Designing Cards and Drivers for the
Macintosh Family Hardware.
1994-02-22 01:11:33 +00:00
briggs d110378226 Just playing include-cop. 1994-01-30 01:11:36 +00:00
briggs 982b2aa969 Update ethernet driver to use config.new. At least, it's a first stab
working from mycroft's magnum changes to if_ed.c.
1993-12-21 03:18:00 +00:00
briggs e99f003a7d Update to current work in progress. This includes an update to
use config.new.
Numerous updates to console so it works better on the SE/30 screen.
Some nice changes from Brad Parker for handling NuBUS and an ethernet
driver that I haven't worked on, yet.
1993-11-29 00:32:22 +00:00
briggs 8ae7f8bceb The current MacBSD architecture sub-directory for NetBSD-0.9--more or
less.  It needs some help to get to be -current.  Support for minimal
hardware on the SE/30, II, IIx, and IIcx exists.
1993-09-29 06:08:37 +00:00