This announces the availability of version 0.9.13 of Linux/68k. The source and a precompiled kernel are in /pub/linux/680x0 on tsx-11.mit.edu. Changes against the last version: - Changes to the Atari DMA sound driver: - /dev/audio is emulated at 12 kHz instead of 6 kHz, interpolation isn't used anymore, because it doesn't improve quality very much - The DMA preprogramming feature is used now. - Support for Falcon audio, also addition of 16 bit formats - "speaker" device of /dev/mixer implemented for Falcon and TT (to turn on/off internal speaker) - Better rounding of /dev/mixer values to hardware values (itschere@TechFak.Uni-Bielefeld.DE & guenther@pool.informatik.rwth-aachen.de) - A patch to the Amiga mouse driver, that fixes unwanted jumping of the mouse. (Frank.Neumann@arbi.informatik.uni-oldenburg.de) - The ACIA initialization could leave the IRQ line low forever -- fixed. (Martin_Rogge@ki.maus.de) - Removed the safety assumption that all removable ACSI media are changed at open time. (Martin_Rogge@ki.maus.de) - Changes to the Amiga AutoConfig Identification: Renamed CONFIG_AMIGA_BOARDS_IDENT to CONFIG_ZORRO ; some new boards added (Geert.Uytterhoeven@cs.kuleuven.ac.be) - New /proc/hardware file gives infos about detected hardware in a machine-dependent fashion. (Geert.Uytterhoeven@cs.kuleuven.ac.be, schwab@issan.informatik.uni-dortmund.de, and me) - /proc/cpuinfo shows an estimate of the CPU clock frequency based on the BogoMips value. (Geert.Uytterhoeven@cs.kuleuven.ac.be) - Added support for some Atari memory boards that don't properly emulate TT-Ram: MAGNUM alternate RAM (rincewind@discworld.oche.de) and the BlowUp FX-card for the Falcon (nat@zumdick.rhein-main.de) Since this changed the Atari bootstrap program, I raised its version to 0.8. But note that there are no incompabilities to the previous version, only this extension. - Fixed typos in various sources (Geert.Uytterhoeven@cs.kuleuven.ac.be), fixed mistyped "&"s in s{d,r}.c to "&&" (guenther@pool.informatik.rwth-aachen.de) - A driver for the serial part of the GVP IO-Extender with a 16c552 double-UART. (jds@kom.auc.dk) Also Jes noted that DTR has to be raised when setting a valid baud rate. He did this in the Amiga serial drivers, and I added it for the Atari ones. - Fixed bugs in the Falcon frame buffer: st-medium mode works again; xres must be multiple of 32, not 16; the vsync/hsync length isn't included anymore in the lower/right margin for compatibility with Geert's fbset (guenther@pool.informatik.rwth-aachen.de) - A new parameter in the "atavideo=" list, "keep". (Note that this parameter comes in the main list of atavideo, between the commas, and not inside an "external:" or "internal:"!) If given, it keeps the frame buffer device from calculating any video modes itself and tells it to use only the mode found when booting. The goal of this is currently too keep the settings for video extensions (e.g. ScreenBlaster) on the Falcon, which would otherwise be overridden by the driver's own mode calculation, which doesn't know about the extension. But this may be useful in future, too, when more frame buffer devices do mode settings. (myself, based on idea by .) - On the '040, there was a mistake when handling a page-fault for an access which spans two pages. This produced spurious crashes. Also fixed '040 cache problems with shared memory pages. (apel@physik.uni-kl.de) - Support for colormap handling on the SANG MV300 graphics board for the Atari TT/MegaSTE (only depths 1, 4, or 8). (joe@amber.dinoco.de) The style of colormap register handling is selected by (another...) new, optional "atavideo=external:" parameter at the end (after the width of the color register), e.g.: atavideo=external:1024;768;8;p;0xfe000000;;0xfec00000;8;mv300 The default for this is "vga". Currently valid are "vga" and "mv300". - Symlinks on AFFS partitions can now be converted to Unix pathnames. There's a new mount option "conv_symlinks" to turns this feature on. (dorchain@cscip.uni-sb.de) - The IDE interface on Ataris is now tested by accessing 0xfff00039, since the old 0xfff00000 is sometimes only readable as a word. TOS also uses the ..39 register. (Tnx to Krause, Ravensburg) The Falcon CODEC is now tested at 0xffff8940 (instead of 0xffff8930, which detected it on a TT, too). (guenther@pool.informatik.rwth-aachen.de & me) The SCC-DMA is detected again the old way (only read presence of the register), writing and reading back data spuriously failed sometimes. The FDCSPEED register should never be detected on the Medusa. (myself) - include/linux/unistd.h should now be ready for including in ELF. (myself) - The decision whether a Atari SCC's channel A is connected to Serial2 or LAN or both has slightly changed: Falcon -> LAN only others -> TT-MFP or is a MegaSTE -> both -> Serial2 only (myself) - I defined cache_clear on the '040 to actually do a push. This should fix all the cache problems on the '040. Sure, invalidating is slightly faster, but 1) I heard rumors about cache bugs in the '040 (maybe that's our problem?), 2) the overhead should not be too much, so there should be very little difference in practice, and 3) I heard that for the '060, always pushing is better anyways. (myself) - Many Atari floppy driver changes: I've built in some patches from Freddi Aschwanden to the Atari floppy driver and fixed the last bug to make the floppy work on the Medusa. In that context, I made the track buffering a runtime option (instead of a compile option), since "normal" Medusas (without the counter card) cannot do track buffering. Freddi also implemented ED formats. And: Formatting disks is implemented now! For this, you need a special fdformat program for the Atari, that does the track twisting also implemented by the GEM desktop. You find this program and its source in bin/atafdformat.tar.gz in tsx-11's 68k archive. To save buffer space and time when autoprobing the disk format, the (maximum) drive type is configurable, too. For this, there's a new kernel command line parameter, "ataflop=", with the following format: ataflop=[,[,[,]]] i.e., all arguments except the first are optional. The drive type may be 0, 1, or 2, for DD, HD, and ED, resp. This setting affects how much buffers are reserved and which formats are probed (see also below). The default is 1 (HD). Only one drive type can be selected. If you have two disk drives, select the "better" type. The second parameter tells the kernel whether to use track buffering (1) or not (0). The default is machine dependent: no for the Medusa and yes for all others. With the two following parameters, you can change the default steprate used for drive A and B, resp. Possible values are 2, 3, 6, and 12. Default is 3 if the machine has the register of switching the FDC speed or is a Medusa, and 6 otherwise. I also extended the disk format list to what is supported on PC Linux. I.e., most minors there are valid for the Atari now, too. I just changed the meaning of two of them to implement some formats common on the Atari (HD 82x20, ED 82x40). The list of interesting devices for the Atari is now (add 1 for /dev/fd1*): b 2 0: /dev/fd0 autoprobing, see below b 2 4: /dev/fd0d360 360k disk in 360k drive b 2 8: /dev/fd0h1200 1.2M disk (5.25" HD, 80tx15s) b 2 12: /dev/fd0D360 360k disk in 720k drive b 2 16: /dev/fd0D720 720k disk (DD, 80tx9s) b 2 20: /dev/fd0h360 360k disk in 1.2M drive, same as D360 b 2 24: /dev/fd0h720 720k disk in 1.2M drive, same as D720 b 2 28: /dev/fd0H1440 1.44M disk (HD, 80tx18s) b 2 32: /dev/fd0E2880 2.88M disk (ED, 80tx36s) b 2 36: /dev/fd0E3280 3.28M disk (fat ED, 82tx40s) alternative name used on PC: fd0CompaQ b 2 52: /dev/fd0D820 820k disk (fat DD, 82tx10s) alternative name used on PC: fd0H820 b 2 124: /dev/fd0H1640 1.64M disk (fat HD, 82tx20s) alternative name used on PC: fd0H1600 I couldn't append the Atari formats (82tx10*n s) to the end, since the 7th bit is used for extending the drive number on the PC, thus minors >= 128 are not possible. Autoprobing now occurs in this order: - When the drive type is ED, start here: o E3280 (82x40) o E2880 (80x36) - When the drive type is HD, start here: o H1640 (82x20) o H1440 (80x18) o h1200 (80x15) - When the drive type is DD, start here: o D820 (82x10) o D720 (80x9) o D360 (40x9, track stretching) o d360 (40x9) (most by myself, some Medusa tips/patches from Freddi Aschwanden, Andreas Schwab helped in writing the formatting code) - Reversed the order of SCSI DMA setup and starting the NCR for the Medusa. (The Falcon needs the other order, so an if is necessary now.) (Tnx to Freddi Aschwanden) But note that there are still other problems with SCSI on the Medusa :-( The reason is the disconnecting, which causes problems in the DMA. The SCSI standard defines a way to turn off disconnecting, but none of the test disks (4!) obeyed that :-(( There's now a quick&(very)dirty hack: turn off scatter-gather for the Medusa, since most disks don't disconnect in a transfer as short as 1024 bytes. But this is NO GARUANTEE for not disconnecting, so some targets will still make problems... YOU'VE BEEN WARNED! If you want to try, do so on a junk partition first. - Replaced nop's in all Atari drivers by MFPDELAY() (which is defined as an access to mfp.par_dt_reg). This should give an machine independent delay of approx. 600ns and is also used in TOS 2.06. (myself) - Little fix in ICD partition format: Also accept "SWP" and "LNX" as partition IDs (before only "GEM", "BGM", and "RAW"). (guenther@pool.informatik.rwth-aachen.de) - I removed some "unused variable" warnings. (myself) - Make A1200 IDE work with "better" HDs by simply ignoring unexpected interrupts. (rueder@ira.uka.de) - I made a Doc/ subdirectory in the Linux source tree, which currently contains (only) the documentation for kernel command line options. Compared to the version I've posted some time ago, "ataflop=" is added and "atavideo=external:" extended. 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. Note also that there have been some problems reported that such big kernels cannot be booted with Amiga Lilo. If this release doesn't contain any serious bugs, it will be the last version in the 0.9.x line. For that, I also uploaded a complete source tree to tsx-11. Further development will happen in 1.2.13. Roman