Hi Stephen, On 24 October 2014 13:11, Stephen Warren <swar...@wwwdotorg.org> wrote: > On 08/26/2014 09:34 AM, Thierry Reding wrote: >> >> From: Thierry Reding <tred...@nvidia.com> >> >> Implement an API that can be used by drivers to allocate memory from a >> pool that is mapped uncached. This is useful if drivers would otherwise >> need to do extensive cache maintenance (or explicitly maintaining the >> cache isn't safe). >> >> The API is protected using the new CONFIG_SYS_NONCACHED_MEMORY setting. >> Boards can set this to the size to be used for the non-cached area. The >> area will typically be right below the malloc() area, but architectures >> should take care of aligning the beginning and end of the area to honor >> any mapping restrictions. Architectures must also ensure that mappings >> established for this area do not overlap with the malloc() area (which >> should remain cached for improved performance). >> >> While the API is currently only implemented for ARM v7, it should be >> generic enough to allow other architectures to implement it as well. > > >> diff --git a/arch/arm/lib/cache.c b/arch/arm/lib/cache.c > > >> +void noncached_init(void) > > ... >> >> + mmu_set_region_dcache_behaviour(noncached_start, size, >> DCACHE_OFF); >> +} > > > If I build with: > > #define CONFIG_SYS_DCACHE_OFF > #define CONFIG_SYS_ICACHE_OFF > > ... then mmu_set_region_dcache_behaviour() doesn't exist (or at least isn't > linked in) on Jetson TK1 at least.
I see that too. If you #undef CONFIG_SYS_NONCACHED_MEMORY then the problem goes away. There is a warning in the network driver in this case but it is not important. A better solution is probably an #ifdef around the call you mention. It minimised code changes when cache is on/off which is probably a good thing. Regards Simon _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot