Skip to content

Commit 6fe85f6

Browse files
TofMassilia13320parmi93
authored andcommitted
[new][api] add handle's device type setup using mask identification query
1 parent 209213b commit 6fe85f6

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_Handle_t *pSTSE, void *pArg) {
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) {
@@ -98,7 +102,27 @@ stse_ReturnCode_t stse_init(stse_Handle_t *pSTSE, void *pArg) {
98102
if (pSTSE->device_type != STSAFE_L010) {
99103
#endif /* STSE_CONF_STSAFE_L_SUPPORT */
100104
#ifndef STSE_CONF_USE_STATIC_PERSONALIZATION_INFORMATIONS
101-
ret = stsafea_perso_info_update(pSTSE);
105+
ret = stsafea_query_mask_id(pSTSE, mask_id);
106+
if (ret != STSE_OK) {
107+
return ret;
108+
}
109+
110+
mask_number = (mask_id[STSAFEA_MASK_ID_SIZE - 2] << 8) + mask_id[STSAFEA_MASK_ID_SIZE - 1];
111+
if (mask_number >= 0x6000) {
112+
pSTSE->device_type = STSAFE_A120;
113+
}
114+
else if (mask_number >= 0x4600) {
115+
pSTSE->device_type = STSAFE_A110;
116+
}
117+
else if (mask_number >= 0x4000) {
118+
pSTSE->device_type = STSAFE_A100;
119+
}
120+
else
121+
{
122+
return (STSE_SERVICE_INCOMPATIBLE_DEVICE_TYPE);
123+
}
124+
125+
ret = stsafea_perso_info_update(pSTSE);
102126
#endif /* STSE_CONF_USE_STATIC_PERSONALIZATION_INFORMATIONS */
103127
#ifdef STSE_CONF_STSAFE_L_SUPPORT
104128
}

0 commit comments

Comments
 (0)