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) # Makefile for the Linux/Xtensa kernel.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  4) #
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  5) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  6) extra-y := head.o vmlinux.lds
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  7) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  8) obj-y := align.o coprocessor.o entry.o irq.o platform.o process.o \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  9) 	 ptrace.o setup.o signal.o stacktrace.o syscall.o time.o traps.o \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) 	 vectors.o
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) obj-$(CONFIG_MMU) += pci-dma.o
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) obj-$(CONFIG_PCI) += pci.o
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) obj-$(CONFIG_MODULES) += xtensa_ksyms.o module.o
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) obj-$(CONFIG_FUNCTION_TRACER) += mcount.o
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) obj-$(CONFIG_SMP) += smp.o mxhead.o
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) obj-$(CONFIG_XTENSA_VARIANT_HAVE_PERF_EVENTS) += perf_event.o
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) obj-$(CONFIG_HAVE_HW_BREAKPOINT) += hw_breakpoint.o
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) obj-$(CONFIG_S32C1I_SELFTEST) += s32c1i_selftest.o
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) obj-$(CONFIG_JUMP_LABEL) += jump_label.o
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) # In the Xtensa architecture, assembly generates literals which must always
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) # precede the L32R instruction with a relative offset less than 256 kB.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) # Therefore, the .text and .literal section must be combined in parenthesis
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) # in the linker script, such as: *(.literal .text).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) #
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) # We need to post-process the generated vmlinux.lds scripts to convert
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) # *(xxx.text) to  *(xxx.literal xxx.text) for the following text sections:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) #   .text .ref.text .*init.text .*exit.text .text.*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) #
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) # Replicate rules in scripts/Makefile.build
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) sed-y = -e ':a; s/\*(\([^)]*\)\.text\.unlikely/*(\1.literal.unlikely .{text}.unlikely/; ta; ' \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) 	-e ':b; s/\*(\([^)]*\)\.text\(\.[a-z]*\)/*(\1.{text}\2.literal .{text}\2/; tb; ' \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) 	-e ':c; s/\*(\([^)]*\)\(\.[a-z]*it\|\.ref\)\.text/*(\1\2.literal \2.{text}/; tc; ' \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) 	-e ':d; s/\*(\([^)]\+ \|\)\.text/*(\1.literal .{text}/; td; ' \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) 	-e 's/\.{text}/.text/g'
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) quiet_cmd__cpp_lds_S = LDS     $@
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) cmd__cpp_lds_S = $(CPP) $(cpp_flags) -P -C -Uxtensa -D__ASSEMBLY__ \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) 		 -DLINKER_SCRIPT $< | sed $(sed-y) >$@
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) $(obj)/vmlinux.lds: $(src)/vmlinux.lds.S FORCE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) 	$(call if_changed_dep,_cpp_lds_S)