[coreboot] suspend/resume in v3

ron minnich rminnich at gmail.com
Mon Sep 8 21:55:38 CEST 2008


On Mon, Sep 8, 2008 at 9:57 AM, Stefan Reinauer <stepan at coresystems.de> wrote:
> ron minnich wrote:

>> and your entire call chain and all automatics on the stack are gone.
>> And you can't return from disable_car.
>>
> So are you saying it is incredible hard to produce that call chain from
> scratch, or copy it over? I really don't think so.

any pointers on stack are wrong. You can't tell data from pointers.
And so on. I think it's an idea that could really get you in trouble.

I don't feel that moving the stack, and all it contains, to another
location is a good idea.

>
>> Moving the stack in the general case won't work. Better to call
>> another function -- i.e. disable_car never returns -- that's we do do
>> in v2 today.
>>
> Works fine for me.

me too.

>> If we
>> assume there is no return from disable_car, life is very much simpler.
>>
> Ok, why don't we do that?

See the January discussion. I even prototyped it. I still feel it is
clean in an architecture-independent sense, and in a *implementation*
- independent sense.

Still, I want to make sure: do the rules for core 2 duo make it
impossible to return from disable_car with the same stack?

Here is how we return from stack on on k8.

disable_car(){
  copy CAR area to RAM
  disable car
  copy RAM to CAR
  return
]

Would this not work on core 2?
ron




More information about the coreboot mailing list