blob: 180794488d6410179c5f6d3434dfcd21776f6681 [file] [log] [blame]
/*****************************************************************************
* Copyright Statement:
* --------------------
* This software is protected by Copyright and the information contained
* herein is confidential. The software may not be copied and the information
* contained herein may not be used or disclosed except with the written
* permission of MediaTek Inc. (C) 2005
*
* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
*
* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
*
* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
*
*****************************************************************************/
/*****************************************************************************
*
* Filename:
* ---------
*
*
* Project:
* --------
* MAUI
*
* Description:
* ------------
*
*
* Author:
* -------
*
*
*============================================================================
* HISTORY
* Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
*------------------------------------------------------------------------------
* removed!
*
* removed!
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
*
* removed!
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
*
*------------------------------------------------------------------------------
* Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
*============================================================================
****************************************************************************/
#ifndef __MCF_NVRAM_DEF_H__
#define __MCF_NVRAM_DEF_H__
#ifdef __cplusplus
extern "C"
{
#endif /* __cplusplus */
#include "nvram_defs.h"
#include "nvram_enums.h"
#include "ps_public_enum.h"
#include "device.h"
#include "mcf_struct.h"
// Definition
#define NVRAM_MCF_SAVE_LAST_LID_CNT 500 // Number of last modify LID
// LID Enums
typedef enum
{
NVRAM_EF_MCF_OTA_FILE_LID = NVRAM_LID_GRP_MCF(0),
NVRAM_EF_MCF_TLVOTA_FILE_LID = NVRAM_LID_GRP_MCF(1),
NVRAM_EF_MCF_TEST_OTA_LID = NVRAM_LID_GRP_MCF(2),
NVRAM_EF_MCF_TEST_OTA_QUERY_LID = NVRAM_LID_GRP_MCF(3),
NVRAM_EF_MCF_SW_INFO_LID = NVRAM_LID_GRP_MCF(4),
NVRAM_EF_MCF_GENERAL_TLVOTA_FILE_LID = NVRAM_LID_GRP_MCF(5),
NVRAM_EF_MCF_INTERNAL_INFO_LID = NVRAM_LID_GRP_MCF(6),
NVRAM_EF_SAMPLE_LAST_LID = NVRAM_LID_GRP_MCF(63)
}nvram_lid_mcf_enum;
// VERNO
#define NVRAM_EF_MCF_OTA_FILE_LID_VERNO "005"
#define NVRAM_EF_MCF_TLVOTA_FILE_LID_VERNO "004"
#define NVRAM_EF_MCF_TEST_OTA_LID_VERNO "004"
#define NVRAM_EF_MCF_TEST_OTA_QUERY_LID_VERNO "004"
#define NVRAM_EF_MCF_SW_INFO_LID_VERNO "006"
#define NVRAM_EF_MCF_GENERAL_TLVOTA_FILE_LID_VERNO "003"
#define NVRAM_EF_MCF_INTERNAL_INFO_LID_VERNO "006"
// HASH Key
#define NVRAM_EF_MCF_OTA_FILE_LID_HASH 0x4F89C171
#define NVRAM_EF_MCF_TLVOTA_FILE_LID_HASH 0x9CA04748
#define NVRAM_EF_MCF_TEST_OTA_LID_HASH 0x65477E2F
#define NVRAM_EF_MCF_TEST_OTA_QUERY_LID_HASH 0x91A66A63
#define NVRAM_EF_MCF_SW_INFO_LID_HASH 0xE32CE2D7
#define NVRAM_EF_MCF_GENERAL_TLVOTA_FILE_LID_HASH 0x3C24BC70
#define NVRAM_EF_MTF_MISC_STATISTICS_LID_HASH 0xDD6F478F
#define NVRAM_EF_MCF_INTERNAL_INFO_LID_HASH 0x7E5DE991
// Data Structure of Each LID
typedef struct
{
kal_char path[MCF_FILE_MAX_MD_PATH_LEN];
kal_char name[MCF_FILE_MAX_NAME_LEN];
kal_char sw_version[MCF_FILE_MAX_SW_VERSION_LEN];
kal_char gen_time[MCF_FILE_MAX_GEN_TIME_LEN];
} nvram_ef_mcf_file_info_struct;
typedef struct
{
kal_char path[MCF_FILE_MAX_MD_PATH_LEN];
kal_char name[MCF_FILE_MAX_NAME_LEN];
kal_char merged_path[MCF_FILE_MAX_MD_PATH_LEN];
kal_char merged_name[MCF_FILE_MAX_NAME_LEN];
} nvram_ef_mcf_ota_file_info_struct;
typedef struct
{
kal_char path[MCF_FILE_MAX_MD_PATH_LEN];
kal_char name[MCF_FILE_MAX_NAME_LEN];
kal_char merged_path[MCF_FILE_MAX_MD_PATH_LEN];
kal_char merged_name[MCF_FILE_MAX_NAME_LEN];
} nvram_ef_mcf_tlvota_file_info_struct;
typedef struct
{
kal_uint8 vbyte1;
kal_uint8 vbyte2;
kal_uint8 vbit_byte1;
kal_uint8 vbit_byte2;
kal_uint16 vshort1;
kal_uint16 vshort2;
kal_uint32 vint;
float vfloat;
kal_uint64 vlong;
double vdouble;
kal_char vbuffer[32];
kal_char array_d[5][4][3];
kal_uint32 array_d4[5][4][3];
} nvram_mcf_test_sub_struct;
typedef struct
{
kal_int8 val_byte_11;
kal_int8 val_byte_12;
kal_int8 val_bit_byte_11;
kal_int8 val_bit_byte_12;
kal_int16 val_short_11;
kal_int16 val_short_12;
kal_int32 val_int_1;
float val_float_1;
kal_int64 val_long_1;
double val_double_1;
kal_char val_buffer_1[32];
nvram_mcf_test_sub_struct val_struct_1;
kal_int8 val_byte_21;
kal_int8 val_byte_22;
kal_int8 val_bit_byte_21;
kal_int8 val_bit_byte_22;
kal_int16 val_short_21;
kal_int16 val_short_22;
kal_int32 val_int_2;
float val_float_2;
kal_int64 val_long_2;
double val_double_2;
kal_char val_buffer_2[32];
nvram_mcf_test_sub_struct val_struct_2;
nvram_mcf_test_sub_struct val_struct_3[4];
kal_int16 val_bit_2byte_3;
kal_int32 val_bit_4byte_3;
kal_int8 val_bit_byte_41;
kal_int8 val_bit_byte_42;
kal_int16 val_bit_2byte_4;
kal_int32 val_bit_4byte_4;
} nvram_ef_mcf_test_struct;
#ifdef __MCF_COMBINE_FILE_SUPPORT__
typedef struct
{
kal_uint16 lid;
kal_bool not_reset;
kal_bool set_combined;
} nvram_mcf_lid_config_struct;
#endif
typedef struct
{
kal_uint16 lid_cnt;
#ifdef __MCF_COMBINE_FILE_SUPPORT__
nvram_mcf_lid_config_struct lid_conf[NVRAM_MCF_SAVE_LAST_LID_CNT];
#else
kal_uint16 lid[NVRAM_MCF_SAVE_LAST_LID_CNT];
#endif
} nvram_mcf_lid_info_struct;
typedef struct
{
kal_char version[MCF_SW_VERNO_LEN];
kal_char build_time[MCF_SW_BUILD_TIME_LEN];
nvram_ef_mcf_file_info_struct last_update_file;
nvram_ef_mcf_file_info_struct last_update_tlvota_file[MAX_SIM_NUM];
nvram_ef_mcf_file_info_struct last_update_general_tlvota_file;
} nvram_ef_mcf_sw_info_struct;
typedef struct
{
kal_bool is_ignore_dsbp;
nvram_mcf_lid_info_struct last_mod_lid;
nvram_mcf_lid_info_struct tlvota_last_mod_lid[MAX_SIM_NUM];
nvram_mcf_lid_info_struct general_tlvota_last_mod_lid[MAX_SIM_NUM];
kal_bool update_ota_result;
kal_bool update_tlvota_result[MAX_SIM_NUM];
kal_bool update_general_tlvota_result;
kal_bool is_combined_ota;
kal_bool is_combined_tlvota[MAX_SIM_NUM];
kal_bool is_combined_general_tlvota;
kal_bool not_reset_ota;
kal_bool not_reset_tlvota[MAX_SIM_NUM];
kal_bool not_reset_general_tlvota;
kal_bool tlvota_is_ignore_dsbp[MAX_SIM_NUM];
kal_bool general_is_ignore_dsbp;
} nvram_ef_mcf_internal_info_struct;
// Size and Total
#define NVRAM_EF_MCF_OTA_FILE_TOTAL 1 // Number of records
#define NVRAM_EF_MCF_OTA_FILE_SIZE sizeof(nvram_ef_mcf_ota_file_info_struct) // Size of each record
#define NVRAM_EF_MCF_TLVOTA_FILE_TOTAL (1 * NVRAM_DUAL_RECORD) // Number of records
#define NVRAM_EF_MCF_TLVOTA_FILE_SIZE sizeof(nvram_ef_mcf_tlvota_file_info_struct) // Size of each record
#define NVRAM_EF_MCF_TEST_OTA_TOTAL 2 // Number of records
#define NVRAM_EF_MCF_TEST_OTA_SIZE sizeof(nvram_ef_mcf_test_struct) // Size of each record
#define NVRAM_EF_MCF_TEST_OTA_QUERY_TOTAL 2 // Number of records
#define NVRAM_EF_MCF_TEST_OTA_QUERY_SIZE sizeof(nvram_ef_mcf_test_struct) // Size of each record
#define NVRAM_EF_MCF_SW_INFO_TOTAL 1 // Number of records
#define NVRAM_EF_MCF_SW_INFO_SIZE sizeof(nvram_ef_mcf_sw_info_struct) // Size of each record
#define NVRAM_EF_MCF_GENERAL_TLVOTA_FILE_TOTAL 1 // Number of records
#define NVRAM_EF_MCF_GENERAL_TLVOTA_FILE_SIZE sizeof(nvram_ef_mcf_tlvota_file_info_struct) // Size of each record
#define NVRAM_EF_MCF_INTERNAL_INFO_TOTAL 1 // Number of records
#define NVRAM_EF_MCF_INTERNAL_INFO_SIZE sizeof(nvram_ef_mcf_internal_info_struct) // Size of each record
#ifdef __cplusplus
}
#endif
#endif /* __MCF_NVRAM_DEF_H */