Home | History | Annotate | Download | only in dev
History log of /src/sys/arch/amiga/dev/zbus.c
RevisionDateAuthorComments
 1.78  03-May-2023  phx Driver for the MNT ZZ9000 Zorro board. Submitted by Alain Runa.

It was formerly known as mntzz, which Alain released three years ago.
Since then, the ZZ9000 had several firmware updates which changed some
hardware interface details rendering the former driver non functional in some
aspects. Also the audio card plug-in ZZ9000AX became available from MNT
Research. Considering the major rewrite of the driver in some areas he
decided to rename it to zz9k(9). The driver consists of several sub-drivers
each addressing different functionality of the MNT ZZ9000 & ZZ9000AX combo
card.

zz9k* is the main card driver and need to be enabled if any of the sub-driver
is enabled. zz9k on its own is not very useful, it only provides a common
zz9kbus for the other sub-drivers to connect to, so only enable it if one of
the zz9k sub-drivers are enabled.
zzfb* represents the graphics driver for the boot console and the dumb
framebuffer for X11 based on WSCONS. ZZFB_CONSOLE option enables the ZZ9000
to become the boot console.
zz* represents the ethernet interface of the ZZ9000. It basically works but
is considered experimental.
zzax* represents the ZZ9000AX audio card driver, audio* attaches to it to
provide audio output and input functionality. The driver is not functional
yet.
zzusb* represents the ZZ9000AX usb driver. It was not implemented yet and
probably never will.
 1.77  07-Aug-2021  thorpej Merge thorpej-cfargs2.
 1.76  27-Apr-2021  thorpej branches: 1.76.6;
The Amiga and Atari ports abuse some autoconfiguration internals as part
of their early console bring-up, so we need to expose some of the new
internals to them and adapt the call sites.
 1.75  04-Oct-2017  rkujawa branches: 1.75.20;
Update driver to support firmware v1.5+.

From Lukas F. Hartmann. With hopeful style fixes from me.
 1.74  03-Oct-2016  rkujawa Add a driver for MNTMN VA2000.

Supports accelerated wsdisplay console and running X via wsfb driver.
 1.73  26-Nov-2012  rkujawa branches: 1.73.14; 1.73.18;
Try to make z3rambd less crude. Also support BigRamPlus, FastLane Z3 RAM and
DKB3128.
 1.72  25-Nov-2012  rkujawa Add z3rambd driver, it allows using Zorro III RAM boards as block devices.
This makes sense in machines equipped with RAM on accelerator boards, where
difference between accelerator RAM and Zorro III RAM is significant. Hacks
were needed in amiga_init.c and zbus.c, but they are only enabled if this
driver is present in kernel. Otherwise user will get the usual behaviour.
 1.71  25-Nov-2012  christos readability fix.
 1.70  25-Nov-2012  rkujawa Use constants, not magic values.
 1.69  27-Oct-2012  chs split device_t/softc for all remaining drivers.
replace "struct device *" with "device_t".
use device_xname(), device_unit(), etc.
 1.68  19-Jan-2012  rkujawa branches: 1.68.6;
Tons of enchancements to MD PCI code:
- The G-REX 4000 and G-REX 1200 are now really supported and working (still only 1st slot but the rest are a matter of time).
- Add bridge identification to p5pb, simplifies the driver and make it more user-friendly.
- Retire P5PB_GENFB and P5PB_OLD_FIRMWARE options, these are now handled automatically, depending on used hardware and firmware.
- Add PCI bus reconfiguration support to p5pb (PCI_NETBSD_CONFIGURE), allows using G-REX without boot to AmigaOS.
- Bring p5pb registers desription up to date with my knowledge.
- Add a lot of debugging code to p5pb (enabled by P5PB_DEBUG kernel option).
- Fix PCI_NETBSD_CONFIGURE in mppb (now it really works).
- Fix quirk handling in zbus.
- Update GENERIC.in and regen the kernel configs.
- Misc cleanup.
 1.67  21-Sep-2011  rkujawa branches: 1.67.2; 1.67.6;
Fix build for both amiga and amigappc (discussed with christos).
 1.66  20-Sep-2011  christos try to make this compile again.
 1.65  17-Sep-2011  rkujawa Add driver for Prometheus PCI bridge.
Change approved by phx.
 1.64  04-Aug-2011  rkujawa Add basic PCI support for amiga port.
Add missing bus_space(9) methods needed for MI PCI.
Add p5pb(4) - Phase5 PCI bridge driver (and the man page).
Add quirks table to zbus(4) - needed for p5pb.
Change approved by phx.
 1.63  03-Jun-2011  matt CFATTACH_DECL_NEW, device_t, cfdata_t
 1.62  20-Dec-2010  matt branches: 1.62.2; 1.62.6;
