| .. | .. |
|---|
| 14 | 14 | |
|---|
| 15 | 15 | |
|---|
| 16 | 16 | #include <linux/linkage.h> |
|---|
| 17 | +#include <linux/pgtable.h> |
|---|
| 17 | 18 | #include <asm/page.h> |
|---|
| 18 | | -#include <asm/pgtable.h> |
|---|
| 19 | 19 | #include <asm/asmmacro.h> |
|---|
| 20 | 20 | #include <asm/cacheasm.h> |
|---|
| 21 | 21 | #include <asm/tlbflush.h> |
|---|
| .. | .. |
|---|
| 30 | 30 | |
|---|
| 31 | 31 | ENTRY(clear_page) |
|---|
| 32 | 32 | |
|---|
| 33 | | - entry a1, 16 |
|---|
| 33 | + abi_entry_default |
|---|
| 34 | 34 | |
|---|
| 35 | 35 | movi a3, 0 |
|---|
| 36 | 36 | __loopi a2, a7, PAGE_SIZE, 32 |
|---|
| .. | .. |
|---|
| 44 | 44 | s32i a3, a2, 28 |
|---|
| 45 | 45 | __endla a2, a7, 32 |
|---|
| 46 | 46 | |
|---|
| 47 | | - retw |
|---|
| 47 | + abi_ret_default |
|---|
| 48 | 48 | |
|---|
| 49 | 49 | ENDPROC(clear_page) |
|---|
| 50 | 50 | |
|---|
| .. | .. |
|---|
| 57 | 57 | |
|---|
| 58 | 58 | ENTRY(copy_page) |
|---|
| 59 | 59 | |
|---|
| 60 | | - entry a1, 16 |
|---|
| 60 | + abi_entry_default |
|---|
| 61 | 61 | |
|---|
| 62 | 62 | __loopi a2, a4, PAGE_SIZE, 32 |
|---|
| 63 | 63 | |
|---|
| .. | .. |
|---|
| 86 | 86 | |
|---|
| 87 | 87 | __endl a2, a4 |
|---|
| 88 | 88 | |
|---|
| 89 | | - retw |
|---|
| 89 | + abi_ret_default |
|---|
| 90 | 90 | |
|---|
| 91 | 91 | ENDPROC(copy_page) |
|---|
| 92 | 92 | |
|---|
| .. | .. |
|---|
| 116 | 116 | |
|---|
| 117 | 117 | ENTRY(clear_page_alias) |
|---|
| 118 | 118 | |
|---|
| 119 | | - entry a1, 32 |
|---|
| 119 | + abi_entry_default |
|---|
| 120 | 120 | |
|---|
| 121 | 121 | /* Skip setting up a temporary DTLB if not aliased low page. */ |
|---|
| 122 | 122 | |
|---|
| .. | .. |
|---|
| 144 | 144 | __endla a2, a7, 32 |
|---|
| 145 | 145 | |
|---|
| 146 | 146 | bnez a6, 1f |
|---|
| 147 | | - retw |
|---|
| 147 | + abi_ret_default |
|---|
| 148 | 148 | |
|---|
| 149 | 149 | /* We need to invalidate the temporary idtlb entry, if any. */ |
|---|
| 150 | 150 | |
|---|
| 151 | 151 | 1: idtlb a4 |
|---|
| 152 | 152 | dsync |
|---|
| 153 | 153 | |
|---|
| 154 | | - retw |
|---|
| 154 | + abi_ret_default |
|---|
| 155 | 155 | |
|---|
| 156 | 156 | ENDPROC(clear_page_alias) |
|---|
| 157 | 157 | |
|---|
| .. | .. |
|---|
| 164 | 164 | |
|---|
| 165 | 165 | ENTRY(copy_page_alias) |
|---|
| 166 | 166 | |
|---|
| 167 | | - entry a1, 32 |
|---|
| 167 | + abi_entry_default |
|---|
| 168 | 168 | |
|---|
| 169 | 169 | /* Skip setting up a temporary DTLB for destination if not aliased. */ |
|---|
| 170 | 170 | |
|---|
| .. | .. |
|---|
| 221 | 221 | |
|---|
| 222 | 222 | bnez a6, 1f |
|---|
| 223 | 223 | bnez a7, 2f |
|---|
| 224 | | - retw |
|---|
| 224 | + abi_ret_default |
|---|
| 225 | 225 | |
|---|
| 226 | 226 | 1: addi a2, a2, -PAGE_SIZE |
|---|
| 227 | 227 | idtlb a2 |
|---|
| 228 | 228 | dsync |
|---|
| 229 | 229 | bnez a7, 2f |
|---|
| 230 | | - retw |
|---|
| 230 | + abi_ret_default |
|---|
| 231 | 231 | |
|---|
| 232 | 232 | 2: addi a3, a3, -PAGE_SIZE+1 |
|---|
| 233 | 233 | idtlb a3 |
|---|
| 234 | 234 | dsync |
|---|
| 235 | 235 | |
|---|
| 236 | | - retw |
|---|
| 236 | + abi_ret_default |
|---|
| 237 | 237 | |
|---|
| 238 | 238 | ENDPROC(copy_page_alias) |
|---|
| 239 | 239 | |
|---|
| .. | .. |
|---|
| 248 | 248 | |
|---|
| 249 | 249 | ENTRY(__flush_invalidate_dcache_page_alias) |
|---|
| 250 | 250 | |
|---|
| 251 | | - entry sp, 16 |
|---|
| 251 | + abi_entry_default |
|---|
| 252 | 252 | |
|---|
| 253 | 253 | movi a7, 0 # required for exception handler |
|---|
| 254 | 254 | addi a6, a3, (PAGE_KERNEL | _PAGE_HW_WRITE) |
|---|
| .. | .. |
|---|
| 261 | 261 | idtlb a4 |
|---|
| 262 | 262 | dsync |
|---|
| 263 | 263 | |
|---|
| 264 | | - retw |
|---|
| 264 | + abi_ret_default |
|---|
| 265 | 265 | |
|---|
| 266 | 266 | ENDPROC(__flush_invalidate_dcache_page_alias) |
|---|
| 267 | 267 | |
|---|
| .. | .. |
|---|
| 272 | 272 | |
|---|
| 273 | 273 | ENTRY(__invalidate_dcache_page_alias) |
|---|
| 274 | 274 | |
|---|
| 275 | | - entry sp, 16 |
|---|
| 275 | + abi_entry_default |
|---|
| 276 | 276 | |
|---|
| 277 | 277 | movi a7, 0 # required for exception handler |
|---|
| 278 | 278 | addi a6, a3, (PAGE_KERNEL | _PAGE_HW_WRITE) |
|---|
| .. | .. |
|---|
| 285 | 285 | idtlb a4 |
|---|
| 286 | 286 | dsync |
|---|
| 287 | 287 | |
|---|
| 288 | | - retw |
|---|
| 288 | + abi_ret_default |
|---|
| 289 | 289 | |
|---|
| 290 | 290 | ENDPROC(__invalidate_dcache_page_alias) |
|---|
| 291 | 291 | #endif |
|---|
| .. | .. |
|---|
| 296 | 296 | |
|---|
| 297 | 297 | ENTRY(__invalidate_icache_page_alias) |
|---|
| 298 | 298 | |
|---|
| 299 | | - entry sp, 16 |
|---|
| 299 | + abi_entry_default |
|---|
| 300 | 300 | |
|---|
| 301 | 301 | addi a6, a3, (PAGE_KERNEL_EXEC | _PAGE_HW_WRITE) |
|---|
| 302 | 302 | mov a4, a2 |
|---|
| .. | .. |
|---|
| 307 | 307 | |
|---|
| 308 | 308 | iitlb a4 |
|---|
| 309 | 309 | isync |
|---|
| 310 | | - retw |
|---|
| 310 | + abi_ret_default |
|---|
| 311 | 311 | |
|---|
| 312 | 312 | ENDPROC(__invalidate_icache_page_alias) |
|---|
| 313 | 313 | |
|---|
| .. | .. |
|---|
| 325 | 325 | |
|---|
| 326 | 326 | ENTRY(__invalidate_icache_page) |
|---|
| 327 | 327 | |
|---|
| 328 | | - entry sp, 16 |
|---|
| 328 | + abi_entry_default |
|---|
| 329 | 329 | |
|---|
| 330 | 330 | ___invalidate_icache_page a2 a3 |
|---|
| 331 | 331 | isync |
|---|
| 332 | 332 | |
|---|
| 333 | | - retw |
|---|
| 333 | + abi_ret_default |
|---|
| 334 | 334 | |
|---|
| 335 | 335 | ENDPROC(__invalidate_icache_page) |
|---|
| 336 | 336 | |
|---|
| .. | .. |
|---|
| 340 | 340 | |
|---|
| 341 | 341 | ENTRY(__invalidate_dcache_page) |
|---|
| 342 | 342 | |
|---|
| 343 | | - entry sp, 16 |
|---|
| 343 | + abi_entry_default |
|---|
| 344 | 344 | |
|---|
| 345 | 345 | ___invalidate_dcache_page a2 a3 |
|---|
| 346 | 346 | dsync |
|---|
| 347 | 347 | |
|---|
| 348 | | - retw |
|---|
| 348 | + abi_ret_default |
|---|
| 349 | 349 | |
|---|
| 350 | 350 | ENDPROC(__invalidate_dcache_page) |
|---|
| 351 | 351 | |
|---|
| .. | .. |
|---|
| 355 | 355 | |
|---|
| 356 | 356 | ENTRY(__flush_invalidate_dcache_page) |
|---|
| 357 | 357 | |
|---|
| 358 | | - entry sp, 16 |
|---|
| 358 | + abi_entry_default |
|---|
| 359 | 359 | |
|---|
| 360 | 360 | ___flush_invalidate_dcache_page a2 a3 |
|---|
| 361 | 361 | |
|---|
| 362 | 362 | dsync |
|---|
| 363 | | - retw |
|---|
| 363 | + abi_ret_default |
|---|
| 364 | 364 | |
|---|
| 365 | 365 | ENDPROC(__flush_invalidate_dcache_page) |
|---|
| 366 | 366 | |
|---|
| .. | .. |
|---|
| 370 | 370 | |
|---|
| 371 | 371 | ENTRY(__flush_dcache_page) |
|---|
| 372 | 372 | |
|---|
| 373 | | - entry sp, 16 |
|---|
| 373 | + abi_entry_default |
|---|
| 374 | 374 | |
|---|
| 375 | 375 | ___flush_dcache_page a2 a3 |
|---|
| 376 | 376 | |
|---|
| 377 | 377 | dsync |
|---|
| 378 | | - retw |
|---|
| 378 | + abi_ret_default |
|---|
| 379 | 379 | |
|---|
| 380 | 380 | ENDPROC(__flush_dcache_page) |
|---|
| 381 | 381 | |
|---|
| .. | .. |
|---|
| 385 | 385 | |
|---|
| 386 | 386 | ENTRY(__invalidate_icache_range) |
|---|
| 387 | 387 | |
|---|
| 388 | | - entry sp, 16 |
|---|
| 388 | + abi_entry_default |
|---|
| 389 | 389 | |
|---|
| 390 | 390 | ___invalidate_icache_range a2 a3 a4 |
|---|
| 391 | 391 | isync |
|---|
| 392 | 392 | |
|---|
| 393 | | - retw |
|---|
| 393 | + abi_ret_default |
|---|
| 394 | 394 | |
|---|
| 395 | 395 | ENDPROC(__invalidate_icache_range) |
|---|
| 396 | 396 | |
|---|
| .. | .. |
|---|
| 400 | 400 | |
|---|
| 401 | 401 | ENTRY(__flush_invalidate_dcache_range) |
|---|
| 402 | 402 | |
|---|
| 403 | | - entry sp, 16 |
|---|
| 403 | + abi_entry_default |
|---|
| 404 | 404 | |
|---|
| 405 | 405 | ___flush_invalidate_dcache_range a2 a3 a4 |
|---|
| 406 | 406 | dsync |
|---|
| 407 | 407 | |
|---|
| 408 | | - retw |
|---|
| 408 | + abi_ret_default |
|---|
| 409 | 409 | |
|---|
| 410 | 410 | ENDPROC(__flush_invalidate_dcache_range) |
|---|
| 411 | 411 | |
|---|
| .. | .. |
|---|
| 415 | 415 | |
|---|
| 416 | 416 | ENTRY(__flush_dcache_range) |
|---|
| 417 | 417 | |
|---|
| 418 | | - entry sp, 16 |
|---|
| 418 | + abi_entry_default |
|---|
| 419 | 419 | |
|---|
| 420 | 420 | ___flush_dcache_range a2 a3 a4 |
|---|
| 421 | 421 | dsync |
|---|
| 422 | 422 | |
|---|
| 423 | | - retw |
|---|
| 423 | + abi_ret_default |
|---|
| 424 | 424 | |
|---|
| 425 | 425 | ENDPROC(__flush_dcache_range) |
|---|
| 426 | 426 | |
|---|
| .. | .. |
|---|
| 430 | 430 | |
|---|
| 431 | 431 | ENTRY(__invalidate_dcache_range) |
|---|
| 432 | 432 | |
|---|
| 433 | | - entry sp, 16 |
|---|
| 433 | + abi_entry_default |
|---|
| 434 | 434 | |
|---|
| 435 | 435 | ___invalidate_dcache_range a2 a3 a4 |
|---|
| 436 | 436 | |
|---|
| 437 | | - retw |
|---|
| 437 | + abi_ret_default |
|---|
| 438 | 438 | |
|---|
| 439 | 439 | ENDPROC(__invalidate_dcache_range) |
|---|
| 440 | 440 | |
|---|
| .. | .. |
|---|
| 444 | 444 | |
|---|
| 445 | 445 | ENTRY(__invalidate_icache_all) |
|---|
| 446 | 446 | |
|---|
| 447 | | - entry sp, 16 |
|---|
| 447 | + abi_entry_default |
|---|
| 448 | 448 | |
|---|
| 449 | 449 | ___invalidate_icache_all a2 a3 |
|---|
| 450 | 450 | isync |
|---|
| 451 | 451 | |
|---|
| 452 | | - retw |
|---|
| 452 | + abi_ret_default |
|---|
| 453 | 453 | |
|---|
| 454 | 454 | ENDPROC(__invalidate_icache_all) |
|---|
| 455 | 455 | |
|---|
| .. | .. |
|---|
| 459 | 459 | |
|---|
| 460 | 460 | ENTRY(__flush_invalidate_dcache_all) |
|---|
| 461 | 461 | |
|---|
| 462 | | - entry sp, 16 |
|---|
| 462 | + abi_entry_default |
|---|
| 463 | 463 | |
|---|
| 464 | 464 | ___flush_invalidate_dcache_all a2 a3 |
|---|
| 465 | 465 | dsync |
|---|
| 466 | 466 | |
|---|
| 467 | | - retw |
|---|
| 467 | + abi_ret_default |
|---|
| 468 | 468 | |
|---|
| 469 | 469 | ENDPROC(__flush_invalidate_dcache_all) |
|---|
| 470 | 470 | |
|---|
| .. | .. |
|---|
| 474 | 474 | |
|---|
| 475 | 475 | ENTRY(__invalidate_dcache_all) |
|---|
| 476 | 476 | |
|---|
| 477 | | - entry sp, 16 |
|---|
| 477 | + abi_entry_default |
|---|
| 478 | 478 | |
|---|
| 479 | 479 | ___invalidate_dcache_all a2 a3 |
|---|
| 480 | 480 | dsync |
|---|
| 481 | 481 | |
|---|
| 482 | | - retw |
|---|
| 482 | + abi_ret_default |
|---|
| 483 | 483 | |
|---|
| 484 | 484 | ENDPROC(__invalidate_dcache_all) |
|---|