Re: [U-Boot] [PATCH 2/2] ARMv7: at91: enable ICache and DCache.
Hi Josh, On 05/16/2014 05:17 PM, Josh Wu wrote: diff --git a/board/atmel/sama5d3xek/sama5d3xek.c b/board/atmel/sama5d3xek/sama5d3xek.c index c835c12..1fc91d9 100644 --- a/board/atmel/sama5d3xek/sama5d3xek.c +++ b/board/atmel/sama5d3xek/sama5d3xek.c @@ -200,8 +200,12 @@ int board_init(void) at91_gmac_hw_init(); #endif #ifdef CONFIG_LCD -if (has_lcdc()) +if (has_lcdc()) { sama5d3xek_lcd_hw_init(); + +/* Enable flushing as we enabled dcache */ +lcd_set_flush_dcache(1); Why not implement in driver, or else, each SoC enable dcache will need add this. hmm, the thing is some at91 board, for example at91sam9x5ek board, not defined CONFIG_SYS_DCACHE_OFF, that means DCache is enabled. But actually it doesn't implement dcache_enable(). In above situation, if we implement it in driver, I can't tell whether dcache is really enabled or not. For this reason, I manually call lcd_set_flush_dcache(1) in the board file. In the future if all boards (use hlcd driver) enabled dcache I will move this function to hlcd driver. I don't see any issue to implement this in driver, may be I am wrong? Can you figure out what issue you met? Btw, if there is really have issues, can make this condition with CONFIG_SYS_DCACHE_OFF? Best Regards, Josh Wu Best Regards, Bo Shen ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
Re: [U-Boot] [PATCH 2/2] ARMv7: at91: enable ICache and DCache.
Hi, Bo Thanks for the review ;-) On 5/16/2014 4:29 PM, Bo Shen wrote: Hi Josh, On 05/16/2014 04:15 PM, Josh Wu wrote: As SAMA5D3 is a at91 ARMv7 cpu, so we should enable LCD DCache flush for SAMA5D3X-EK. Signed-off-by: Josh Wu --- arch/arm/cpu/armv7/at91/cpu.c |6 ++ board/atmel/sama5d3xek/sama5d3xek.c |6 +- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/arch/arm/cpu/armv7/at91/cpu.c b/arch/arm/cpu/armv7/at91/cpu.c index 2fbf60d..6f2164f 100644 --- a/arch/arm/cpu/armv7/at91/cpu.c +++ b/arch/arm/cpu/armv7/at91/cpu.c @@ -61,6 +61,12 @@ int print_cpuinfo(void) void enable_caches(void) { +#ifndef CONFIG_SYS_ICACHE_OFF +icache_enable(); +#endif No need this one. Ifdef CONFIG_SYS_ICACHE_OFF, it will be disabled. ok, good. I will remove this #if. +#ifndef CONFIG_SYS_DCACHE_OFF +dcache_enable(); +#endif This will be removed too. } unsigned int get_chip_id(void) diff --git a/board/atmel/sama5d3xek/sama5d3xek.c b/board/atmel/sama5d3xek/sama5d3xek.c index c835c12..1fc91d9 100644 --- a/board/atmel/sama5d3xek/sama5d3xek.c +++ b/board/atmel/sama5d3xek/sama5d3xek.c @@ -200,8 +200,12 @@ int board_init(void) at91_gmac_hw_init(); #endif #ifdef CONFIG_LCD -if (has_lcdc()) +if (has_lcdc()) { sama5d3xek_lcd_hw_init(); + +/* Enable flushing as we enabled dcache */ +lcd_set_flush_dcache(1); Why not implement in driver, or else, each SoC enable dcache will need add this. hmm, the thing is some at91 board, for example at91sam9x5ek board, not defined CONFIG_SYS_DCACHE_OFF, that means DCache is enabled. But actually it doesn't implement dcache_enable(). In above situation, if we implement it in driver, I can't tell whether dcache is really enabled or not. For this reason, I manually call lcd_set_flush_dcache(1) in the board file. In the future if all boards (use hlcd driver) enabled dcache I will move this function to hlcd driver. Best Regards, Josh Wu +} #endif return 0; } Best Regards, Bo Shen ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
Re: [U-Boot] [PATCH 2/2] ARMv7: at91: enable ICache and DCache.
Hi Josh, On 05/16/2014 04:15 PM, Josh Wu wrote: As SAMA5D3 is a at91 ARMv7 cpu, so we should enable LCD DCache flush for SAMA5D3X-EK. Signed-off-by: Josh Wu --- arch/arm/cpu/armv7/at91/cpu.c |6 ++ board/atmel/sama5d3xek/sama5d3xek.c |6 +- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/arch/arm/cpu/armv7/at91/cpu.c b/arch/arm/cpu/armv7/at91/cpu.c index 2fbf60d..6f2164f 100644 --- a/arch/arm/cpu/armv7/at91/cpu.c +++ b/arch/arm/cpu/armv7/at91/cpu.c @@ -61,6 +61,12 @@ int print_cpuinfo(void) void enable_caches(void) { +#ifndef CONFIG_SYS_ICACHE_OFF + icache_enable(); +#endif No need this one. Ifdef CONFIG_SYS_ICACHE_OFF, it will be disabled. +#ifndef CONFIG_SYS_DCACHE_OFF + dcache_enable(); +#endif } unsigned int get_chip_id(void) diff --git a/board/atmel/sama5d3xek/sama5d3xek.c b/board/atmel/sama5d3xek/sama5d3xek.c index c835c12..1fc91d9 100644 --- a/board/atmel/sama5d3xek/sama5d3xek.c +++ b/board/atmel/sama5d3xek/sama5d3xek.c @@ -200,8 +200,12 @@ int board_init(void) at91_gmac_hw_init(); #endif #ifdef CONFIG_LCD - if (has_lcdc()) + if (has_lcdc()) { sama5d3xek_lcd_hw_init(); + + /* Enable flushing as we enabled dcache */ + lcd_set_flush_dcache(1); Why not implement in driver, or else, each SoC enable dcache will need add this. + } #endif return 0; } Best Regards, Bo Shen ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
[U-Boot] [PATCH 2/2] ARMv7: at91: enable ICache and DCache.
As SAMA5D3 is a at91 ARMv7 cpu, so we should enable LCD DCache flush for SAMA5D3X-EK. Signed-off-by: Josh Wu --- arch/arm/cpu/armv7/at91/cpu.c |6 ++ board/atmel/sama5d3xek/sama5d3xek.c |6 +- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/arch/arm/cpu/armv7/at91/cpu.c b/arch/arm/cpu/armv7/at91/cpu.c index 2fbf60d..6f2164f 100644 --- a/arch/arm/cpu/armv7/at91/cpu.c +++ b/arch/arm/cpu/armv7/at91/cpu.c @@ -61,6 +61,12 @@ int print_cpuinfo(void) void enable_caches(void) { +#ifndef CONFIG_SYS_ICACHE_OFF + icache_enable(); +#endif +#ifndef CONFIG_SYS_DCACHE_OFF + dcache_enable(); +#endif } unsigned int get_chip_id(void) diff --git a/board/atmel/sama5d3xek/sama5d3xek.c b/board/atmel/sama5d3xek/sama5d3xek.c index c835c12..1fc91d9 100644 --- a/board/atmel/sama5d3xek/sama5d3xek.c +++ b/board/atmel/sama5d3xek/sama5d3xek.c @@ -200,8 +200,12 @@ int board_init(void) at91_gmac_hw_init(); #endif #ifdef CONFIG_LCD - if (has_lcdc()) + if (has_lcdc()) { sama5d3xek_lcd_hw_init(); + + /* Enable flushing as we enabled dcache */ + lcd_set_flush_dcache(1); + } #endif return 0; } -- 1.7.9.5 ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot