File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 2727/* Exported functions --------------------------------------------------------*/
2828stse_ReturnCode_t stse_init (stse_Handler_t * pSTSE ) {
2929 stse_ReturnCode_t ret = STSE_API_INVALID_PARAMETER ;
30+ #ifdef STSE_CONF_STSAFE_A_SUPPORT
31+ PLAT_UI8 mask_id [STSAFEA_MASK_ID_SIZE ];
32+ PLAT_UI16 mask_number ;
33+ #endif /* STSE_CONF_STSAFE_A_SUPPORT */
3034
3135 /* - Check STSAFE handler initialization */
3236 if (pSTSE == NULL ) {
@@ -96,7 +100,27 @@ stse_ReturnCode_t stse_init(stse_Handler_t *pSTSE) {
96100 stse_platform_Delay_ms (stsafea_boot_time [pSTSE -> device_type ]);
97101
98102#ifndef STSE_CONF_USE_STATIC_PERSONALIZATION_INFORMATIONS
99- ret = stsafea_perso_info_update (pSTSE );
103+ ret = stsafea_query_mask_id (pSTSE , mask_id );
104+ if (ret != STSE_OK ) {
105+ return ret ;
106+ }
107+
108+ mask_number = (mask_id [STSAFEA_MASK_ID_SIZE - 2 ] << 8 ) + mask_id [STSAFEA_MASK_ID_SIZE - 1 ];
109+ if (mask_number >= 0x6000 ) {
110+ pSTSE -> device_type = STSAFE_A120 ;
111+ }
112+ else if (mask_number >= 0x4600 ) {
113+ pSTSE -> device_type = STSAFE_A110 ;
114+ }
115+ else if (mask_number >= 0x4000 ) {
116+ pSTSE -> device_type = STSAFE_A100 ;
117+ }
118+ else
119+ {
120+ return (STSE_SERVICE_INCOMPATIBLE_DEVICE_TYPE );
121+ }
122+
123+ ret = stsafea_perso_info_update (pSTSE );
100124#endif /* STSE_CONF_USE_STATIC_PERSONALIZATION_INFORMATIONS */
101125#ifdef STSE_CONF_STSAFE_L_SUPPORT
102126 }
You can’t perform that action at this time.
0 commit comments