diff mbox

[U-Boot] nios2: zap cache status enable and disable functions

Message ID 1444361567-27328-1-git-send-email-thomas@wytron.com.tw
State Accepted, archived
Delegated to: Thomas Chou
Headers show

Commit Message

Thomas Chou Oct. 9, 2015, 3:32 a.m. UTC
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(-)

Comments

Marek Vasut Oct. 9, 2015, 12:57 p.m. UTC | #1
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
Thomas Chou Oct. 10, 2015, 7:38 a.m. UTC | #2
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
Marek Vasut Oct. 10, 2015, 6:10 p.m. UTC | #3
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
Thomas Chou Oct. 13, 2015, 1:19 p.m. UTC | #4
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 mbox

Patch

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;