MT6250量产的项目出现概率性的开机非常缓慢,进入系统后所有操作都非常的慢
你看一下你的custom\drv\MISC 目录下面的一个关于SIm卡的的文件,可能是默认是四卡的软件~
楼上正解,估计很多人都遇到这个问题
如果是4卡软件我记得以前很多人碰到会是开不了机吧。
不过我没有做过MT6250
这个搞错啦~你的情况跟我的不一样
/*****************************************************************************
* 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:
* ---------
* custom_sim_driver.C
*
* Project:
* --------
* Gemini
*
* Description:
* ------------
* this file is custom implementation of SIM driver
*
* Author:
* -------
* -------
*
*============================================================================
* HISTORY
* Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!
*------------------------------------------------------------------------------
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
*------------------------------------------------------------------------------
* Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!
*============================================================================
****************************************************************************/
#include "drv_comm.h"
#include "reg_base.h"
#include "intrCtrl.h"
#include "multi_icc_custom.h"
#ifdef DRV_SIM_ALL_SOLUTION_BUILT
/*following is the template for dual SIM platform, I test it on TF68*/
/****************************************************
customer and HW SA please fill from here
*****************************************************/
#if defined(GEMINI_PLUS) && (GEMINI_PLUS == 2)
#ifdef __MTK_TARGET__
static const kal_uint32 iccSlotNum = 2;
#else
#define iccSlotNum 2
#endif
const SIM_ICC_HW_SW_MAPPING iccMappingTable[iccSlotNum] =
{
/*
logical number, application usage from user's view, do it connect to MT6302, owned by which SIM controller, MT6302 chip #, interface # of this MT6302
*/
{0, SIM_ICC_APPLICATION_PHONE1, MTK_SIMIF1, SIM_SWITCH_NONE, 0, 0, KAL_FALSE, KAL_FALSE, 0},
{1, SIM_ICC_APPLICATION_PHONE2, MTK_SIMIF0, SIM_SWITCH_NONE, 0, 0, KAL_FALSE, KAL_FALSE, 0},
};
#else
#ifdef __MTK_TARGET__
static const kal_uint32 iccSlotNum = 4;
#else
#define iccSlotNum 4
#endif
const SIM_ICC_HW_SW_MAPPING iccMappingTable[iccSlotNum] =
{
/*
logical number, application usage from user's view, do it connect to MT6302, owned by which SIM controller, MT6302 chip #, interface # of this MT6302
*/
#ifdef __SIM_HOT_SWAP_SUPPORT__
#if (defined(__SIM_HOT_SWAP_SLOT_1_SUPPORT__))
{0, SIM_ICC_APPLICATION_PHONE1, MTK_SIMIF0, SIM_SWITCH_6306, 0, 0, 0x11, KAL_FALSE, 100},
{1, SIM_ICC_APPLICATION_PHONE2, MTK_SIMIF0, SIM_SWITCH_6306, 0, 1, 0, KAL_FALSE, 0},
{2, SIM_ICC_APPLICATION_PHONE3, MTK_SIMIF1, SIM_SWITCH_6306, 1, 0, 0, KAL_FALSE, 0},
{3, SIM_ICC_APPLICATION_PHONE4, MTK_SIMIF1, SIM_SWITCH_6306, 1, 1, 0, KAL_FALSE, 0},
#elif (defined(__SIM_HOT_SWAP_SLOT_2_SUPPORT__))
{0, SIM_ICC_APPLICATION_PHONE2, MTK_SIMIF0, SIM_SWITCH_6306, 0, 0, 0x11, KAL_FALSE, 100},
{1, SIM_ICC_APPLICATION_PHONE1, MTK_SIMIF0, SIM_SWITCH_6306, 0, 1, 0, KAL_FALSE, 0},
{2, SIM_ICC_APPLICATION_PHONE3, MTK_SIMIF1, SIM_SWITCH_6306, 1, 0, 0, KAL_FALSE, 0},
{3, SIM_ICC_APPLICATION_PHONE4, MTK_SIMIF1, SIM_SWITCH_6306, 1, 1, 0, KAL_FALSE, 0},
#elif (defined(__SIM_HOT_SWAP_SLOT_3_SUPPORT__))
{0, SIM_ICC_APPLICATION_PHONE3, MTK_SIMIF0, SIM_SWITCH_6306, 0, 0, 0x11, KAL_FALSE, 100},
{1, SIM_ICC_APPLICATION_PHONE1, MTK_SIMIF0, SIM_SWITCH_6306, 0, 1, 0, KAL_FALSE, 0},
{2, SIM_ICC_APPLICATION_PHONE2, MTK_SIMIF1, SIM_SWITCH_6306, 1, 0, 0, KAL_FALSE, 0},
{3, SIM_ICC_APPLICATION_PHONE4, MTK_SIMIF1, SIM_SWITCH_6306, 1, 1, 0, KAL_FALSE, 0},
#elif (defined(__SIM_HOT_SWAP_SLOT_4_SUPPORT__))
{0, SIM_ICC_APPLICATION_PHONE4, MTK_SIMIF0, SIM_SWITCH_6306, 0, 0, 0x11, KAL_FALSE, 100},
{1, SIM_ICC_APPLICATION_PHONE1, MTK_SIMIF0, SIM_SWITCH_6306, 0, 1, 0, KAL_FALSE, 0},
{2, SIM_ICC_APPLICATION_PHONE2, MTK_SIMIF1, SIM_SWITCH_6306, 1, 0, 0, KAL_FALSE, 0},
{3, SIM_ICC_APPLICATION_PHONE3, MTK_SIMIF1, SIM_SWITCH_6306, 1, 1, 0, KAL_FALSE, 0},
#else
{0, SIM_ICC_APPLICATION_PHONE1, MTK_SIMIF0, SIM_SWITCH_6306, 0, 0, 0, KAL_FALSE, 0},
{1, SIM_ICC_APPLICATION_PHONE2, MTK_SIMIF0, SIM_SWITCH_6306, 0, 1, 0, KAL_FALSE, 0},
{2, SIM_ICC_APPLICATION_PHONE3, MTK_SIMIF1, SIM_SWITCH_6306, 1, 0, 0, KAL_FALSE, 0},
{3, SIM_ICC_APPLICATION_PHONE4, MTK_SIMIF1, SIM_SWITCH_6306, 1, 1, 0, KAL_FALSE, 0},
#endif
#else
{0, SIM_ICC_APPLICATION_PHONE1, MTK_SIMIF0, SIM_SWITCH_6306, 0, 0, KAL_FALSE, KAL_FALSE, 0},
{1, SIM_ICC_APPLICATION_PHONE2, MTK_SIMIF0, SIM_SWITCH_6306, 0, 1, KAL_FALSE, KAL_FALSE, 0},
{2, SIM_ICC_APPLICATION_PHONE3, MTK_SIMIF1, SIM_SWITCH_6306, 1, 0, KAL_FALSE, KAL_FALSE, 0},
{3, SIM_ICC_APPLICATION_PHONE4, MTK_SIMIF1, SIM_SWITCH_6306, 1, 1, KAL_FALSE, KAL_FALSE, 0},
#endif /* End of #ifdef __SIM_HOT_SWAP_SUPPORT__ */
};
#endif
/****************************************************
end of custom table
*****************************************************/
/****************************************************
only SW guys familiar with multiple SIM driver can modify following
*****************************************************/
sim_init_all_cb()
{
kal_uint32 loopIndex;
sim_init_hwCb();
for(loopIndex = 0; iccSlotNum > loopIndex; loopIndex++){
DRV_ICC_interface_init(iccMappingTable[loopIndex].application);
}
}
kal_uint32 sim_get_logicalNum_from_app(SIM_ICC_APPLICATION application)
{
kal_uint32 loopIndex, loopMax = iccSlotNum;
for(loopIndex = 0; loopIndex < loopMax; loopIndex++){
if(application == iccMappingTable[loopIndex].application){
if(iccSlotNum <= iccMappingTable[loopIndex].logicalNum)
ASSERT(0);
return iccMappingTable[loopIndex].logicalNum;
}
}
return 0xffffffff;
}
kal_uint32 sim_get_MT6302_from_logicalNum(kal_uint32 logicalNum)
{
kal_uint32 loopIndex, loopMax = iccSlotNum;
if(iccSlotNum <= logicalNum)
ASSERT(0);
for(loopIndex = 0; loopIndex < loopMax; loopIndex++){
if(logicalNum == iccMappingTable[loopIndex].logicalNum){
if(SIM_SWITCH_6302 == (kal_bool)iccMappingTable[loopIndex].needMT6302)
return (iccMappingTable[loopIndex].MT6302ChipNum << 8) | (iccMappingTable[loopIndex].MT6302PortNum);
else if(SIM_SWITCH_6306 == (kal_bool)iccMappingTable[loopIndex].needMT6302)
return (iccMappingTable[loopIndex].MT6302ChipNum << 8) | (iccMappingTable[loopIndex].MT6302PortNum) | (SIM_SWITCH_6306 <<16);
else if(SIM_SWITCH_6314 == (kal_bool)iccMappingTable[loopIndex].needMT6302)
return (iccMappingTable[loopIndex].MT6302ChipNum << 8) | (iccMappingTable[loopIndex].MT6302PortNum) | (SIM_SWITCH_6314 <<16);
else
return SIM_ICC_MT6302_NONE;
}
}
/*there is no this logical number*/
ASSERT(0);
}
kal_uint32 sim_get_hwCtrl_from_logicalNum(kal_uint32 logicalNum)
{
kal_uint32 loopIndex, loopMax = iccSlotNum;
if(iccSlotNum <= logicalNum)
ASSERT(0);
for(loopIndex = 0; loopIndex < loopMax; loopIndex++){
if(logicalNum == iccMappingTable[loopIndex].logicalNum){
return iccMappingTable[loopIndex].hwCtrl;
}
}
/*there is no this logical number*/
ASSERT(0);
}
kal_uint32 sim_get_MT6302PeerInterface(kal_uint8 chipNum, kal_uint32 portNum)
{
kal_uint32 loopIndex, loopMax = iccSlotNum;
for(loopIndex = 0; loopIndex < loopMax; loopIndex++){
if(chipNum == iccMappingTable[loopIndex].MT6302ChipNum && portNum == iccMappingTable[loopIndex].MT6302PortNum){
if(iccSlotNum <= iccMappingTable[loopIndex].logicalNum)
ASSERT(0);
return iccMappingTable[loopIndex].logicalNum;
}
}
/*there is no this logical number*/
return SIM_ICC_MT6302_NONE;
}
kal_uint32 sim_get_ToalInterfaceCount()
{
return iccSlotNum;
}
kal_uint32 get_CAS_icc_logicalNum()
{
kal_uint32 loopIndex, loopMax = iccSlotNum;
for(loopIndex = 0; loopIndex < loopMax; loopIndex++){
if(SIM_ICC_APPLICATION_CMMB_SMD == iccMappingTable[loopIndex].application){
if(iccSlotNum <= iccMappingTable[loopIndex].logicalNum)
ASSERT(0);
return iccMappingTable[loopIndex].logicalNum;
}
}
/*there is no this logical number*/
ASSERT(0);
}
kal_uint32 sim_custom_task_2_driver(kal_uint32 taskInterface)
{
kal_uint32 rlt = 0;
rlt = rlt;
#ifdef __SIM_HOT_SWAP_SUPPORT__
switch((taskInterface >> 8) & 0xFF)
{
case SIM_CUSTOM_T2D_GET_HOTSWAP_PROPERITY:
rlt = iccMappingTable[taskInterface & 0xFF].hotSwap | (iccMappingTable[taskInterface & 0xFF].polarity << 8);
break;
case SIM_CUSTOM_T2D_GET_HOTSWAP_DEBOUNDETIME:
rlt = iccMappingTable[taskInterface & 0xFF].debounceTime;
break;
default:
break;
}
#endif
return rlt;
}
#endif
你把以上代码替换到你的custom_sim_driver.c文件中试试,我这边就是这么处理的
按照你的文件改了,但问题还是没解决。还是会偶尔出现反应很慢的的现象。
高人啊,真是好东西啊!
什么牌子的bb霜好tbbshuang.com