diff options
Diffstat (limited to 'arch/arm/mm/proc-arm9tdmi.S')
| -rw-r--r-- | arch/arm/mm/proc-arm9tdmi.S | 80 | 
1 files changed, 21 insertions, 59 deletions
diff --git a/arch/arm/mm/proc-arm9tdmi.S b/arch/arm/mm/proc-arm9tdmi.S index db67e3134d7..f51197ba754 100644 --- a/arch/arm/mm/proc-arm9tdmi.S +++ b/arch/arm/mm/proc-arm9tdmi.S @@ -17,6 +17,8 @@  #include <asm/pgtable.h>  #include <asm/ptrace.h> +#include "proc-macros.S" +  	.text  /*   * cpu_arm9tdmi_proc_init() @@ -43,10 +45,11 @@ ENTRY(cpu_arm9tdmi_proc_fin)   * Params  : loc(r0)	address to jump to   * Purpose : Sets up everything for a reset and jump to the location for soft reset.   */ +		.pushsection	.idmap.text, "ax"  ENTRY(cpu_arm9tdmi_reset)  		mov	pc, r0 - -		__CPUINIT +ENDPROC(cpu_arm9tdmi_reset) +		.popsection  		.type	__arm9tdmi_setup, #function  __arm9tdmi_setup: @@ -55,79 +58,38 @@ __arm9tdmi_setup:  		__INITDATA -/* - * Purpose : Function pointers used to access above functions - all calls - *	     come through these - */ -		.type	arm9tdmi_processor_functions, #object -ENTRY(arm9tdmi_processor_functions) -		.word	nommu_early_abort -		.word	legacy_pabort -		.word	cpu_arm9tdmi_proc_init -		.word	cpu_arm9tdmi_proc_fin -		.word	cpu_arm9tdmi_reset -		.word	cpu_arm9tdmi_do_idle -		.word	cpu_arm9tdmi_dcache_clean_area -		.word	cpu_arm9tdmi_switch_mm -		.word	0		@ cpu_*_set_pte -		.size	arm9tdmi_processor_functions, . - arm9tdmi_processor_functions +		@ define struct processor (see <asm/proc-fns.h> and proc-macros.S) +		define_processor_functions arm9tdmi, dabort=nommu_early_abort, pabort=legacy_pabort, nommu=1  		.section ".rodata" -		.type	cpu_arch_name, #object -cpu_arch_name: -		.asciz	"armv4t" -		.size	cpu_arch_name, . - cpu_arch_name - -		.type	cpu_elf_name, #object -cpu_elf_name: -		.asciz	"v4" -		.size	cpu_elf_name, . - cpu_elf_name - -		.type	cpu_arm9tdmi_name, #object -cpu_arm9tdmi_name: -		.asciz	"ARM9TDMI" -		.size	cpu_arm9tdmi_name, . - cpu_arm9tdmi_name - -		.type	cpu_p2001_name, #object -cpu_p2001_name: -		.asciz	"P2001" -		.size	cpu_p2001_name, . - cpu_p2001_name +		string	cpu_arch_name, "armv4t" +		string	cpu_elf_name, "v4" +		string	cpu_arm9tdmi_name, "ARM9TDMI" +		string	cpu_p2001_name, "P2001"  		.align  		.section ".proc.info.init", #alloc, #execinstr -		.type	__arm9tdmi_proc_info, #object -__arm9tdmi_proc_info: -		.long	0x41009900 -		.long	0xfff8ff00 +.macro arm9tdmi_proc_info name:req, cpu_val:req, cpu_mask:req, cpu_name:req +		.type	__\name\()_proc_info, #object +__\name\()_proc_info: +		.long	\cpu_val +		.long	\cpu_mask  		.long	0  		.long	0  		b	__arm9tdmi_setup  		.long	cpu_arch_name  		.long	cpu_elf_name  		.long	HWCAP_SWP | HWCAP_THUMB | HWCAP_26BIT -		.long	cpu_arm9tdmi_name +		.long	\cpu_name  		.long	arm9tdmi_processor_functions  		.long	0  		.long	0  		.long	v4_cache_fns -		.size	__arm9tdmi_proc_info, . - __arm9dmi_proc_info +		.size	__\name\()_proc_info, . - __\name\()_proc_info +.endm -		.type	__p2001_proc_info, #object -__p2001_proc_info: -		.long	0x41029000 -		.long	0xffffffff -		.long	0 -		.long	0 -		b	__arm9tdmi_setup -		.long	cpu_arch_name -		.long	cpu_elf_name -		.long	HWCAP_SWP | HWCAP_THUMB | HWCAP_26BIT -		.long	cpu_p2001_name -		.long	arm9tdmi_processor_functions -		.long	0 -		.long	0 -		.long	v4_cache_fns -		.size	__p2001_proc_info, . - __p2001_proc_info +	arm9tdmi_proc_info arm9tdmi, 0x41009900, 0xfff8ff00, cpu_arm9tdmi_name +	arm9tdmi_proc_info p2001, 0x41029000, 0xffffffff, cpu_p2001_name  | 
