>I have a confirmation for you. mknbi fails to setup it's own stack
>and then behaves badly if etherboot doesn't give it a stack.
>
>I have triggered this bug in the development version by relocating
>etherboot.
>
>If you have the time to change mknbi to setup it's own stack 1K should
>be sufficient, it would be appreciated.
>
>The problem triggers in prot_to_real && real_to_prot.
Ok, I think I have fixed start32.S/first32.c to use its own stack and
thus work properly when relocated, whether by --relocseg or 5.1.2rc3. I
have booted tomsrtbt with 5.0.7 and also 5.1.2rc3 on a 3c509. This fix
is only for the ELF or --first32pm images. I'm not sure I want to
support FIRST32RM much longer. See below.
The new mknbi can be found at www.etherboot.org/mknbi-1.2-10rc1.tar.bz2
Please give it a whirl.
Let's get our terminology synced. Firstly I am only talking about Linux
images only, not any of the other images that mknbi builds, and I am
only talking about modifications to mknbi, not Etherboot.
FIRST16 Supported by Etherboot 4.x and 5.0. Deprecated as
FIRST32* is a superset.
FIRST32RM Supported by Etherboot 4.x and 5.0. What you get by
default by using mknbi-linux. Calls first32 by going
into RM, then first32 goes into PM.
FIRST32PM Supported by Etherboot 5.x. What you get by mknbi-linux
--first32pm. No mode switch between Etherboot and mknbi.
Now uses private stack and can be called by Etherboot
from any address.
ELF Supported by Etherboot 5.x. What you get by mkelf-linux.
No mode switch. Also fixed as a result of the above.
For Etherboot 5.2 the last two formats will be preferred.
What I propose to do in mknbi-1.4 is remove support for FIRST16, and
make FIRST32PM the default for mknbi-linux. To get FIRST32RM for old
Etherboot ROMs you would have to explicitly use --first32rm. mkelf-linux
will work as usual.
|