Mike Frysinger | 66c4cf4 | 2008-02-04 19:26:55 -0500 | [diff] [blame] | 1 | /* |
| 2 | * cplb.h - defines for managing CPLB tables |
Wolfgang Denk | 97caf67 | 2006-03-12 02:12:27 +0100 | [diff] [blame] | 3 | * |
Mike Frysinger | 66c4cf4 | 2008-02-04 19:26:55 -0500 | [diff] [blame] | 4 | * Copyright (c) 2002-2007 Analog Devices Inc. |
Wolfgang Denk | 97caf67 | 2006-03-12 02:12:27 +0100 | [diff] [blame] | 5 | * |
Mike Frysinger | 66c4cf4 | 2008-02-04 19:26:55 -0500 | [diff] [blame] | 6 | * Licensed under the GPL-2 or later. |
| 7 | */ |
Wolfgang Denk | 97caf67 | 2006-03-12 02:12:27 +0100 | [diff] [blame] | 8 | |
Mike Frysinger | 66c4cf4 | 2008-02-04 19:26:55 -0500 | [diff] [blame] | 9 | #ifndef __ASM_BLACKFIN_CPLB_H__ |
| 10 | #define __ASM_BLACKFIN_CPLB_H__ |
Wolfgang Denk | 97caf67 | 2006-03-12 02:12:27 +0100 | [diff] [blame] | 11 | |
Mike Frysinger | 66c4cf4 | 2008-02-04 19:26:55 -0500 | [diff] [blame] | 12 | #include <asm/mach-common/bits/mpu.h> |
Aubrey.Li | 9da597f | 2007-03-09 13:38:44 +0800 | [diff] [blame] | 13 | |
Wolfgang Denk | 97caf67 | 2006-03-12 02:12:27 +0100 | [diff] [blame] | 14 | #define CPLB_ENABLE_ICACHE_P 0 |
| 15 | #define CPLB_ENABLE_DCACHE_P 1 |
| 16 | #define CPLB_ENABLE_DCACHE2_P 2 |
Aubrey.Li | 9da597f | 2007-03-09 13:38:44 +0800 | [diff] [blame] | 17 | #define CPLB_ENABLE_CPLBS_P 3 /* Deprecated! */ |
Wolfgang Denk | 97caf67 | 2006-03-12 02:12:27 +0100 | [diff] [blame] | 18 | #define CPLB_ENABLE_ICPLBS_P 4 |
| 19 | #define CPLB_ENABLE_DCPLBS_P 5 |
| 20 | |
| 21 | #define CPLB_ENABLE_ICACHE (1<<CPLB_ENABLE_ICACHE_P) |
| 22 | #define CPLB_ENABLE_DCACHE (1<<CPLB_ENABLE_DCACHE_P) |
| 23 | #define CPLB_ENABLE_DCACHE2 (1<<CPLB_ENABLE_DCACHE2_P) |
| 24 | #define CPLB_ENABLE_CPLBS (1<<CPLB_ENABLE_CPLBS_P) |
| 25 | #define CPLB_ENABLE_ICPLBS (1<<CPLB_ENABLE_ICPLBS_P) |
| 26 | #define CPLB_ENABLE_DCPLBS (1<<CPLB_ENABLE_DCPLBS_P) |
| 27 | #define CPLB_ENABLE_ANY_CPLBS CPLB_ENABLE_CPLBS | \ |
| 28 | CPLB_ENABLE_ICPLBS | \ |
| 29 | CPLB_ENABLE_DCPLBS |
| 30 | |
| 31 | #define CPLB_RELOADED 0x0000 |
| 32 | #define CPLB_NO_UNLOCKED 0x0001 |
| 33 | #define CPLB_NO_ADDR_MATCH 0x0002 |
| 34 | #define CPLB_PROT_VIOL 0x0003 |
| 35 | |
| 36 | #define CPLB_DEF_CACHE CPLB_L1_CHBL | CPLB_WT |
| 37 | #define CPLB_CACHE_ENABLED CPLB_L1_CHBL | CPLB_DIRTY |
| 38 | |
| 39 | #define CPLB_ALL_ACCESS CPLB_SUPV_WR | CPLB_USER_RD | CPLB_USER_WR |
| 40 | |
| 41 | #define CPLB_I_PAGE_MGMT CPLB_LOCK | CPLB_VALID |
| 42 | #define CPLB_D_PAGE_MGMT CPLB_LOCK | CPLB_ALL_ACCESS | CPLB_VALID |
| 43 | #define CPLB_DNOCACHE CPLB_ALL_ACCESS | CPLB_VALID |
| 44 | #define CPLB_DDOCACHE CPLB_DNOCACHE | CPLB_DEF_CACHE |
Wolfgang Denk | a1be476 | 2008-05-20 16:00:29 +0200 | [diff] [blame] | 45 | #define CPLB_INOCACHE CPLB_USER_RD | CPLB_VALID |
| 46 | #define CPLB_IDOCACHE CPLB_INOCACHE | CPLB_L1_CHBL |
Wolfgang Denk | 97caf67 | 2006-03-12 02:12:27 +0100 | [diff] [blame] | 47 | |
Aubrey.Li | 9da597f | 2007-03-09 13:38:44 +0800 | [diff] [blame] | 48 | /* Data Attibutes*/ |
Bob Liu | 49334b8 | 2011-10-25 18:07:58 +0800 | [diff] [blame] | 49 | #if defined(__ADSPBF60x__) |
| 50 | #define SDRAM_IGENERIC (PAGE_SIZE_16MB | CPLB_L1_CHBL | \ |
| 51 | CPLB_USER_RD | CPLB_VALID) |
| 52 | #else |
| 53 | #define SDRAM_IGENERIC (PAGE_SIZE_4MB | CPLB_L1_CHBL | \ |
| 54 | CPLB_USER_RD | CPLB_VALID) |
| 55 | #endif |
Aubrey.Li | 9da597f | 2007-03-09 13:38:44 +0800 | [diff] [blame] | 56 | #define SDRAM_IKERNEL (PAGE_SIZE_4MB | CPLB_L1_CHBL | CPLB_USER_RD | CPLB_VALID | CPLB_LOCK) |
Aubrey Li | e8c47f4 | 2007-04-05 18:33:04 +0800 | [diff] [blame] | 57 | #define L1_IMEMORY (PAGE_SIZE_1MB | CPLB_USER_RD | CPLB_VALID | CPLB_LOCK) |
Aubrey.Li | 9da597f | 2007-03-09 13:38:44 +0800 | [diff] [blame] | 58 | #define SDRAM_INON_CHBL (PAGE_SIZE_4MB | CPLB_USER_RD | CPLB_VALID) |
| 59 | |
Mike Frysinger | 66c4cf4 | 2008-02-04 19:26:55 -0500 | [diff] [blame] | 60 | #if ANOMALY_05000158 |
| 61 | # define ANOMALY_05000158_WORKAROUND 0x200 |
| 62 | #else |
| 63 | # define ANOMALY_05000158_WORKAROUND 0 |
| 64 | #endif |
Aubrey.Li | 9da597f | 2007-03-09 13:38:44 +0800 | [diff] [blame] | 65 | |
Mike Frysinger | 66c4cf4 | 2008-02-04 19:26:55 -0500 | [diff] [blame] | 66 | #ifdef CONFIG_DCACHE_WB /*Write Back Policy */ |
Bob Liu | 49334b8 | 2011-10-25 18:07:58 +0800 | [diff] [blame] | 67 | #if defined(__ADSPBF60x__) |
| 68 | #define SDRAM_DGENERIC (PAGE_SIZE_16MB | CPLB_L1_CHBL | CPLB_DIRTY | \ |
| 69 | CPLB_SUPV_WR | CPLB_USER_WR | CPLB_USER_RD | \ |
| 70 | CPLB_VALID | ANOMALY_05000158_WORKAROUND) |
| 71 | #else |
| 72 | #define SDRAM_DGENERIC (PAGE_SIZE_4MB | CPLB_L1_CHBL | CPLB_DIRTY | \ |
| 73 | CPLB_SUPV_WR | CPLB_USER_WR | CPLB_USER_RD | \ |
| 74 | CPLB_VALID | ANOMALY_05000158_WORKAROUND) |
| 75 | #endif |
Mike Frysinger | 66c4cf4 | 2008-02-04 19:26:55 -0500 | [diff] [blame] | 76 | #define SDRAM_DNON_CHBL (PAGE_SIZE_4MB | CPLB_DIRTY | CPLB_SUPV_WR | CPLB_USER_RD | CPLB_USER_WR | CPLB_VALID | ANOMALY_05000158_WORKAROUND) |
| 77 | #define SDRAM_DKERNEL (PAGE_SIZE_4MB | CPLB_L1_CHBL | CPLB_USER_RD | CPLB_USER_WR | CPLB_DIRTY | CPLB_SUPV_WR | CPLB_VALID | CPLB_LOCK | ANOMALY_05000158_WORKAROUND) |
| 78 | #define L1_DMEMORY (PAGE_SIZE_4MB | CPLB_SUPV_WR | CPLB_USER_WR | CPLB_USER_RD | CPLB_VALID | ANOMALY_05000158_WORKAROUND) |
| 79 | #define SDRAM_EBIU (PAGE_SIZE_4MB | CPLB_DIRTY | CPLB_USER_RD | CPLB_USER_WR | CPLB_SUPV_WR | CPLB_VALID | ANOMALY_05000158_WORKAROUND) |
Aubrey.Li | 9da597f | 2007-03-09 13:38:44 +0800 | [diff] [blame] | 80 | |
| 81 | #else /*Write Through */ |
Bob Liu | 49334b8 | 2011-10-25 18:07:58 +0800 | [diff] [blame] | 82 | #if defined(__ADSPBF60x__) |
| 83 | #define SDRAM_DGENERIC (PAGE_SIZE_16MB | CPLB_L1_CHBL | CPLB_WT | \ |
| 84 | CPLB_L1_AOW | CPLB_SUPV_WR | CPLB_USER_RD | \ |
| 85 | CPLB_USER_WR | CPLB_VALID | \ |
| 86 | ANOMALY_05000158_WORKAROUND) |
| 87 | #else |
| 88 | #define SDRAM_DGENERIC (PAGE_SIZE_4MB | CPLB_L1_CHBL | CPLB_WT | \ |
| 89 | CPLB_L1_AOW | CPLB_SUPV_WR | CPLB_USER_RD | \ |
| 90 | CPLB_USER_WR | CPLB_VALID | \ |
| 91 | ANOMALY_05000158_WORKAROUND) |
| 92 | #endif |
Mike Frysinger | 66c4cf4 | 2008-02-04 19:26:55 -0500 | [diff] [blame] | 93 | #define SDRAM_DNON_CHBL (PAGE_SIZE_4MB | CPLB_WT | CPLB_L1_AOW | CPLB_SUPV_WR | CPLB_USER_WR | CPLB_USER_RD | CPLB_VALID | ANOMALY_05000158_WORKAROUND) |
| 94 | #define SDRAM_DKERNEL (PAGE_SIZE_4MB | CPLB_L1_CHBL | CPLB_WT | CPLB_L1_AOW | CPLB_USER_RD | CPLB_SUPV_WR | CPLB_USER_WR | CPLB_VALID | CPLB_LOCK | ANOMALY_05000158_WORKAROUND) |
| 95 | #define L1_DMEMORY (PAGE_SIZE_4MB | CPLB_SUPV_WR | CPLB_USER_WR | CPLB_VALID | ANOMALY_05000158_WORKAROUND) |
| 96 | #define SDRAM_EBIU (PAGE_SIZE_4MB | CPLB_WT | CPLB_L1_AOW | CPLB_USER_RD | CPLB_USER_WR | CPLB_SUPV_WR | CPLB_VALID | ANOMALY_05000158_WORKAROUND) |
Aubrey.Li | 9da597f | 2007-03-09 13:38:44 +0800 | [diff] [blame] | 97 | #endif |
| 98 | |
Aubrey.Li | 9da597f | 2007-03-09 13:38:44 +0800 | [diff] [blame] | 99 | #endif /* _CPLB_H */ |