aboutsummaryrefslogtreecommitdiffstats
path: root/arch/blackfin/mach-common/cplbmgr.S
diff options
context:
space:
mode:
Diffstat (limited to 'arch/blackfin/mach-common/cplbmgr.S')
-rw-r--r--arch/blackfin/mach-common/cplbmgr.S22
1 files changed, 19 insertions, 3 deletions
diff --git a/arch/blackfin/mach-common/cplbmgr.S b/arch/blackfin/mach-common/cplbmgr.S
index faca1ab344d2..f5cf3accef37 100644
--- a/arch/blackfin/mach-common/cplbmgr.S
+++ b/arch/blackfin/mach-common/cplbmgr.S
@@ -190,7 +190,14 @@ ENTRY(_cplb_mgr)
190 [P0 - 4] = R0; 190 [P0 - 4] = R0;
191 R0 = [P0 - 0x100]; 191 R0 = [P0 - 0x100];
192 [P0-0x104] = R0; 192 [P0-0x104] = R0;
193.Lie_move:P0+=4; 193.Lie_move:
194 P0+=4;
195
196 /* Clear ICPLB_DATA15, in case we don't find a replacement
197 * otherwise, we would have a duplicate entry, and will crash
198 */
199 R0 = 0;
200 [P0 - 4] = R0;
194 201
195 /* We've made space in the ICPLB table, so that ICPLB15 202 /* We've made space in the ICPLB table, so that ICPLB15
196 * is now free to be overwritten. Next, we have to determine 203 * is now free to be overwritten. Next, we have to determine
@@ -515,14 +522,23 @@ ENTRY(_cplb_mgr)
515 R0 = [P0++]; /* move data */ 522 R0 = [P0++]; /* move data */
516 [P0 - 8] = R0; 523 [P0 - 8] = R0;
517 R0 = [P0-0x104] /* move address */ 524 R0 = [P0-0x104] /* move address */
518.Lde_move: [P0-0x108] = R0; 525.Lde_move:
526 [P0-0x108] = R0;
527
528.Lde_moved:
529 NOP;
530
531 /* Clear DCPLB_DATA15, in case we don't find a replacement
532 * otherwise, we would have a duplicate entry, and will crash
533 */
534 R0 = 0;
535 [P0 - 0x4] = R0;
519 536
520 /* We've now made space in DCPLB15 for the new CPLB to be 537 /* We've now made space in DCPLB15 for the new CPLB to be
521 * installed. The next stage is to locate a CPLB in the 538 * installed. The next stage is to locate a CPLB in the
522 * config table that covers the faulting address. 539 * config table that covers the faulting address.
523 */ 540 */
524 541
525.Lde_moved:NOP;
526 R0 = I0; /* Our faulting address */ 542 R0 = I0; /* Our faulting address */
527 543
528 P2.L = _dpdt_table; 544 P2.L = _dpdt_table;