My AmigaOne Adventure
by Steven Solie
I've been running a few AmigaOS kernels since my last article. Right now, I
have kernel 50.23 (22/01/2004) installed. Each new release has increased
stability and/or speed dramatically on my system. I've also been booting
directly from my hard disk using the 'official' method for some time now.
Previous public hard drive booting efforts required some Linux trickery which
was something I was eager to avoid. Not that I don't mind playing around with
Linux but this is about AmigaOS.
Remember the 3.5" DSDD Kickstart disk for the A1000? It was a bit of a pain
but boy was it easy to upgrade. Much later came soft booting my A3000D using
a SCSI hard drive and a beta copy of AmigaOS 2.x which was trickier to get
right but again, easy to upgrade. You all know how much fun Amiga ROMs are to
upgrade.
Well, it seems the development team has taken some hints from Amiga's past
and created a new and flexible booting method. This time around things are a
bit more complicated. I hope the following will help explain the basics.
First level bootloader (FLB):
- Exists in U-Boot in the AmigaOne's Flash ROM.
- The "boota" command loads the SLB and executes it.
Second level bootloader (SLB):
- Exists in the Rigid Disk Block (RDB) on the hard drive.
- Reads and parses the "kicklayout" file.
- Invokes the TLB to load each Kickstart module specified in the
kicklayout file.
- Transfers control to ExecSG.
Third level bootloader (TLB):
- Exists in an Amiga file system.
- Understands how to load Kickstart modules.
What this all means is that I can now have multiple versions of Kickstart, or
Kickstart components, on my hard drive simultaneously. I am able to choose
between them at the FLB stage. The non-Kickstart modules (e.g. Workbench)
simply utilize whatever Kickstart I decide to boot with. Right now, I have a
"Default" setup and an "Experimental" setup so I can test modules out (e.g. a
new version of dos.library) before I commit to using them.
The astute among you may have noticed that the SLB and TLB seem to be more
complex than they need to be. Well, the SLB may not just load Kickstart from
a hard drive. The SLB may load from a network for example. The TLB could also
be replaced with something that can load Linux modules instead. Needless to
say, this new boot system of is very flexible and wide open to all sorts of
extensions.
I discovered a cute bit of developer humour while using this new booting
method. Check out what happened when I tried to get help on the boota
command.
Now that my AmigaOne is free to boot on its own, I did some quick and dirty
measurements with my trusty stopwatch again. From power on a boot takes about
43 seconds now. A warm boots takes about 24 seconds. These times were
measured with debug on, PIO mode IDE driver and partially done PPC native
graphics. I've been told that a new IDE driver with DMA modes will speed
things up considerably so I am anxious to try the driver when it's ready.
I'm now preparing my AmigaOne for the Developer Pre-release announced by
Hyperion. Along with a beta version of AmigaOS 4.0 for the AmigaOne, a SDK
and compilers will also be available to encourage development of native OS4
software. Since I'm a hobby developer myself, I plan to dive in. That means I
need my favorite text editor. I'm still a TurboText fan so.
I also tried a few of the more OS-friendly games I have lying around (China
Challenge, Knights, SpaceTaxi, MiniArcanoid, etc.) and about 25% of them have
worked so far. One that did work exceptionally well is WBsteroids and I wish
a lot more games were written like this one because it runs on pretty much
any AmigaOS machine out there.
Compatibility and emulation speed has been very much improved. I used to have
trouble running AWeb but now it works perfectly and is very quick even though
the graphics are still mostly emulated. Roadshow silently works in the
background as you would expect a high quality TCP/IP stack to do.
This will be my last report running the pre-beta version of AmigaOS 4.0 on my
AmigaOne. The Developer Pre-Release is almost ready for prime time and I will
be using it as a baseline from now on. With new versions of components
uploaded to the beta server on a daily basis, I have plenty of upgrading and
testing to keep me out of trouble.
|