1/* SPDX-License-Identifier: GPL-2.0 */ 2#ifndef __ASM_KASAN_H 3#define __ASM_KASAN_H 4 5#ifndef __ASSEMBLY__ 6 7#ifdef CONFIG_KASAN 8 9#include <linux/kernel.h> 10#include <linux/sizes.h> 11#include <asm/kmem_layout.h> 12 13#define KASAN_SHADOW_SCALE_SHIFT 3 14 15/* Start of area covered by KASAN */ 16#define KASAN_START_VADDR __XTENSA_UL_CONST(0x90000000) 17/* Start of the shadow map */ 18#define KASAN_SHADOW_START (XCHAL_PAGE_TABLE_VADDR + XCHAL_PAGE_TABLE_SIZE) 19/* Size of the shadow map */ 20#define KASAN_SHADOW_SIZE (-KASAN_START_VADDR >> KASAN_SHADOW_SCALE_SHIFT) 21/* End of the shadow map */ 22#define KASAN_SHADOW_END (KASAN_SHADOW_START + KASAN_SHADOW_SIZE) 23/* Offset for mem to shadow address transformation */ 24#define KASAN_SHADOW_OFFSET __XTENSA_UL_CONST(CONFIG_KASAN_SHADOW_OFFSET) 25 26void __init kasan_early_init(void); 27void __init kasan_init(void); 28 29#else 30 31static inline void kasan_early_init(void) 32{ 33} 34 35static inline void kasan_init(void) 36{ 37} 38 39#endif 40#endif 41#endif 42