This allows us to convert aucom to just another com attachment, and cleanup
some code in the com_arbus.c.
Additionally, we use a common com_cleanup routine rather than having a
zillion copies of it in the attachment points.
This has been tested on a number architectures, and it has been shown to get
close to comparable performance when COM_REGMAP is defined, and comparable
when it is not defined.
Approved by core@. Fixes PR port-evbmips/32362.
- always enable options MIPS3_ENABLE_CLOCK_INTR and just clear the compare
register in cpu_intr() to make CLKF_BASE() works
properly
- prepare only possible number of cpu_inttab
- use macro for interrupt priority number passed to arc_set_intr()
to avoid confusion
- merge arc_hardware_intr() into cpu_intr()
- check independent timer interrupt first in cpu_intr()
- tweak MIPS_SR_INT_IE before calling hardclock timer handlers so that
spllowersoftclock(9) will be invoked properly in hardclock(9)
- reenable interrupt for timer in cpu_intr() rather than each timer handlers
okay'ed by soda.
Note the real fix is to make CLKF_BASE() check all independent
interrupt sources including jazz and isa devices.
- use vmspace rather than proc or lwp where appropriate.
the latter is more natural to specify an address space.
(and less likely to be abused for random purposes.)
- fix a swdmover race.
in the TODO file. At least this fixes "sn0: receive buffers exhausted"
messages on my NEC-JC94.
XXX: does anyone know what "Dont reenable" comment means, which was
XXX: there since initial import of pica (not arc).
"XXX Maxphys temporary changed to 32K while SCSI driver is fixed."
I (and soda) don't know what the "SCSI driver" is, but add local
asc_minphys() to limit max xfer size only for asc.c for now.
- According to old asc.c driver, DMA_START() is called before NCR_CMD_DMA
command. I'm not sure which DMAC or ASC should be started first, but
move DMA command from asc_dma_go() to asc_dma_setup().
- Disable NCR_F_DMASELECT (which allows DMA xfer for select command)
since it caused some problem on PICA.
Now gxemul-0.3.6.2 reaches mountroot() sd0 (but can't exec /sbin/init yet).
- rather than embedding bufq_state in driver softc,
have a pointer to the former.
- move bufq related functions from kern/subr_disk.c to kern/subr_bufq.c.
- rename method to strategy for consistency.
- move some definitions which don't need to be exposed to the rest of kernel
from sys/bufq.h to sys/bufq_impl.h.
(is it better to move it to kern/ or somewhere?)
- fix some obvious breakage in dev/qbus/ts.c. (not tested)
to select the maximum segment size for each bus_dmamap_load (up to the maxsegsz
supplied to bus_dmamap_create). dm_maxsegsz is reset to the value supplied to
bus_dmamap_create when the dmamap is unloaded.
drivers that attach to it. This allows for other host interface chips
that use the same keyboards and mice, such as the ones in the ARM
IOMD20, ARM7500, and SA-1111. The PC-compatible driver is still
called pckbc(4), and the new abstraction layer is "pckbport", so the
child devices have moved from sys/dev/pckbc to sys/dev/pckbport, which
also contains some code shared between all host controllers. To avoid
incompatibility, pckbdreg.h is still installed in
/usr/include/dev/pckbc.
In theory, this shouldn't cause any behavioural changes in the drivers
concerned. Thy just use rather more function pointers than before. Tested
on i386 and (with a new host driver) acorn32. Compiled on several other
affected architectures.
in jazz_bus_dmamap_create() disable BUS_DMA_ALLOCNOW for now
rather than return ENOMEM. Required by some PCI devices (like pciide(4)).
XXX needs re-think how BUS_DMA_ALLOCNOW should be handled.
XXX (we should use another flag for the jazz internal DMAC?)
be inserted into ktrace records. The general change has been to replace
"struct proc *" with "struct lwp *" in various function prototypes, pass
the lwp through and use l_proc to get the process pointer when needed.
Bump the kernel rev up to 1.6V
Modify jazz_bus_dmamap_create() to allocate jazz dmatlb
if BUS_DMA_ALLOCNOW flag is specified and nsegment is 1.
In this case, jazz_bus_dmamap_load() just call
jazz_dmatlb_map_va() to map CPU VA space into jazzio
VA space with pre-allocated TLB entries (like dma.c does).
bus_dmamap_load_{mbuf,uio,raw} functions are not allowed
if dmamap is created with BUS_DMA_ALLOCNOW flag.
(i.e. ALLOCNOW is valid only for linear buffers.)