diff options
| -rw-r--r-- | arch/arm/mm/proc-arm1020.S | 16 | ||||
| -rw-r--r-- | arch/arm/mm/proc-arm1020e.S | 15 | ||||
| -rw-r--r-- | arch/arm/mm/proc-arm1022.S | 15 | ||||
| -rw-r--r-- | arch/arm/mm/proc-arm1026.S | 15 | ||||
| -rw-r--r-- | arch/arm/mm/proc-arm720.S | 15 | ||||
| -rw-r--r-- | arch/arm/mm/proc-arm920.S | 15 | ||||
| -rw-r--r-- | arch/arm/mm/proc-arm922.S | 15 | ||||
| -rw-r--r-- | arch/arm/mm/proc-arm925.S | 14 | ||||
| -rw-r--r-- | arch/arm/mm/proc-arm926.S | 15 | ||||
| -rw-r--r-- | arch/arm/mm/proc-macros.S | 10 | ||||
| -rw-r--r-- | arch/arm/mm/proc-sa110.S | 16 | ||||
| -rw-r--r-- | arch/arm/mm/proc-sa1100.S | 15 | ||||
| -rw-r--r-- | arch/arm/mm/proc-v6.S | 15 | ||||
| -rw-r--r-- | arch/arm/mm/proc-xsc3.S | 19 | ||||
| -rw-r--r-- | arch/arm/mm/proc-xscale.S | 16 |
15 files changed, 101 insertions, 125 deletions
diff --git a/arch/arm/mm/proc-arm1020.S b/arch/arm/mm/proc-arm1020.S index efeebe77891f..6c731a4f70c9 100644 --- a/arch/arm/mm/proc-arm1020.S +++ b/arch/arm/mm/proc-arm1020.S | |||
| @@ -440,11 +440,12 @@ __arm1020_setup: | |||
| 440 | #ifdef CONFIG_MMU | 440 | #ifdef CONFIG_MMU |
| 441 | mcr p15, 0, r0, c8, c7 @ invalidate I,D TLBs on v4 | 441 | mcr p15, 0, r0, c8, c7 @ invalidate I,D TLBs on v4 |
| 442 | #endif | 442 | #endif |
| 443 | |||
| 444 | adr r5, arm1020_crval | ||
| 445 | ldmia r5, {r5, r6} | ||
| 443 | mrc p15, 0, r0, c1, c0 @ get control register v4 | 446 | mrc p15, 0, r0, c1, c0 @ get control register v4 |
| 444 | ldr r5, arm1020_cr1_clear | ||
| 445 | bic r0, r0, r5 | 447 | bic r0, r0, r5 |
| 446 | ldr r5, arm1020_cr1_set | 448 | orr r0, r0, r6 |
| 447 | orr r0, r0, r5 | ||
| 448 | #ifdef CONFIG_CPU_CACHE_ROUND_ROBIN | 449 | #ifdef CONFIG_CPU_CACHE_ROUND_ROBIN |
| 449 | orr r0, r0, #0x4000 @ .R.. .... .... .... | 450 | orr r0, r0, #0x4000 @ .R.. .... .... .... |
| 450 | #endif | 451 | #endif |
| @@ -456,12 +457,9 @@ __arm1020_setup: | |||
| 456 | * .RVI ZFRS BLDP WCAM | 457 | * .RVI ZFRS BLDP WCAM |
| 457 | * .011 1001 ..11 0101 | 458 | * .011 1001 ..11 0101 |
| 458 | */ | 459 | */ |
| 459 | .type arm1020_cr1_clear, #object | 460 | .type arm1020_crval, #object |
| 460 | .type arm1020_cr1_set, #object | 461 | arm1020_crval: |
| 461 | arm1020_cr1_clear: | 462 | crval clear=0x0000593f, mmuset=0x00003935, ucset=0x00001930 |
| 462 | .word 0x593f | ||
| 463 | arm1020_cr1_set: | ||
| 464 | .word 0x3935 | ||
| 465 | 463 | ||
| 466 | __INITDATA | 464 | __INITDATA |
| 467 | 465 | ||
diff --git a/arch/arm/mm/proc-arm1020e.S b/arch/arm/mm/proc-arm1020e.S index 78622ac1e732..269f485d092d 100644 --- a/arch/arm/mm/proc-arm1020e.S +++ b/arch/arm/mm/proc-arm1020e.S | |||
| @@ -422,11 +422,11 @@ __arm1020e_setup: | |||
| 422 | #ifdef CONFIG_MMU | 422 | #ifdef CONFIG_MMU |
| 423 | mcr p15, 0, r0, c8, c7 @ invalidate I,D TLBs on v4 | 423 | mcr p15, 0, r0, c8, c7 @ invalidate I,D TLBs on v4 |
| 424 | #endif | 424 | #endif |
| 425 | adr r5, arm1020e_crval | ||
| 426 | ldmia r5, {r5, r6} | ||
| 425 | mrc p15, 0, r0, c1, c0 @ get control register v4 | 427 | mrc p15, 0, r0, c1, c0 @ get control register v4 |
| 426 | ldr r5, arm1020e_cr1_clear | ||
| 427 | bic r0, r0, r5 | 428 | bic r0, r0, r5 |
| 428 | ldr r5, arm1020e_cr1_set | 429 | orr r0, r0, r6 |
| 429 | orr r0, r0, r5 | ||
| 430 | #ifdef CONFIG_CPU_CACHE_ROUND_ROBIN | 430 | #ifdef CONFIG_CPU_CACHE_ROUND_ROBIN |
| 431 | orr r0, r0, #0x4000 @ .R.. .... .... .... | 431 | orr r0, r0, #0x4000 @ .R.. .... .... .... |
| 432 | #endif | 432 | #endif |
| @@ -438,12 +438,9 @@ __arm1020e_setup: | |||
| 438 | * .RVI ZFRS BLDP WCAM | 438 | * .RVI ZFRS BLDP WCAM |
| 439 | * .011 1001 ..11 0101 | 439 | * .011 1001 ..11 0101 |
| 440 | */ | 440 | */ |
| 441 | .type arm1020e_cr1_clear, #object | 441 | .type arm1020e_crval, #object |
| 442 | .type arm1020e_cr1_set, #object | 442 | arm1020e_crval: |
| 443 | arm1020e_cr1_clear: | 443 | crval clear=0x00007f3f, mmuset=0x00003935, ucset=0x00001930 |
| 444 | .word 0x5f3f | ||
| 445 | arm1020e_cr1_set: | ||
| 446 | .word 0x3935 | ||
| 447 | 444 | ||
| 448 | __INITDATA | 445 | __INITDATA |
| 449 | 446 | ||
diff --git a/arch/arm/mm/proc-arm1022.S b/arch/arm/mm/proc-arm1022.S index 840dfc85ba6d..0643bd464969 100644 --- a/arch/arm/mm/proc-arm1022.S +++ b/arch/arm/mm/proc-arm1022.S | |||
| @@ -404,11 +404,11 @@ __arm1022_setup: | |||
| 404 | #ifdef CONFIG_MMU | 404 | #ifdef CONFIG_MMU |
| 405 | mcr p15, 0, r0, c8, c7 @ invalidate I,D TLBs on v4 | 405 | mcr p15, 0, r0, c8, c7 @ invalidate I,D TLBs on v4 |
| 406 | #endif | 406 | #endif |
| 407 | adr r5, arm1022_crval | ||
| 408 | ldmia r5, {r5, r6} | ||
| 407 | mrc p15, 0, r0, c1, c0 @ get control register v4 | 409 | mrc p15, 0, r0, c1, c0 @ get control register v4 |
| 408 | ldr r5, arm1022_cr1_clear | ||
| 409 | bic r0, r0, r5 | 410 | bic r0, r0, r5 |
| 410 | ldr r5, arm1022_cr1_set | 411 | orr r0, r0, r6 |
| 411 | orr r0, r0, r5 | ||
| 412 | #ifdef CONFIG_CPU_CACHE_ROUND_ROBIN | 412 | #ifdef CONFIG_CPU_CACHE_ROUND_ROBIN |
| 413 | orr r0, r0, #0x4000 @ .R.............. | 413 | orr r0, r0, #0x4000 @ .R.............. |
| 414 | #endif | 414 | #endif |
| @@ -421,12 +421,9 @@ __arm1022_setup: | |||
| 421 | * .011 1001 ..11 0101 | 421 | * .011 1001 ..11 0101 |
| 422 | * | 422 | * |
| 423 | */ | 423 | */ |
| 424 | .type arm1022_cr1_clear, #object | 424 | .type arm1022_crval, #object |
| 425 | .type arm1022_cr1_set, #object | 425 | arm1022_crval: |
| 426 | arm1022_cr1_clear: | 426 | crval clear=0x00007f3f, mmuset=0x00003935, ucset=0x00001930 |
| 427 | .word 0x7f3f | ||
| 428 | arm1022_cr1_set: | ||
| 429 | .word 0x3935 | ||
| 430 | 427 | ||
| 431 | __INITDATA | 428 | __INITDATA |
| 432 | 429 | ||
diff --git a/arch/arm/mm/proc-arm1026.S b/arch/arm/mm/proc-arm1026.S index 72b75d9c712a..0668bfbac67b 100644 --- a/arch/arm/mm/proc-arm1026.S +++ b/arch/arm/mm/proc-arm1026.S | |||
| @@ -399,11 +399,11 @@ __arm1026_setup: | |||
| 399 | mov r0, #4 @ explicitly disable writeback | 399 | mov r0, #4 @ explicitly disable writeback |
| 400 | mcr p15, 7, r0, c15, c0, 0 | 400 | mcr p15, 7, r0, c15, c0, 0 |
| 401 | #endif | 401 | #endif |
| 402 | adr r5, arm1026_crval | ||
| 403 | ldmia r5, {r5, r6} | ||
| 402 | mrc p15, 0, r0, c1, c0 @ get control register v4 | 404 | mrc p15, 0, r0, c1, c0 @ get control register v4 |
| 403 | ldr r5, arm1026_cr1_clear | ||
| 404 | bic r0, r0, r5 | 405 | bic r0, r0, r5 |
| 405 | ldr r5, arm1026_cr1_set | 406 | orr r0, r0, r6 |
| 406 | orr r0, r0, r5 | ||
| 407 | #ifdef CONFIG_CPU_CACHE_ROUND_ROBIN | 407 | #ifdef CONFIG_CPU_CACHE_ROUND_ROBIN |
| 408 | orr r0, r0, #0x4000 @ .R.. .... .... .... | 408 | orr r0, r0, #0x4000 @ .R.. .... .... .... |
| 409 | #endif | 409 | #endif |
| @@ -416,12 +416,9 @@ __arm1026_setup: | |||
| 416 | * .011 1001 ..11 0101 | 416 | * .011 1001 ..11 0101 |
| 417 | * | 417 | * |
| 418 | */ | 418 | */ |
| 419 | .type arm1026_cr1_clear, #object | 419 | .type arm1026_crval, #object |
| 420 | .type arm1026_cr1_set, #object | 420 | arm1026_crval: |
| 421 | arm1026_cr1_clear: | 421 | crval clear=0x00007f3f, mmuset=0x00003935, ucset=0x00001934 |
| 422 | .word 0x7f3f | ||
| 423 | arm1026_cr1_set: | ||
| 424 | .word 0x3935 | ||
| 425 | 422 | ||
| 426 | __INITDATA | 423 | __INITDATA |
| 427 | 424 | ||
diff --git a/arch/arm/mm/proc-arm720.S b/arch/arm/mm/proc-arm720.S index fb4110a9db6f..0e6946ab6e5b 100644 --- a/arch/arm/mm/proc-arm720.S +++ b/arch/arm/mm/proc-arm720.S | |||
| @@ -169,11 +169,11 @@ __arm720_setup: | |||
| 169 | #ifdef CONFIG_MMU | 169 | #ifdef CONFIG_MMU |
| 170 | mcr p15, 0, r0, c8, c7, 0 @ flush TLB (v4) | 170 | mcr p15, 0, r0, c8, c7, 0 @ flush TLB (v4) |
| 171 | #endif | 171 | #endif |
| 172 | adr r5, arm720_crval | ||
| 173 | ldmia r5, {r5, r6} | ||
| 172 | mrc p15, 0, r0, c1, c0 @ get control register | 174 | mrc p15, 0, r0, c1, c0 @ get control register |
| 173 | ldr r5, arm720_cr1_clear | ||
| 174 | bic r0, r0, r5 | 175 | bic r0, r0, r5 |
| 175 | ldr r5, arm720_cr1_set | 176 | orr r0, r0, r6 |
| 176 | orr r0, r0, r5 | ||
| 177 | mov pc, lr @ __ret (head.S) | 177 | mov pc, lr @ __ret (head.S) |
| 178 | .size __arm720_setup, . - __arm720_setup | 178 | .size __arm720_setup, . - __arm720_setup |
| 179 | 179 | ||
| @@ -183,12 +183,9 @@ __arm720_setup: | |||
| 183 | * ..1. 1001 ..11 1101 | 183 | * ..1. 1001 ..11 1101 |
| 184 | * | 184 | * |
| 185 | */ | 185 | */ |
| 186 | .type arm720_cr1_clear, #object | 186 | .type arm720_crval, #object |
| 187 | .type arm720_cr1_set, #object | 187 | arm720_crval: |
| 188 | arm720_cr1_clear: | 188 | crval clear=0x00002f3f, mmuset=0x0000213d, ucset=0x00000130 |
| 189 | .word 0x2f3f | ||
| 190 | arm720_cr1_set: | ||
| 191 | .word 0x213d | ||
| 192 | 189 | ||
| 193 | __INITDATA | 190 | __INITDATA |
| 194 | 191 | ||
diff --git a/arch/arm/mm/proc-arm920.S b/arch/arm/mm/proc-arm920.S index b9f1bd11bc62..45292f46c3b2 100644 --- a/arch/arm/mm/proc-arm920.S +++ b/arch/arm/mm/proc-arm920.S | |||
| @@ -391,11 +391,11 @@ __arm920_setup: | |||
| 391 | #ifdef CONFIG_MMU | 391 | #ifdef CONFIG_MMU |
| 392 | mcr p15, 0, r0, c8, c7 @ invalidate I,D TLBs on v4 | 392 | mcr p15, 0, r0, c8, c7 @ invalidate I,D TLBs on v4 |
| 393 | #endif | 393 | #endif |
| 394 | adr r5, arm920_crval | ||
| 395 | ldmia r5, {r5, r6} | ||
| 394 | mrc p15, 0, r0, c1, c0 @ get control register v4 | 396 | mrc p15, 0, r0, c1, c0 @ get control register v4 |
| 395 | ldr r5, arm920_cr1_clear | ||
| 396 | bic r0, r0, r5 | 397 | bic r0, r0, r5 |
| 397 | ldr r5, arm920_cr1_set | 398 | orr r0, r0, r6 |
| 398 | orr r0, r0, r5 | ||
| 399 | mov pc, lr | 399 | mov pc, lr |
| 400 | .size __arm920_setup, . - __arm920_setup | 400 | .size __arm920_setup, . - __arm920_setup |
| 401 | 401 | ||
| @@ -405,12 +405,9 @@ __arm920_setup: | |||
| 405 | * ..11 0001 ..11 0101 | 405 | * ..11 0001 ..11 0101 |
| 406 | * | 406 | * |
| 407 | */ | 407 | */ |
| 408 | .type arm920_cr1_clear, #object | 408 | .type arm920_crval, #object |
| 409 | .type arm920_cr1_set, #object | 409 | arm920_crval: |
| 410 | arm920_cr1_clear: | 410 | crval clear=0x00003f3f, mmuset=0x00003135, ucset=0x00001130 |
| 411 | .word 0x3f3f | ||
| 412 | arm920_cr1_set: | ||
| 413 | .word 0x3135 | ||
| 414 | 411 | ||
| 415 | __INITDATA | 412 | __INITDATA |
| 416 | 413 | ||
diff --git a/arch/arm/mm/proc-arm922.S b/arch/arm/mm/proc-arm922.S index bda0aea4ce82..3c57519494d7 100644 --- a/arch/arm/mm/proc-arm922.S +++ b/arch/arm/mm/proc-arm922.S | |||
| @@ -395,11 +395,11 @@ __arm922_setup: | |||
| 395 | #ifdef CONFIG_MMU | 395 | #ifdef CONFIG_MMU |
| 396 | mcr p15, 0, r0, c8, c7 @ invalidate I,D TLBs on v4 | 396 | mcr p15, 0, r0, c8, c7 @ invalidate I,D TLBs on v4 |
| 397 | #endif | 397 | #endif |
| 398 | adr r5, arm922_crval | ||
| 399 | ldmia r5, {r5, r6} | ||
| 398 | mrc p15, 0, r0, c1, c0 @ get control register v4 | 400 | mrc p15, 0, r0, c1, c0 @ get control register v4 |
| 399 | ldr r5, arm922_cr1_clear | ||
| 400 | bic r0, r0, r5 | 401 | bic r0, r0, r5 |
| 401 | ldr r5, arm922_cr1_set | 402 | orr r0, r0, r6 |
| 402 | orr r0, r0, r5 | ||
| 403 | mov pc, lr | 403 | mov pc, lr |
| 404 | .size __arm922_setup, . - __arm922_setup | 404 | .size __arm922_setup, . - __arm922_setup |
| 405 | 405 | ||
| @@ -409,12 +409,9 @@ __arm922_setup: | |||
| 409 | * ..11 0001 ..11 0101 | 409 | * ..11 0001 ..11 0101 |
| 410 | * | 410 | * |
| 411 | */ | 411 | */ |
| 412 | .type arm922_cr1_clear, #object | 412 | .type arm922_crval, #object |
| 413 | .type arm922_cr1_set, #object | 413 | arm922_crval: |
| 414 | arm922_cr1_clear: | 414 | crval clear=0x00003f3f, mmuset=0x00003135, ucset=0x00001130 |
| 415 | .word 0x3f3f | ||
| 416 | arm922_cr1_set: | ||
| 417 | .word 0x3135 | ||
| 418 | 415 | ||
| 419 | __INITDATA | 416 | __INITDATA |
| 420 | 417 | ||
diff --git a/arch/arm/mm/proc-arm925.S b/arch/arm/mm/proc-arm925.S index a28da8f0578f..66d5a32ba0f5 100644 --- a/arch/arm/mm/proc-arm925.S +++ b/arch/arm/mm/proc-arm925.S | |||
| @@ -455,11 +455,10 @@ __arm925_setup: | |||
| 455 | mcr p15, 7, r0, c15, c0, 0 | 455 | mcr p15, 7, r0, c15, c0, 0 |
| 456 | #endif | 456 | #endif |
| 457 | 457 | ||
| 458 | adr r5, {r5, r6} | ||
| 458 | mrc p15, 0, r0, c1, c0 @ get control register v4 | 459 | mrc p15, 0, r0, c1, c0 @ get control register v4 |
| 459 | ldr r5, arm925_cr1_clear | ||
| 460 | bic r0, r0, r5 | 460 | bic r0, r0, r5 |
| 461 | ldr r5, arm925_cr1_set | 461 | orr r0, r0, r6 |
| 462 | orr r0, r0, r5 | ||
| 463 | #ifdef CONFIG_CPU_CACHE_ROUND_ROBIN | 462 | #ifdef CONFIG_CPU_CACHE_ROUND_ROBIN |
| 464 | orr r0, r0, #0x4000 @ .1.. .... .... .... | 463 | orr r0, r0, #0x4000 @ .1.. .... .... .... |
| 465 | #endif | 464 | #endif |
| @@ -472,12 +471,9 @@ __arm925_setup: | |||
| 472 | * .011 0001 ..11 1101 | 471 | * .011 0001 ..11 1101 |
| 473 | * | 472 | * |
| 474 | */ | 473 | */ |
| 475 | .type arm925_cr1_clear, #object | 474 | .type arm925_crval, #object |
| 476 | .type arm925_cr1_set, #object | 475 | arm925_crval: |
| 477 | arm925_cr1_clear: | 476 | crval clear=0x00007f3f, mmuset=0x0000313d, ucset=0x00001130 |
| 478 | .word 0x7f3f | ||
| 479 | arm925_cr1_set: | ||
| 480 | .word 0x313d | ||
| 481 | 477 | ||
| 482 | __INITDATA | 478 | __INITDATA |
| 483 | 479 | ||
diff --git a/arch/arm/mm/proc-arm926.S b/arch/arm/mm/proc-arm926.S index 496a2335d69e..189820e25184 100644 --- a/arch/arm/mm/proc-arm926.S +++ b/arch/arm/mm/proc-arm926.S | |||
| @@ -404,11 +404,11 @@ __arm926_setup: | |||
| 404 | mcr p15, 7, r0, c15, c0, 0 | 404 | mcr p15, 7, r0, c15, c0, 0 |
| 405 | #endif | 405 | #endif |
| 406 | 406 | ||
| 407 | adr r5, arm926_crval | ||
| 408 | ldmia r5, {r5, r6} | ||
| 407 | mrc p15, 0, r0, c1, c0 @ get control register v4 | 409 | mrc p15, 0, r0, c1, c0 @ get control register v4 |
| 408 | ldr r5, arm926_cr1_clear | ||
| 409 | bic r0, r0, r5 | 410 | bic r0, r0, r5 |
| 410 | ldr r5, arm926_cr1_set | 411 | orr r0, r0, r6 |
| 411 | orr r0, r0, r5 | ||
| 412 | #ifdef CONFIG_CPU_CACHE_ROUND_ROBIN | 412 | #ifdef CONFIG_CPU_CACHE_ROUND_ROBIN |
| 413 | orr r0, r0, #0x4000 @ .1.. .... .... .... | 413 | orr r0, r0, #0x4000 @ .1.. .... .... .... |
| 414 | #endif | 414 | #endif |
| @@ -421,12 +421,9 @@ __arm926_setup: | |||
| 421 | * .011 0001 ..11 0101 | 421 | * .011 0001 ..11 0101 |
| 422 | * | 422 | * |
| 423 | */ | 423 | */ |
| 424 | .type arm926_cr1_clear, #object | 424 | .type arm926_crval, #object |
| 425 | .type arm926_cr1_set, #object | 425 | arm926_crval: |
| 426 | arm926_cr1_clear: | 426 | crval clear=0x00007f3f, mmuset=0x00003135, ucset=0x00001134 |
| 427 | .word 0x7f3f | ||
| 428 | arm926_cr1_set: | ||
| 429 | .word 0x3135 | ||
| 430 | 427 | ||
| 431 | __INITDATA | 428 | __INITDATA |
| 432 | 429 | ||
diff --git a/arch/arm/mm/proc-macros.S b/arch/arm/mm/proc-macros.S index 7cfc2604a1ee..9e2c89eb2115 100644 --- a/arch/arm/mm/proc-macros.S +++ b/arch/arm/mm/proc-macros.S | |||
| @@ -49,3 +49,13 @@ | |||
| 49 | .macro asid, rd, rn | 49 | .macro asid, rd, rn |
| 50 | and \rd, \rn, #255 | 50 | and \rd, \rn, #255 |
| 51 | .endm | 51 | .endm |
| 52 | |||
| 53 | .macro crval, clear, mmuset, ucset | ||
| 54 | #ifdef CONFIG_MMU | ||
| 55 | .word \clear | ||
| 56 | .word \mmuset | ||
| 57 | #else | ||
| 58 | .word \clear | ||
| 59 | .word \ucset | ||
| 60 | #endif | ||
| 61 | .endm | ||
diff --git a/arch/arm/mm/proc-sa110.S b/arch/arm/mm/proc-sa110.S index 31a09087865d..e812246277cf 100644 --- a/arch/arm/mm/proc-sa110.S +++ b/arch/arm/mm/proc-sa110.S | |||
| @@ -185,11 +185,12 @@ __sa110_setup: | |||
| 185 | #ifdef CONFIG_MMU | 185 | #ifdef CONFIG_MMU |
| 186 | mcr p15, 0, r10, c8, c7 @ invalidate I,D TLBs on v4 | 186 | mcr p15, 0, r10, c8, c7 @ invalidate I,D TLBs on v4 |
| 187 | #endif | 187 | #endif |
| 188 | |||
| 189 | adr r5, sa110_crval | ||
| 190 | ldmia r5, {r5, r6} | ||
| 188 | mrc p15, 0, r0, c1, c0 @ get control register v4 | 191 | mrc p15, 0, r0, c1, c0 @ get control register v4 |
| 189 | ldr r5, sa110_cr1_clear | ||
| 190 | bic r0, r0, r5 | 192 | bic r0, r0, r5 |
| 191 | ldr r5, sa110_cr1_set | 193 | orr r0, r0, r6 |
| 192 | orr r0, r0, r5 | ||
| 193 | mov pc, lr | 194 | mov pc, lr |
| 194 | .size __sa110_setup, . - __sa110_setup | 195 | .size __sa110_setup, . - __sa110_setup |
| 195 | 196 | ||
| @@ -199,12 +200,9 @@ __sa110_setup: | |||
| 199 | * ..01 0001 ..11 1101 | 200 | * ..01 0001 ..11 1101 |
| 200 | * | 201 | * |
| 201 | */ | 202 | */ |
| 202 | .type sa110_cr1_clear, #object | 203 | .type sa110_crval, #object |
| 203 | .type sa110_cr1_set, #object | 204 | sa110_crval: |
| 204 | sa110_cr1_clear: | 205 | crval clear=0x00003f3f, mmuset=0x0000113d, ucset=0x00001130 |
| 205 | .word 0x3f3f | ||
| 206 | sa110_cr1_set: | ||
| 207 | .word 0x113d | ||
| 208 | 206 | ||
| 209 | __INITDATA | 207 | __INITDATA |
| 210 | 208 | ||
diff --git a/arch/arm/mm/proc-sa1100.S b/arch/arm/mm/proc-sa1100.S index 4e2489c3e1cc..ba32cc6296a0 100644 --- a/arch/arm/mm/proc-sa1100.S +++ b/arch/arm/mm/proc-sa1100.S | |||
| @@ -198,11 +198,11 @@ __sa1100_setup: | |||
| 198 | #ifdef CONFIG_MMU | 198 | #ifdef CONFIG_MMU |
| 199 | mcr p15, 0, r0, c8, c7 @ invalidate I,D TLBs on v4 | 199 | mcr p15, 0, r0, c8, c7 @ invalidate I,D TLBs on v4 |
| 200 | #endif | 200 | #endif |
| 201 | adr r5, sa1100_crval | ||
| 202 | ldmia r5, {r5, r6} | ||
| 201 | mrc p15, 0, r0, c1, c0 @ get control register v4 | 203 | mrc p15, 0, r0, c1, c0 @ get control register v4 |
| 202 | ldr r5, sa1100_cr1_clear | ||
| 203 | bic r0, r0, r5 | 204 | bic r0, r0, r5 |
| 204 | ldr r5, sa1100_cr1_set | 205 | orr r0, r0, r6 |
| 205 | orr r0, r0, r5 | ||
| 206 | mov pc, lr | 206 | mov pc, lr |
| 207 | .size __sa1100_setup, . - __sa1100_setup | 207 | .size __sa1100_setup, . - __sa1100_setup |
| 208 | 208 | ||
| @@ -212,12 +212,9 @@ __sa1100_setup: | |||
| 212 | * ..11 0001 ..11 1101 | 212 | * ..11 0001 ..11 1101 |
| 213 | * | 213 | * |
| 214 | */ | 214 | */ |
| 215 | .type sa1100_cr1_clear, #object | 215 | .type sa1100_crval, #object |
| 216 | .type sa1100_cr1_set, #object | 216 | sa1100_crval: |
| 217 | sa1100_cr1_clear: | 217 | crval clear=0x00003f3f, mmuset=0x0000313d, ucset=0x00001130 |
| 218 | .word 0x3f3f | ||
| 219 | sa1100_cr1_set: | ||
| 220 | .word 0x313d | ||
| 221 | 218 | ||
| 222 | __INITDATA | 219 | __INITDATA |
| 223 | 220 | ||
diff --git a/arch/arm/mm/proc-v6.S b/arch/arm/mm/proc-v6.S index ff778967a005..6f72549f8843 100644 --- a/arch/arm/mm/proc-v6.S +++ b/arch/arm/mm/proc-v6.S | |||
| @@ -212,11 +212,11 @@ __v6_setup: | |||
| 212 | orr r0, r0, #(0xf << 20) | 212 | orr r0, r0, #(0xf << 20) |
| 213 | mcr p15, 0, r0, c1, c0, 2 @ Enable full access to VFP | 213 | mcr p15, 0, r0, c1, c0, 2 @ Enable full access to VFP |
| 214 | #endif | 214 | #endif |
| 215 | adr r5, v6_crval | ||
| 216 | ldmia r5, {r5, r6} | ||
| 215 | mrc p15, 0, r0, c1, c0, 0 @ read control register | 217 | mrc p15, 0, r0, c1, c0, 0 @ read control register |
| 216 | ldr r5, v6_cr1_clear @ get mask for bits to clear | ||
| 217 | bic r0, r0, r5 @ clear bits them | 218 | bic r0, r0, r5 @ clear bits them |
| 218 | ldr r5, v6_cr1_set @ get mask for bits to set | 219 | orr r0, r0, r6 @ set them |
| 219 | orr r0, r0, r5 @ set them | ||
| 220 | mov pc, lr @ return to head.S:__ret | 220 | mov pc, lr @ return to head.S:__ret |
| 221 | 221 | ||
| 222 | /* | 222 | /* |
| @@ -225,12 +225,9 @@ __v6_setup: | |||
| 225 | * rrrr rrrx xxx0 0101 xxxx xxxx x111 xxxx < forced | 225 | * rrrr rrrx xxx0 0101 xxxx xxxx x111 xxxx < forced |
| 226 | * 0 110 0011 1.00 .111 1101 < we want | 226 | * 0 110 0011 1.00 .111 1101 < we want |
| 227 | */ | 227 | */ |
| 228 | .type v6_cr1_clear, #object | 228 | .type v6_crval, #object |
| 229 | .type v6_cr1_set, #object | 229 | v6_crval: |
| 230 | v6_cr1_clear: | 230 | crval clear=0x01e0fb7f, mmuset=0x00c0387d, ucset=0x00c0187c |
| 231 | .word 0x01e0fb7f | ||
| 232 | v6_cr1_set: | ||
| 233 | .word 0x00c0387d | ||
| 234 | 231 | ||
| 235 | .type v6_processor_functions, #object | 232 | .type v6_processor_functions, #object |
| 236 | ENTRY(v6_processor_functions) | 233 | ENTRY(v6_processor_functions) |
diff --git a/arch/arm/mm/proc-xsc3.S b/arch/arm/mm/proc-xsc3.S index 9aea506d3e65..4ace2d8090c7 100644 --- a/arch/arm/mm/proc-xsc3.S +++ b/arch/arm/mm/proc-xsc3.S | |||
| @@ -426,23 +426,26 @@ __xsc3_setup: | |||
| 426 | orr r0, r0, #(1 << 10) @ enable L2 for LLR cache | 426 | orr r0, r0, #(1 << 10) @ enable L2 for LLR cache |
| 427 | #endif | 427 | #endif |
| 428 | mcr p15, 0, r0, c1, c0, 1 @ set auxiliary control reg | 428 | mcr p15, 0, r0, c1, c0, 1 @ set auxiliary control reg |
| 429 | |||
| 430 | adr r5, xsc3_crval | ||
| 431 | ldmia r5, {r5, r6} | ||
| 429 | mrc p15, 0, r0, c1, c0, 0 @ get control register | 432 | mrc p15, 0, r0, c1, c0, 0 @ get control register |
| 430 | bic r0, r0, #0x0002 @ .... .... .... ..A. | 433 | bic r0, r0, r5 @ .... .... .... ..A. |
| 431 | orr r0, r0, #0x0005 @ .... .... .... .C.M | 434 | orr r0, r0, r6 @ .... .... .... .C.M |
| 432 | #if BTB_ENABLE | 435 | #if BTB_ENABLE |
| 433 | bic r0, r0, #0x0200 @ .... ..R. .... .... | 436 | orr r0, r0, #0x00000800 @ ..VI Z..S .... .... |
| 434 | orr r0, r0, #0x3900 @ ..VI Z..S .... .... | ||
| 435 | #else | ||
| 436 | bic r0, r0, #0x0a00 @ .... Z.R. .... .... | ||
| 437 | orr r0, r0, #0x3100 @ ..VI ...S .... .... | ||
| 438 | #endif | 437 | #endif |
| 439 | #if L2_CACHE_ENABLE | 438 | #if L2_CACHE_ENABLE |
| 440 | orr r0, r0, #0x4000000 @ L2 enable | 439 | orr r0, r0, #0x04000000 @ L2 enable |
| 441 | #endif | 440 | #endif |
| 442 | mov pc, lr | 441 | mov pc, lr |
| 443 | 442 | ||
| 444 | .size __xsc3_setup, . - __xsc3_setup | 443 | .size __xsc3_setup, . - __xsc3_setup |
| 445 | 444 | ||
| 445 | .type xsc3_crval, #object | ||
| 446 | xsc3_crval: | ||
| 447 | crval clear=0x04003b02, mmuset=0x00003105, ucset=0x00001100 | ||
| 448 | |||
| 446 | __INITDATA | 449 | __INITDATA |
| 447 | 450 | ||
| 448 | /* | 451 | /* |
diff --git a/arch/arm/mm/proc-xscale.S b/arch/arm/mm/proc-xscale.S index f4aeb7b06911..535395e25a8a 100644 --- a/arch/arm/mm/proc-xscale.S +++ b/arch/arm/mm/proc-xscale.S | |||
| @@ -475,11 +475,12 @@ __xscale_setup: | |||
| 475 | orr r0, r0, #1 << 6 @ cp6 for IOP3xx and Bulverde | 475 | orr r0, r0, #1 << 6 @ cp6 for IOP3xx and Bulverde |
| 476 | orr r0, r0, #1 << 13 @ Its undefined whether this | 476 | orr r0, r0, #1 << 13 @ Its undefined whether this |
| 477 | mcr p15, 0, r0, c15, c1, 0 @ affects USR or SVC modes | 477 | mcr p15, 0, r0, c15, c1, 0 @ affects USR or SVC modes |
| 478 | |||
| 479 | adr r5, xscale_crval | ||
| 480 | ldmia r5, {r5, r6} | ||
| 478 | mrc p15, 0, r0, c1, c0, 0 @ get control register | 481 | mrc p15, 0, r0, c1, c0, 0 @ get control register |
| 479 | ldr r5, xscale_cr1_clear | ||
| 480 | bic r0, r0, r5 | 482 | bic r0, r0, r5 |
| 481 | ldr r5, xscale_cr1_set | 483 | orr r0, r0, r6 |
| 482 | orr r0, r0, r5 | ||
| 483 | mov pc, lr | 484 | mov pc, lr |
| 484 | .size __xscale_setup, . - __xscale_setup | 485 | .size __xscale_setup, . - __xscale_setup |
| 485 | 486 | ||
| @@ -489,12 +490,9 @@ __xscale_setup: | |||
| 489 | * ..11 1.01 .... .101 | 490 | * ..11 1.01 .... .101 |
| 490 | * | 491 | * |
| 491 | */ | 492 | */ |
| 492 | .type xscale_cr1_clear, #object | 493 | .type xscale_crval, #object |
| 493 | .type xscale_cr1_set, #object | 494 | xscale_crval: |
| 494 | xscale_cr1_clear: | 495 | crval clear=0x00003b07, mmuset=0x00003905, ucset=0x00001900 |
| 495 | .word 0x3b07 | ||
| 496 | xscale_cr1_set: | ||
| 497 | .word 0x3905 | ||
| 498 | 496 | ||
| 499 | __INITDATA | 497 | __INITDATA |
| 500 | 498 | ||
