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!