mirror of
https://git.codelinaro.org/clo/qsdk/oss/boot/u-boot-2016.git
synced 2026-02-22 20:24:27 +01:00
sh: cache: don't modify CCR from P1 area
cache_wback_all() is a local function and it is called from cache_control() only, which is in turn jumps to P2 area. The change fixes an issue when cache_wback_all() returns from P2 to P1, however cache_control() continues to manipulate with CCR register, according to the User's Manual this is restricted. Signed-off-by: Vladimir Zapolskiy <vz@mleia.com>
This commit is contained in:
parent
c230a37838
commit
6ab8b961de
1 changed files with 3 additions and 5 deletions
|
|
@ -18,10 +18,10 @@ static inline void cache_wback_all(void)
|
|||
{
|
||||
unsigned long addr, data, i, j;
|
||||
|
||||
jump_to_P2();
|
||||
for (i = 0; i < CACHE_OC_NUM_ENTRIES; i++){
|
||||
for (i = 0; i < CACHE_OC_NUM_ENTRIES; i++) {
|
||||
for (j = 0; j < CACHE_OC_NUM_WAYS; j++) {
|
||||
addr = CACHE_OC_ADDRESS_ARRAY | (j << CACHE_OC_WAY_SHIFT)
|
||||
addr = CACHE_OC_ADDRESS_ARRAY
|
||||
| (j << CACHE_OC_WAY_SHIFT)
|
||||
| (i << CACHE_OC_ENTRY_SHIFT);
|
||||
data = inl(addr);
|
||||
if (data & CACHE_UPDATED) {
|
||||
|
|
@ -30,10 +30,8 @@ static inline void cache_wback_all(void)
|
|||
}
|
||||
}
|
||||
}
|
||||
back_to_P1();
|
||||
}
|
||||
|
||||
|
||||
#define CACHE_ENABLE 0
|
||||
#define CACHE_DISABLE 1
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue