1/* SPDX-License-Identifier: GPL-2.0 */
2
3#ifndef _ASM_POWERPC_BOOK3S_64_KEXEC_H_
4#define _ASM_POWERPC_BOOK3S_64_KEXEC_H_
5
6#include <asm/plpar_wrappers.h>
7
8#define reset_sprs reset_sprs
9static inline void reset_sprs(void)
10{
11	if (cpu_has_feature(CPU_FTR_ARCH_206)) {
12		mtspr(SPRN_AMR, 0);
13		mtspr(SPRN_UAMOR, 0);
14	}
15
16	if (cpu_has_feature(CPU_FTR_ARCH_207S)) {
17		mtspr(SPRN_IAMR, 0);
18		if (cpu_has_feature(CPU_FTR_HVMODE))
19			mtspr(SPRN_CIABR, 0);
20		else
21			plpar_set_ciabr(0);
22	}
23
24	if (cpu_has_feature(CPU_FTR_ARCH_31)) {
25		mtspr(SPRN_DEXCR, 0);
26		mtspr(SPRN_HASHKEYR, 0);
27	}
28
29	/*  Do we need isync()? We are going via a kexec reset */
30	isync();
31}
32
33#endif
34