[LinuxBIOS] RESEND: v3 patch for console functions, and mods to lib/lar.c to support a void * parameter for running functions.

Carl-Daniel Hailfinger c-d.hailfinger.devel.2006 at gmx.net
Fri Jan 4 01:11:33 CET 2008

On 03.01.2008 19:26, ron minnich wrote:
> On Jan 3, 2008 10:20 AM, Carl-Daniel Hailfinger
> <c-d.hailfinger.devel.2006 at gmx.net> wrote:
>> On 03.01.2008 18:50, ron minnich wrote:
>>> Add a void * parameter to the LAR run functions; needed for some cases,
>>> in particular CAR.
>> I still do not like that because it works around a bug in our code. It
>> should work just fine without that parameter.
> I don't agree. There are limits on where the stack ends up in CAR. I
> would be more comfortable having the option of starting with a new
> function with a new stack once CAR is turned off.

A new stack would be OK, but not as a workaround for a bug. Being able
to drop parts of the stack when CAR is disabled is an interesting
feature, but I fear it will lead to a lot of headaches later on.

I still have some code pending which uses part of the stack as a printk
buffer right from the beginning of stage1, making it available for
inspection by later stages or even a payload. Sorry, can't find that
code right now.
I'll try to come up with a concept that works for architectures where we
must move the stack as well as architectures where we don't want to move
the stack.
> That said, I will hold off and let others fix CAR. Let me know when it
> is ready and I will test on Alix.

Unfortunately, I do not have any Geode LX hardware, so I can't really
test, but I can deliver patches. IIRC your problem was that the wbinvd
only invalidated the CAR area without writing contents back to RAM, right?

> However, please don't fix the problem by moving the stack. You can't
> relocate the stack in a general way due to things like pointers to
> auto.

I will find the root cause of the problem, and no, the fix will not
involve moving the stack during runtime unless that is a hardware


More information about the coreboot mailing list