Adam Sulmicki <adam(a)cfar.umd.edu> writes:
Is this the
recommended way to boot a Linux kernel from CompactFlash or
should I continue trying to figure out why elfboot won't look at IDE
with option BOOT_IDE=1?
maybe someone else can answer this.
I'll just add that when ADLO is used an plain linux kernel without any
modifications can be used. Ie no need to patch it.
This isn't specific to ADLO. In most cases mkelfImage does all of the
strange things that are needed.
The Bochs BIOS
is built around the BX chipset IIRC, which isn't far at all
from the TX chipset.
I think it is mostly the Bochs "hardware" not the BIOS itself that's build
about the BX chipset. The BIOS itself is fairly generic and pretty
adapable for our needs (the big issues related to it is somewhat
simplistic hardware model. ex : no delay loops (ATA) or incomlete
emulation of hardware (KBD,PIRQ) ).
What's most chipset dependant in our project is the loader it self
(loader.s). It must do some preparatory work before it can start bochs
bios. One of the key issues is that the address at 0xF0000 has to be ram
mapped and it got to be Read/Write.
LinuxBIOS should do this, and report that it is ram mapped in the LinuxBIOS
table. It is perfectly fine to refuse to load if that is not the case.
We still are not sure what's the best way to
interface the LinuxBIOS and
BOCHS BIOS. There's need for some information to be passed between the
two. Those include: Mem size, E820, PIRQ, how to manipulate shadow ram,
how to reset chipset (reboot). Of above first 3 are data scrutures, last 2
are functions. If we can do this, we can keep BOCHS BIOS (and ADLO)
generic and leave all chipset specific stuff to LinuxBIOS.
On the platforms where there is some code to handle reboot in LinuxBIOS you
get to it by tripple faulting the CPU.
The shadow ram should just be setup by default by LinuxBIOS so you should not
need to do anything there. (Unless you need it read only, but we can cross
that bridge when we find the program that cares).
The rest are tables that are already present so should not be to hard to work with.