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) #include <linux/sys.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  4) #include <linux/init.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  5) #include <asm/unistd.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  6) #include <asm/setup.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  7) #include <asm/segment.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  8) #include <asm/linkage.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  9) #include <asm/asm-offsets.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) #include <asm/thread_info.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) #include <asm/errno.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) #if defined(CONFIG_CPU_H8300H)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) 	.h8300h
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) #define SYSCR 0xfee012
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) #define IRAMTOP 0xffff20
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) #endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) #if defined(CONFIG_CPU_H8S)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) 	.h8300s
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) #define INTCR 0xffff31
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) #define IRAMTOP 0xffc000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) #endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) 	__HEAD
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) 	.global	_start
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) _start:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) 	mov.l	#IRAMTOP,sp
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) 	/* .bss clear */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) 	mov.l	#_sbss,er5
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) 	mov.l	#_ebss,er4
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) 	sub.l	er5,er4
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) 	shlr	er4
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) 	shlr	er4
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) 	sub.l	er2,er2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) 1:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) 	mov.l	er2,@er5
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) 	adds	#4,er5
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) 	dec.l	#1,er4
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) 	bne	1b
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) 	jsr	@h8300_fdt_init
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) 	/* linux kernel start */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) #if defined(CONFIG_CPU_H8300H)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) 	ldc	#0xd0,ccr	/* running kernel */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) 	mov.l	#SYSCR,er0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) 	bclr	#3,@er0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) #endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) #if defined(CONFIG_CPU_H8S)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) 	ldc	#0x07,exr
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) 	bclr	#4,@INTCR:8
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) 	bset	#5,@INTCR:8	/* Interrupt mode 2 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) 	ldc	#0x90,ccr	/* running kernel */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) #endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54) 	mov.l	#init_thread_union,sp
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) 	add.l	#0x2000,sp
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) 	jsr	@start_kernel
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58) 1:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59) 	bra	1b
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61) 	.end