Subject: Re: bootstrap?
To: None <mw@eunet.ch>
From: Geert Uytterhoeven <Geert.Uytterhoeven@CS.kuleuven.ac.be>
List: amiga
Date: 01/11/1995 10:29:46
Markus Wild (mw@eunet.ch) wrote:
> > A very preliminary alpha version of Lilo for Amiga Linux/68k is available
>
> Eh, sorry... the Amiga is not a PC, we don't need a second "bootmanager",
> we already have one! If you want a partition to autoboot, you set the flag,
> and you set the priority according to your needs. If you want to override
> the default partition, you go into the bootmenu and select the partition
> you want to boot from.
Some people may find it more convenient if there _always_ pops up a bootmenu,
with a predefined time-out value afther which the default OS is booted.
BTW, if I find time to finish the config file stuff, you can define whether
the boot loader must ask for an OS to boot, set the time-out value,...
So you _will_ be able to have only _one_ partition containing Linux/68k
(or NetBSD :-), and boot from it immediately.
> There's no good reason to reinvent the wheel here, even if it may
> sound tempting to reuse existing lilo-code..
I don't reuse any code :-)
> > - AmigaOS loads the boot block
>
> ok.
>
> > - the boot block loads a loader (AmigaOS executable residing on a
> > Linux/68k partition)
>
> Should probably be more generic, not OS-related.
Why? When the bootblock is executed, AmigaOS is almost completely initialised
(except dos.library).
The bootblock (only 1024 bytes) contains the following functions:
- replacements for fopen(),fclose(),fread(). Files are defined by a
ULONG vector containing their length and pointers to the needed disk
blocks.
- replacement for LoadSeg() that uses the above functions and knowns
about CODE, DATA, BSS and RELOC32 hunks.
- Exec() and UnLoadSeg() functions to execute and unload a program.
All above functions are exported to the boot loader. Since the loader is an
AmigaOS executable, you don't have to bother about relocation, and it's
easily debuggable.
> > - the loader asks which OS to boot
>
> NOT. The loader boots the kernel from the partition the user has chosen
> to boot from. For special cases, where you want to boot using certain
> flags, or different images, you use loadbsd like you did before. Autoboot
> a normal configuration, boot using some monitor-program (whether that resides
> in a PROM or runs under a different OS is a minor difference) if you want
> to override the default.
So NetBSD kernel hackers _need_ to have an AmigaDOS partition to put
loadbsd on it (or do you prefer boot floppies with loadbsd on it?).
Under Linux/68k, we still have the problem that the only manner to export
kernels to the AmigaOS side is the floppy (or a spare partition, or a tape,
or NFS via (C)SLIP,...). Using Lilo greatly speeds up kernel hacking.
BTW, since I installed gcc 2.6.3 for AmigaOS, the Linux bootstrap command
doesn't work anymore (didn't test loadbsd). I haven't tried to fix that problem
yet because I have Lilo :-)
I think it _is_ useful to have different images for Lilo, but of course
you are allowed to have a different opinion.
Geert
+--------------------------------------------------------------------+
| Geert Uytterhoeven -->> Wavelets, Amiga, MultiUser, Linux/68k,... |
| Geert.Uytterhoeven@CS.kuleuven.ac.be |
| Dept. of Computer Science, Katholieke Universiteit Leuven, Belgium |
+--------------------------------------------------------------------+
Click!