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/* Offset for mem to shadow address transformation */
22#define KASAN_SHADOW_OFFSET __XTENSA_UL_CONST(CONFIG_KASAN_SHADOW_OFFSET)
23
24void __init kasan_early_init(void);
25void __init kasan_init(void);
26
27#else
28
29static inline void kasan_early_init(void)
30{
31}
32
33static inline void kasan_init(void)
34{
35}
36
37#endif
38#endif
39#endif
40