See HSM client for more details.
Data Structures | |
| union | HsmVer_t |
| type for reading HSMRt version. More... | |
| struct | HsmClient_t |
| This is a HSMClient type which holds the information needed by hsm client to communicate with HSM . More... | |
| struct | EfuseRead_t |
| This is a EfuseRead type which holds the information of eFuse row index and row data corresponding to it . More... | |
| struct | EfuseRowWrite_t |
| This is a EfuseRowWrite type which holds the information regarding programming eFuse row. More... | |
| struct | EfuseRowCount_t |
| This is a EfuseRowCount type which holds the information regarding eFuse row count and size of each row in bits. More... | |
| struct | EfuseRowProt_t |
| This is a EfuseRowProt type which holds the information of eFuse row index and protection status corresponding to the row index. More... | |
| struct | HsmMsg_t_ |
| HSM client / server message format struct. More... | |
Functions | |
| union HsmVer_t_ | __attribute__ ((packed)) HsmVer_t |
| type for reading HSMRt version. More... | |
| int32_t | HsmClient_init (SIPC_Params *params) |
| Initialize the HSM client for current core. More... | |
| void | HsmClient_deInit (void) |
| De initialize the HSM client for current core. More... | |
| int32_t | HsmClient_getVersion (HsmClient_t *HsmClient, HsmVer_t *verId, uint32_t timeToWaitInTick) |
| populates the current HSMRT version Id by default the hsm flag is set to HSM_FLAG_AOP for this service More... | |
| int32_t | HsmClient_getUID (HsmClient_t *HsmClient, uint8_t *uid, uint32_t timeout) |
| The service issued to HSM Server populates the Device UID by default the hsm flag is set to HSM_FLAG_AOP for this service. More... | |
| int32_t | HsmClient_openDbgFirewall (HsmClient_t *HsmClient, uint8_t *cert, uint32_t cert_size, uint32_t timeout) |
| The service issued to HSM Server verifies the certificate and by default the hsm flag is set to HSM_FLAG_AOP for this service. More... | |
| int32_t | HsmClient_readOTPRow (HsmClient_t *HsmClient, EfuseRead_t *readRow) |
| The service issued to HSM Server retrieves the data of GP OTP row based on row index provided as param. More... | |
| int32_t | HsmClient_writeOTPRow (HsmClient_t *HsmClient, EfuseRowWrite_t *writeRow) |
| The service issued to HSM Server writes the data to extended OTP efuse row based on row index provided as param. More... | |
| int32_t | HsmClient_lockOTPRow (HsmClient_t *HsmClient, EfuseRowProt_t *rowProt) |
| The service issued to HSM Server sets the protection status bit of the specified row to 1. More... | |
| int32_t | HsmClient_getOTPRowCount (HsmClient_t *HsmClient, EfuseRowCount_t *rowCount) |
| The service issued to HSM Server retrieves the count of extended OTP rows. More... | |
| int32_t | HsmClient_getOTPRowProtection (HsmClient_t *HsmClient, EfuseRowProt_t *rowProt) |
| The service issued to HSM Server retrieves the extended otp efuse row protection status. More... | |
| int32_t | HsmClient_register (HsmClient_t *HsmClient, uint8_t clientId) |
| register a client to a particular ClientId More... | |
| void | HsmClient_unregister (HsmClient_t *HsmClient, uint8_t clientId) |
| unregister a client to a particular ClientId More... | |
| int32_t | HsmClient_waitForBootNotify (HsmClient_t *HsmClient, uint32_t timeToWaitInTicks) |
| Current core will wait for bootnotify message from HSM core. More... | |
| int32_t | Hsmclient_loadHSMRtFirmware (const uint8_t *pHSMRt_firmware) |
| Loads the HSMRt firmware. This is typically called by SBL. More... | |
Enumerations | |
| enum | HSM_ClientIds_t { HSM_BOOT_NOTIFY_CLIENT_ID = 0, HSM_CLIENT_ID_1, HSM_CLIENT_ID_2, HSM_CLIENT_ID_3, HSM_CLIENT_ID_4 } |
Macros | |
| #define | HSM_MSG_GET_VERSION (0x0002) |
| GetVersion service type ID. More... | |
| #define | HSM_MSG_BOOT_NOTIFY (0x000A) |
| Boot Notify service type ID. More... | |
| #define | HSM_MSG_GET_UID (0x9021) |
| Get UID service type ID. More... | |
| #define | HSM_MSG_OPEN_DBG_FIREWALLS (0x900C) |
| Open Debug Firewalls service type ID. More... | |
| #define | HSM_MSG_READ_OTP_ROW (0x9022) |
| Read Extended otp row type ID. More... | |
| #define | HSM_MSG_WRITE_OTP_ROW (0x9023) |
| Write Extended otp row type ID. More... | |
| #define | HSM_MSG_PROT_OTP_ROW (0x9024) |
| Protect Extended otp row type ID. More... | |
| #define | HSM_MSG_GET_OTP_ROW_PROT (0x9026) |
| Get Extended otp row protection type ID. More... | |
| #define | HSM_MSG_GET_OTP_ROW_COUNT (0x9027) |
| Get Extended otp row count. More... | |
| #define | HSM_FLAG_AOP (0x11) |
| HSM FLAG used by HSM client to indicate that it expects ACK messasge from HSM and will wait for a response message. More... | |
| #define | HSM_FLAG_NAOP (0x22) |
| HSM FLAG used by HSM client to indicate that it does not expects an ACK messasge from HSM and will not wait for a response message. More... | |
| #define | HSM_FLAG_ACK (0xAA) |
| HSM FLAG used by HSM server to indicate that the request has been processed. More... | |
| #define | HSM_FLAG_NACK (0x55) |
| HSM FLAG used by HSM server to indicate that the request has not been processed. More... | |
| #define | HSM_CLIENT_ID (0x01) |
| HSM server SIPC client Id. More... | |
| #define | HSM_UID_SIZE (64U) |
| UID or Unique ID is a device specific ID of 64 bytes. More... | |
| #define | HSM_DBG_CERT_SIZE (4096U) |
| Maximum Certificate Size allowed for Debug Open. More... | |
| #define HSM_MSG_GET_VERSION (0x0002) |
GetVersion service type ID.
| #define HSM_MSG_BOOT_NOTIFY (0x000A) |
Boot Notify service type ID.
| #define HSM_MSG_GET_UID (0x9021) |
Get UID service type ID.
| #define HSM_MSG_OPEN_DBG_FIREWALLS (0x900C) |
Open Debug Firewalls service type ID.
| #define HSM_MSG_READ_OTP_ROW (0x9022) |
Read Extended otp row type ID.
| #define HSM_MSG_WRITE_OTP_ROW (0x9023) |
Write Extended otp row type ID.
| #define HSM_MSG_PROT_OTP_ROW (0x9024) |
Protect Extended otp row type ID.
| #define HSM_MSG_GET_OTP_ROW_PROT (0x9026) |
Get Extended otp row protection type ID.
| #define HSM_MSG_GET_OTP_ROW_COUNT (0x9027) |
Get Extended otp row count.
| #define HSM_FLAG_AOP (0x11) |
HSM FLAG used by HSM client to indicate that it expects ACK messasge from HSM and will wait for a response message.
| #define HSM_FLAG_NAOP (0x22) |
HSM FLAG used by HSM client to indicate that it does not expects an ACK messasge from HSM and will not wait for a response message.
| #define HSM_FLAG_ACK (0xAA) |
HSM FLAG used by HSM server to indicate that the request has been processed.
| #define HSM_FLAG_NACK (0x55) |
HSM FLAG used by HSM server to indicate that the request has not been processed.
| #define HSM_CLIENT_ID (0x01) |
HSM server SIPC client Id.
| #define HSM_UID_SIZE (64U) |
UID or Unique ID is a device specific ID of 64 bytes.
| #define HSM_DBG_CERT_SIZE (4096U) |
Maximum Certificate Size allowed for Debug Open.
| enum HSM_ClientIds_t |
| struct HsmMsg_t_ __attribute__ | ( | (packed) | ) |
type for reading HSMRt version.
HSM client / server message format struct.
| int32_t HsmClient_init | ( | SIPC_Params * | params | ) |
Initialize the HSM client for current core.
| params | [IN] SIPC_notify params. |
| void HsmClient_deInit | ( | void | ) |
De initialize the HSM client for current core.
| int32_t HsmClient_getVersion | ( | HsmClient_t * | HsmClient, |
| HsmVer_t * | verId, | ||
| uint32_t | timeToWaitInTick | ||
| ) |
populates the current HSMRT version Id by default the hsm flag is set to HSM_FLAG_AOP for this service
| timeToWaitInTick | [IN] amount of time to block waiting for semaphore to be available, in units of system ticks (see KERNEL_DPL_CLOCK_PAGE) |
| HsmClient | [IN] Client object which is using this getversion API. |
| verId | [OUT] populates HsmVer_t struct which describes current version. |
| int32_t HsmClient_getUID | ( | HsmClient_t * | HsmClient, |
| uint8_t * | uid, | ||
| uint32_t | timeout | ||
| ) |
The service issued to HSM Server populates the Device UID by default the hsm flag is set to HSM_FLAG_AOP for this service.
| timeout | [IN] amount of time to block waiting for semaphore to be available, in units of system ticks (see KERNEL_DPL_CLOCK_PAGE) |
| HsmClient | [IN] Client object which is using this getUID API. |
| uid | [OUT] populates UID value. |
| int32_t HsmClient_openDbgFirewall | ( | HsmClient_t * | HsmClient, |
| uint8_t * | cert, | ||
| uint32_t | cert_size, | ||
| uint32_t | timeout | ||
| ) |
The service issued to HSM Server verifies the certificate and by default the hsm flag is set to HSM_FLAG_AOP for this service.
| timeout | [IN] amount of time to block waiting for semaphore to be available, in units of system ticks (see KERNEL_DPL_CLOCK_PAGE) |
| HsmClient | [IN] Client object which is using this openDbgFirewalls API. |
| cert | [IN] point to the location of certificate in the device memory. |
| cert_size | [IN] size of certificate. |
| int32_t HsmClient_readOTPRow | ( | HsmClient_t * | HsmClient, |
| EfuseRead_t * | readRow | ||
| ) |
The service issued to HSM Server retrieves the data of GP OTP row based on row index provided as param.
| HsmClient | [IN] HsmClient object. |
| readRow | [IN] populates EfuseRead_t struct with rowData corresponding to rowIdx. |
| int32_t HsmClient_writeOTPRow | ( | HsmClient_t * | HsmClient, |
| EfuseRowWrite_t * | writeRow | ||
| ) |
The service issued to HSM Server writes the data to extended OTP efuse row based on row index provided as param.
| HsmClient | [IN] HsmClient object. |
| writeRow | [IN] populates EfuseRowWrite_t struct with rowData corresponding to rowIdx. |
| int32_t HsmClient_lockOTPRow | ( | HsmClient_t * | HsmClient, |
| EfuseRowProt_t * | rowProt | ||
| ) |
The service issued to HSM Server sets the protection status bit of the specified row to 1.
| HsmClient | [IN] HsmClient object. |
| rowProt | [IN] Pointer to EfuseRowProt_t struct which contains the row index and row protection status |
| int32_t HsmClient_getOTPRowCount | ( | HsmClient_t * | HsmClient, |
| EfuseRowCount_t * | rowCount | ||
| ) |
The service issued to HSM Server retrieves the count of extended OTP rows.
| HsmClient | [IN] HsmClient object. |
| rowCount | [IN] Pointer to EfuseRowCount_t struct which is populated by HSM server with row count and row size |
| int32_t HsmClient_getOTPRowProtection | ( | HsmClient_t * | HsmClient, |
| EfuseRowProt_t * | rowProt | ||
| ) |
The service issued to HSM Server retrieves the extended otp efuse row protection status.
| HsmClient | [IN] HsmClient object. |
| rowProt | [IN] Pointer to EfuseRowProt_t struct which is populated by HSM server with row protection status |
| int32_t HsmClient_register | ( | HsmClient_t * | HsmClient, |
| uint8_t | clientId | ||
| ) |
register a client to a particular ClientId
| HsmClient | [IN] HsmClient object. |
| clientId | [IN] enable HSM <--> R5 communication for given clientID |
| void HsmClient_unregister | ( | HsmClient_t * | HsmClient, |
| uint8_t | clientId | ||
| ) |
unregister a client to a particular ClientId
| HsmClient | [IN] HsmClient object |
| clientId | [IN] disable HSM <--> R5 communication for given clientId |
| int32_t HsmClient_waitForBootNotify | ( | HsmClient_t * | HsmClient, |
| uint32_t | timeToWaitInTicks | ||
| ) |
Current core will wait for bootnotify message from HSM core.
| HsmClient | [IN] HsmClient object |
| timeToWaitInTicks | [IN] amount of time to block waiting for semaphore to be available, in units of SystemP_timeout if timeout exception occours.system ticks (see KERNEL_DPL_CLOCK_PAGE) |
| int32_t Hsmclient_loadHSMRtFirmware | ( | const uint8_t * | pHSMRt_firmware | ) |
Loads the HSMRt firmware. This is typically called by SBL.
| pHSMRt_firmware | [IN] Pointer to signed HSMRt binary |