Disk & Controller only at the moment.
This driver still needs some touchup (error recovery is not quite
good, MCA DMA controller goo should be moved to driver independant
location), but is working enough to be usable for others. And I
want this under CVS control :)
Thanks to Scott Telford <st@epcc.ed.ac.uk> for providing me docs for
these devices (IBM DASD Storage Interface Specification for MCA rev. 2.2).
- support VR4122 ICU register map.
- support VR4122 intr levels.
XXX: currently if 'options VR4122' is defined,
XXX: cannot specify 'options VR4121','options VR4111', 'options VR4102'.
XXXX: i have not the VR4122 based hardware.. so no check for VR4122.
loaded. Added more comments. Fixed the perspective of a 24-bit
device from the original sun4 code to match the sun2. For now,
we don't double-map pages into DVMA space by hand, we're back
to using pmap_enter. Be more paranoid about saving and
restoring the MMU user context.
that became apparent when UBC was added: store a pointer to
the process itself, not a pointer to ci->ci_curproc.
This gets us back to where we were before UBC went in: MP
kernels get to single-user mode, and can run processes on
both CPUs, but things go south when we try to come into
multi-user mode.
reserving RAM in the bus_mem extent map. Problem pointed
out by Artur Grabowski.
- Work around a slightly annoying bit of behavior exhibited by
the UP1000 firmware. The UP1000 firmware reports the space
consumed by the "ISA hole" in the same MDDT entry as two
chunks of RAM (on either side of the hole) used by the PALcode,
all as one "reserved for PALcode" chunk. We must take this
into account when reserving RAM in the bus_mem extent map.
* turn ad-hoc `pmap resources allocated during sleep' into a panic condition
(this should all be prevented by higher level VM locking).
* arrange for ENOMEM to be returned if PMAP_CANFAIL is on, and malloc()
and/or pool_get() fail.