[Feature][Modem]Update MTK MODEM V1.6 baseline version: MOLY.NR15.R3.MD700.IVT.MP1MR3.MP.V1.6
MTK modem version: MT2735_IVT_MOLY.NR15.R3.MD700.IVT.MP1MR3.MP.V1.6.tar.gz
RF modem version: NA
Change-Id: I45a4c2752fa9d1a618beacd5d40737fb39ab64fb
diff --git a/mcu/interface/service/sst/sst_interface.h b/mcu/interface/service/sst/sst_interface.h
new file mode 100644
index 0000000..460a8a9
--- /dev/null
+++ b/mcu/interface/service/sst/sst_interface.h
@@ -0,0 +1,139 @@
+#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