Skip to content

Commit cea35ea

Browse files
TofMassilia13320Grom-
authored andcommitted
[new][api] add handle's device type setup using mask identification query
1 parent c43302e commit cea35ea

1 file changed

Lines changed: 25 additions & 1 deletion

File tree

api/stse_device_management.c

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,10 @@
2727
/* Exported functions --------------------------------------------------------*/
2828
stse_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
}

0 commit comments

Comments
 (0)