(written by Roman Hodek, Petr Stehlik and Thomas Kruse)
On a Falcon with Afterburner040, the bootstrap can be run only on a fully initialized machine, i.e. the AB040 software drivers must be loaded. More specifically, bootstrap relies on the _CPU cookie to be set to 68040, which is done by that driver. But there may be also other dependencies...
Additionally, the bootstrap must have its program flags set to "don't run in TT-RAM" and "don't allocate memory from TT-RAM". This is due to the fact that TT-RAM on the AB040 is mapped by the MMU and addresses in it can become invalid as soon as the MMU is switched off before launching Linux. Bootstrap issues an error message if either its code or data reside in TT-RAM, so you can't make it wrong, but maybe you don't know how to fix it... :-)
And finally: Currently the Linux kernel won't run properly in TT-RAM. Better use the -s flag to bootstrap ("load kernel to ST-RAM"). We're working on the problem, but a solution isn't evident yet...
Petr provides the following advice:
The Afterburner040 is a card with 68040 CPU and two FastRAM slots for the Atari Falcon 030. There are several different revisions of that card that also affect Linux. General rules for successful Linux boot are as follows:
Use bootstrap (ataboot) version 3.1 or higher (older versions of ataboot didn't recognize FastRAM properly)
Use kernel version 2.1.72 or higher (older versions could not reboot the machine, but generally worked, too)
The kernel must be compiled for the 68040 CPU only (so no 68020, 68030 nor 68060 support!), otherwise it won't boot. The reason for this is unknown at the moment (December 1997). Also, for certain revisions of the Afterburner040 card the specific 68040 optimizations (RMW) must not be used as well. You can either compile your own kernel or visit http://ft3.zlin.vutbr.cz/stehlik/soft.htm, where you can find some pre-compiled kernels for Afterburner040.
ataboot must run in ST-RAM and it must also allocate ST-RAM, so please clear both 'Run in TT-RAM' and 'Allocate TT-RAM' flags in the header of ataboot. For this purpose you can use programs like SETFLAGS.PRG or similar.
Accelerated Falcons (higher bus speed than 16 MHz) usually suffer from some strange problem with lost MFP interrupts when kernel is loaded in FastRAM (might be recognized by too high BogoMIPS value at bootup: standard value for Afterburner040/32 MHz is 21.29), so it's good idea to put the kernel into ST-RAM with the '-s' flag on the ataboot command line.
The 'Swap-to-ST-RAM' option of Linux kernel 2.1.72+ might be very useful on Afterburner040 because the ST-RAM is very slow (about ten times slower than FastRAM) and that's a good reason for not using it as normal 'working' memory.
Thomas Kruse says that "not only must the read modify write optimization be turned off, the whole 68040 specific optimizations must be turned off - otherwise the kernel won't run reliably on different circumstances and sizes of the kernel."
The discussion on the mailing list seems to indicate that there isn't a specific approach that seems to work well for everyone. Hopefully this situation will be resolved soon.