122 lines
6.2 KiB
C
122 lines
6.2 KiB
C
/***********************************************************************************************************************
|
|
* FILE DESCRIPTION
|
|
* ------------------------------------------------------------------------------------------------------------------*/
|
|
/** \file
|
|
* \brief SecureBoot implementation
|
|
*
|
|
* --------------------------------------------------------------------------------------------------------------------
|
|
* COPYRIGHT
|
|
* --------------------------------------------------------------------------------------------------------------------
|
|
* \par Copyright
|
|
* \verbatim
|
|
* Copyright (c) 2025 by Vector Informatik GmbH. All rights reserved.
|
|
*
|
|
* This software is copyright protected and proprietary to Vector Informatik GmbH.
|
|
* Vector Informatik GmbH grants to you only those rights as set out in the license conditions.
|
|
* All other rights remain with Vector Informatik GmbH.
|
|
* \endverbatim
|
|
*/
|
|
/**********************************************************************************************************************/
|
|
|
|
/***********************************************************************************************************************
|
|
* REVISION HISTORY
|
|
* --------------------------------------------------------------------------------------------------------------------
|
|
* Version Date Author Change Id Description
|
|
* --------------------------------------------------------------------------------------------------------------------
|
|
* 01.00.00 2020-01-07 visrie FBL-524 Initial release
|
|
* 01.00.01 2020-04-27 visrie FBL-1773 Added API reference version define
|
|
* 02.00.00 2020-05-19 vistbe FBL-1016 No changes
|
|
* 02.01.00 2021-01-19 visrie FBL-2648 No changes
|
|
* FBL-2641 Updated to new API version
|
|
* 02.02.00 2021-09-08 visjdn FBL-3352 No changes
|
|
* 02.03.00 2023-06-21 vistbe FBL-4814 Add support for OTA
|
|
* 02.03.01 2024-05-16 viswmo ESCAN00117059 No changes
|
|
* 02.04.00 2024-11-18 vismix FBL-9654 No changes
|
|
* 02.05.00 2025-01-24 vikatya PIO-1340 No changes
|
|
* 02.06.00 2025-02-19 visrie FBL-10209 No changes
|
|
**********************************************************************************************************************/
|
|
|
|
#ifndef FBL_SECBOOT_H
|
|
#define FBL_SECBOOT_H
|
|
|
|
/***********************************************************************************************************************
|
|
* VERSION
|
|
**********************************************************************************************************************/
|
|
|
|
/* ##V_CFG_MANAGEMENT ##CQProject : FblLib_SecBoot_vHsm CQComponent : Implementation */
|
|
#define FBLLIB_SECBOOT_VHSM_VERSION 0x0206u
|
|
#define FBLLIB_SECBOOT_VHSM_RELEASE_VERSION 0x00u
|
|
|
|
/***********************************************************************************************************************
|
|
* INCLUDES
|
|
**********************************************************************************************************************/
|
|
|
|
#include "FblSb_Cfg.h"
|
|
#include "FblBm_Cfg.h"
|
|
#include "fbl_secboot_ap.h"
|
|
#include "fbl_main_types.h"
|
|
|
|
/***********************************************************************************************************************
|
|
* DEFINES
|
|
**********************************************************************************************************************/
|
|
|
|
/* Reference interface version */
|
|
/** Major interface version identifies incompatible changes */
|
|
#define FBLSB_API_REFERENCE_VERSION_MAJOR 0x02u
|
|
/** Minor interface version identifies backward compatible changes */
|
|
#define FBLSB_API_REFERENCE_VERSION_MINOR 0x03u
|
|
/** Release interface version identifies cosmetic changes */
|
|
#define FBLSB_API_REFERENCE_VERSION_RELEASE 0x00u
|
|
|
|
#if defined( FBL_ENABLE_OTA )
|
|
# define FblSb_UpdateBlockMacSwap(blockDescriptor, segmentList) FblSb_UpdateBlockMac(blockDescriptor, segmentList)
|
|
#endif
|
|
|
|
/***********************************************************************************************************************
|
|
* TYPEDEFS
|
|
**********************************************************************************************************************/
|
|
|
|
typedef enum
|
|
{
|
|
FBLSB_EXT_ERR_CODE_NONE = 0u,
|
|
FBLSB_EXT_ERR_CODE_GENERAL,
|
|
FBLSB_EXT_ERR_CODE_CRC,
|
|
FBLSB_EXT_ERR_CODE_SIGNATURE,
|
|
FBLSB_EXT_ERR_CODE_MEMORY
|
|
} tFblSbExtErrCode;
|
|
|
|
/***********************************************************************************************************************
|
|
* FUNCTION PROTOTYPES
|
|
**********************************************************************************************************************/
|
|
#define FBLSB_START_SEC_CODE
|
|
#include "MemMap.h" /* PRQA S 5087 */ /* MD_MSR_MemMap */
|
|
|
|
#if defined( FBLSB_ENABLE_COPY_FLASH_DRIVER )
|
|
void FblSb_CopyFlashDriver( void );
|
|
#endif /* FBLSB_ENABLE_COPY_FLASH_DRIVER */
|
|
|
|
void FblSb_Init(void);
|
|
tFblResult FblSb_VerifyFblLbt(const V_MEMRAM1 tFblHeader V_MEMRAM2 V_MEMRAM3 * fblHeader);
|
|
tFblResult FblSb_VerifyHeader(const V_MEMRAM1 tFblBmHdrHeader V_MEMRAM2 V_MEMRAM3 * bmHdrHeader);
|
|
tFblResult FblSb_VerifyHeaderRom(tFblAddress bmHeaderAddress, const V_MEMRAM1 tFblBmHdrHeader V_MEMRAM2 V_MEMRAM3 * bmHdrHeader);
|
|
tFblResult FblSb_VerifySegments(const V_MEMRAM1 tFblBmHdrHeader V_MEMRAM2 V_MEMRAM3 *bmHdrHeader);
|
|
|
|
tFblResult FblSb_UpdateInitialSegments(void);
|
|
|
|
#if defined( FBLSB_ENABLE_GENERATE_CMAC )
|
|
tFblResult FblSb_UpdateFblMac(V_MEMROM1 tFblHeader V_MEMROM2 V_MEMROM3 * fblHeader);
|
|
tFblResult FblSb_UpdateBlockMac(const V_MEMRAM1 tBlockDescriptor V_MEMRAM2 V_MEMRAM3 * blockDescriptor,
|
|
V_MEMRAM1 FL_SegmentListType V_MEMRAM2 V_MEMRAM3 * segmentList);
|
|
#endif /* FBLSB_ENABLE_GENERATE_CMAC */
|
|
|
|
tFblSbExtErrCode FblSb_GetExtendedErrorCode(void);
|
|
|
|
#define FBLSB_STOP_SEC_CODE
|
|
#include "MemMap.h" /* PRQA S 5087 */ /* MD_MSR_MemMap */
|
|
|
|
#endif /* FBL_SECBOOT_H */
|
|
|
|
/***********************************************************************************************************************
|
|
* END OF FILE: FBL_SECBOOT.H
|
|
**********************************************************************************************************************/
|