From 4bf3f3cbb6add01d3e6a18c73f594b73113b14f2 Mon Sep 17 00:00:00 2001 From: Robin Getz Date: Thu, 21 Jun 2007 11:34:16 +0800 Subject: Blackfin arch: update ANOMALY handling update lists for 533, 537, and add SSYNC workaround into assembly files. Signed-off-by: Robin Getz Signed-off-by: Bryan Wu --- include/asm-blackfin/mach-common/cdef_LPBlackfin.h | 27 ++++++++++++++++++++++ 1 file changed, 27 insertions(+) (limited to 'include/asm-blackfin/mach-common') diff --git a/include/asm-blackfin/mach-common/cdef_LPBlackfin.h b/include/asm-blackfin/mach-common/cdef_LPBlackfin.h index d39c396f850d..58f878947cbc 100644 --- a/include/asm-blackfin/mach-common/cdef_LPBlackfin.h +++ b/include/asm-blackfin/mach-common/cdef_LPBlackfin.h @@ -39,7 +39,20 @@ #define bfin_read_SRAM_BASE_ADDRESS() bfin_read32(SRAM_BASE_ADDRESS) #define bfin_write_SRAM_BASE_ADDRESS(val) bfin_write32(SRAM_BASE_ADDRESS,val) #define bfin_read_DMEM_CONTROL() bfin_read32(DMEM_CONTROL) +#ifdef ANOMALY_05000125 +static __inline__ void bfin_write_DMEM_CONTROL(unsigned int val) +{ + unsigned long flags, iwr; + + local_irq_save(flags); + __asm__(".align 8\n"); + bfin_write32(IMEM_CONTROL, val); + __builtin_bfin_ssync(); + local_irq_restore(flags); +} +#else #define bfin_write_DMEM_CONTROL(val) bfin_write32(DMEM_CONTROL,val) +#endif #define bfin_read_DCPLB_STATUS() bfin_read32(DCPLB_STATUS) #define bfin_write_DCPLB_STATUS(val) bfin_write32(DCPLB_STATUS,val) #define bfin_read_DCPLB_FAULT_ADDR() bfin_read32(DCPLB_FAULT_ADDR) @@ -125,7 +138,21 @@ #define DTEST_DATA3 0xFFE0040C */ #define bfin_read_IMEM_CONTROL() bfin_read32(IMEM_CONTROL) +#ifdef ANOMALY_05000125 +static __inline__ void bfin_write_IMEM_CONTROL(unsigned int val) +{ + unsigned long flags, iwr; + + local_irq_save(flags); + __asm__(".align 8\n"); + bfin_write32(IMEM_CONTROL, val); + __builtin_bfin_ssync(); + local_irq_restore(flags); + +} +#else #define bfin_write_IMEM_CONTROL(val) bfin_write32(IMEM_CONTROL,val) +#endif #define bfin_read_ICPLB_STATUS() bfin_read32(ICPLB_STATUS) #define bfin_write_ICPLB_STATUS(val) bfin_write32(ICPLB_STATUS,val) #define bfin_read_ICPLB_FAULT_ADDR() bfin_read32(ICPLB_FAULT_ADDR) -- cgit v1.2.3-59-g8ed1b