一,Modem编译
1.1 查看ReleseNote发现需要查看"Build_Configure_Modem_MOLY"这张表,解压MT67xx_(xxx)_MOLY.LR9.W1444.MD.LWTG.MP.Vx.tar.gz到某文件,并在make目录下查看支持的配置信息
1.2 执行的命令,开始编译modem,则是
./make.sh "SM67xx(Lxx_xxx).mak" new
1.3 执行
perl device/mediatek/build/build/tools/modemRenameCopy.pl [Modem 代码路径] [编译Modem所使用的.mak文件 ],如
perl *****/modemRenameCopy.pl ./Moly/ MT67xx_LTG_DSDS
自动为所要复制到alps/vendor/mediatek/proprietary/modem/${modem} 下的文件重命名,并生成一个Android.mk文件,alps/vendor/mediatek/proprietary/该路径下是没有modem这个文件夹的,需要自己创建。
请确保在alps/vendor/mediatek/proprietary/modem/中有一个Android.mk。 你可以从alps/device/mediatek/build/build/tools/modem/modem_Android.mk复制到alps/vendor/mediatek/proprietary/modem/Android.mk
1.4 在alps/device/ c o m p a n y / {company}/ company/{project}/ProjectConfig.mk找到相应的ProjectConfig.mk,配置CUSTOM_MODEM,保证跟自己创建的目录alps/vendor/mediatek/proprietary/modem/${modem}名称一致。
然后再/alps下重新编译
1.5 PUSH modem 到手机中进行调
编译eng或者userdebug版本:
userdebug:
adb shell setprop service.adb.root 1
再进入Settings->Developer options,取消 USB debugging,然后再重新勾选上,即可获得root权限
eng版本可省略这一步。
adb remount
adb push xxxx.xx /system/etc/firmware/
modem文件清单:
ltg: catcher_filter_1_ltg_n.bin dsp_1_ltg_n.bin modem_1_ltg_n.img
lwg: catcher_filter_1_lwg_n.bin dsp_1_lwg_n.bin modem_1_lwg_n.img
c2k: boot_3_3g_n.rom fsm_cust_df_3_3g_n.img fsm_rf_df_3_3g_n.img fsm_rw_df_3_3g_n.img modem_3_3g_n.img
3、重启机器
adb reboot
二,sim卡驱动配置
2.1 使能sim卡
sim卡的正常工作设计到modem,modem则需要你们根据具体情况编译了
device/mediateksample/$(yourprojectname)/ProjectConfig.mk
CUSTOM_MODEM=(主make文件modem的名称,不要带中文)
在vendor_ap_s0/vendor/mediatek/proprietary/modem/文件夹下导入编译好的modem文件夹,里面modem文件夹名字与主make里面保持一致
如果要更换modem,最好删除out目录下modem文件夹里面的打包文件,在编译
out/soong/.intermediates/system/sepolicy/vendor_property_contexts/android_common/gen/namespace_checked/vendor/mediatek/proprietary/modem
下载烧录到手机,系统设置里面看基带版本是否有定义,有定义代表modem编进去了,不过sim卡能正常使用还是在根据原理图在dws里面配置引脚
只想保留sim1卡槽,双卡配置成单卡
device/mediateksample/$(yourprojectname)/ProjectConfig.mk
MTK_MULTI_SIM_SUPPORT = dsds //双卡 ss //单卡
2.2 sim卡热插拔
device/mediateksample/$(yourprojectname)/ProjectConfig.mk
MTK_SIM_HOT_SWAP= yes
MTK_SIM_HOT_SWAP_COMMON_SLOT = yes //打开关于sim卡热插拔的宏开关
2.3 sim卡的eint,无热插拔可以不配置,需要该功能就需要配置了
$(LINUX_KERNEL_VERSION)/drivers/misc/mediatek/dws/$(MTK_PLATFORM)/$(yourprojectname).dws
vendor/mediatek/proprietary/bootable/bootloader/preloader/custom/$(yourprojectname)/dct/dct/codegen.dws
vendor/mediatek/proprietary/custom/$(yourprojectname)/kernel/dct/dct/codegen.dws
sim卡:
<gpio35>
<eint_mode>false</eint_mode>
<def_mode>1</def_mode>
<inpull_en>true</inpull_en>
<inpull_selhigh>true</inpull_selhigh>
<def_dir>IN</def_dir>
<out_high>false</out_high>
<varName0>GPIO_SIM2_SIO</varName0>
<smt>false</smt>
<ies>true</ies>
</gpio35>
<gpio36>
<eint_mode>false</eint_mode>
<def_mode>1</def_mode>
<inpull_en>false</inpull_en>
<inpull_selhigh>false</inpull_selhigh>
<def_dir>OUT</def_dir>
<out_high>false</out_high>
<varName0>GPIO_SIM2_SRST</varName0>
<smt>false</smt>
<ies>true</ies>
</gpio36>
<gpio37>
<eint_mode>false</eint_mode>
<def_mode>1</def_mode>
<inpull_en>false</inpull_en>
<inpull_selhigh>false</inpull_selhigh>
<def_dir>OUT</def_dir>
<out_high>false</out_high>
<varName0>GPIO_SIM2_SCLK</varName0>
<smt>false</smt>
<ies>true</ies>
</gpio37>
<gpio38>
<eint_mode>false</eint_mode>
<def_mode>1</def_mode>
<inpull_en>false</inpull_en>
<inpull_selhigh>false</inpull_selhigh>
<def_dir>OUT</def_dir>
<out_high>false</out_high>
<varName0>GPIO_SIM1_SCLK</varName0>
<smt>false</smt>
<ies>true</ies>
</gpio38>
<gpio39>
<eint_mode>false</eint_mode>
<def_mode>1</def_mode>
<inpull_en>false</inpull_en>
<inpull_selhigh>false</inpull_selhigh>
<def_dir>OUT</def_dir>
<out_high>false</out_high>
<varName0>GPIO_SIM1_SRST</varName0>
<smt>false</smt>
<ies>true</ies>
</gpio39>
<gpio40>
<eint_mode>false</eint_mode>
<def_mode>1</def_mode>
<inpull_en>true</inpull_en>
<inpull_selhigh>true</inpull_selhigh>
<def_dir>IN</def_dir>
<out_high>false</out_high>
<varName0>GPIO_SIM1_SIO</varName0>
<smt>false</smt>
<ies>true</ies>
</gpio40>
具体引脚使用你们看原理图,仅供参考
三,SIM卡不识或者掉卡简单分析
3.1 不识卡问题
不识卡的主要原因:
Modem发生错误,异常或者重启。
SIM卡热插拔配置不正确引起的不识卡
某些特殊的卡与MTK平台兼容的问题
3.2 识卡慢的问题
①识卡过程中拔出SIM卡,再插入,此时SIM driver会认为是掉卡情况,会执行full recovery救卡动作,将会耗费一定的时间初始化SIM卡。梳理SIM卡流程及测试操作步骤。
②是否热插拔功能引起,让HW跟进。
3.3 SIM卡出现概率性掉卡,是什么原因,该如何解决?
1,概率性掉卡问题一般是HW干扰导致。
SW上针对掉卡现象的救卡流程为首先是三次fast recovery,三次reset sim来重新识别卡。
若三次fast recovery没能将卡救回来,接着再启动full recovery enhancement timer,此timer interval默认为30s,直到将卡救回来。
若是full recovery timer来救卡,网络恢复较慢,会再次出现”XXXX欢迎您”欢迎界面。
2,从HW上彻底排查干扰源,以HW手段解决。
1) SIM受到干扰可分为两大类:
SIM IO受到干扰,这种情况一般是layout导致,数字信号受到干扰0->1,1->0。1.8V的SIM更容易受到这种干扰。
SIM本身受到干扰,一般是在PA发射信号时表现比较显著。
2) 可通过SIM driver log粗略定位是IO受到干扰还是SIM本身受到干扰:
SIM掉卡后,首先会有三次fast recovery捡卡机制,若这三次recovery,能将卡找回来,表明受到的是IO干扰,通过reset卡,避开了信号受干扰的时刻,然后能将SIM卡找回来。
若三次fast recovery不能将卡找回来,表明SIM本身受到干扰。
HW实验方法:
(1)检查layout走线;
(2) 量SIM POWER,IO波形,通过波形确认是否有noise;
(3)SIM1_DATA,SIM1_CLK,SIM1_RST 上分别加12pF 的电容;
(4)用导电箔将SIM包起来,并良好的导地;
(5)降低天线发射功率改变天线发射方向