|
|
|
@ -13,12 +13,12 @@ |
|
|
|
|
#include <asm/cache.h> |
|
|
|
|
|
|
|
|
|
/* Bit values in IC_CTRL */ |
|
|
|
|
#define IC_CTRL_CACHE_DISABLE (1 << 0) |
|
|
|
|
#define IC_CTRL_CACHE_DISABLE BIT(0) |
|
|
|
|
|
|
|
|
|
/* Bit values in DC_CTRL */ |
|
|
|
|
#define DC_CTRL_CACHE_DISABLE (1 << 0) |
|
|
|
|
#define DC_CTRL_INV_MODE_FLUSH (1 << 6) |
|
|
|
|
#define DC_CTRL_FLUSH_STATUS (1 << 8) |
|
|
|
|
#define DC_CTRL_CACHE_DISABLE BIT(0) |
|
|
|
|
#define DC_CTRL_INV_MODE_FLUSH BIT(6) |
|
|
|
|
#define DC_CTRL_FLUSH_STATUS BIT(8) |
|
|
|
|
#define CACHE_VER_NUM_MASK 0xF |
|
|
|
|
|
|
|
|
|
#define OP_INV 0x1 |
|
|
|
@ -269,7 +269,6 @@ void cache_init(void) |
|
|
|
|
write_aux_reg(ARC_AUX_IO_COH_AP0_SIZE, |
|
|
|
|
order_base_2(ap_size / 1024) - 2); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* IOC Aperture start must be aligned to the size of the aperture */ |
|
|
|
|
if (ap_base % ap_size != 0) |
|
|
|
|
panic("IOC Aperture start must be aligned to the size of the aperture"); |
|
|
|
@ -277,7 +276,6 @@ void cache_init(void) |
|
|
|
|
write_aux_reg(ARC_AUX_IO_COH_AP0_BASE, ap_base >> 12); |
|
|
|
|
write_aux_reg(ARC_AUX_IO_COH_PARTIAL, 1); |
|
|
|
|
write_aux_reg(ARC_AUX_IO_COH_ENABLE, 1); |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
read_decode_mmu_bcr(); |
|
|
|
@ -426,8 +424,7 @@ static unsigned int __before_dc_op(const int op) |
|
|
|
|
static void __after_dc_op(const int op, unsigned int reg) |
|
|
|
|
{ |
|
|
|
|
if (op & OP_FLUSH) /* flush / flush-n-inv both wait */ |
|
|
|
|
while (read_aux_reg(ARC_AUX_DC_CTRL) & DC_CTRL_FLUSH_STATUS) |
|
|
|
|
; |
|
|
|
|
while (read_aux_reg(ARC_AUX_DC_CTRL) & DC_CTRL_FLUSH_STATUS); |
|
|
|
|
|
|
|
|
|
/* Switch back to default Invalidate mode */ |
|
|
|
|
if (op == OP_INV) |
|
|
|
@ -453,6 +450,7 @@ static inline void __dc_line_op(unsigned long paddr, unsigned long sz, |
|
|
|
|
const int cacheop) |
|
|
|
|
{ |
|
|
|
|
unsigned int ctrl_reg = __before_dc_op(cacheop); |
|
|
|
|
|
|
|
|
|
__cache_line_loop(paddr, sz, cacheop); |
|
|
|
|
__after_dc_op(cacheop, ctrl_reg); |
|
|
|
|
} |
|
|
|
|