diff options
Diffstat (limited to 'arch/microblaze/kernel/misc.S')
| -rw-r--r-- | arch/microblaze/kernel/misc.S | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/arch/microblaze/kernel/misc.S b/arch/microblaze/kernel/misc.S index df16c6287a8e..18681eed5ec7 100644 --- a/arch/microblaze/kernel/misc.S +++ b/arch/microblaze/kernel/misc.S | |||
| @@ -26,6 +26,7 @@ | |||
| 26 | * We avoid flushing the pinned 0, 1 and possibly 2 entries. | 26 | * We avoid flushing the pinned 0, 1 and possibly 2 entries. |
| 27 | */ | 27 | */ |
| 28 | .globl _tlbia; | 28 | .globl _tlbia; |
| 29 | .type _tlbia, @function | ||
| 29 | .align 4; | 30 | .align 4; |
| 30 | _tlbia: | 31 | _tlbia: |
| 31 | addik r12, r0, 63 /* flush all entries (63 - 3) */ | 32 | addik r12, r0, 63 /* flush all entries (63 - 3) */ |
| @@ -41,11 +42,13 @@ _tlbia_1: | |||
| 41 | /* sync */ | 42 | /* sync */ |
| 42 | rtsd r15, 8 | 43 | rtsd r15, 8 |
| 43 | nop | 44 | nop |
| 45 | .size _tlbia, . - _tlbia | ||
| 44 | 46 | ||
| 45 | /* | 47 | /* |
| 46 | * Flush MMU TLB for a particular address (in r5) | 48 | * Flush MMU TLB for a particular address (in r5) |
| 47 | */ | 49 | */ |
| 48 | .globl _tlbie; | 50 | .globl _tlbie; |
| 51 | .type _tlbie, @function | ||
| 49 | .align 4; | 52 | .align 4; |
| 50 | _tlbie: | 53 | _tlbie: |
| 51 | mts rtlbsx, r5 /* look up the address in TLB */ | 54 | mts rtlbsx, r5 /* look up the address in TLB */ |
| @@ -59,10 +62,13 @@ _tlbie_1: | |||
| 59 | rtsd r15, 8 | 62 | rtsd r15, 8 |
| 60 | nop | 63 | nop |
| 61 | 64 | ||
| 65 | .size _tlbie, . - _tlbie | ||
| 66 | |||
| 62 | /* | 67 | /* |
| 63 | * Allocate TLB entry for early console | 68 | * Allocate TLB entry for early console |
| 64 | */ | 69 | */ |
| 65 | .globl early_console_reg_tlb_alloc; | 70 | .globl early_console_reg_tlb_alloc; |
| 71 | .type early_console_reg_tlb_alloc, @function | ||
| 66 | .align 4; | 72 | .align 4; |
| 67 | early_console_reg_tlb_alloc: | 73 | early_console_reg_tlb_alloc: |
| 68 | /* | 74 | /* |
| @@ -86,6 +92,8 @@ early_console_reg_tlb_alloc: | |||
| 86 | rtsd r15, 8 | 92 | rtsd r15, 8 |
| 87 | nop | 93 | nop |
| 88 | 94 | ||
| 95 | .size early_console_reg_tlb_alloc, . - early_console_reg_tlb_alloc | ||
| 96 | |||
| 89 | /* | 97 | /* |
| 90 | * Copy a whole page (4096 bytes). | 98 | * Copy a whole page (4096 bytes). |
| 91 | */ | 99 | */ |
| @@ -104,6 +112,7 @@ early_console_reg_tlb_alloc: | |||
| 104 | #define DCACHE_LINE_BYTES (4 * 4) | 112 | #define DCACHE_LINE_BYTES (4 * 4) |
| 105 | 113 | ||
| 106 | .globl copy_page; | 114 | .globl copy_page; |
| 115 | .type copy_page, @function | ||
| 107 | .align 4; | 116 | .align 4; |
| 108 | copy_page: | 117 | copy_page: |
| 109 | ori r11, r0, (PAGE_SIZE/DCACHE_LINE_BYTES) - 1 | 118 | ori r11, r0, (PAGE_SIZE/DCACHE_LINE_BYTES) - 1 |
| @@ -118,3 +127,5 @@ _copy_page_loop: | |||
| 118 | addik r11, r11, -1 | 127 | addik r11, r11, -1 |
| 119 | rtsd r15, 8 | 128 | rtsd r15, 8 |
| 120 | nop | 129 | nop |
| 130 | |||
| 131 | .size copy_page, . - copy_page | ||
