I have succeded in booting an initrd image stored in my 2MB BIOS flash
chip.  I can choose between the initrd image in the flash or the default
image on an IDE device based on a button that is connected to a GPI bit
on the southbridge.

The next step is to be able to choose a different kernel image to go
with it and clean things up so I can submit a patch.

The last issue I ran into before a sucessful boot was that linuxbios
seems to shave a Meg off the top of RAM causing the kernel to think that
my ramdisk image extended beyond the end of RAM.  This says to me that
either the comment that goes with the adjustment to totalram size before
passing it to the kernel is wrong or some of the kernel source doesn't
know that this is the case.  From linuxbiosmain.c:


        /* the ram address should be the last mbyte, AFAIK. Subtract one
for the
         * low 1 MB. So subtract 2K total 
         */
        set_memory_size(empty_zero_page, 0x3c00, totalram - 2048);

I haven't checked the details on this, but based on the behavior I saw
trying to load the initrd image, either you don't subtract the low 1MB
or you don't point to the last MB.

To get the kernel to recognize that there is an initrd image you must
set the loader type value in the "empty_zero_page" of kernel
parameters.  Does anyone know about getting a loader ID for linuxbios? 
This might be useful for some kernel paches that are linuxbios specific.

Also, how does the loader ID relate to the kexec method of doing
things?  It was said that kexec allows for passing a command line, but
can you adjust any of the other kernel parameters that are in the
empty_zero_page?

Cheers!
Ty


-- 
Tyson D Sawyer                             iRobot Corporation
Senior Systems Engineer                    Real World Interface Div.
[EMAIL PROTECTED]                         Robots for the Real World
603-532-6900 ext 206                       http://www.irobot.com

Reply via email to