On Thu, 04 Nov 1999, Russell King - ARM Linux Admin wrote:
> Phil and myself agree here - the whole point of architecture numbers, and the
> code in head-armv.S is that it is well tested architecture independent code,
> so to get the kernel running in C code as soon as possible. Therefore, all
> you need to do in a BIOS is:
>
> 1. initialise the RAM
> 2. setup minimal hardware (eg, VGA chip, SuperIO, etc)
> 3. obtain the kernel at the correct address
> (in your case, this would preferably be 0x40008000)
> 4. setup parameter page passing any information required (like RAM size,
> root device, etc)
> 5. call it at that address
That's exactly what I was looking for!
In the normal situation (in EBSA-285 BIOS 1.05 init/boot.c):
The BIOS .data is loaded at 0x1000
The struct param_struct is created at 0x100
The kernel is loaded at 0x8000.
Is there a reason for these address choices?
I don't want to load the kernel from the network.
I ultimately want to read it from a DiskOnChip device, but to begin with, I
will probably use an IDE drive (although using the flash is probably a good
idea as well).
I've found very few information regarding how to place a kernel on a hard drive
an loading it. Most document recommend to use lilo, but I doubt this would be a
good idea ;-) Anybody has a pointer to a document about bootstraping?
From, my i386 PC, I've created a linux partition on the disk, mkfs ext2 on it
that will eventually become root, mkdir boot on that file (trying to be
standard here), copy zImage in this boot directory, run lilo in order to
create a mapfile for the kernel.
Now, there's no doc about the mkboot utility that comes with the kernel but I
presumed I can use it to write the boot sector of my partition with the
start_sector of the mapfile the BIOS needs. How do I calculate this
OFFSET mkboot require?
And in order for me to better understand the BIOS kernel loading process, where
can I found the descrtiption of the partition table structure?
(I deducted that it begins at offset 0x1be inside the boot sector, that the
first byte is the partition type, and that mkboot write the mapfile
start_sector at 1c6, but that's all).
Thank you for any insight
--
Fran�ois Desloges
[EMAIL PROTECTED]
unsubscribe: body of `unsubscribe linux-arm' to [EMAIL PROTECTED]