Move counting of faults, traps, intrs, soft[intr]s, syscalls, and nswtch
from uvmexp to per-cpu cpu_data and move them to 64bits. Remove unneeded
includes of <uvm/uvm_extern.h> and/or <uvm/uvm.h>.
 1.61  17-Oct-2007  garbled branches: 1.61.42;
Merge the ppcoea-renovation branch to HEAD.

This branch was a major cleanup and rototill of many of the various OEA
cpu based PPC ports that focused on sharing as much code as possible
between the various ports to eliminate near-identical copies of files in
every tree. Additionally there is a new PIC system that unifies the
interface to interrupt code for all different OEA ppc arches. The work
for this branch was done by a variety of people, too long to list here.

TODO:
bebox still needs work to complete the transition to -renovation.
ofppc still needs a bunch of work, which I will be looking at.
ev64260 still needs to be renovated
amigappc was not attempted.

NOTES:
pmppc was removed as an arch, and moved to a evbppc target.
 1.60  20-Aug-2007  is branches: 1.60.2;
First part of amigappc support patches by Frank Wille.
 1.59  20-Aug-2007  is fix capitalization error
 1.58  20-Aug-2007  is Fix spelling error.
 1.57  04-Mar-2007  christos branches: 1.57.2; 1.57.10; 1.57.14; 1.57.18;
Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
 1.56  11-Dec-2005  christos branches: 1.56.26;
merge ktrace-lwp.
 1.55  13-Jun-2005  jmc branches: 1.55.2;
Fix a ton of const/volatile issues shown with new warning flags
 1.54  13-Feb-2004  wiz Uppercase CPU, plural is CPUs.
 1.53  04-Jan-2004  wiz Spell controller with two ls. Inspired by miod@openbsd.
 1.52  19-Dec-2003  is man/prod id submitted by Pavel Chwalowski in PR 23789.
 1.51  01-Apr-2003  thorpej branches: 1.51.2;
Use PAGE_SIZE rather than NBPG.
 1.50  01-Jan-2003  thorpej Use aprint_normal() in cfprint routines.
 1.49  02-Oct-2002  thorpej Use CFATTACH_DECL().
 1.48  27-Sep-2002  thorpej Declare all cfattach structures const.
 1.47  25-Apr-2002  aymeric o replace definitions by declarations in header files
o put definitions where due
o cleanup some types (u_int -> vaddr_t's for example)
o minor other cleanup
 1.46  28-Jan-2002  aymeric add __KERNEL_RCSID as suggested by Luke Mewburn
 1.45  26-Jan-2002  aymeric - ANSIfy
- remove some trailing spaces/tabs
- minor style nits
 1.44  13-Sep-2000  is branches: 1.44.4; 1.44.8;
Missing piece of PowerPC support.
 1.43  25-Nov-1999  is Jens, not Joerg
 1.42  25-Nov-1999  is Add a few boards we know about.
This should really be table-driven and optional.
 1.41  25-Sep-1999  is branches: 1.41.2; 1.41.8;
vm_offset_t -> vaddr_t/paddr_t
 1.40  22-Jun-1999  is Align adresses better
 1.39  31-Mar-1999  mhitch branches: 1.39.4;
Add CyberStorm MK III.
 1.38  11-Nov-1998  veego Add the Ariadne II.
 1.37  12-Jan-1998  thorpej Adjust for changes to config.
 1.36  19-Oct-1997  is zbus.c
 1.35  19-Oct-1997  veego Add an entry for the CyberVison 64/3D to the aconftab and to the
preconftab list.
 1.34  15-Sep-1997  is A few more boards. This really should be split into a seperate file, only
active if the kernel has ZBUS_VERBOSE similar to PCI, EISA, (podulebus?),
but I don't have that stuff ready yet.
 1.33  27-Mar-1997  veego branches: 1.33.4;
s/ae/le/ for the recent Ariadne changes.
 1.32  05-Mar-1997  veego branches: 1.32.2;
PicassoIV and Domino proto 16M product id's.
 1.31  06-Jan-1997  is Add manufacturer/product id for Apollo-68060 accellerator board.
 1.30  31-Dec-1996  is Add names for some more Phase5 boards.
 1.29  23-Dec-1996  veego Get rid of __BROKEN_INDIRECT_CONFIG.
 1.28  09-Dec-1996  is It turned out that my orginal docs were wrong wrt. Blizzard IV
scsi... it is NOT nearly identical to the Blizzard 2060 scsi option.
Make the name reflect this. Driver cleanup will follow.
 1.27  17-Oct-1996  is Change Blizzard IV/1260/2060 to the name used by the driver.
While we're here, clean up a few other entries.
 1.26  13-Oct-1996  christos backout previous kprintf change
 1.25  10-Oct-1996  christos printf -> kprintf, sprintf -> ksprintf
 1.24  27-Aug-1996  cgd 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).
 1.23  09-Aug-1996  is Add manu/prod id for the DMI resolver board here. (No, no driver yet)
 1.22  22-Jul-1996  is Note Blizzard IV and Blizzard 2060 (scsi?) options. While we're here,
