[coreboot] Strange corruption with printk

Rudolf Marek r.marek at assembler.cz
Tue Mar 9 13:26:26 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?

Myles, please check

1) If it does work without my patch ;)
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.

The CAR code as it is now is doing at least evictions to L2 maybe this will help.

Rudolf




More information about the coreboot mailing list