|
From: Roman Z. <zi...@li...> - 2001-09-28 11:41:09
|
Rene Brothuhn wrote: > np = __get_free_pages(GFP_ATOMIC, 1); > cache_push((u_long)virt_to_phys(np), 8192); > cache_clear((u_long)virt_to_phys(np), 8192); > kernel_set_cachemode((np), 8192, IOMAP_NOCACHE_SER); You need to boot with nobats, otherwise kernel_set_cachemode doesn't work. Anyway, in the long run kernel_set_cachemode shouldn't be used, it's simply isn't portable. The only problem is there isn't any standard interface yet to do this properly. Something like this is needed: vaddr = __vmalloc(size, GFP_KERNEL, _PAGE_NO_CACHE | _PAGE_GUARDED); for every page paddr = va_to_phys(vaddr); va_to_phys exists currently only for ppc, but it's quite generic code. For testing you can try it with nobats and we can change it later, but you should already take care to only work with single pages, that makes the conversion later easier. bye, Roman |