naming conflicts between bus attachments on ports that can have
multiple instances of the LANCE.
Changed struct ifnet to have a pointer to the softc of the underlying
device and a printable "external name" (name + unit number), thus eliminating
if_name and if_unit. Updated interface to (*if_watchdog)() and (*if_start)()
to take a struct ifnet *, rather than a unit number.
naming conflicts between bus attachments on ports that can have
multiple instances of the LANCE.
Changed struct ifnet to have a pointer to the softc of the underlying
device and a printable "external name" (name + unit number), thus eliminating
if_name and if_unit. Updated interface to (*if_watchdog)() and (*if_start)()
to take a struct ifnet *, rather than a unit number.
device and a printable "external name" (name + unit number), thus eliminating
if_name and if_unit. Updated interface to (*if_watchdog)() and (*if_start)()
to take a struct ifnet *, rather than a unit number.
naming conflicts between bus attachments on ports that can have
multiple instances of the LANCE.
Changed struct ifnet to have a pointer to the softc of the underlying
device and a printable "external name" (name + unit number), thus eliminating
if_name and if_unit. Updated interface to (*if_watchdog)() and (*if_start)()
to take a struct ifnet *, rather than a unit number.
device and a printable "external name" (name + unit number), thus eliminating
if_name and if_unit. Updated interface to (*if_watchdog)() and (*if_start)()
to take a struct ifnet *, rather than a unit number.
naming conflicts between bus attachments on ports that can have
multiple instances of the LANCE.
Changed struct ifnet to have a pointer to the softc of the underlying
device and a printable "external name" (name + unit number), thus eliminating
if_name and if_unit. Updated interface to (*if_watchdog)() and (*if_start)()
to take a struct ifnet *, rather than a unit number.
device and a printable "external name" (name + unit number), thus eliminating
if_name and if_unit. Updated interface to (*if_watchdog)() and (*if_start)()
to take a struct ifnet *, rather than a unit number.
naming conflicts between bus attachments on ports that can have
multiple instances of the LANCE.
Changed struct ifnet to have a pointer to the softc of the underlying
device and a printable "external name" (name + unit number), thus eliminating
if_name and if_unit. Updated interface to (*if_watchdog)() and (*if_start)()
to take a struct ifnet *, rather than a unit number.
Added a new routine kbdreset() to conduct a full keyboard reset.
Added definitions of all keyboard command codes and responces.
Replaced kbd_set_leds() with new function that used kbdcmd().
The keyboard attach function now detects whether a keyboard is
attached or not.
irq_claim().
Clear the active flag in the irq handler when it is removed from the irq
chain in irq_release().
Checks for podule IRQ's in irq_claim() are now guarded with
#if NPODULEBUS > 0
fiq_release() now retrieves the FIQ more registers and places them
back in the fiq handler structure.
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.
This removes the need to have enough chip memory to load the kernel
when booting. Kernel memory is dual-mapped (VA == 0 and VA == PA)
for enabling the MMU, and the VA == PA mapping removed after start_c()
has completed. Chip memory is still required for the /dev/reload
process.
Startup modified to work with kernel loaded directly into fast memory.
This removes the need to have enough chip memory to load the kernel
when booting. Kernel memory is dual-mapped (VA == 0 and VA == PA)
for enabling the MMU, and the VA == PA mapping removed after start_c()
has completed. Chip memory is still required for the /dev/reload
process.
loading into fastmem. This removes the requirement that the kernel fit
into chipmem.
Add a -Z flag to force loading into chip memory.
Add a -s option for compatibility with my bootblock loader.
Move the test exit to just before starting the kernel; this lets the
test mode actually load the kernel and do the version checks.
handling code so that if a given interrupt is disabled (and therefore
can't have caused the actual I/O interrupt), its handler won't be
called even if its bit is set in the interrupt register.
against the MMU switch code being in different locations between
the running kernel and the new kernel. Returns ENODEV if the reload
fails.
Change the error return from EFAULT to ENOEXEC when kernel_reload
gets a short write on the exec header.
reasons: it won't attach as console, and there's currently no way to do
keyboard input on TC machines), and has no real RAMDAC (colormap, cursor,
etc.) support. Digital UNIX does not support CFB frame buffers in the
Alpha, but they appear to work OK (with an appropriate monitor) in my
3000/300.
reasons: it won't attach as console, and there's currently no way to do
keyboard input on TC machines), and has no real RAMDAC (colormap,
cursor, etc.) support.
Clean up the debugging code a bit and the warnings from -Wall.
Don't define ESDEBUG - it can now be set from the config file.
If the Ethernet chip gets reset during the copy of the transmit buffer,
requeue the current packet and reinitialize the controller. This recovers
from an apparent hardware bug when running on my A2000/Zeus system.
a condition that occurs with some slow SCSI devices when they disconnect
(e.g. the AppleCD 600), generating spurious selection interrupts.
- Reorganize the debugging code slightly.
Don't mess with the flags when entering a software interrupt.
Use IF, not VIF.
NOTE: These changes break dosemu, but are required for proper emulation.
Don't seek to track 0 before checking for diskchange: if drive steps,
the diskchange flag is cleared. Just select the drive, then test for
a diskchange.
Clean up for -Wall with FDDEBUG defined, and fix a message typo.
Only call Debugger() if DDB is defined.
If the wait for reselect is interrupted and sc_nexus was NULL, only
print the debug message if DEBUG is defined.
matchpodule() is now used to test podule_attach_args for correct id's.
Moved the probing code that used the softc into the attach function.
Fixed compiler warnings generated with -Wall.
the podulebus attach function.
For each podule found, config_found_sm() is now called. Device drivers
now only need to look at the podule_attach_args information during
the probe.
A new function matchpodule() has been added for use in the
podule device driver probe functions.
disklabel.h: new disklabel format (from Dale Rahn)
param.h: new delay stuff (from sun3 port)
vmparam.h: nuke eiomap for new autoconfig (from jason)
z8530var.h: for MI driver (from jason)
- new autoconfig scheme+vme (autoconf.c,clock.c,clockreg.h,
clockvar.h,vm_machdep.c)
- new interrupt scheme (isr.c,isr.h,locore.s,machdep.c,vectors.s)
- switch to MI zs driver (conf.c)
- new disklabel code, from Dale Rahn <drahn@pacific.urbana.mcd.mot.com>
(disksubr.c, compatable with theo and dale's openbsd version)
- new delay() based on sun3 port, using dynamic configuration from
the sparc port (intergrated by me), calibration moved to startup
by jason. (locore.s,machdep.c)
- clean up: nuke eio space (genassym.c,locore.s,pmap.c,pmap_bootstrap.c),
nuke STACKCHECK (locore.s), prevent maxuser overflow (pmap.c),
Contributed by Jason R. Thorpe <thorpej@og.org> (thanks!)
of a lot of instability problems on the Falcon. I also enabled DMA on
interrupt basis for the Falcon.
- Try to handle targets that request too much data more sanely.
- Some fixups for strict prototypes + -Wall
Thanks to Markus Kilbinger for providing the debugging support.
- Disable interrupt-driven PDMA when writing (use polled PDMA instead).
- Be more careful about when to flag a transfer as completed.
The result of these changes is that interrupt-driven PDMA works well
enough to bring the system up.
bus-independent core driver. Tested on all three bus types, including
an isa 3c509 masquerading as an eisa device (use ep* at eisa? slot ? in
your kernel config file to catch this one).
XXX Driver still needs to be converted to <machine/bus.h>
Argh, why is a fuction from the RetinaZ2 console driver in the console
driver for the RetinaZ3 ? Fixed.
Fixed some warnings from -Wall if you don't use -DDEBUG
allow any baudrate the hardware allows, and to forbid two baudrates
(50 and 75) which the hardware does NOT support but which the old
speed conversion table pretended to support.
fixes the following problems:
- Timeout on START/STOP unit command (ie. when spinning up the drive)
Side effect of this fix is to reduce the busy-wait time in CMD phase.
- Occasionally, the driver would lose an SBIC interrupt, especially when
a tape drive was re-selecting on a busy SCSI bus.
that Ethernet cards have a chance to work. In particular, this change
has been tested on the IIci, IIsi, and LCIII. The crucial info behind
this code was the result of a lot of work by Julian Bean.
after changing the cable type, as specified in the chip documentation.
Also, sanity-check that sc_dma is valid in case a Sun4m ever exists without
a ledma.
burst size when transferring data.
- Changed ledma attach code to pay attention to the PROM's notion of what
cable type is being used. Note that this patch does not fix the problem
recently discussed on port-sparc; in most cases the PROM doesn't know
what cable type is being used. The default is now TP rather than AUI,
though. A complete fix is forthcoming.
- Added support for multiple floppy drives
- CyberVision64:
- has now a real console mode
- another bugfix for boards with the new S3 chip
- Ariadne:
- fixed crashes with aeput (mbuf failure)