diff options
author | Michael Hennerich <michael.hennerich@analog.com> | 2008-07-19 04:56:53 -0400 |
---|---|---|
committer | Bryan Wu <cooloney@kernel.org> | 2008-07-19 04:56:53 -0400 |
commit | 0138da6101fa3cdfea7f470d014c2f13cc03e7a9 (patch) | |
tree | af0a5095f7f2eaf535f395f5c22289206f59d92f | |
parent | cc2e16bd35f6d78f559467358259e7d7264d4e96 (diff) |
Blackfin arch: fix bug - detect 0.1 silicon revision BF527-EZKIT as 0.0 version
Signed-off-by: Michael Hennerich <michael.hennerich@analog.com>
Signed-off-by: Bryan Wu <cooloney@kernel.org>
-rw-r--r-- | include/asm-blackfin/processor.h | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/include/asm-blackfin/processor.h b/include/asm-blackfin/processor.h index 1c0040724612..6f3995b119d8 100644 --- a/include/asm-blackfin/processor.h +++ b/include/asm-blackfin/processor.h | |||
@@ -112,7 +112,26 @@ unsigned long get_wchan(struct task_struct *p); | |||
112 | static inline uint32_t __pure bfin_revid(void) | 112 | static inline uint32_t __pure bfin_revid(void) |
113 | { | 113 | { |
114 | /* stored in the upper 4 bits */ | 114 | /* stored in the upper 4 bits */ |
115 | return bfin_read_CHIPID() >> 28; | 115 | uint32_t revid = bfin_read_CHIPID() >> 28; |
116 | |||
117 | #ifdef CONFIG_BF52x | ||
118 | /* ANOMALY_05000357 | ||
119 | * Incorrect Revision Number in DSPID Register | ||
120 | */ | ||
121 | if (revid == 0) | ||
122 | switch (bfin_read16(_BOOTROM_GET_DXE_ADDRESS_TWI)) { | ||
123 | case 0x0010: | ||
124 | revid = 0; | ||
125 | break; | ||
126 | case 0x2796: | ||
127 | revid = 1; | ||
128 | break; | ||
129 | default: | ||
130 | revid = 0xFFFF; | ||
131 | break; | ||
132 | } | ||
133 | #endif | ||
134 | return revid; | ||
116 | } | 135 | } |
117 | 136 | ||
118 | static inline uint32_t __pure bfin_compiled_revid(void) | 137 | static inline uint32_t __pure bfin_compiled_revid(void) |