mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-25 17:45:11 +07:00
d9a46e6e71
Signed-off-by: Nicolas Pitre <nico@linaro.org> Tested-by: Chris Brandt <Chris.Brandt@renesas.com>
95 lines
2.3 KiB
C
95 lines
2.3 KiB
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
|
|
#ifdef CONFIG_HOTPLUG_CPU
|
|
#define ARM_CPU_DISCARD(x)
|
|
#define ARM_CPU_KEEP(x) x
|
|
#else
|
|
#define ARM_CPU_DISCARD(x) x
|
|
#define ARM_CPU_KEEP(x)
|
|
#endif
|
|
|
|
#if (defined(CONFIG_SMP_ON_UP) && !defined(CONFIG_DEBUG_SPINLOCK)) || \
|
|
defined(CONFIG_GENERIC_BUG) || defined(CONFIG_JUMP_LABEL)
|
|
#define ARM_EXIT_KEEP(x) x
|
|
#define ARM_EXIT_DISCARD(x)
|
|
#else
|
|
#define ARM_EXIT_KEEP(x)
|
|
#define ARM_EXIT_DISCARD(x) x
|
|
#endif
|
|
|
|
#ifdef CONFIG_MMU
|
|
#define ARM_MMU_KEEP(x) x
|
|
#define ARM_MMU_DISCARD(x)
|
|
#else
|
|
#define ARM_MMU_KEEP(x)
|
|
#define ARM_MMU_DISCARD(x) x
|
|
#endif
|
|
|
|
#define PROC_INFO \
|
|
. = ALIGN(4); \
|
|
VMLINUX_SYMBOL(__proc_info_begin) = .; \
|
|
*(.proc.info.init) \
|
|
VMLINUX_SYMBOL(__proc_info_end) = .;
|
|
|
|
#define HYPERVISOR_TEXT \
|
|
VMLINUX_SYMBOL(__hyp_text_start) = .; \
|
|
*(.hyp.text) \
|
|
VMLINUX_SYMBOL(__hyp_text_end) = .;
|
|
|
|
#define IDMAP_TEXT \
|
|
ALIGN_FUNCTION(); \
|
|
VMLINUX_SYMBOL(__idmap_text_start) = .; \
|
|
*(.idmap.text) \
|
|
VMLINUX_SYMBOL(__idmap_text_end) = .; \
|
|
. = ALIGN(PAGE_SIZE); \
|
|
VMLINUX_SYMBOL(__hyp_idmap_text_start) = .; \
|
|
*(.hyp.idmap.text) \
|
|
VMLINUX_SYMBOL(__hyp_idmap_text_end) = .;
|
|
|
|
#define ARM_DISCARD \
|
|
*(.ARM.exidx.exit.text) \
|
|
*(.ARM.extab.exit.text) \
|
|
ARM_CPU_DISCARD(*(.ARM.exidx.cpuexit.text)) \
|
|
ARM_CPU_DISCARD(*(.ARM.extab.cpuexit.text)) \
|
|
ARM_EXIT_DISCARD(EXIT_TEXT) \
|
|
ARM_EXIT_DISCARD(EXIT_DATA) \
|
|
EXIT_CALL \
|
|
ARM_MMU_DISCARD(*(.text.fixup)) \
|
|
ARM_MMU_DISCARD(*(__ex_table)) \
|
|
*(.discard) \
|
|
*(.discard.*)
|
|
|
|
#define ARM_TEXT \
|
|
IDMAP_TEXT \
|
|
__entry_text_start = .; \
|
|
*(.entry.text) \
|
|
__entry_text_end = .; \
|
|
IRQENTRY_TEXT \
|
|
SOFTIRQENTRY_TEXT \
|
|
TEXT_TEXT \
|
|
SCHED_TEXT \
|
|
CPUIDLE_TEXT \
|
|
LOCK_TEXT \
|
|
HYPERVISOR_TEXT \
|
|
KPROBES_TEXT \
|
|
*(.gnu.warning) \
|
|
*(.glue_7) \
|
|
*(.glue_7t) \
|
|
. = ALIGN(4); \
|
|
*(.got) /* Global offset table */ \
|
|
ARM_CPU_KEEP(PROC_INFO)
|
|
|
|
/* Stack unwinding tables */
|
|
#define ARM_UNWIND_SECTIONS \
|
|
. = ALIGN(8); \
|
|
.ARM.unwind_idx : { \
|
|
__start_unwind_idx = .; \
|
|
*(.ARM.exidx*) \
|
|
__stop_unwind_idx = .; \
|
|
} \
|
|
.ARM.unwind_tab : { \
|
|
__start_unwind_tab = .; \
|
|
*(.ARM.extab*) \
|
|
__stop_unwind_tab = .; \
|
|
}
|