Orange Pi5 kernel

Deprecated Linux kernel 5.10.110 for OrangePi 5/5B/5+ boards

3 Commits   0 Branches   0 Tags
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  1) /* SPDX-License-Identifier: GPL-2.0-only */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  2) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  3)  *  linux/arch/arm/mm/proc-arm9tdmi.S: utility functions for ARM9TDMI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  4)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  5)  *  Copyright (C) 2003-2006 Hyok S. Choi <hyok.choi@samsung.com>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  6)  */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  7) #include <linux/linkage.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  8) #include <linux/init.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  9) #include <linux/pgtable.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) #include <asm/assembler.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) #include <asm/asm-offsets.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) #include <asm/hwcap.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) #include <asm/pgtable-hwdef.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) #include <asm/ptrace.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) #include "proc-macros.S"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) 	.text
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20)  * cpu_arm9tdmi_proc_init()
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21)  * cpu_arm9tdmi_do_idle()
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22)  * cpu_arm9tdmi_dcache_clean_area()
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23)  * cpu_arm9tdmi_switch_mm()
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25)  * These are not required.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26)  */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) ENTRY(cpu_arm9tdmi_proc_init)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) ENTRY(cpu_arm9tdmi_do_idle)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) ENTRY(cpu_arm9tdmi_dcache_clean_area)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) ENTRY(cpu_arm9tdmi_switch_mm)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) 		ret	lr
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34)  * cpu_arm9tdmi_proc_fin()
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35)  */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) ENTRY(cpu_arm9tdmi_proc_fin)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) 		ret	lr
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40)  * Function: cpu_arm9tdmi_reset(loc)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41)  * Params  : loc(r0)	address to jump to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42)  * Purpose : Sets up everything for a reset and jump to the location for soft reset.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43)  */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) 		.pushsection	.idmap.text, "ax"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) ENTRY(cpu_arm9tdmi_reset)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) 		ret	r0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) ENDPROC(cpu_arm9tdmi_reset)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) 		.popsection
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) 		.type	__arm9tdmi_setup, #function
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) __arm9tdmi_setup:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) 		ret	lr
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) 		.size	__arm9tdmi_setup, . - __arm9tdmi_setup
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) 		__INITDATA
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57) 		@ define struct processor (see <asm/proc-fns.h> and proc-macros.S)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58) 		define_processor_functions arm9tdmi, dabort=nommu_early_abort, pabort=legacy_pabort, nommu=1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60) 		.section ".rodata"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62) 		string	cpu_arch_name, "armv4t"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63) 		string	cpu_elf_name, "v4"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64) 		string	cpu_arm9tdmi_name, "ARM9TDMI"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65) 		string	cpu_p2001_name, "P2001"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 67) 		.align
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 68) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 69) 		.section ".proc.info.init", "a"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 70) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 71) .macro arm9tdmi_proc_info name:req, cpu_val:req, cpu_mask:req, cpu_name:req
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 72) 		.type	__\name\()_proc_info, #object
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 73) __\name\()_proc_info:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 74) 		.long	\cpu_val
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 75) 		.long	\cpu_mask
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 76) 		.long	0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 77) 		.long	0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 78) 		initfn	__arm9tdmi_setup, __\name\()_proc_info
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 79) 		.long	cpu_arch_name
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 80) 		.long	cpu_elf_name
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 81) 		.long	HWCAP_SWP | HWCAP_THUMB | HWCAP_26BIT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 82) 		.long	\cpu_name
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 83) 		.long	arm9tdmi_processor_functions
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 84) 		.long	0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 85) 		.long	0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 86) 		.long	v4_cache_fns
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 87) 		.size	__\name\()_proc_info, . - __\name\()_proc_info
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 88) .endm
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 89) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 90) 	arm9tdmi_proc_info arm9tdmi, 0x41009900, 0xfff8ff00, cpu_arm9tdmi_name
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 91) 	arm9tdmi_proc_info p2001, 0x41029000, 0xffffffff, cpu_p2001_name