>We are developing an embedded system based on the SA-110 and the 21285 PCI
>bridge using Linux 2.3.29-rmk1.
>The system appears to work fine with the dcache turned off. When the dcache
>is enabled then the system hangs.
You don't say what devices you are using. Many people are running Linux on
SA-110 systems perfectly happily with the data cache enabled.
>Does anyone have any suggestions of the best way to make re-mapped regions
>of memory un-cacheable and un-bufferable?
Chances are you don't want to. See the dma_cache_* macros defined in
<asm/io.h> for how you can force data to be flushed from the cache.
>We have thought of modifying kmalloc and get_free_pages when called with
>GFP_DMA combined either GFP_KERNEL or GFP_ATOMIC, but I
>believe that as far as PCI devices are concerned there's no MAX_DMA_ADDRESS
>limit, therefore GFP_DMA should not be used with PCI devices.
That's right. People have kicked around the idea of providing some
interface to allocate uncacheable memory but as yet nobody has implemented it
(to my knowledge).
If you really, really, want uncacheable memory on ARM you can probably use
some trick like __ioremap(virt_to_phys(__get_free_page())).
p.
unsubscribe: body of `unsubscribe linux-arm' to [EMAIL PROTECTED]
++ Please use [EMAIL PROTECTED] for ++
++ kernel-related discussions. ++