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)  * arch/alpha/boot/head.S
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   4)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   5)  * initial bootloader stuff..
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   6)  */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   7) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   8) #include <asm/pal.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   9) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  10) 	.set noreorder
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  11) 	.globl	__start
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  12) 	.ent	__start
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  13) __start:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  14) 	br	$29,2f
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  15) 2:	ldgp	$29,0($29)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  16) 	jsr	$26,start_kernel
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  17) 	call_pal PAL_halt
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  18) 	.end __start
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  19) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  20) 	.align 5
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  21) 	.globl	wrent
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  22) 	.ent	wrent
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  23) wrent:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  24) 	.prologue 0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  25) 	call_pal PAL_wrent
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  26) 	ret ($26)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  27) 	.end wrent
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  28) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  29) 	.align 5
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  30) 	.globl	wrkgp
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  31) 	.ent	wrkgp
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  32) wrkgp:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  33) 	.prologue 0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  34) 	call_pal PAL_wrkgp
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  35) 	ret ($26)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  36) 	.end wrkgp
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  37) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  38) 	.align 5
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  39) 	.globl	switch_to_osf_pal
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  40) 	.ent	switch_to_osf_pal
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  41) switch_to_osf_pal:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  42) 	subq	$30,128,$30
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  43) 	.frame	$30,128,$26
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  44) 	stq	$26,0($30)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  45) 	stq	$1,8($30)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  46) 	stq	$2,16($30)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  47) 	stq	$3,24($30)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  48) 	stq	$4,32($30)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  49) 	stq	$5,40($30)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  50) 	stq	$6,48($30)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  51) 	stq	$7,56($30)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  52) 	stq	$8,64($30)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  53) 	stq	$9,72($30)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  54) 	stq	$10,80($30)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  55) 	stq	$11,88($30)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  56) 	stq	$12,96($30)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  57) 	stq	$13,104($30)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  58) 	stq	$14,112($30)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  59) 	stq	$15,120($30)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  60) 	.prologue 0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  61) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  62) 	stq	$30,0($17)	/* save KSP in PCB */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  63) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  64) 	bis	$30,$30,$20	/* a4 = KSP */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  65) 	br	$17,1f
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  66) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  67) 	ldq	$26,0($30)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  68) 	ldq	$1,8($30)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  69) 	ldq	$2,16($30)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  70) 	ldq	$3,24($30)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  71) 	ldq	$4,32($30)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  72) 	ldq	$5,40($30)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  73) 	ldq	$6,48($30)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  74) 	ldq	$7,56($30)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  75) 	ldq	$8,64($30)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  76) 	ldq	$9,72($30)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  77) 	ldq	$10,80($30)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  78) 	ldq	$11,88($30)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  79) 	ldq	$12,96($30)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  80) 	ldq	$13,104($30)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  81) 	ldq	$14,112($30)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  82) 	ldq	$15,120($30)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  83) 	addq	$30,128,$30
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  84) 	ret ($26)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  85) 1:	call_pal PAL_swppal
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  86) 	.end	switch_to_osf_pal
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  87) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  88) 	.align 3
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  89) 	.globl	tbi
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  90) 	.ent	tbi
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  91) tbi:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  92) 	.prologue 0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  93) 	call_pal PAL_tbi
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  94) 	ret	($26)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  95) 	.end tbi
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  96) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  97) 	.align 3
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  98) 	.globl	halt
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  99) 	.ent	halt
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100) halt:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101) 	.prologue 0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102) 	call_pal PAL_halt
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 103) 	.end halt
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 104) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 105) /* $16 - new stack page */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 106) 	.align 3
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 107) 	.globl	move_stack
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 108) 	.ent	move_stack
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 109) move_stack:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 110) 	.prologue 0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 111) 	lda	$0, 0x1fff($31)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 112) 	and	$0, $30, $1			/* Stack offset */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 113) 	or	$1, $16, $16			/* New stack pointer */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 114) 	mov	$30, $1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 115) 	mov	$16, $2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 116) 1:	ldq	$3, 0($1)			/* Move the stack */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 117) 	addq	$1, 8, $1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 118) 	stq	$3, 0($2)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 119) 	and	$0, $1, $4
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 120) 	addq	$2, 8, $2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 121) 	bne	$4, 1b
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 122) 	mov	$16, $30
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 123) 	ret	($26)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 124) 	.end move_stack