xref: /arm-trusted-firmware/plat/imx/common/include/imx_hab.h (revision 91f16700b400a8c0651d24a598fc48ee2997a0d7)
1*91f16700Schasinglulu /*
2*91f16700Schasinglulu  * Copyright (C) 2018, ARM Limited and Contributors. All rights reserved.
3*91f16700Schasinglulu  *
4*91f16700Schasinglulu  * SPDX-License-Identifier: BSD-3-Clause
5*91f16700Schasinglulu  */
6*91f16700Schasinglulu #ifndef IMX_HAB_H
7*91f16700Schasinglulu #define IMX_HAB_H
8*91f16700Schasinglulu 
9*91f16700Schasinglulu #include <imx_hab_arch.h>
10*91f16700Schasinglulu #include <imx_regs.h>
11*91f16700Schasinglulu 
12*91f16700Schasinglulu #define HAB_ROM_VECTOR_BASE\
13*91f16700Schasinglulu 	(BOOTROM_BASE + HAB_CALLBACK_OFFSET)
14*91f16700Schasinglulu /*
15*91f16700Schasinglulu  * Section 4.5 of the High Assurance Boot Version 4 Application Programming
16*91f16700Schasinglulu  * Interface Reference Manual defines the ROM Vector table as coming after a 4
17*91f16700Schasinglulu  * byte header
18*91f16700Schasinglulu  *
19*91f16700Schasinglulu  * A series of function pointers are enumerated at fixed addresses, which are
20*91f16700Schasinglulu  * described below
21*91f16700Schasinglulu  */
22*91f16700Schasinglulu #define HAB_ROM_VECTOR_TABLE_ENTRY		(HAB_ROM_VECTOR_BASE + 0x04)
23*91f16700Schasinglulu #define HAB_ROM_VECTOR_TABLE_EXIT		(HAB_ROM_VECTOR_BASE + 0x08)
24*91f16700Schasinglulu #define HAB_ROM_VECTOR_TABLE_CHECK_TARGET	(HAB_ROM_VECTOR_BASE + 0x0C)
25*91f16700Schasinglulu #define HAB_ROM_VECTOR_TABLE_AUTHENTICATE_IMAGE	(HAB_ROM_VECTOR_BASE + 0x10)
26*91f16700Schasinglulu #define HAB_ROM_VECTOR_TABLE_RUN_DCD		(HAB_ROM_VECTOR_BASE + 0x14)
27*91f16700Schasinglulu #define HAB_ROM_VECTOR_TABLE_RUN_CSF		(HAB_ROM_VECTOR_BASE + 0x18)
28*91f16700Schasinglulu #define HAB_ROM_VECTOR_TABLE_ASSERT		(HAB_ROM_VECTOR_BASE + 0x1C)
29*91f16700Schasinglulu #define HAB_ROM_VECTOR_TABLE_REPORT_EVENT	(HAB_ROM_VECTOR_BASE + 0x20)
30*91f16700Schasinglulu #define HAB_ROM_VECTOR_TABLE_REPORT_STATUS	(HAB_ROM_VECTOR_BASE + 0x24)
31*91f16700Schasinglulu #define HAB_ROM_VECTOR_TABLE_FAILSAFE		(HAB_ROM_VECTOR_BASE + 0x28)
32*91f16700Schasinglulu 
33*91f16700Schasinglulu #endif /* IMX_HAB_H */
34