On 07.09.2008 23:40, Rudolf Marek wrote:
CAR will write to memory locations below 1M. There are three ways to cope with that:
- Back up that area during suspend and restore it as last instruction
of resume. 2. Declare the CAR area (48 kB) as reserved memory.
Imho this is OK, and easiest.
Fine. Let's take that route.
- Write excessively clever and fragile code which performs a double
stack switch during resume.
Here are some other ideas, might not work if stack is never realocated. I dont know how CAR in v3 works.
All targets in v3 don't move the stack. That allows us to store data structures with globally valid pointers on the stack and it a
- use 0xA0000-0xBFFFF
I think we can use this RAM because it will be covered by SMM (done by us) or will be covered by legacy VGA anyway.
That would cause a collision if coreboot runs the VGA ROM. I might be wrong about that, though.
- use 0xf0000-0xfffff
It will get overwritten by some our code, before that we might use it.
I have to recheck this, but it might be possible that this location is not available for CAR on every processor.
Thanks for your insights.
Regards, Carl-Daniel