an unaligned buffer. The last word of the buffer was not getting flushed
if the buffer was unaligned and fit in a single DMA segment. Now dump(8)
works on both MIPS1 and MIPS3 DECstations.
unaligned transfers and adjust the physical address to align the transfer.
If the buffer end just crossed the page boundary, the computation of the
NEXTPTR physical address resulted in using -1. The cleanup at the end of
the DMA transfer would try to copy the residual data to physical address
0x1ffffffc. This would silently corrupt data on the R3000 and usually
would hang the R4000.
configured, but after all adapters have been configured. When multiple
adapters are present, only the last configured adapter could be matched
to the boot device slot. The adapter attach routines now check if that
adapter slot matches the boot device slot and saves the softc pointer
for that controller. Then when the disks are configured, dk_establish()
matches the appropriate controller.
byte) boundaries don't work correctly. Make use of the SDR0/SDR1 registers
to adjust the buffer alignment when starting the DMA transfer. Block device
I/O done by the filesystems will usually be aligned correctly, but character
device I/O may not be aligned correctly. This should fix the problems with
dump(8) failing randomly on DECstations.
- Nuke tc_badaddr() check from asc_tc because the existency check is already
done for real TC devices.
- Nuke tc_badaddr() check from asc_ioasic because it is a builtin device
found in all of IOASIC DECstations.
re-enabled with ASC_IOASIC_BOUNCE.
All DMA buffered processing is now done in the bus-specific DMA routines
in asc_ioasic.c and asc_tc.c.
Disable several informational messages dealing with non-empty FIFO conditions,
but allow enabling with ASC_DIAGNOSTIC for troubleshooting.
* Don't print DMA_OUT message in the `normal' case of a 16-byte residual.
* ioasic-connected 53c94 devices are always clocked at 25MHz even on
machines with 12.5MHz TurboChannel.
cfattach code for TC SCSI option cards and ioasic 53c94 baseboard SCSI.
ascvar.h: shared softc declarations
asc_ioasic.c: ioasic front-end code.
asc_tc.c: Turbochannel option (and 5000/200 basebard) front-end code.
* ioasic_attach meeds more work to eliminate pmax_type dependency
and to verify the clocks speed passed to 53c94.
* Add prototypes for asc script entry points; should compile with
-Wstrict-prototypes -Wmissing-prototypes.
* Use tcvar.h interface. The usage of tc_syncbus() and tc_mb() may
not be quite stylistically on an Alhpa, but it apparently makes no
difference on the eerly-generation Alpha CPUs in TC Alphas.