This announces the availability of version 1.2.13pl10 of Linux/68k. The source and a precompiled kernel are in /pub/Linux/LOCAL/680x0 on ftp.uni-erlangen.de and its mirrors. Changes against the last version: - Setting promiscuous and multicast mode now works for the Atari Lance driver. The BSWP bit must be set again after a STOP, else the chip works in little endian mode afterwards... ("Jes Degn Soerensen" jds@kom.auc.dk) - New driver for the PAMsNet Ethernet nodes on the ACSI bus, a little bit similar to BioNet-100. For its module integration, the delay_{start,end} functions from acsi.c were renamed to acsi_delay_* and exported in ksyms.c. (Torsten.Lang@ap.physik.uni-giessen.de) I fixed several virtual/physical address mismatches, which crashed the machine if one not only has ST-RAM... :-) There were also ST-DMA locking errors in both, the PAMsNet driver and the similar Bionet driver. Thanks to Torsten Lang for pointing that out. Another problem in both drivers that showed up: The buffer for transfers has been allocated with kmalloc(), but that cannot ensure that the memory is in ST-RAM. Furthermore, there is no way for a module to allocate ST-RAM :-( This has been solved by making the ACSI buffer of acsi.c public and usable by other ACSI-related drivers. (myself) - The Amiga Ethernet drivers (Ariadne, A2065, and Hydra) work as modules now. Also a fix if multiple boards of the same type were installed. (Geert.Uytterhoeven@cs.kuleuven.ac.be) - The source of the 'dmesg' program (for AmigaOS) is now part of the kernel source, in arch/m68k/tools/amiga/dmesg.c. (Geert.Uytterhoeven@cs.kuleuven.ac.be) - The beeps from amisound.c were moved from audio0 to audio2, which is only used by dmasound.c when doing 14 bit DMA. ("Gerald Britton" gbritton@whitman.gmu.edu) - In the Atari SCC driver, an error reset command may be issued only after overrun and parity errors. If issued always (as done before), also error conditions of chars later in the FIFO are discarded. ("Guenther Kelleter" guenther@pool.informatik.rwth-aachen.de) - Fixed an ugly shortcoming of the SCC driver: The register shadows (making reads of all write registers possible) were present only once for both channels... with the obvious disastrous consequences if both channels were used at the same time. Why has nobody seen that earlier? :-) Thanks to Dave Skinner's son for finding this. (myself) - The console accepts (and for now ignores...) a new escape sequence to change the color palette. ("Andreas Schwab" schwab@issan.informatik.uni-dortmund.de) - Fixed virtual/physical address mismatch in the GVP11 driver. ("Roman Zippel" roman@sodom.obdg.de) - The MFP driver now works as module and the 'cua2 problem' is solved. The driver is also now independend of consecutive tty lines. ("Joerg Dorchain" dorchain@cscip.uni-sb.de) - There's a new parameter 'line_length' in the fb_fix_screeninfo of frame buffers, for cases where the line length in bytes != vxres/8. Additionally, I've filled in the line_length initializations in atafb.c. ("Roman Zippel" roman@sodom.obdg.de) - For some '040s, NOPs are necessary before each CINV or CPUSH instruction due to a mask error. ("Thorsten Floeck" floeck@wctc6.chemie.uni-wuppertal.de) - Fixed an endianess bug in umsdos filesystem code. Now it should work on m68k also. ("Martin Maisey" M.J.Maisey@durham.ac.uk) - There's a new, m68k-specific system call 'cacheflush' to push/invalidate CPU internal caches. It's intended to aid pointers to nested C functions (a gcc feature used in GNU libc). See also Documentation/m68k/differences.txt. ("Andreas Schwab" schwab@issan.informatik.uni-dortmund.de) - Fixed a problem with remove_isr() on Amiga (intena stays on for PORTS and EXTER). ("Joerg Dorchain" dorchain@cscip.uni-sb.de) - Minor fixes in the Amiga floppy driver, and made it work as module. ("Joerg Dorchain" dorchain@cscip.uni-sb.de) - Integrated the 68881 FPU emulator from NetBSD by Gordon Ross, of course with some adaptions to Linux (trap handler, signals, fsave/frestore support). The emulator is tested only on the '030, but it should run --at least in theory-- also on a 68LC040 or similar. Mathematical correctness has not been shown yet. Also, some FPU instructions are still unimplemented: FATAN, FATANH, FACOS, and FASIN. The emulator thus should be considered alpha currently and needs some testing. ("Paul Coene" Paul.Coene@esat.kuleuven.ac.be, some minor fixes and integration stuff by me) - FPU-Emu and FPSP040 couldn't be compiled together because both define a symbol 'round'. Fixed by renaming ("Michael Schmitz" schmitz@bioa.embnet.unibas.ch) - For the FPU emu, a change in the Atari bootstrap was necessary: Don't bail out if there is no FPU :-) I've also added a test whether a FPU announced in the cookie is real hardware or software emulated, to not be fooled by such an emulator. (myself) - New version 1.21 of the wd33c93 driver: more user-friendly command line interface, adaptive disconnect, clock speed can be specified on the command line ("John Shifflett" jshiffle@netcom.com) - After swapping in a page, a wrong page was flushed out of the instruction cache, which could lead to spurious faults of processes (SIGSEGV, SIGILL). cache_push_v(addr) had to be replaced by cache_push(VTOP(addr)). (myself) - Cleaned up cache_push_v() for the '060: It now correctly works on user or kernel virtual address space, depending on the SFC/DFC registers, and the wrong VTOP() has been replaced by a manual table walk. (myself) - In head.S, no stack was initialized before calling serial_init or serial_putc! Now a stack is set up just below head.S code, where there should be unused memory. Also, the FPU is put into idle state, to avoid kernel threads might save/restore the FPU state. ("Andreas Schwab" schwab@issan.informatik.uni-dortmund.de) - Some string constants used in 'extern inline' functions in were output into every file that included pgtable.h, even if the functions weren't used there at all. Solved by putting the strings into arch/m68k/mm/memory.c and declaring them extern. (myself) - To help fixing the famous SCC overruns problems, I've moved the main part of the Atari SCSI interrupt handler into a bottom half. Or, more exactly, NCR5380_main() is now called by the task queue mechanism. This has also the advantage that the code around the 'main_running' lock became easier. In theory, there should be no new races by this, and I also haven't seen any strange behaviour, but who knows... please test! Also removed the int handler for SCSI DMA bus errors, it's needed very rarely anyway :-), and just causes trouble with type PRIO of the normal SCSI int and clearing its pending bit. And, I finally got annoyed by the lots of "#if (NDEBUG & NDEBUG_..)" constructs, making the code quite unreadable. I replaced them by new *_PRINTK macros hiding the NDEBUG condition. Another little improvement: After processing bottom halfs after an interrupt, there's a re-check for marked bh's. The effect is that, if another interrupt comes in during bh execution and it marks further bh's, their processing isn't delayed anymore until the next int. I assumed that this situation would be quite probable with Atari SCSI. (all myself) - Added KERN_* priorities to printk()s in several Atari drivers. (myself) - Added "__volatile__" to some asm's in to avoid them being optimized away. ("Guenther Kelleter" guenther@pool.informatik.rwth-aachen.de) - Avoid floating point calculations in Amiga AGA frame buffer code. Also, Chip RAM reserved for the frame buffer is now always a multiple of 4k. (Geert.Uytterhoeven@cs.kuleuven.ac.be) - Fixed typo in drivers/block Makefile, that inhibited modules from there to be installed. ("Andreas Schwab" schwab@issan.informatik.uni-dortmund.de) - Fixed msgrcv() return value and added 'asmlinkage' to message system calls. ("Andreas Schwab" schwab@issan.informatik.uni-dortmund.de) - Another one of my really crazy ideas :-) ... The kernel can now be built with a GDB stub that permits remote debugging with gdb over a serial line (CONFIG_KGDB). It's really cool to set breakpoints, do single-stepping in the kernel, and interrupt it with C-c :-) For more information on usage of this feature, look into arch/m68k/kernel/kgdb.c. The serial line code for the Amiga surely isn't perfect yet... The code is based on the prototype m68k stub in the gdb source, and the SPARC and MIPS versions of the gdb stub. (myself) - Some new Zorro boards (Geert.Uytterhoeven@cs.kuleuven.ac.be) - The z2ram ramdisk driver now uses the unallocated rest of ChipRAM except 256k for the ramdisk. (Milan Rueder rueder@ira.uka.de) Current Amiga bootstrap version: 3.1 Current Amiga-Lilo version : 0.6 Current Atari bootstrap version: 1.8 The precompiled kernel contains both, Amiga and Atari support, so it is very big. You probably want to compile your own kernel tailored to your personal needs. Roman