xref: /rk3399_rockchip-uboot/arch/arm/include/asm/opcodes-virt.h (revision 4f66e09bb9fbc47b73f67c3cc08ee2663e8fcdb1)
1c2da86f3SMasahiro Yamada /*
2c2da86f3SMasahiro Yamada  * opcodes-virt.h: Opcode definitions for the ARM virtualization extensions
3c2da86f3SMasahiro Yamada  * Copyright (C) 2012  Linaro Limited
4c2da86f3SMasahiro Yamada  *
5*c54bcf68SMasahiro Yamada  * SPDX-License-Identifier:	GPL-2.0+
6c2da86f3SMasahiro Yamada  */
7c2da86f3SMasahiro Yamada #ifndef __ASM_ARM_OPCODES_VIRT_H
8c2da86f3SMasahiro Yamada #define __ASM_ARM_OPCODES_VIRT_H
9c2da86f3SMasahiro Yamada 
10c2da86f3SMasahiro Yamada #include <asm/opcodes.h>
11c2da86f3SMasahiro Yamada 
12c2da86f3SMasahiro Yamada #define __HVC(imm16) __inst_arm_thumb32(				\
13c2da86f3SMasahiro Yamada 	0xE1400070 | (((imm16) & 0xFFF0) << 4) | ((imm16) & 0x000F),	\
14c2da86f3SMasahiro Yamada 	0xF7E08000 | (((imm16) & 0xF000) << 4) | ((imm16) & 0x0FFF)	\
15c2da86f3SMasahiro Yamada )
16c2da86f3SMasahiro Yamada 
17c2da86f3SMasahiro Yamada #define __ERET	__inst_arm_thumb32(					\
18c2da86f3SMasahiro Yamada 	0xE160006E,							\
19c2da86f3SMasahiro Yamada 	0xF3DE8F00							\
20c2da86f3SMasahiro Yamada )
21c2da86f3SMasahiro Yamada 
22c2da86f3SMasahiro Yamada #define __MSR_ELR_HYP(regnum)	__inst_arm_thumb32(			\
23c2da86f3SMasahiro Yamada 	0xE12EF300 | regnum,						\
24c2da86f3SMasahiro Yamada 	0xF3808E30 | (regnum << 16)					\
25c2da86f3SMasahiro Yamada )
26c2da86f3SMasahiro Yamada 
27c2da86f3SMasahiro Yamada #endif /* ! __ASM_ARM_OPCODES_VIRT_H */
28