Message ID | 1444361567-27328-1-git-send-email-thomas@wytron.com.tw |
---|---|
State | Accepted, archived |
Delegated to: | Thomas Chou |
Headers | show |
On Friday, October 09, 2015 at 05:32:47 AM, Thomas Chou wrote: > As the icache and dcache of nios2 are always enabled, the > cmd_cache is no of use and the cache status, enable and > disable functions can be removed. This is no good, I want to be able to enable/disable caches to look for DMA-related issues. That is, if I disable cache, the suspicious driver works and if I enable cache, the driver does not work, I can conclude that it's a DMA/cache-related issue. > Signed-off-by: Thomas Chou <thomas@wytron.com.tw> > --- > arch/nios2/cpu/cpu.c | 15 --------------- > 1 file changed, 15 deletions(-) > > diff --git a/arch/nios2/cpu/cpu.c b/arch/nios2/cpu/cpu.c > index 229a07b..4183244 100644 > --- a/arch/nios2/cpu/cpu.c > +++ b/arch/nios2/cpu/cpu.c > @@ -29,21 +29,6 @@ int do_reset(cmd_tbl_t *cmdtp, int flag, int argc, char > * const argv[]) return 0; > } > > -int dcache_status(void) > -{ > - return 1; > -} > - > -void dcache_enable(void) > -{ > - flush_dcache(CONFIG_SYS_DCACHE_SIZE, CONFIG_SYS_DCACHELINE_SIZE); > -} > - > -void dcache_disable(void) > -{ > - flush_dcache(CONFIG_SYS_DCACHE_SIZE, CONFIG_SYS_DCACHELINE_SIZE); > -} > - > int arch_cpu_init_dm(void) > { > struct udevice *dev; Best regards, Marek Vasut
Hi Marek, On 10/09/2015 08:57 PM, Marek Vasut wrote: > On Friday, October 09, 2015 at 05:32:47 AM, Thomas Chou wrote: >> As the icache and dcache of nios2 are always enabled, the >> cmd_cache is no of use and the cache status, enable and >> disable functions can be removed. > > This is no good, I want to be able to enable/disable caches to look > for DMA-related issues. That is, if I disable cache, the suspicious > driver works and if I enable cache, the driver does not work, I can > conclude that it's a DMA/cache-related issue. I understand. But the hardware always enables the cache if it is configured in nios2 cpu. We can bypass (partially disable) the cache using ioremap() or dma_alloc_coherent(). If the DMA buffer address is mangled with ioremap(), then it is uncached. You may use this to debug. Best regards, Thomas Chou
On Saturday, October 10, 2015 at 09:38:46 AM, Thomas Chou wrote: > Hi Marek, > > On 10/09/2015 08:57 PM, Marek Vasut wrote: > > On Friday, October 09, 2015 at 05:32:47 AM, Thomas Chou wrote: > >> As the icache and dcache of nios2 are always enabled, the > >> cmd_cache is no of use and the cache status, enable and > >> disable functions can be removed. > > > > This is no good, I want to be able to enable/disable caches to look > > for DMA-related issues. That is, if I disable cache, the suspicious > > driver works and if I enable cache, the driver does not work, I can > > conclude that it's a DMA/cache-related issue. > > I understand. But the hardware always enables the cache if it is > configured in nios2 cpu. > > We can bypass (partially disable) the cache using ioremap() or > dma_alloc_coherent(). If the DMA buffer address is mangled with > ioremap(), then it is uncached. You may use this to debug. OK, now it's clearer to me what you mean, thanks. Best regards, Marek Vasut
On 10/09/2015 11:32 AM, Thomas Chou wrote: > As the icache and dcache of nios2 are always enabled, the > cmd_cache is no of use and the cache status, enable and > disable functions can be removed. > > Signed-off-by: Thomas Chou <thomas@wytron.com.tw> > --- > arch/nios2/cpu/cpu.c | 15 --------------- > 1 file changed, 15 deletions(-) > Applied to u-boot-nios.
diff --git a/arch/nios2/cpu/cpu.c b/arch/nios2/cpu/cpu.c index 229a07b..4183244 100644 --- a/arch/nios2/cpu/cpu.c +++ b/arch/nios2/cpu/cpu.c @@ -29,21 +29,6 @@ int do_reset(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) return 0; } -int dcache_status(void) -{ - return 1; -} - -void dcache_enable(void) -{ - flush_dcache(CONFIG_SYS_DCACHE_SIZE, CONFIG_SYS_DCACHELINE_SIZE); -} - -void dcache_disable(void) -{ - flush_dcache(CONFIG_SYS_DCACHE_SIZE, CONFIG_SYS_DCACHELINE_SIZE); -} - int arch_cpu_init_dm(void) { struct udevice *dev;
As the icache and dcache of nios2 are always enabled, the cmd_cache is no of use and the cache status, enable and disable functions can be removed. Signed-off-by: Thomas Chou <thomas@wytron.com.tw> --- arch/nios2/cpu/cpu.c | 15 --------------- 1 file changed, 15 deletions(-)