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/lib/memcpy.S
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  4)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  5)  *  Author:	Nicolas Pitre
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  6)  *  Created:	Sep 28, 2005
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  7)  *  Copyright:	MontaVista Software, Inc.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  8)  */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  9) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) #include <linux/linkage.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) #include <asm/assembler.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) #include <asm/unwind.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) #define LDR1W_SHIFT	0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) #define STR1W_SHIFT	0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) 	.macro ldr1w ptr reg abort
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) 	W(ldr) \reg, [\ptr], #4
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) 	.endm
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) 	.macro ldr4w ptr reg1 reg2 reg3 reg4 abort
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) 	ldmia \ptr!, {\reg1, \reg2, \reg3, \reg4}
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) 	.endm
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) 	.macro ldr8w ptr reg1 reg2 reg3 reg4 reg5 reg6 reg7 reg8 abort
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) 	ldmia \ptr!, {\reg1, \reg2, \reg3, \reg4, \reg5, \reg6, \reg7, \reg8}
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) 	.endm
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) 	.macro ldr1b ptr reg cond=al abort
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) 	ldrb\cond \reg, [\ptr], #1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) 	.endm
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) 	.macro str1w ptr reg abort
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) 	W(str) \reg, [\ptr], #4
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) 	.endm
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) 	.macro str8w ptr reg1 reg2 reg3 reg4 reg5 reg6 reg7 reg8 abort
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) 	stmia \ptr!, {\reg1, \reg2, \reg3, \reg4, \reg5, \reg6, \reg7, \reg8}
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) 	.endm
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) 	.macro str1b ptr reg cond=al abort
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) 	strb\cond \reg, [\ptr], #1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) 	.endm
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) 	.macro enter reg1 reg2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) 	stmdb sp!, {r0, \reg1, \reg2}
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) 	.endm
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) 	.macro usave reg1 reg2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) 	UNWIND(	.save	{r0, \reg1, \reg2}	)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) 	.endm
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) 	.macro exit reg1 reg2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54) 	ldmfd sp!, {r0, \reg1, \reg2}
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) 	.endm
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57) 	.text
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59) /* Prototype: void *memcpy(void *dest, const void *src, size_t n); */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61) ENTRY(mmiocpy)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62) ENTRY(memcpy)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64) #include "copy_template.S"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66) ENDPROC(memcpy)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 67) ENDPROC(mmiocpy)