On 03.01.2008 19:26, ron minnich wrote: > On Jan 3, 2008 10:20 AM, Carl-Daniel Hailfinger > <[EMAIL PROTECTED]> 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 requirement. Regards, Carl-Daniel -- linuxbios mailing list linuxbios@linuxbios.org http://www.linuxbios.org/mailman/listinfo/linuxbios