Module Name: src Committed By: martin Date: Wed Feb 1 18:56:44 UTC 2023
Modified Files: src/sys/arch/next68k/dev [netbsd-9]: esp.c src/sys/arch/next68k/include [netbsd-9]: bus_space.h cpu.h src/sys/arch/next68k/next68k [netbsd-9]: clock.c machdep.c Log Message: Pull up following revision(s) (requested by tsutsui in ticket #1581): sys/arch/next68k/next68k/machdep.c: revision 1.117 sys/arch/next68k/dev/esp.c: revision 1.65 sys/arch/next68k/include/cpu.h: revision 1.51 sys/arch/next68k/include/bus_space.h: revision 1.20 sys/arch/next68k/next68k/clock.c: revision 1.13 next68k: Fix delay_divisor value for proper delay(9) on 68040. next68k: Specify proper constraints for bus_space_read region and multi ops. These functions write the read data into memory at a specified pointer, but without the "memory" constraint gcc could optimize out these ops if the memory is allocated on local stack. With this fix nextkbd(4) works again. Should be pulled up to netbsd-10 and netbsd-9. next68k: Fix silent stall of next68k esp(4) SCSI. next68k esp(4) driver requires nextdma(4) interrupts at ipl 6 during ncr53c9x_intr() for esp(4) at ipl 3. It worked on netbsd-5 and prior, but on netbsd-5 splbio() was changed from ipl 3 to 6 for SMP support and on netbsd-6 ncr53c9x driver was changed to use mutex(9) instead of simple_lock(9), so nextdma interrupts were no longer raised during ncr53c9x interrupt handler. For now, just call mutex_exit(9) and mutex_enter(9) during waiting nextdma(4) interrupts in MD esp_dma_intr() handler. This could be wrong and the interrupt handler for nextdma should be reorganized, but it just works. Should be pulled up to netbsd-10 and netbsd-9. To generate a diff of this commit: cvs rdiff -u -r1.64 -r1.64.18.1 src/sys/arch/next68k/dev/esp.c cvs rdiff -u -r1.16 -r1.16.52.1 src/sys/arch/next68k/include/bus_space.h cvs rdiff -u -r1.49 -r1.49.4.1 src/sys/arch/next68k/include/cpu.h cvs rdiff -u -r1.12 -r1.12.64.1 src/sys/arch/next68k/next68k/clock.c cvs rdiff -u -r1.112 -r1.112.4.1 src/sys/arch/next68k/next68k/machdep.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.