[coreboot] Strange corruption with printk
Myles Watson
mylesgw at gmail.com
Tue Mar 9 17:42:42 CET 2010
> >>> The memory copy is not inline asm (will lead to subtle
> >>> corruption), the memory copy and the stack switching are not in one
> >>> inline asm block (gcc is free to insert arbitrary code in between),
> and
> >>> the stack is switched in the middle of a function (gcc may use some
> >>> non-clobbered regs to access the old stack, or simply die).
> >>>
>
> I fixed that with recent patch. Is it what you checked?
I thought I had updated since then, but it turns out that I hadn't. One of
these days I'll look into why the build strings never update.
> Myles, please check
>
> 1) If it does work without my patch ;)
No strange characters :) It makes it fail more reliably later, which is
good. I'll go back to debugging that.
> 2) Add the
>
>
> static void set_init_ram_access_uc(void)
> {
> set_var_mtrr(0, 0x00000000, CONFIG_RAMTOP, MTRR_TYPE_UNCACHED);
> }
>
>
> And call the set_init_ram_access_uc instead of set_init_ram_access and
> call
> again set_init_ram_access after the copy.
I'll look at that too.
Thanks,
Myles
More information about the coreboot
mailing list