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 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  2) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  3)  * dtlb_prot.S: DTLB protection trap strategy.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  4)  *              This is included directly into the trap table.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  5)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  6)  * Copyright (C) 1996,1998 David S. Miller (davem@redhat.com)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  7)  * Copyright (C) 1997,1998 Jakub Jelinek   (jj@ultra.linux.cz)
^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) /* Ways we can get here:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12)  * [TL == 0] 1) User stores to readonly pages.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13)  * [TL == 0] 2) Nucleus stores to user readonly pages.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14)  * [TL >  0] 3) Nucleus stores to user readonly stack frame.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15)  */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) /* PROT ** ICACHE line 1: User DTLB protection trap	*/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) 	mov		TLB_SFSR, %g1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) 	stxa		%g0, [%g1] ASI_DMMU		! Clear FaultValid bit
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) 	membar		#Sync				! Synchronize stores
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) 	rdpr		%pstate, %g5			! Move into alt-globals
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) 	wrpr		%g5, PSTATE_AG|PSTATE_MG, %pstate
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) 	rdpr		%tl, %g1			! Need a winfixup?
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) 	cmp		%g1, 1				! Trap level >1?
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) 	mov		TLB_TAG_ACCESS, %g4		! For reload of vaddr
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) /* PROT ** ICACHE line 2: More real fault processing */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) 	ldxa		[%g4] ASI_DMMU, %g5		! Put tagaccess in %g5
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) 	srlx		%g5, PAGE_SHIFT, %g5
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) 	sllx		%g5, PAGE_SHIFT, %g5		! Clear context ID bits
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) 	bgu,pn		%xcc, winfix_trampoline		! Yes, perform winfixup
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) 	 mov		FAULT_CODE_DTLB | FAULT_CODE_WRITE, %g4
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) 	ba,pt		%xcc, sparc64_realfault_common	! Nope, normal fault
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) 	 nop
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) 	nop
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) /* PROT ** ICACHE line 3: Unused...	*/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) 	nop
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) 	nop
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) 	nop
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) 	nop
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) 	nop
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) 	nop
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) 	nop
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) 	nop
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) /* PROT ** ICACHE line 4: Unused...	*/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) 	nop
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) 	nop
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) 	nop
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) 	nop
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) 	nop
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) 	nop
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54) 	nop
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) 	nop