diff options
Diffstat (limited to 'arch/arm/mm/proc-xsc3.S')
-rw-r--r-- | arch/arm/mm/proc-xsc3.S | 93 |
1 files changed, 17 insertions, 76 deletions
diff --git a/arch/arm/mm/proc-xsc3.S b/arch/arm/mm/proc-xsc3.S index 596213699f37..64f1fc7edf0a 100644 --- a/arch/arm/mm/proc-xsc3.S +++ b/arch/arm/mm/proc-xsc3.S | |||
@@ -335,17 +335,8 @@ ENTRY(xsc3_dma_unmap_area) | |||
335 | mov pc, lr | 335 | mov pc, lr |
336 | ENDPROC(xsc3_dma_unmap_area) | 336 | ENDPROC(xsc3_dma_unmap_area) |
337 | 337 | ||
338 | ENTRY(xsc3_cache_fns) | 338 | @ define struct cpu_cache_fns (see <asm/cacheflush.h> and proc-macros.S) |
339 | .long xsc3_flush_icache_all | 339 | define_cache_functions xsc3 |
340 | .long xsc3_flush_kern_cache_all | ||
341 | .long xsc3_flush_user_cache_all | ||
342 | .long xsc3_flush_user_cache_range | ||
343 | .long xsc3_coherent_kern_range | ||
344 | .long xsc3_coherent_user_range | ||
345 | .long xsc3_flush_kern_dcache_area | ||
346 | .long xsc3_dma_map_area | ||
347 | .long xsc3_dma_unmap_area | ||
348 | .long xsc3_dma_flush_range | ||
349 | 340 | ||
350 | ENTRY(cpu_xsc3_dcache_clean_area) | 341 | ENTRY(cpu_xsc3_dcache_clean_area) |
351 | 1: mcr p15, 0, r0, c7, c10, 1 @ clean L1 D line | 342 | 1: mcr p15, 0, r0, c7, c10, 1 @ clean L1 D line |
@@ -454,9 +445,6 @@ ENTRY(cpu_xsc3_do_resume) | |||
454 | ldr r3, =0x542e @ section flags | 445 | ldr r3, =0x542e @ section flags |
455 | b cpu_resume_mmu | 446 | b cpu_resume_mmu |
456 | ENDPROC(cpu_xsc3_do_resume) | 447 | ENDPROC(cpu_xsc3_do_resume) |
457 | #else | ||
458 | #define cpu_xsc3_do_suspend 0 | ||
459 | #define cpu_xsc3_do_resume 0 | ||
460 | #endif | 448 | #endif |
461 | 449 | ||
462 | __CPUINIT | 450 | __CPUINIT |
@@ -503,52 +491,24 @@ xsc3_crval: | |||
503 | 491 | ||
504 | __INITDATA | 492 | __INITDATA |
505 | 493 | ||
506 | /* | 494 | @ define struct processor (see <asm/proc-fns.h> and proc-macros.S) |
507 | * Purpose : Function pointers used to access above functions - all calls | 495 | define_processor_functions xsc3, dabort=v5t_early_abort, pabort=legacy_pabort, suspend=1 |
508 | * come through these | ||
509 | */ | ||
510 | |||
511 | .type xsc3_processor_functions, #object | ||
512 | ENTRY(xsc3_processor_functions) | ||
513 | .word v5t_early_abort | ||
514 | .word legacy_pabort | ||
515 | .word cpu_xsc3_proc_init | ||
516 | .word cpu_xsc3_proc_fin | ||
517 | .word cpu_xsc3_reset | ||
518 | .word cpu_xsc3_do_idle | ||
519 | .word cpu_xsc3_dcache_clean_area | ||
520 | .word cpu_xsc3_switch_mm | ||
521 | .word cpu_xsc3_set_pte_ext | ||
522 | .word cpu_xsc3_suspend_size | ||
523 | .word cpu_xsc3_do_suspend | ||
524 | .word cpu_xsc3_do_resume | ||
525 | .size xsc3_processor_functions, . - xsc3_processor_functions | ||
526 | 496 | ||
527 | .section ".rodata" | 497 | .section ".rodata" |
528 | 498 | ||
529 | .type cpu_arch_name, #object | 499 | string cpu_arch_name, "armv5te" |
530 | cpu_arch_name: | 500 | string cpu_elf_name, "v5" |
531 | .asciz "armv5te" | 501 | string cpu_xsc3_name, "XScale-V3 based processor" |
532 | .size cpu_arch_name, . - cpu_arch_name | ||
533 | |||
534 | .type cpu_elf_name, #object | ||
535 | cpu_elf_name: | ||
536 | .asciz "v5" | ||
537 | .size cpu_elf_name, . - cpu_elf_name | ||
538 | |||
539 | .type cpu_xsc3_name, #object | ||
540 | cpu_xsc3_name: | ||
541 | .asciz "XScale-V3 based processor" | ||
542 | .size cpu_xsc3_name, . - cpu_xsc3_name | ||
543 | 502 | ||
544 | .align | 503 | .align |
545 | 504 | ||
546 | .section ".proc.info.init", #alloc, #execinstr | 505 | .section ".proc.info.init", #alloc, #execinstr |
547 | 506 | ||
548 | .type __xsc3_proc_info,#object | 507 | .macro xsc3_proc_info name:req, cpu_val:req, cpu_mask:req |
549 | __xsc3_proc_info: | 508 | .type __\name\()_proc_info,#object |
550 | .long 0x69056000 | 509 | __\name\()_proc_info: |
551 | .long 0xffffe000 | 510 | .long \cpu_val |
511 | .long \cpu_mask | ||
552 | .long PMD_TYPE_SECT | \ | 512 | .long PMD_TYPE_SECT | \ |
553 | PMD_SECT_BUFFERABLE | \ | 513 | PMD_SECT_BUFFERABLE | \ |
554 | PMD_SECT_CACHEABLE | \ | 514 | PMD_SECT_CACHEABLE | \ |
@@ -566,29 +526,10 @@ __xsc3_proc_info: | |||
566 | .long v4wbi_tlb_fns | 526 | .long v4wbi_tlb_fns |
567 | .long xsc3_mc_user_fns | 527 | .long xsc3_mc_user_fns |
568 | .long xsc3_cache_fns | 528 | .long xsc3_cache_fns |
569 | .size __xsc3_proc_info, . - __xsc3_proc_info | 529 | .size __\name\()_proc_info, . - __\name\()_proc_info |
530 | .endm | ||
570 | 531 | ||
571 | /* Note: PXA935 changed its implementor ID from Intel to Marvell */ | 532 | xsc3_proc_info xsc3, 0x69056000, 0xffffe000 |
572 | 533 | ||
573 | .type __xsc3_pxa935_proc_info,#object | 534 | /* Note: PXA935 changed its implementor ID from Intel to Marvell */ |
574 | __xsc3_pxa935_proc_info: | 535 | xsc3_proc_info xsc3_pxa935, 0x56056000, 0xffffe000 |
575 | .long 0x56056000 | ||
576 | .long 0xffffe000 | ||
577 | .long PMD_TYPE_SECT | \ | ||
578 | PMD_SECT_BUFFERABLE | \ | ||
579 | PMD_SECT_CACHEABLE | \ | ||
580 | PMD_SECT_AP_WRITE | \ | ||
581 | PMD_SECT_AP_READ | ||
582 | .long PMD_TYPE_SECT | \ | ||
583 | PMD_SECT_AP_WRITE | \ | ||
584 | PMD_SECT_AP_READ | ||
585 | b __xsc3_setup | ||
586 | .long cpu_arch_name | ||
587 | .long cpu_elf_name | ||
588 | .long HWCAP_SWP|HWCAP_HALF|HWCAP_THUMB|HWCAP_FAST_MULT|HWCAP_EDSP | ||
589 | .long cpu_xsc3_name | ||
590 | .long xsc3_processor_functions | ||
591 | .long v4wbi_tlb_fns | ||
592 | .long xsc3_mc_user_fns | ||
593 | .long xsc3_cache_fns | ||
594 | .size __xsc3_pxa935_proc_info, . - __xsc3_pxa935_proc_info | ||