Hi All,
I recently had a disaster in that both my development system and backup servers had hard drive crashes within a few hours of each other, and I have lost some source, of which I have no other copies (ehem, no comments please!!).
For various reasons, I have a bit of real-mode code I execute before I vector off to LinuxBIOS. The normal boot vector, therefore executes this real-mode code, and once that is done executing, I want a clean interface to LinuxBIOS. The way I had implemented this previously was by somehow lowering the point at which the LinuxBIOS reset vector was created, and then doing a near jump to the LinuxBIOS vector. What I am wanting to achieve is the following memory map (considering the top 64k of flash only).
0xffff0000 Start of LinuxBIOS ROM space 0xffff7ff0 LinuxBIOS reset vector poing to LB entry point 0xffff8000 Start of realmode code 0xffff???? {jmp to LinuxBIOS reset vector} 0xfffffff0 Realmode vector
Of course, the realmode memory map can be ignored, as I already have the realmode code for that, and that on completion vectors to 0xffff7ff0
I want to create a binary, with correct relocation so that the binary can be executed in place at 0xffff0000 from a boot vector at 0xffff7ff0 and still retain it's integrity.
I managed to do this about 3 or 4 months ago, but since then have been doing a lot of other stuff and have completely forgotten how I did it, and have got out of the 'LinuxBIOS mode' for the time being!. All I recall is that I did some trickery by having my own replacements of the creation of the LinuxBIOS vectors somewhere in my own tree, and that portion of the tree is now gone.
Is there possibly a generic way this can be done so that the placement of the vector can be parameterised?
Any help would be greatly appreciated.
TIA
Hamish