ron minnich wrote: > 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 > >
K8 is a bit different than Intel and the Geode in how CAR works. For the K8 the cache is always left enabled. I think that means that the tags should all be correct and that a copy shouldn't be required, just the wbinvd. There has been some discussion about wbind and invd. I have always thought that a wbind should work as long as there is memory backing that area in cache. I think someone just needs to try it. Marc -- Marc Jones Senior Firmware Engineer (970) 226-9684 Office mailto:[EMAIL PROTECTED] http://www.amd.com/embeddedprocessors -- coreboot mailing list coreboot@coreboot.org http://www.coreboot.org/mailman/listinfo/coreboot