Re: [Etherboot-developers] Relocation problems
Brought to you by:
marty_connor,
stefanhajnoczi
|
From: Michael B. <mb...@fe...> - 2003-05-23 11:43:06
|
> There is a potential for the status of the A20 line to be > significant. > <snip> > It is possible the undi driver is allocating high memory with > some BIOS call and stomping etherboot. Thanks for this; I've found a few int 15,24 calls (enable/disable A20) and some int 15,87 calls (move block to/from extended memory) in the UNDI ROM. This looks to be the most likely culprit. As far as A20 status goes, I'm thinking of modifying relocate.c so that it relocates Etherboot to a location with A20=0, so that Etherboot remains accessible even if something screws up the A20 status. Does this sound like a good idea? > But my gut reaction is that something somewhere is missing > a virt_to_phys or a phys_to_virt.. I don't think this can be the case; these are non-identity mappings even without -DRELOCATE. > But in general when I am faced with these things I take my > serial debugging prints statements and instrument the code and find > out exactly where it is failing so I can do something about > the failure. > My debug print statements are attached below. The expand inline > and increase the code size but by doing so have a very minimal > register impact and not stack impact so can be used in all > kinds of situations. The code works find as either 16bit or 32bit > code. Thanks. I think it would be handy to have those available all the time; why not add them in as a .h file in Etherboot? Michael |