MT6620打开失败串口出错信息

[DESCRIPTION]
根据设计原理图对MT6620/MT6628在Codegen.dws中进行配置,使其能正常工作。
[SOLUTION]
1.GPIO_COMBO_PMU_EN_PIN
下图为GPIO187作为GPIO_COMBO_PMU_EN_PIN时的配置,当使用其它GPIO PIN时参考此配置。
2.GPIO_COMBO_6620_LDO_EN_PIN
下图为GPIO183作为GPIO_COMBO_6620_LDO_EN_PIN时的配置,当使用其它GPIO PIN时参考此配置。
若设计原理图没有使用LDO _EN_PIN,则无需配置此PIN。
3.GPIO_COMBO_RST_PIN
下图为GPIO59作为GPIO_COMBO_RST_PIN时的配置,当使用其它GPIO PIN时参考此配置。
4.GPIO_GPS_LNA_PIN
下图为GPIO185作为GPIO_GPS_LNA_PIN时的配置,当使用其它GPIO PIN时参考此配置。
若设计原理图没有使用GPS_LAN_PIN,则无需配置此PIN。
5.GPIO_GPS_SYNC_PIN
下图为GPIO206作为GPIO_GPS_SYNC_PIN时的配置,当使用其它GPIO PIN时参考此配置。
6.GPIO_COMBO_BGF_EINT_PIN
下图为GPIO13(EINT14)作为GPIO_COMBO_BGF_EINT_PIN时的配置,当使用其它GPIO PIN时参考此配置。
7.GPIO_WIFI_EINT_PIN
下图为GPIO15(EINT18)作为GPIO_WIFI_EINT_PIN时的配置,当使用其它GPIO PIN时参考此配置。
8.UART PIN
GB/GB2/ICS/ICS2软件配置VarNmae1为GPIO_UART_UTXD3_PIN和GPIO_UART_URXD3_PIN:
下图为GPIO71(UTXD3)作为GPIO_UART_UTXD3_PIN和GPIO79(URXD3)作为GPIO_UART_URXD3_PIN时的配置,
当使用其它GPIO PIN作为UART时参考此配置。
JB/JB2软件配置VarNmae1为GPIO_COMBO_UTXD_PIN和GPIO_COMBO_URXD_PIN:
下图为GPIO71(UTXD3)作为GPIO_COMBO_UTXD_PIN和GPIO79(URXD3)作为GPIO_COMBO_URXD_PIN时的配置,
当使用其它GPIO PIN作为UART时参考此配置。
9.BT PCM PIN
下图为GPIO62~GPIO65仅作为BT PCM PIN时的配置,当使用其它GPIO PIN时参考此配置。
JB MT6589+MT6628 FM I2S/BT PCM共用PIN的配置请参考12.FM I2S/BT PCM Share PIN.
10.WIFI SDIO PIN
下图为GPIO89~GPIO94作为WIFI SDIO PIN时的配置,当使用其它GPIO PIN时参考此配置。
注意Def.Mode需要配置为MSDC相关Mode, ICS/ICS2/JB软件无需配置VarName1.
11.FM I2S PIN
下图为GPIO56~GPIO58仅作为FM I2S PIN时的配置,当使用其它GPIO PIN时参考此配置。若设计原理图没有使用FM I2S PIN,则无需配置此PIN。
注意GPIO I2S相关Mode都要钩选,如图中M1,M4都有钩选。
JB MT6589+MT6628 FM I2S/BT PCM共用PIN的配置请参考12.FM I2S/BT PCM Share PIN。
12.FM I2S/BT PCM Share PIN
JB MT6589+MT6628 FM I2S/BT PCM共用PIN,如下图为GPIO221~GPIO224作为FM I2S/BT PCM共用 PIN时的配置,当使用其它GPIO PIN时参考此配置。若设计原理图没有使用FM I2S PIN,则无需配置VarName2。
注意GPIO I2S/PCM相关Mode都要钩选,如图中M0,M1,M3,M4都有钩选。
[DESCRIPTION]
在此文档中会描述下面问题:
MT6628/MT6620无法开启需要检查哪些配置。
注: 请勿直接复制本文档的内容到工程中,防止有些字符从WORD文档中直接复制过去会无法识别,请直接对照文档描述修改工程配置即可。
[SOLUTION]
MT6628/MT6620无法开启需要检查下面的配置是否正确。就算拿到的原始release包是MT6628的,也需要参考下面的描述修改配置,否则还是可能会导致MT6628无法开启。
此部分涉及多个配置文件的修改,且ICS/ICS2 ,GB2,JB版本上修改是有差别的,请按照工程的版本参考下面不同的章节。
1 ICS/ICS2版本配置
适用版本: ALPS.ICS.MP 以及 ALPS.ICS2.MP
1.1 ICS/ICS2 MT6628配置:
Alps/mediatek/config/[Project]/ProjectConfig.mk 文件中需要完成下面的更改,请仔细检查工程中下面每一个宏的定义:
CUSTOM_HAL_COMBO = mt6628
CUSTOM_HAL_FMRADIO = mt6628
CUSTOM_HAL_ANT = mt6628_ant_m1
CUSTOM_KERNEL_FM = mt6628
MTK_BT_CHIP = MTK_MT6628
MTK_FM_CHIP = MT6628_FM
MTK_WLAN_CHIP = MT6628
MTK_COMBO_CHIP = MT6628
MTK_COMBO_QUICK_SLEEP_SUPPORT = yes
MTK_COMBO_CORE_DUMP_SUPPORT = yes
MTK_GPS_CHIP = MTK_GPS_MT6628
MTK_BT_FM_OVER_BT_VIA_CONTROLLER = no
Alps/mediatek/config/[Project]/autoconfig/kconfig/project 文件中需要完成下面的更改:
CONFIG_MTK_COMBO_FM=m
改为:
# CONFIG_MTK_COMBO_FM is not set
请留意字符”#"之后要保留空格
# CONFIG_MTK_MT6628_FM is not set
改为
CONFIG_MTK_MT6628_FM =m
Alps/mediatek/config/[Project]/init.project.rc 文件中请完成下面的更改:
insmod /system/lib/modules/mt6620_fm_drv.ko
insmod /system/lib/modules/mtk_fm_priv.ko
改为:
insmod /system/lib/modules/mtk_fm_drv.ko
insmod /system/lib/modules/mtk_fm_priv.ko
service 6620_launcher 请修改为下面的格式,要求每个参数都保持跟下面一样:
service 6620_launcher /system/bin/6620_launcher -m 1 -b 4000000 -p /system/etc/firmware/ -d /dev/ttyMT2
class core
user system
group system
service stp_dump /system/bin/stp_dump3
class main
user system
group system net_admin
alps/mediatek/config/[Project]/meta_init.rc
alps/mediatek/custom/[Project]/factory/init.rc 两个文件中完成下面的更改:
insmod /system/lib/modules/mt6620_fm_drv.ko
insmod /system/lib/modules/mtk_fm_priv.ko
改为:
insmod /system/lib/modules/mtk_fm_drv.ko
insmod /system/lib/modules/mtk_fm_priv.ko
service 6620_launcher 请修改为下面的格式,要求每个参数都保持跟下面一样,请留意此处跟init.project.rc里面的修改有差异,勿直接复制里面的修改:
service 6620_launcher /system/bin/6620_launcher -m 1 -b 4000000 -p /system/etc/firmware/ -d /dev/ttyMT2
user root
group root
service stp_dump /system/bin/stp_dump3
user root
group root
1.2 ICS/ICS2 MT6620配置:
Alps/mediatek/config/[Project]/ProjectConfig.mk 文件中需要完成下面的更改,请仔细检查工程中下面每一个宏的定义:
CUSTOM_HAL_COMBO = mt6620
CUSTOM_HAL_FMRADIO = mt6620
CUSTOM_HAL_ANT = mt6620_ant_m3
CUSTOM_KERNEL_FM = mt6620
MTK_BT_CHIP = MTK_MT6620
MTK_FM_CHIP = MT6620_FM
MTK_WLAN_CHIP = MT6620
MTK_COMBO_CHIP = MT6620E3
MTK_COMBO_QUICK_SLEEP_SUPPORT = no
MTK_COMBO_CORE_DUMP_SUPPORT = no
MTK_GPS_CHIP = MTK_GPS_MT6620
MTK_BT_FM_OVER_BT_VIA_CONTROLLER = yes
Alps/mediatek/config/[Project]/autoconfig/kconfig/project 文件中需要完成下面的更改:
# CONFIG_MTK_COMBO_FM is not set
改为:
CONFIG_MTK_COMBO_FM=m
CONFIG_MTK_MT6628_FM =m
改为
# CONFIG_MTK_MT6628_FM is not set
请留意字符”#”之后需要保留空格
Alps/mediatek/config/[Project]/init.project.rc 文件中请完成下面的更改:
insmod /system/lib/modules/mtk_fm_drv.ko
insmod /system/lib/modules/mtk_fm_priv.ko
改为:
insmod /system/lib/modules/mt6620_fm_drv.ko
insmod /system/lib/modules/mtk_fm_priv.ko
service 6620_launcher 请修改为下面的格式,要求每个参数都保持跟下面一样:
service 6620_launcher /system/bin/6620_launcher 4000000 /system/etc/firmware/mt6620_patch_hdr.bin
class core
user system
group system
下面的service stp_dump去掉:
service stp_dump /system/bin/stp_dump3
class main
user system
group system net_admin
alps/mediatek/config/[Project]/meta_init.rc
alps/mediatek/custom/[Project]/factory/init.rc 两个文件中完成下面的更改:
insmod /system/lib/modules/mtk_fm_drv.ko
insmod /system/lib/modules/mtk_fm_priv.ko
改为:
insmod /system/lib/modules/mt6620_fm_drv.ko
insmod /system/lib/modules/mtk_fm_priv.ko
service 6620_launcher 请修改为下面的格式,要求每个参数都保持跟下面一样,请留意此处跟init.project.rc里面的修改有差异,勿直接复制里面的修改:
service 6620_launcher /system/bin/6620_launcher 4000000 /system/etc/firmware/mt6620_patch_hdr.bin
user root
group root
下面的service stp_dump去掉:
service stp_dump /system/bin/stp_dump3
class main
user system
group system net_admin
2 GB2版本配置
适用版本: ALPS.GB2.MP
2.1 GB2 MT6628配置:
Alps/mediatek/config/[Project]/ProjectConfig.mk文件中 确保MTK_COMBO_QUICK_SLEEP_SUPPORT 和 MTK_COMBO_CORE_DUMP_SUPPORT 两个宏定义在AUTO_ADD_GLOBAL_DEFINE_BY_NAME 段之内,如果没有请将这两个宏添加到AUTO_ADD_GLOBAL_DEFINE_BY_NAME 段。
Alps/mediatek/config/[Project]/ProjectConfig.mk 文件中需要完成下面的更改,请仔细检查工程中下面每一个宏的定义:
CUSTOM_HAL_COMBO = mt6628
CUSTOM_HAL_FMRADIO = mt6628
CUSTOM_HAL_ANT = mt6628_ant_m1
CUSTOM_KERNEL_FM = mt6628
MTK_BT_CHIP = MTK_MT6628
MTK_FM_CHIP = MT6628_FM
MTK_WLAN_CHIP = MT6628
MTK_COMBO_CHIP = MT6628
MTK_COMBO_QUICK_SLEEP_SUPPORT = yes
MTK_COMBO_CORE_DUMP_SUPPORT = yes
MTK_GPS_CHIP = MTK_GPS_MT6628
MTK_BT_FM_OVER_BT_VIA_CONTROLLER = no
Alps/mediatek/config/[Project]/autoconfig/kconfig/project 文件中需要完成下面的更改:
CONFIG_MTK_COMBO_FM=m
改为:
# CONFIG_MTK_COMBO_FM is not set
请留意字符”#"之后要保留空格
# CONFIG_MTK_MT6628_FM is not set
改为
CONFIG_MTK_MT6628_FM =m
Alps/mediatek/config/[Project]/init.rc 文件中请完成下面的更改:
insmod /system/lib/modules/mt6620_fm_drv.ko
insmod /system/lib/modules/mtk_fm_priv.ko
改为:
insmod /system/lib/modules/mtk_fm_drv.ko
insmod /system/lib/modules/mtk_fm_priv.ko
ttyMT2 和stpwmt的权限设置请修改为跟下面的参一模一样:
chmod 0660 /dev/ttyMT2
chown system system /dev/ttyMT2
chmod 0660 /dev/stpwmt
chown system system /dev/stpwmt
去掉下面这一行:
insmod /system/lib/modules/mtk_stp_core.ko
将下面三行的顺序做调整到如下格式:
insmod /system/lib/modules/mtk_hif_sdio.ko
insmod /system/lib/modules/mtk_stp_wmt.ko
insmod /system/lib/modules/mtk_stp_uart.ko
service 6620_launcher 请修改为下面的格式,要求每个参数都保持跟下面一样:
service 6620_launcher /system/bin/6620_launcher -m 1 -b 4000000 -p /system/etc/firmware/ -d /dev/ttyMT2
user system
group system
service stp_dump /system/bin/stp_dump3
user system
group system net_admin
alps/mediatek/config/[Project]/meta_init.rc
alps/mediatek/custom/[Project]/factory/init.rc 两个文件中完成下面的更改:
insmod /system/lib/modules/mt6620_fm_drv.ko
insmod /system/lib/modules/mtk_fm_priv.ko
改为:
insmod /system/lib/modules/mtk_fm_drv.ko
insmod /system/lib/modules/mtk_fm_priv.ko
去掉下面这一行:
insmod /system/lib/modules/mtk_stp_core.ko
将下面三行的顺序做调整到如下格式:
insmod /system/lib/modules/mtk_hif_sdio.ko
insmod /system/lib/modules/mtk_stp_wmt.ko
insmod /system/lib/modules/mtk_stp_uart.ko
service 6620_launcher 请修改为下面的格式,要求每个参数都保持跟下面一样,请留意此处跟init. rc里面的修改有差异,勿直接复制里面的修改:
service 6620_launcher /system/bin/6620_launcher -m 1 -b 4000000 -p /system/etc/firmware/ -d /dev/ttyMT2
user root
group root
service stp_dump /system/bin/stp_dump3
user root
group root
2.2 GB2 MT6620配置:
Alps/mediatek/config/[Project]/ProjectConfig.mk 文件中需要完成下面的更改,请仔细检查工程中下面每一个宏的定义:
CUSTOM_HAL_COMBO = mt6620
CUSTOM_HAL_FMRADIO = mt6620
CUSTOM_HAL_ANT = mt6620_ant_m3
CUSTOM_KERNEL_FM = mt6620
MTK_BT_CHIP = MTK_MT6620
MTK_FM_CHIP = MT6620_FM
MTK_WLAN_CHIP = MT6620
MTK_COMBO_CHIP = MT6620E3
MTK_COMBO_QUICK_SLEEP_SUPPORT = no
MTK_COMBO_CORE_DUMP_SUPPORT = no
MTK_GPS_CHIP = MTK_GPS_MT6620
MTK_BT_FM_OVER_BT_VIA_CONTROLLER = yes
Alps/mediatek/config/[Project]/autoconfig/kconfig/project 文件中需要完成下面的更改:
# CONFIG_MTK_COMBO_FM is not set
改为:
CONFIG_MTK_COMBO_FM=m
CONFIG_MTK_MT6628_FM =m
改为
# CONFIG_MTK_MT6628_FM is not set
请留意字符”#"之后要保留空格
Alps/mediatek/config/[Project]/init.rc 文件中请完成下面的更改:
insmod /system/lib/modules/mtk_fm_drv.ko
insmod /system/lib/modules/mtk_fm_priv.ko
改为:
insmod /system/lib/modules/mt6620_fm_drv.ko
insmod /system/lib/modules/mtk_fm_priv.ko
ttyMT2 和stpwmt的权限设置请修改为跟下面的参一模一样:
chmod 0660 /dev/ttyMT2
chown system system /dev/ttyMT2
chmod 0660 /dev/stpwmt
chown system system /dev/stpwmt
请确保有下面4行并且顺序完全一样:
insmod /system/lib/modules/mtk_stp_core.ko
insmod /system/lib/modules/mtk_hif_sdio.ko
insmod /system/lib/modules/mtk_stp_wmt.ko
insmod /system/lib/modules/mtk_stp_uart.ko
service 6620_launcher 请修改为下面的格式,要求每个参数都保持跟下面一样:
service 6620_launcher /system/bin/6620_launcher 4000000 /system/etc/firmware/mt6620_patch_hdr.bin
user system
group system
去掉下面service stp_dump的内容:
service stp_dump /system/bin/stp_dump3
user system
group system net_admin
alps/mediatek/config/[Project]/meta_init.rc
alps/mediatek/custom/[Project]/factory/init.rc 两个文件中完成下面的更改:
insmod /system/lib/modules/mtk_fm_drv.ko
insmod /system/lib/modules/mtk_fm_priv.ko
改为:
insmod /system/lib/modules/mt6620_fm_drv.ko
insmod /system/lib/modules/mtk_fm_priv.ko
确保有下面4行并且顺序如下:
insmod /system/lib/modules/mtk_stp_core.ko
insmod /system/lib/modules/mtk_hif_sdio.ko
insmod /system/lib/modules/mtk_stp_wmt.ko
insmod /system/lib/modules/mtk_stp_uart.ko
service 6620_launcher 请修改为下面的格式,要求每个参数都保持跟下面一样,请留意此处跟init.project.rc里面的修改有差异,勿直接复制里面的修改:
service 6620_launcher /system/bin/6620_launcher 4000000 /system/etc/firmware/mt6620_patch_hdr.bin
user root
group root
去掉下面这部分:
service stp_dump /system/bin/stp_dump3
user root
group root
3 JB 版本配置:
适用版本: ALPS.JB
3.1 JB MT6628配置
Alps/mediate/config/[Project]/Projectconfig.mk 文件中需要完成下面的更改,请仔细检查工程中下面每一个宏的定义:
CUSTOM_HAL_COMBO = mt6628
CUSTOM_HAL_FMRADIO = mt6628
CUSTOM_HAL_ANT = mt6628_ant_m1
CUSTOM_KERNEL_FM = mt6628
MTK_BT_CHIP = MTK_MT6628
MTK_FM_CHIP = MT6628_FM
MTK_WLAN_CHIP = MT6628
MTK_COMBO_CHIP = MT6628
MTK_COMBO_QUICK_SLEEP_SUPPORT = yes
MTK_COMBO_CORE_DUMP_SUPPORT = yes
MTK_GPS_CHIP = MTK_GPS_MT6628
MTK_BT_FM_OVER_BT_VIA_CONTROLLER = no
3.2 JB MT6620配置
Alps/mediatek/config/[Project]/Projectconfig.mk 文件中需要完成下面的更改,请仔细检查工程中下面每一个宏的定义:
CUSTOM_HAL_COMBO = mt6620
CUSTOM_HAL_FMRADIO = mt6620
CUSTOM_HAL_ANT = mt6620_ant_m3
CUSTOM_KERNEL_FM = mt6620
MTK_BT_CHIP = MTK_MT6620
MTK_FM_CHIP = MT6620_FM
MTK_WLAN_CHIP = MT6620
MTK_COMBO_CHIP = MT6620E3
MTK_COMBO_QUICK_SLEEP_SUPPORT = no
MTK_COMBO_CORE_DUMP_SUPPORT = no
MTK_GPS_CHIP = MTK_GPS_MT6620
MTK_BT_FM_OVER_BT_VIA_CONTROLLER = yes
非常感谢!我有按1.2 ICS/ICS2 MT6620配置的试了一下,打开蓝牙没问题,打开wifi休眠几次后,wifi就能用了,不知道是什么问题,谢谢
重点怀疑 时钟是否有问题。
如果不打开蓝牙,WIFI是没办法使用,硬件检查也没问题,现在不知道从哪找问题,指导一下,谢谢!
外部晶体还是从射频哪边引过来的时钟?
我们用的是S500M,用的是外部晶体,时钟是S500M自己给的
用外部晶体,哪么你看看这个晶体是不是MTK认证的?
可以换晶体验证。
我们用的是TXC的7L26002009
开机MSDC3出错
msdc3 -> XXX CMD<8><0x1aa> Error<-110> Resp<0x0> <- msdc_dump_trans_error() : L<3017> PID<kworker/u:1><0x1c>
msdc3 -> XXX CMD<55><0x0> Error<-110> Resp<0x0> <- msdc_dump_trans_error() : L<3017> PID<kworker/u:1><0x1c>
msdc3 -> XXX CMD<1><0x0> Error<-110> Resp<0x0> <- msdc_dump_trans_error() : L<3017> PID<kworker/u:1><0x1c >
[ WMT-CORE][E]wmt_core_ctrl(539):WMT-CORE: wmt_core_ctrl failed: id(11), type(1), value(1) iRet:(-8)
[WMT-FUNC][E]wmt_func_wifi_ctrl(546):WMT-FUNC: turn on WIFI function fail (-8)
休眠MSDC3出错:
msdc3 -> Card insert<1> <- msdc_ops_get_cd() : L<3413> PID<kworker/u:1><0x1c>
msdc3 -> ================ <- msdc_set_mclk() : L<756> PID<kworker/u:1><0x1c>
msdc3 -> ! Set<400KHz> Source<197000KHz> -> sclk<397KHz> DDR<0> mode<0> div<124> <- msdc_set_mclk() : L<758> PID<kworker/u:1><0x1c>
msdc3 -> ================ <- msdc_set_mclk() : L<759> PID<kworker/u:1><0x1c>
sdc3 -> XXX CMD<8><0x1aa> Error<-110> Resp<0x0> <- msdc_dump_trans_error() : L<3017> PID<kworker/u:1><0x1c>
sdc3 -> select card<0x00010000> <- msdc_command_start() : L<1393> PID<kworker/u:1><0x1c>
msdc3 -> SD latch data<0> cmd<0> <- msdc_ops_set_ios() : L<3318> PID<kworker/u:1><0x1c>
msdc3 -> ================ <- msdc_set_mclk() : L<756> PID<kworker/u:1><0x1c>
msdc3 -> ! Set<50000KHz> Source<197000KHz> -> sclk<49250KHz> DDR<0> mode<0> div<1> <- msdc_set_mclk() : L<758> PID<kworker/u:1><0x1c>
