| /* SPDX-License-Identifier: GPL-2.0 */ | |
| /* | |
| * Copyright (C) 2020-2022 Loongson Technology Corporation Limited | |
| */ | |
| #ifndef _LOONGARCH_SETUP_H | |
| #define _LOONGARCH_SETUP_H | |
| #include <linux/types.h> | |
| #include <asm/sections.h> | |
| #include <uapi/asm/setup.h> | |
| #define VECSIZE 0x200 | |
| extern unsigned long eentry; | |
| extern unsigned long tlbrentry; | |
| extern char init_command_line[COMMAND_LINE_SIZE]; | |
| extern void tlb_init(int cpu); | |
| extern void cpu_cache_init(void); | |
| extern void cache_error_setup(void); | |
| extern void per_cpu_trap_init(int cpu); | |
| extern void set_handler(unsigned long offset, void *addr, unsigned long len); | |
| extern void set_merr_handler(unsigned long offset, void *addr, unsigned long len); | |
| #ifdef CONFIG_RELOCATABLE | |
| struct rela_la_abs { | |
| long pc; | |
| long symvalue; | |
| }; | |
| extern long __la_abs_begin; | |
| extern long __la_abs_end; | |
| extern long __rela_dyn_begin; | |
| extern long __rela_dyn_end; | |
| #ifdef CONFIG_RELR | |
| extern long __relr_dyn_begin; | |
| extern long __relr_dyn_end; | |
| #endif | |
| extern unsigned long __init relocate_kernel(void); | |
| #endif | |
| static inline unsigned long kaslr_offset(void) | |
| { | |
| return (unsigned long)&_text - VMLINUX_LOAD_ADDRESS; | |
| } | |
| #endif /* __SETUP_H */ |