| #ifndef SST_INTERFACE_H |
| #define SST_INTERFACE_H |
| |
| #include "nvram_data_items.h" |
| |
| #define SST_PROTECTED_NVRAM_LID_READ_LIMIT 0x1 |
| #define SST_PROTECTED_NVRAM_LID_WRITE_LIMIT 0x2 |
| |
| typedef struct sst_protected_nvram_lid_struct { |
| nvram_lid_enum m_lid; |
| kal_uint16 m_attr; |
| } SST_PROTECTED_NVRAM_LID; |
| |
| typedef struct sst_allowed_task_struct { |
| module_type m_mod_id; |
| } SST_ALLOWED_TASK; |
| |
| /* |
| * Efuse region index definition |
| */ |
| #define EFUSE_IDX_C_DAT0 0 |
| #define EFUSE_IDX_C_DAT1 1 |
| #define EFUSE_IDX_C_DAT2 2 |
| #define EFUSE_IDX_C_DAT3 3 |
| #define EFUSE_IDX_C_DAT4 4 |
| #define EFUSE_IDX_C_DAT5 5 |
| #define EFUSE_IDX_C_CTRL0 6 |
| #define EFUSE_IDX_C_CTRL1 7 |
| |
| /*SST Efuse blowing error code*/ |
| #define SST_EFUSE_BLOW_DONE 0 |
| #define SST_EFUSE_BLOW_AP_NOT_READY 0x10000000 |
| #define SST_EFUSE_BLOW_DATA_FAIL 0x20000000 |
| #define SST_EFUSE_BLOW_START_FAIL 0x40000000 |
| #define SST_EFUSE_BLOW_LOCK_FAIL 0x80000000 |
| #define SST_EFUSE_BLOW_END_FAIL 0x01000000 |
| #define SST_EFUSE_BLOW_BIT_NOT_SUPPORT 0x02000000 |
| #define SST_EFUSE_BLOW_REGION_NOT_SUPPORT 0x04000000 |
| #define SST_EFUSE_BLOW_CHIP_NOT_SUPPORT 0x08000000 |
| #define SST_EFUSE_BLOW_NOT_INIT 0x00100000 |
| #define SST_EFUSE_BLOW_PROCESS_FAIL 0x00200000 |
| #define SST_EFUSE_BLOW_REINIT_FAIL 0x00400000 |
| #define SST_EFUSE_BLOW_CCCI_FAIL 0x00800000 |
| |
| /***************************************************************************** |
| * FUNCTION |
| * SST_Get_ChipRID |
| * |
| * DESCRIPTION |
| * The function returns per-chip random ID to the caller. |
| * |
| * PARAMETERS |
| * [INPUT/OUTPUT] pRid : The buffer that is used to store the per-chip random ID. |
| * [INPUT] buf_len : Length that the caller wants for the per-chip random ID in "bits". |
| * |
| * RETURNS |
| * KAL_TRUE : Get random ID Success |
| * KAL_FALSE : Get random ID failed |
| * |
| * NOTES |
| * N/A |
| * |
| *****************************************************************************/ |
| extern kal_bool SST_Get_ChipRID(kal_char *pRid, kal_int32 buf_len); |
| |
| |
| /***************************************************************************** |
| * FUNCTION |
| * SST_Get_ChipRK |
| * |
| * DESCRIPTION |
| * The function returns per-chip random key to the caller. |
| * |
| * PARAMETERS |
| * [INPUT/OUTPUT] key : The buffer that is used to store the per-chip random key. |
| * [INPUT] len : Length that the caller wants for the per-chip random key in bytes. |
| * |
| * RETURNS |
| * KAL_TRUE : Get random key Success |
| * KAL_FALSE : Get random key failed |
| * |
| * NOTES |
| * N/A |
| * |
| *****************************************************************************/ |
| extern kal_bool SST_Get_ChipRK(kal_char *key, kal_int32 len); |
| |
| /************************************************************************* |
| * FUNCTION |
| * SST_Get_EFUSE_Data |
| * |
| * DESCRIPTION |
| * This function get specified length of efuse data and put in the buffer |
| * |
| * PARAMETERS |
| * data_type - efuse field |
| * buf - pointer to the buffer to store efuse data |
| * len - efuse data length expected to read |
| * |
| * RETURNS |
| * KAL_TRUE/KAL_FALSE |
| * |
| *************************************************************************/ |
| typedef enum{ |
| AP_SBC_EN = 1, |
| C_CTRL0, |
| C_CTRL1, |
| C_DAT0, |
| C_DAT1, |
| C_DAT2, |
| C_DAT3, |
| C_DAT4, |
| C_DAT5, |
| C_DAT6, |
| C_DAT7, |
| }EFUSE_DATA_TYPE; |
| |
| |
| kal_bool SST_Get_EFUSE_Data(EFUSE_DATA_TYPE data_type, kal_uint8* buf, kal_uint8 len); |
| |
| /************************************************************************* |
| * FUNCTION |
| * SST_ilm_inject_check |
| * |
| * DESCRIPTION |
| * This function checks whether input ILM is permitted to access the specified NVRAM LID |
| * |
| * PARAMETERS |
| * ilm_ptr - read/write request ILM |
| * |
| * RETURNS |
| * KAL_TRUE/KAL_FALSE |
| * KAL_TRUE: The access is permitted, i.e. pass checking successfully |
| * KAL_FALSE: The access is prohibited, i.e. fails checking |
| *************************************************************************/ |
| |
| kal_uint32 SST_ilm_inject_check(ilm_struct *ilm_ptr); |
| |
| #endif |