correct a typo in a comment.
 1.21  17-Jul-1996  is Being bored, decided to scan the existing drivers for further additions
to the "not configured" list:
Added some devices, replaced an obvious placeholder.
 1.20  17-Jul-1996  is Add two manufacturer/product id combinations which I stumbled over analyzing
an unrelated bug report. This will make kernel startups a bit more readable
in the presence of unsupported hardware.
Information contributed by Andreas Bussjaeger.
 1.19  19-May-1996  veego - grf_cl.c, grf_clreg.h: added support for Piccolo SD64
- grf_cv.c, grf_cvreg.h, ite_cv.c: some cleanups
- grf_rh.c, grf_rhreg.h, grf_rt.c: new blank ioctl and some KNF
- grf_et.c, grf_etreg.h, ite_et.c: new graphics driver for et4000 based board
(oMniBus, Domino and Merlin)
- grfabs_cc: fix PR#2034
- grfvar.h: new grfunit for GRF_ET4000_UNIT
- scsidefs.h: no longer useful
- zbus.c: new entries for: Piccolo SD64, oMniBus, Domino and Merlin
 1.18  09-May-1996  is First part of M68060 and DraCo support.

* for the M68060 part: store buffer and branch target cache aren't
enabled yet (this needs cleanup of lots of locore.s code which is a
maze of little passages, all a little different) (and it wasn't yet
tested in an accellerated Amiga, only in the DraCo).

I've included a workaround for 2 of the CPU bugs in chips with Masks
1F43G and earlier, but didn't bother to deal with the can of worms
in the [0-3]D11W chips. Be sure to get "68060 rev. 1" or more
reported at kernel startup time, or at least mention it (or the mask
revision, if available) when reporting problems.

* for the DraCo: only machines with a CIA timer.

I assigned machine id 32000+nn (0x7Dnn), where n is the machine
readable Quicklogic custom chip revision (also printed at boot
time). "Guaranteed to work" up to rev. 3, newer DraCo's aren't
guaranteed to have any CIA (we don't have a driver for the new timer
yet).

Supported are:

- MF-II keyboards on the native interface and A3000 keyboards via
the CIA.
- builtin SCSI interface (yet another instance of siop)
- CIA timer.
- Zorro II devices which don't do DMA (don't get mapped to Zorro II
address space in the DraCo)
- "local bus" devices which are autoconfigured by the boot rom
(should be all); only an Altais driver is there (looks like a Retina Z3)

Not yet supported are:

- native timer of newer machines.
- Real Time Clock.
- serial, parallel + floppy on the SuperIO chip (that is also: no mouse)

XXX You need an enhanced boot loader, which will committed in a few days.

XXX std.draco should and will go away.
 1.17  28-Mar-1996  is Emplant SCSI driver backend by Sean Riddle and Bo Najdrovsky.
 1.16  17-Mar-1996  thorpej 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.
 1.15  06-Mar-1996  is Altais graphics board support, and some nicer formatting of preconftab.
Closes PR #1812 by myself.
 1.14  02-Mar-1996  veego Updated for the new CyberVision64 console
