Blackfin: decouple unrelated cache settings to get exact behavior
The current cache options don't really represent the hardware features. They end up setting different aspects of the hardware so that the end result is to turn on/off the cache. Unfortunately, when we hit cache problems with the hardware, it's difficult to test different settings to root cause the problem. The current settings also don't cleanly allow for different caching behaviors with different regions of memory. So split the configure options such that they properly reflect the settings that are applied to the hardware. Signed-off-by: Jie Zhang <jie.zhang@analog.com> Signed-off-by: Mike Frysinger <vapier@gentoo.org>
This commit is contained in:

committed by
Mike Frysinger

parent
7c039a90f0
commit
41ba653f24
@@ -46,13 +46,13 @@ void __init generate_cplb_tables_cpu(unsigned int cpu)
|
||||
|
||||
printk(KERN_INFO "MPU: setting up cplb tables with memory protection\n");
|
||||
|
||||
#ifdef CONFIG_BFIN_ICACHE
|
||||
#ifdef CONFIG_BFIN_EXTMEM_ICACHEABLE
|
||||
i_cache = CPLB_L1_CHBL | ANOMALY_05000158_WORKAROUND;
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_BFIN_DCACHE
|
||||
#ifdef CONFIG_BFIN_EXTMEM_DCACHEABLE
|
||||
d_cache = CPLB_L1_CHBL;
|
||||
#ifdef CONFIG_BFIN_WT
|
||||
#ifdef CONFIG_BFIN_EXTMEM_WRITETROUGH
|
||||
d_cache |= CPLB_L1_AOW | CPLB_WT;
|
||||
#endif
|
||||
#endif
|
||||
@@ -91,9 +91,9 @@ void __init generate_cplb_tables_cpu(unsigned int cpu)
|
||||
/* Cover L2 memory */
|
||||
#if L2_LENGTH > 0
|
||||
dcplb_tbl[cpu][i_d].addr = L2_START;
|
||||
dcplb_tbl[cpu][i_d++].data = L2_DMEMORY | PAGE_SIZE_1MB;
|
||||
dcplb_tbl[cpu][i_d++].data = L2_DMEMORY;
|
||||
icplb_tbl[cpu][i_i].addr = L2_START;
|
||||
icplb_tbl[cpu][i_i++].data = L2_IMEMORY | PAGE_SIZE_1MB;
|
||||
icplb_tbl[cpu][i_i++].data = L2_IMEMORY;
|
||||
#endif
|
||||
|
||||
first_mask_dcplb = i_d;
|
||||
|
Reference in New Issue
Block a user