📄 proc-xscale.s
字号:
tst r3, #L_PTE_PRESENT | L_PTE_YOUNG @ Present and Young? movne r2, #0 @ no -> fault str r2, [r0] @ hardware version mov ip, #0 mcr p15, 0, r0, c7, c10, 1 @ Clean D cache line mcr p15, 0, ip, c7, c10, 4 @ Drain Write (& Fill) Buffer mov pc, lr .ltorg .align __INIT .type __xscale_setup, #function__xscale_setup: mcr p15, 0, ip, c7, c7, 0 @ invalidate I, D caches & BTB mcr p15, 0, ip, c7, c10, 4 @ Drain Write (& Fill) Buffer mcr p15, 0, ip, c8, c7, 0 @ invalidate I, D TLBs mov r0, #1 << 6 @ cp6 for IOP3xx and Bulverde orr r0, r0, #1 << 13 @ Its undefined whether this mcr p15, 0, r0, c15, c1, 0 @ affects USR or SVC modes adr r5, xscale_crval ldmia r5, {r5, r6} mrc p15, 0, r0, c1, c0, 0 @ get control register bic r0, r0, r5 orr r0, r0, r6 mov pc, lr .size __xscale_setup, . - __xscale_setup /* * R * .RVI ZFRS BLDP WCAM * ..11 1.01 .... .101 * */ .type xscale_crval, #objectxscale_crval: crval clear=0x00003b07, mmuset=0x00003905, ucset=0x00001900 __INITDATA/* * Purpose : Function pointers used to access above functions - all calls * come through these */ .type xscale_processor_functions, #objectENTRY(xscale_processor_functions) .word v5t_early_abort .word cpu_xscale_proc_init .word cpu_xscale_proc_fin .word cpu_xscale_reset .word cpu_xscale_do_idle .word cpu_xscale_dcache_clean_area .word cpu_xscale_switch_mm .word cpu_xscale_set_pte_ext .size xscale_processor_functions, . - xscale_processor_functions .section ".rodata" .type cpu_arch_name, #objectcpu_arch_name: .asciz "armv5te" .size cpu_arch_name, . - cpu_arch_name .type cpu_elf_name, #objectcpu_elf_name: .asciz "v5" .size cpu_elf_name, . - cpu_elf_name .type cpu_80200_A0_A1_name, #objectcpu_80200_A0_A1_name: .asciz "XScale-80200 A0/A1" .size cpu_80200_A0_A1_name, . - cpu_80200_A0_A1_name .type cpu_80200_name, #objectcpu_80200_name: .asciz "XScale-80200" .size cpu_80200_name, . - cpu_80200_name .type cpu_80219_name, #objectcpu_80219_name: .asciz "XScale-80219" .size cpu_80219_name, . - cpu_80219_name .type cpu_8032x_name, #objectcpu_8032x_name: .asciz "XScale-IOP8032x Family" .size cpu_8032x_name, . - cpu_8032x_name .type cpu_8033x_name, #objectcpu_8033x_name: .asciz "XScale-IOP8033x Family" .size cpu_8033x_name, . - cpu_8033x_name .type cpu_pxa250_name, #objectcpu_pxa250_name: .asciz "XScale-PXA250" .size cpu_pxa250_name, . - cpu_pxa250_name .type cpu_pxa210_name, #objectcpu_pxa210_name: .asciz "XScale-PXA210" .size cpu_pxa210_name, . - cpu_pxa210_name .type cpu_ixp42x_name, #objectcpu_ixp42x_name: .asciz "XScale-IXP42x Family" .size cpu_ixp42x_name, . - cpu_ixp42x_name .type cpu_ixp43x_name, #objectcpu_ixp43x_name: .asciz "XScale-IXP43x Family" .size cpu_ixp43x_name, . - cpu_ixp43x_name .type cpu_ixp46x_name, #objectcpu_ixp46x_name: .asciz "XScale-IXP46x Family" .size cpu_ixp46x_name, . - cpu_ixp46x_name .type cpu_ixp2400_name, #objectcpu_ixp2400_name: .asciz "XScale-IXP2400" .size cpu_ixp2400_name, . - cpu_ixp2400_name .type cpu_ixp2800_name, #objectcpu_ixp2800_name: .asciz "XScale-IXP2800" .size cpu_ixp2800_name, . - cpu_ixp2800_name .type cpu_pxa255_name, #objectcpu_pxa255_name: .asciz "XScale-PXA255" .size cpu_pxa255_name, . - cpu_pxa255_name .type cpu_pxa270_name, #objectcpu_pxa270_name: .asciz "XScale-PXA270" .size cpu_pxa270_name, . - cpu_pxa270_name .align .section ".proc.info.init", #alloc, #execinstr .type __80200_A0_A1_proc_info,#object__80200_A0_A1_proc_info: .long 0x69052000 .long 0xfffffffe .long PMD_TYPE_SECT | \ PMD_SECT_BUFFERABLE | \ PMD_SECT_CACHEABLE | \ PMD_SECT_AP_WRITE | \ PMD_SECT_AP_READ .long PMD_TYPE_SECT | \ PMD_SECT_AP_WRITE | \ PMD_SECT_AP_READ b __xscale_setup .long cpu_arch_name .long cpu_elf_name .long HWCAP_SWP|HWCAP_HALF|HWCAP_THUMB|HWCAP_FAST_MULT|HWCAP_EDSP .long cpu_80200_name .long xscale_processor_functions .long v4wbi_tlb_fns .long xscale_mc_user_fns .long xscale_80200_A0_A1_cache_fns .size __80200_A0_A1_proc_info, . - __80200_A0_A1_proc_info .type __80200_proc_info,#object__80200_proc_info: .long 0x69052000 .long 0xfffffff0 .long PMD_TYPE_SECT | \ PMD_SECT_BUFFERABLE | \ PMD_SECT_CACHEABLE | \ PMD_SECT_AP_WRITE | \ PMD_SECT_AP_READ .long PMD_TYPE_SECT | \ PMD_SECT_AP_WRITE | \ PMD_SECT_AP_READ b __xscale_setup .long cpu_arch_name .long cpu_elf_name .long HWCAP_SWP|HWCAP_HALF|HWCAP_THUMB|HWCAP_FAST_MULT|HWCAP_EDSP .long cpu_80200_name .long xscale_processor_functions .long v4wbi_tlb_fns .long xscale_mc_user_fns .long xscale_cache_fns .size __80200_proc_info, . - __80200_proc_info .type __80219_proc_info,#object__80219_proc_info: .long 0x69052e20 .long 0xffffffe0 .long PMD_TYPE_SECT | \ PMD_SECT_BUFFERABLE | \ PMD_SECT_CACHEABLE | \ PMD_SECT_AP_WRITE | \ PMD_SECT_AP_READ .long PMD_TYPE_SECT | \ PMD_SECT_AP_WRITE | \ PMD_SECT_AP_READ b __xscale_setup .long cpu_arch_name .long cpu_elf_name .long HWCAP_SWP|HWCAP_HALF|HWCAP_THUMB|HWCAP_FAST_MULT|HWCAP_EDSP .long cpu_80219_name .long xscale_processor_functions .long v4wbi_tlb_fns .long xscale_mc_user_fns .long xscale_cache_fns .size __80219_proc_info, . - __80219_proc_info .type __8032x_proc_info,#object__8032x_proc_info: .long 0x69052420 .long 0xfffff7e0 .long PMD_TYPE_SECT | \ PMD_SECT_BUFFERABLE | \ PMD_SECT_CACHEABLE | \ PMD_SECT_AP_WRITE | \ PMD_SECT_AP_READ .long PMD_TYPE_SECT | \ PMD_SECT_AP_WRITE | \ PMD_SECT_AP_READ b __xscale_setup .long cpu_arch_name .long cpu_elf_name .long HWCAP_SWP|HWCAP_HALF|HWCAP_THUMB|HWCAP_FAST_MULT|HWCAP_EDSP .long cpu_8032x_name .long xscale_processor_functions .long v4wbi_tlb_fns .long xscale_mc_user_fns .long xscale_cache_fns .size __8032x_proc_info, . - __8032x_proc_info .type __8033x_proc_info,#object__8033x_proc_info: .long 0x69054010 .long 0xfffffd30 .long PMD_TYPE_SECT | \ PMD_SECT_BUFFERABLE | \ PMD_SECT_CACHEABLE | \ PMD_SECT_AP_WRITE | \ PMD_SECT_AP_READ .long PMD_TYPE_SECT | \ PMD_SECT_AP_WRITE | \ PMD_SECT_AP_READ b __xscale_setup .long cpu_arch_name .long cpu_elf_name .long HWCAP_SWP|HWCAP_HALF|HWCAP_THUMB|HWCAP_FAST_MULT|HWCAP_EDSP .long cpu_8033x_name .long xscale_processor_functions .long v4wbi_tlb_fns .long xscale_mc_user_fns .long xscale_cache_fns .size __8033x_proc_info, . - __8033x_proc_info .type __pxa250_proc_info,#object__pxa250_proc_info: .long 0x69052100 .long 0xfffff7f0 .long PMD_TYPE_SECT | \ PMD_SECT_BUFFERABLE | \ PMD_SECT_CACHEABLE | \ PMD_SECT_AP_WRITE | \ PMD_SECT_AP_READ .long PMD_TYPE_SECT | \ PMD_SECT_AP_WRITE | \ PMD_SECT_AP_READ b __xscale_setup .long cpu_arch_name .long cpu_elf_name .long HWCAP_SWP|HWCAP_HALF|HWCAP_THUMB|HWCAP_FAST_MULT|HWCAP_EDSP .long cpu_pxa250_name .long xscale_processor_functions .long v4wbi_tlb_fns .long xscale_mc_user_fns .long xscale_cache_fns .size __pxa250_proc_info, . - __pxa250_proc_info .type __pxa210_proc_info,#object__pxa210_proc_info: .long 0x69052120 .long 0xfffff3f0 .long PMD_TYPE_SECT | \ PMD_SECT_BUFFERABLE | \ PMD_SECT_CACHEABLE | \ PMD_SECT_AP_WRITE | \ PMD_SECT_AP_READ .long PMD_TYPE_SECT | \ PMD_SECT_AP_WRITE | \ PMD_SECT_AP_READ b __xscale_setup .long cpu_arch_name .long cpu_elf_name .long HWCAP_SWP|HWCAP_HALF|HWCAP_THUMB|HWCAP_FAST_MULT|HWCAP_EDSP .long cpu_pxa210_name .long xscale_processor_functions .long v4wbi_tlb_fns .long xscale_mc_user_fns .long xscale_cache_fns .size __pxa210_proc_info, . - __pxa210_proc_info .type __ixp2400_proc_info, #object__ixp2400_proc_info: .long 0x69054190 .long 0xfffffff0 .long PMD_TYPE_SECT | \ PMD_SECT_BUFFERABLE | \ PMD_SECT_CACHEABLE | \ PMD_SECT_AP_WRITE | \ PMD_SECT_AP_READ .long PMD_TYPE_SECT | \ PMD_SECT_AP_WRITE | \ PMD_SECT_AP_READ b __xscale_setup .long cpu_arch_name .long cpu_elf_name .long HWCAP_SWP|HWCAP_HALF|HWCAP_THUMB|HWCAP_FAST_MULT|HWCAP_EDSP .long cpu_ixp2400_name .long xscale_processor_functions .long v4wbi_tlb_fns .long xscale_mc_user_fns .long xscale_cache_fns .size __ixp2400_proc_info, . - __ixp2400_proc_info .type __ixp2800_proc_info, #object__ixp2800_proc_info: .long 0x690541a0 .long 0xfffffff0 .long PMD_TYPE_SECT | \ PMD_SECT_BUFFERABLE | \ PMD_SECT_CACHEABLE | \ PMD_SECT_AP_WRITE | \ PMD_SECT_AP_READ .long PMD_TYPE_SECT | \ PMD_SECT_AP_WRITE | \ PMD_SECT_AP_READ b __xscale_setup .long cpu_arch_name .long cpu_elf_name .long HWCAP_SWP|HWCAP_HALF|HWCAP_THUMB|HWCAP_FAST_MULT|HWCAP_EDSP .long cpu_ixp2800_name .long xscale_processor_functions .long v4wbi_tlb_fns .long xscale_mc_user_fns .long xscale_cache_fns .size __ixp2800_proc_info, . - __ixp2800_proc_info .type __ixp42x_proc_info, #object__ixp42x_proc_info: .long 0x690541c0 .long 0xffffffc0 .long PMD_TYPE_SECT | \ PMD_SECT_BUFFERABLE | \ PMD_SECT_CACHEABLE | \ PMD_SECT_AP_WRITE | \ PMD_SECT_AP_READ .long PMD_TYPE_SECT | \ PMD_SECT_AP_WRITE | \ PMD_SECT_AP_READ b __xscale_setup .long cpu_arch_name .long cpu_elf_name .long HWCAP_SWP|HWCAP_HALF|HWCAP_THUMB|HWCAP_FAST_MULT|HWCAP_EDSP .long cpu_ixp42x_name .long xscale_processor_functions .long v4wbi_tlb_fns .long xscale_mc_user_fns .long xscale_cache_fns .size __ixp42x_proc_info, . - __ixp42x_proc_info .type __ixp43x_proc_info, #object__ixp43x_proc_info: .long 0x69054040 .long 0xfffffff0 .long PMD_TYPE_SECT | \ PMD_SECT_BUFFERABLE | \ PMD_SECT_CACHEABLE | \ PMD_SECT_AP_WRITE | \ PMD_SECT_AP_READ .long PMD_TYPE_SECT | \ PMD_SECT_AP_WRITE | \ PMD_SECT_AP_READ b __xscale_setup .long cpu_arch_name .long cpu_elf_name .long HWCAP_SWP|HWCAP_HALF|HWCAP_THUMB|HWCAP_FAST_MULT|HWCAP_EDSP .long cpu_ixp43x_name .long xscale_processor_functions .long v4wbi_tlb_fns .long xscale_mc_user_fns .long xscale_cache_fns .size __ixp43x_proc_info, . - __ixp43x_proc_info .type __ixp46x_proc_info, #object__ixp46x_proc_info: .long 0x69054200 .long 0xffffff00 .long PMD_TYPE_SECT | \ PMD_SECT_BUFFERABLE | \ PMD_SECT_CACHEABLE | \ PMD_SECT_AP_WRITE | \ PMD_SECT_AP_READ .long PMD_TYPE_SECT | \ PMD_SECT_AP_WRITE | \ PMD_SECT_AP_READ b __xscale_setup .long cpu_arch_name .long cpu_elf_name .long HWCAP_SWP|HWCAP_HALF|HWCAP_THUMB|HWCAP_FAST_MULT|HWCAP_EDSP .long cpu_ixp46x_name .long xscale_processor_functions .long v4wbi_tlb_fns .long xscale_mc_user_fns .long xscale_cache_fns .size __ixp46x_proc_info, . - __ixp46x_proc_info .type __pxa255_proc_info,#object__pxa255_proc_info: .long 0x69052d00 .long 0xfffffff0 .long PMD_TYPE_SECT | \ PMD_SECT_BUFFERABLE | \ PMD_SECT_CACHEABLE | \ PMD_SECT_AP_WRITE | \ PMD_SECT_AP_READ .long PMD_TYPE_SECT | \ PMD_SECT_AP_WRITE | \ PMD_SECT_AP_READ b __xscale_setup .long cpu_arch_name .long cpu_elf_name .long HWCAP_SWP|HWCAP_HALF|HWCAP_THUMB|HWCAP_FAST_MULT|HWCAP_EDSP .long cpu_pxa255_name .long xscale_processor_functions .long v4wbi_tlb_fns .long xscale_mc_user_fns .long xscale_cache_fns .size __pxa255_proc_info, . - __pxa255_proc_info .type __pxa270_proc_info,#object__pxa270_proc_info: .long 0x69054110 .long 0xfffffff0 .long PMD_TYPE_SECT | \ PMD_SECT_BUFFERABLE | \ PMD_SECT_CACHEABLE | \ PMD_SECT_AP_WRITE | \ PMD_SECT_AP_READ .long PMD_TYPE_SECT | \ PMD_SECT_AP_WRITE | \ PMD_SECT_AP_READ b __xscale_setup .long cpu_arch_name .long cpu_elf_name .long HWCAP_SWP|HWCAP_HALF|HWCAP_THUMB|HWCAP_FAST_MULT|HWCAP_EDSP .long cpu_pxa270_name .long xscale_processor_functions .long v4wbi_tlb_fns .long xscale_mc_user_fns .long xscale_cache_fns .size __pxa270_proc_info, . - __pxa270_proc_info
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -