[LinuxBIOS] Messing with CAR in a big way

ron minnich rminnich at gmail.com
Sat Jan 12 01:45:36 CET 2008


For reference here is the geode lx disable car. CAR is at 80000. The
steps are to re-enable cache (for loop), then dirty all the tags for
the CAR area (cld; rep movsl; etc); then write it all back (wbinvd).

Works really well.

        for (i = 0; i < ARRAY_SIZE(msr_table); i++)
                wrmsr(msr_table[i].msrnum, msr_table[i].msr);

        __asm__ __volatile__("cld; rep movsl" ::"D" (DCACHE_RAM_BASE),
"S" (DCACHE_RAM_BASE), "c" (DCACHE_RAM_SIZE/4): "memory");

        __asm__ __volatile__ ("wbinvd\n");

Would be great if this worked on k8.

Thanks ron




More information about the coreboot mailing list