Skip to content

Commit 209213b

Browse files
TofMassilia13320parmi93
authored andcommitted
[new][services] add mask identification query
1 parent dbd2ffc commit 209213b

2 files changed

Lines changed: 58 additions & 4 deletions

File tree

services/stsafea/stsafea_put_query.c

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@
2424

2525
#ifdef STSE_CONF_STSAFE_A_SUPPORT
2626

27+
#define STSAFEA_SUB_TAG_MASK_ID 0x01
28+
2729
stse_ReturnCode_t stsafea_put_life_cyle_state(
2830
stse_Handle_t *pSTSE,
2931
stsafea_life_cycle_state_t life_cycle_state) {
@@ -147,4 +149,43 @@ stse_ReturnCode_t stsafea_query_i2c_parameters(
147149
stsafea_cmd_timings[pSTSE->device_type][cmd_header]);
148150
}
149151

152+
stse_ReturnCode_t stsafea_query_mask_id(
153+
stse_Handler_t *pSTSE,
154+
PLAT_UI8 mask_id[STSAFEA_MASK_ID_SIZE]) {
155+
PLAT_UI8 cmd_header = STSAFEA_CMD_QUERY;
156+
PLAT_UI8 tag = STSAFEA_SUBJECT_TAG_PRODUCT_DATA;
157+
PLAT_UI8 rsp_header;
158+
PLAT_UI8 sub_tag;
159+
PLAT_UI8 sub_tag_size;
160+
stse_ReturnCode_t ret;
161+
162+
if (pSTSE == NULL) {
163+
return (STSE_SERVICE_HANDLER_NOT_INITIALISED);
164+
}
165+
166+
/*- Create CMD frame and populate elements */
167+
stse_frame_allocate(CmdFrame);
168+
stse_frame_element_allocate_push(&CmdFrame, eCmd_header, 1, &cmd_header);
169+
stse_frame_element_allocate_push(&CmdFrame, eTag, 1, &tag);
170+
171+
/*- Create Rsp frame and populate elements*/
172+
stse_frame_allocate(RspFrame);
173+
stse_frame_element_allocate_push(&RspFrame, eRsp_header, 1, &rsp_header);
174+
stse_frame_element_allocate_push(&RspFrame, e_sub_tag, 1, &sub_tag);
175+
stse_frame_element_allocate_push(&RspFrame, e_sub_tag_size, 1, &sub_tag_size);
176+
stse_frame_element_allocate_push(&RspFrame, e_mask_id, STSAFEA_MASK_ID_SIZE, mask_id);
177+
178+
/*- Perform Transfer*/
179+
ret = stsafea_frame_raw_transfer(pSTSE,
180+
&CmdFrame,
181+
&RspFrame,
182+
stsafea_cmd_timings[pSTSE->device_type][cmd_header]);
183+
184+
if (sub_tag != STSAFEA_SUB_TAG_MASK_ID) {
185+
return (STSE_SERVICE_INCOMPATIBLE_DEVICE_TYPE);
186+
}
187+
188+
return ret;
189+
}
190+
150191
#endif /* STSE_CONF_STSAFE_A_SUPPORT */

services/stsafea/stsafea_put_query.h

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,8 @@
7474
#define STSAFEA_SUBJECT_TAG_GENERIC_PUBLIC_KEY_SLOT 0x4C /*!< Generic public key slot subject-tag */
7575
#define STSAFEA_SUBJECT_TAG_GENERIC_PUBLIC_KEY_CONFIGURATION_FLAGS 0x4D /*!< Generic public key configuration flags subject-tag */
7676

77+
#define STSAFEA_MASK_ID_SIZE 3 /*!< Mask identification size */
78+
7779
/*!
7880
* \enum stsafea_life_cycle_state_t
7981
* STSAFEA Life cycle state type
@@ -134,16 +136,27 @@ stse_ReturnCode_t stsafea_put_i2c_parameters(
134136
stsafea_i2c_parameters_t *pI2c_parameters);
135137

136138
/**
137-
* \brief STSAFEA put life cycle service
138-
* \details This service format and send/receive the put life cycle command/response
139-
* \param[in] pSTSE Pointer to STSE Handler
140-
* \param[out] pLife_cycle_state Life cycle state
139+
* \brief STSAFEA query I2C parameters service
140+
* \details This service format and send/receive the query I2C parameters command/response
141+
* \param[in] pSTSE Pointer to STSE Handler
142+
* \param[out] pI2c_parameters I2C parameters
141143
* \return \ref STSE_OK on success ; \ref stse_ReturnCode_t error code otherwise
142144
*/
143145
stse_ReturnCode_t stsafea_query_i2c_parameters(
144146
stse_Handle_t *pSTSE,
145147
stsafea_i2c_parameters_t *pI2c_parameters);
146148

149+
/**
150+
* \brief STSAFEA query mask identification service
151+
* \details This service format and send/receive the mask identification command/response
152+
* \param[in] pSTSE Pointer to STSE Handler
153+
* \param[out] mask_id Mask identification (3 bytes)
154+
* \return \ref STSE_OK on success ; \ref stse_ReturnCode_t error code otherwise
155+
*/
156+
stse_ReturnCode_t stsafea_query_mask_id(
157+
stse_Handler_t *pSTSE,
158+
PLAT_UI8 mask_id[STSAFEA_MASK_ID_SIZE]);
159+
147160
/** \}*/
148161

149162
#endif /* STSAFEA_PUT_QUERY_H */

0 commit comments

Comments
 (0)