Module Name: src Committed By: martin Date: Tue Mar 13 13:41:14 UTC 2018
Modified Files: src/distrib/sets/lists/base [netbsd-8]: md.atari src/sys/arch/atari/atari [netbsd-8]: atari_init.c bus.c locore.s pmap_bootstrap.c src/sys/arch/atari/conf [netbsd-8]: MILAN.in src/sys/arch/atari/dev [netbsd-8]: nvram.c src/sys/arch/atari/include [netbsd-8]: vmparam.h src/sys/arch/atari/isa [netbsd-8]: isa_machdep.c isa_milan.c src/sys/arch/atari/pci [netbsd-8]: pci_machdep.c pci_milan.c src/sys/arch/atari/stand/xxboot/ahdi-xxboot/milan [netbsd-8]: Makefile src/sys/arch/atari/stand/xxboot/sdboot/milan [netbsd-8]: Makefile src/sys/dev/isa [netbsd-8]: fd.c Log Message: Pull up following revision(s) (requested by tsutsui in ticket #624): sys/arch/atari/stand/xxboot/sdboot/milan/Makefile: revision 1.4 sys/arch/atari/dev/nvram.c: revision 1.21 sys/arch/atari/conf/MILAN.in: revision 1.28 sys/arch/atari/atari/pmap_bootstrap.c: revision 1.9 sys/dev/isa/fd.c: revision 1.111 sys/arch/atari/atari/bus.c: revision 1.60 sys/arch/atari/stand/xxboot/ahdi-xxboot/milan/Makefile: revision 1.4 sys/arch/atari/atari/locore.s: revision 1.111 sys/arch/atari/isa/isa_machdep.c: revision 1.41 distrib/sets/lists/base/md.atari: revision 1.55 sys/arch/atari/pci/pci_machdep.c: revision 1.55 sys/arch/atari/pci/pci_machdep.c: revision 1.56 sys/arch/atari/include/vmparam.h: revision 1.32 sys/arch/atari/isa/isa_milan.c: revision 1.15 sys/arch/atari/isa/isa_milan.c: revision 1.16 sys/arch/atari/atari/bus.c: revision 1.59 sys/arch/atari/atari/atari_init.c: revision 1.101 sys/arch/atari/pci/pci_milan.c: revision 1.15 Fix I/O access failures for regions allocated by bus_space_map(9) on Milan. Passing to PMAP_WIRED against I/O spaces seems problematic, probably after yamt-km branch merge, which was committed between NetBSD 3.0 and NetBSD 4.0. (i.e. ISA and PCI devices on Milan didn't work after 4.0 release) XXX: According to pmap(9) man page, the "flags" arg for pmap_enter(9) doesn't take VM_PROT_READ and VM_PROT_WRITE, but pmap_enter() implementation in sys/arch/m68k/m68k/pmap_motolora.c historically checks them. Fix silent hang during config_console() (before consinit()) on Milan. config_console() was a dirty hack used by ancient m68k ports to probe and initialize console devices before "real" configure(9), using subset of configure(9) functions. In that case, most device specific data (except I/O access method) are not initialized so we must not access device specific device_t and softc structures in config_console() cases. Fix silent hang after isa_intr_establish() on Milan. The problems (wrong macro replacements) were slipped in rev 1.107: http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/arch/atari/atari/locore.s#rev1.107 Handle yet another atari specific quirk in the MI ISA fdc(4)/fd(4) driver. This makes fd(4) drive(s) (which is necessary for installation) properly attached on Milan. atari uses "fdcisa" and "fdisa" for ISA fdc to co-exist other fd(4) drivers, on-board (atari/dev/fd.c) one and Hades (atari/dev/hdfd.c) one. Use a proper PSL value to be passed to splx(9) functions. This should have been changed on yamt-splraiseipl branch merge back in 2006, which made MI IPL_xxx values independent from m68k MD PSL values for the %sr register. Restore piixide(4) for Milan and disable other pciide devices. piixide was removed in rev 1.18 and the log message said "because Intel IDE disk controllers only exist as part of Intel chipsets for x86 systems" but the Milan actually has the Intel 82371FB southbridge on its board. Other pciide devices are unlikely necessary for the default kernel for such a rare machine. Also fix pasto in comment. Skip NVRAM checksum check and re-initialization on Milan. Milan's firmware seems to use different check method. Ack EOI for IRQ_SLAVE of the master PIC after ack for IRQ of the slave PIC. I'm not sure if there are possible races in the original code, but this is what i8259_asm_ack2() in sys/arch/x86/include/i8259.h does and it looks this change makes a Milan kernel a bit stable. Replace CRTC register values with ones taken from sys/dev/ic/vga_subr.c. This fixes noise around column 3 and 4 and makes screen output clearer on Milan with S3 Trio64V. Explicitly setup the secondary IDE interrupt of PIIX on Milan. The secondary IDE interrupt is connected to MBIRQ0 on PIIX, but the Milan's ROM bootloader (at least version 0.99.7) doesn't seem to setup the MBIRQ0 register to route it to IRQ15. On Milan, also explicitly disable MBIRQ1 on PIIX. Milan's ROM bootloader v1.2 and v1.4 incorrectly set MBIRQ0 connected to the secondary IDE to IRQ14 (not 15) and unused MBIRQ1 to IRQ15, so both IDE channels don't work properly. Add dumb memory probe routines for Milan to use all available memory. Tested on Milan with 32Mx1, 32Mx4, 128MBx1, and 128MBx3. (bootloader ROM fails to load TOS with 128MBx4) No particular comment on port-atari@: http://mail-index.netbsd.org/port-atari/2018/02/09/msg000580.html Provide wdboot as a copy of sdboot for Milan. It looks Milan's bootloader ROM emulates IDE disks as SCSI disks so sdboot works for them, but atari's installboot checks a specified device name and requires wdboot for wd(4) devices. Fix another possible out of bounds. Replace bus_dmamap_sync(9) op with a newer one taken from m68k/bus_dma.c. This could fix memory corruption issue caused by PREREAD ops with regions whose boundaries are not aligned at cacheline size. To generate a diff of this commit: cvs rdiff -u -r1.54 -r188.8.131.52 src/distrib/sets/lists/base/md.atari cvs rdiff -u -r1.100 -r184.108.40.206 src/sys/arch/atari/atari/atari_init.c cvs rdiff -u -r1.58 -r220.127.116.11 src/sys/arch/atari/atari/bus.c cvs rdiff -u -r1.110 -r18.104.22.168 src/sys/arch/atari/atari/locore.s cvs rdiff -u -r1.8 -r22.214.171.124 src/sys/arch/atari/atari/pmap_bootstrap.c cvs rdiff -u -r1.27 -r126.96.36.199 src/sys/arch/atari/conf/MILAN.in cvs rdiff -u -r1.20 -r188.8.131.52 src/sys/arch/atari/dev/nvram.c cvs rdiff -u -r1.31 -r184.108.40.206 src/sys/arch/atari/include/vmparam.h cvs rdiff -u -r1.40 -r220.127.116.11 src/sys/arch/atari/isa/isa_machdep.c cvs rdiff -u -r1.14 -r18.104.22.168 src/sys/arch/atari/isa/isa_milan.c cvs rdiff -u -r1.54 -r22.214.171.124 src/sys/arch/atari/pci/pci_machdep.c cvs rdiff -u -r1.14 -r126.96.36.199 src/sys/arch/atari/pci/pci_milan.c cvs rdiff -u -r1.3 -r188.8.131.52 \ src/sys/arch/atari/stand/xxboot/ahdi-xxboot/milan/Makefile cvs rdiff -u -r1.3 -r184.108.40.206 \ src/sys/arch/atari/stand/xxboot/sdboot/milan/Makefile cvs rdiff -u -r1.110 -r220.127.116.11 src/sys/dev/isa/fd.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.