gen_cvtab.c is no longer needed
 1.13  27-Dec-1995  chopps fixup the table (pr#980) from Ignatios Souvatzis
 1.12  09-Oct-1995  chopps new cybervision 64 grf from Bernd Ernesti <bernd@arresum.inka.de> and others
update config files (adding missing scsibus entry for aftsc0)
 1.11  07-Oct-1995  chopps new quicknet ethernet driver from Kortelainen Mika <k125374@cs.tut.fi>
 1.10  07-Oct-1995  chopps fixes for fastlane from Daniel Widenfalk <t94dwi@student.tdb.uu.se>
 1.9  30-Sep-1995  chopps fix typo (pr#1224)
 1.8  18-Aug-1995  chopps change for a2410 from is@Beverly.Rhein.DE (Ignatios Souvatzis)
 1.7  18-Aug-1995  chopps new Ariadne ether from Bernd Ernesti <bernd@arresum.inka.de>
 1.6  18-Aug-1995  chopps SCSI disconnects: siop from osymh@gemini.oscs.montana.edu (Michael L. Hitch)
and sbic from "Eduardo E. Horvath eeh@btr.com" <eeh@btr.btr.com>

Other cleanup (remove cpu040) and enabling IVS A500 support
from osymh@gemini.oscs.montana.edu (Michael L. Hitch)
 1.5  04-Jul-1995  chopps misc cleanup, better tty alloc for mfc. from osymh@gemini.oscs.montana.edu (Michael L. Hitch)
 1.4  23-Apr-1995  chopps new grfcl driver submitted by Ezra Story <ezy@panix.com>
 1.3  12-Feb-1995  chopps Many changes from osymh@gemini.oscs.montana.edu (Michael L. Hitch)
Now use amiga HW for soft interrupts, non-contig options (2 or many chunks),
interrupt handler lists, 4066 ethernet, 1291 scsi, option to defer level 6
interrupts to level 4 (deal with icky built-in serial port)
 1.2  05-Jan-1995  chopps fix a couple small bugs pointed out by Michael
 1.1  28-Dec-1994  chopps consolidate the zbusses. le support for multiple tx buffs and full use of 32k
RAM. AGA dbl PAL mode added for console. Many changes to siop--most not
yet done. All from osymh@gemini.oscs.montana.edu (Michael L. Hitch)
 1.32.2.2  05-Mar-1997  veego PicassoIV and Domino proto 16M product id's.
 1.32.2.1  05-Mar-1997  veego file zbus.c was added on branch is-newarp on 1997-03-05 22:41:04 +0000
 1.33.4.1  22-Sep-1997  thorpej Update marc-pcmcia branch from trunk.
 1.39.4.1  01-Jul-1999  thorpej Sync w/ -current.
 1.41.8.1  27-Dec-1999  wrstuden Pull up to last week's -current.
 1.41.2.1  20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.

I updated the amiga SCSI drivers, but completely untested yet (may not even
compile)
 1.44.8.4  03-Jan-2003  thorpej Sync with HEAD.
 1.44.8.3  18-Oct-2002  nathanw Catch up to -current.
 1.44.8.2  20-Jun-2002  nathanw Catch up to -current.
 1.44.8.1  28-Feb-2002  nathanw Catch up to -current.
 1.44.4.3  10-Oct-2002  jdolecek sync kqueue with -current; this includes merge of gehenna-devsw branch,
merge of i386 MP branch, and part of autoconf rototil work
 1.44.4.2  23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.44.4.1  11-Feb-2002  jdolecek Sync w/ -current.
 1.51.2.4  10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.51.2.3  21-Sep-2004  skrll Fix the sync with head I botched.
 1.51.2.2  18-Sep-2004  skrll Sync with HEAD.
 1.51.2.1  03-Aug-2004  skrll Sync with HEAD
 1.55.2.1  03-Sep-2007  yamt sync with head.
 1.56.26.1  12-Mar-2007  rmind Sync with HEAD.
 1.57.18.1  03-Sep-2007  jmcneill Sync with HEAD.
 1.57.14.1  03-Sep-2007  skrll Sync with HEAD.
 1.57.10.1  03-Oct-2007  garbled Sync with HEAD
 1.57.2.1  09-Oct-2007  ad Sync with head.
 1.60.2.1  06-Nov-2007  matt sync with HEAD
 1.61.42.2  12-Jun-2011  rmind sync with head
 1.61.42.1  05-Mar-2011  rmind sync with head
 1.62.6.1  23-Jun-2011  cherry Catchup with rmind-uvmplock merge.
 1.62.2.1  06-Jun-2011  jruoho Sync with HEAD.
 1.67.6.1  18-Feb-2012  mrg merge to -current.
 1.67.2.3  16-Jan-2013  yamt sync with (a bit old) head
 1.67.2.2  30-Oct-2012  yamt sync with head
 1.67.2.1  17-Apr-2012  yamt sync with head
 1.68.6.3  03-Dec-2017  jdolecek update from HEAD
 1.68.6.2  25-Feb-2013  tls resync with head
 1.68.6.1  20-Nov-2012  tls Resync to 2012-11-19 00:00:00 UTC
 1.73.18.1  04-Nov-2016  pgoyette Sync with HEAD
 1.73.14.1  05-Oct-2016  skrll Sync with HEAD
 1.75.20.1  13-May-2021  thorpej Sync with HEAD.
 1.76.6.1  03-Aug-2021  thorpej Adapt to CFARGS().

RSS XML Feed