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