微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 手机设计讨论 > MTK手机平台交流 > MTK MT6582平台如何进u-boot && 修改波特率为115200

MTK MT6582平台如何进u-boot && 修改波特率为115200

时间:10-02 整理:3721RD 点击:
问2个底层的问题。
1、
任何 平台都应该是 在上电 刚刚启动的时候(在串口 按 回车键) 进入u-boot
(一般情况下是3秒倒计时,不按回车键就自己启动了!)
比如Freescale的i.MX51/imx6Q平台
Amlogic的M802
全志的A31S
现在用mtk的MT6582平台,想在 上电 刚刚启动的时候(在串口工具 按 回车键) 进入u-boot。
请问如何设置?谢谢!


2、(已经解决)
MT6582平台被设置成460800波特率了,PC机器上的物理串口最大只支持到115200,请问如何修改?


13、打开串口打印
1、
M:\mediatek\custom\d800\preloader\cust_bldr.mak
打开UART1
#CFG_UART_LOG :=UART2
#CFG_UART_META :=UART2
CFG_UART_LOG :=UART1
CFG_UART_META :=UART1

2、
M:\mediatek\platform\mt6582\preloader\src\drivers\platform.c
void platform_pre_init(void)
{
……
    #define MT_SP_power_PIN (GPIO115 | 0x80000000)
    mt_set_gpio_mode(MT_SP_POWER_PIN, GPIO_MODE_GPIO);
    mt_set_gpio_dir(MT_SP_POWER_PIN, GPIO_DIR_OUT);
    mt_set_gpio_out(MT_SP_POWER_PIN, GPIO_OUT_ONE);
   
    /* init uart baudrate when pll on */
    mtk_uart_init(UART_SRC_CLK_FRQ, CFG_LOG_BAUDRATE);
……
}

3、
m:\mediatek\platform\mt6582\lk\platform.c
//#define PMIC_WRAP_PORTING //only for lk early porting
void platform_early_init(void)
{
……
    #define MT_SP_POWER_PIN (GPIO115 | 0x80000000)
    mt_set_gpio_mode(MT_SP_POWER_PIN, GPIO_MODE_GPIO);
    mt_set_gpio_dir(MT_SP_POWER_PIN, GPIO_DIR_OUT);
    mt_set_gpio_out(MT_SP_POWER_PIN, GPIO_OUT_ONE);
         
    /* initialize the uart */
    uart_init_early();
……
}


14、修改串口log的波特率(将UART1从460800修改到115200)
因为PC机器上的真实物理串口的最高波特率只能够到115200,使用460800必须使用USB转串口。在window/ubuntu下很容易让电脑蓝屏/死机/重启。(每天2-3次)
[FAQ04654]如何修改UART输出数据的波特率
有以下3个地方分别控制不同的部分的波特率
1. 设置 preloader 波特率,这里不会设置到uboot和kernel
文件为mediatek/custom/proj/preloader/inc/cus_bldr.h
#define CFG_LOG_BAUDRATE (115200)
2. 修改uboot 波特率
mediatek/custom/proj/uboot/inc/configs/ubconfigs.h
#define CFG_LOG_BAUDRATE (115200)
3. 修改kernel 波特率
mediatek/config/MT6575/autoconfig/kconfig/platform
CONFIG_CMDLINE="console=ttyMt3, 115200"

如何修改UART输出数据的波特率
有以下3个地方分别控制不同的部分的波特率
1.  设置  preloader  波特率,这里不会设置到uboot和kernel
文件为mediatek/custom/proj/preloader/inc/cus_bldr.h
#define CFG_LOG_BAUDRATE (115200)
M:\mediatek\custom\d800\preloader\inc\cust_bldr.h
// #define CFG_LOG_BAUDRATE            (921600)
#define CFG_LOG_BAUDRATE            (115200)
2.   修改uboot 波特率
mediatek/custom/proj/uboot/inc/configs/ubconfigs.h
#define CFG_LOG_BAUDRATE (115200)
M:\mediatek\platform\mt6582\lk\uart.c
// #define CONFIG_BAUDRATE  460800 // 921600 //460800 //115200 //9600
#define CONFIG_BAUDRATE 115200
3.  修改kernel 波特率
mediatek/config/mt6575/autoconfig/kconfig/platform
CONFIG_CMDLINE="console=ttyMt3, 115200"
M:\mediatek\config\d800\autoconfig\kconfig\project
CONFIG_CMDLINE="console=tty0 console=ttyMT3,460800n1 root=/dev/ram vmalloc=496M slub_max_order=0 slub_debug=O "
CONFIG_CMDLINE="console=tty0 console=ttyMT3,115200n1 root=/dev/ram vmalloc=496M slub_max_order=0 slub_debug=O "

已经编译过的项目这里也需要修改:
M:\mediatek\config\out\d800\autoconfig\project

无关项目(修改波特率无用):
M:\mediatek\config\mt6582\autoconfig\kconfig\project
M:\mediatek\custom\d800\preloader\cust_bldr.mak

参考资料:
http://www.cfanz.cn/index.php?c=article&a=read&id=210688
MTK android Driver知识大全

[FAQ04266][uart] 怎样切换 uart log 端口
[FAQ03929][UART]如何配置UART1/UART4为Log输出端口?

13、打开串口打印
1、
M:\mediatek\custom\d800\preloader\cust_bldr.mak
打开UART1
#CFG_UART_LOG :=UART2
#CFG_UART_META :=UART2
CFG_UART_LOG :=UART1
CFG_UART_META :=UART1

2、
M:\mediatek\platform\mt6582\preloader\src\drivers\platform.c
void platform_pre_init(void)
{
……
    #define MT_SP_POWER_PIN (GPIO115 | 0x80000000)
    mt_set_gpio_mode(MT_SP_POWER_PIN, GPIO_MODE_GPIO);
    mt_set_gpio_dir(MT_SP_POWER_PIN, GPIO_DIR_OUT);
    mt_set_gpio_out(MT_SP_POWER_PIN, GPIO_OUT_ONE);
   
    /* init uart baudrate when pll on */
    mtk_uart_init(UART_SRC_CLK_FRQ, CFG_LOG_BAUDRATE);
……
}

3、
m:\mediatek\platform\mt6582\lk\platform.c
//#define PMIC_WRAP_PORTING //only for lk early porting
void platform_early_init(void)
{
……
    #define MT_SP_POWER_PIN (GPIO115 | 0x80000000)
    mt_set_gpio_mode(MT_SP_POWER_PIN, GPIO_MODE_GPIO);
    mt_set_gpio_dir(MT_SP_POWER_PIN, GPIO_DIR_OUT);
    mt_set_gpio_out(MT_SP_POWER_PIN, GPIO_OUT_ONE);
         
    /* initialize the uart */
    uart_init_early();
……
}


14、修改串口log的波特率(将UART1从460800修改到115200)
因为PC机器上的真实物理串口的最高波特率只能够到115200,使用460800必须使用USB转串口。在window/ubuntu下很容易让电脑蓝屏/死机/重启。(每天2-3次)
[FAQ04654]如何修改UART输出数据的波特率
有以下3个地方分别控制不同的部分的波特率
1. 设置 preloader 波特率,这里不会设置到uboot和kernel
文件为mediatek/custom/proj/preloader/inc/cus_bldr.h
#define CFG_LOG_BAUDRATE (115200)
2. 修改uboot 波特率
mediatek/custom/proj/uboot/inc/configs/ubconfigs.h
#define CFG_LOG_BAUDRATE (115200)
3. 修改kernel 波特率
mediatek/config/mt6575/autoconfig/kconfig/platform
CONFIG_CMDLINE="console=ttyMt3, 115200"

如何修改UART输出数据的波特率
有以下3个地方分别控制不同的部分的波特率
1.  设置  preloader  波特率,这里不会设置到uboot和kernel
文件为mediatek/custom/proj/preloader/inc/cus_bldr.h
#define CFG_LOG_BAUDRATE (115200)
M:\mediatek\custom\d800\preloader\cust_bldr.mak

M:\mediatek\custom\d800\preloader\inc\cust_bldr.h
// #define CFG_LOG_BAUDRATE            (921600)
#define CFG_LOG_BAUDRATE            (115200)
2.   修改uboot 波特率
mediatek/custom/proj/uboot/inc/configs/ubconfigs.h
#define CFG_LOG_BAUDRATE (115200)
M:\mediatek\platform\mt6582\lk\uart.c
// #define CONFIG_BAUDRATE  460800 // 921600 //460800 //115200 //9600
#define CONFIG_BAUDRATE 115200
3.  修改kernel 波特率
mediatek/config/mt6575/autoconfig/kconfig/platform
CONFIG_CMDLINE="console=ttyMt3, 115200"
M:\mediatek\config\d800\autoconfig\kconfig\project
CONFIG_CMDLINE="console=tty0 console=ttyMT3,460800n1 root=/dev/ram vmalloc=496M slub_max_order=0 slub_debug=O "
CONFIG_CMDLINE="console=tty0 console=ttyMT3,115200n1 root=/dev/ram vmalloc=496M slub_max_order=0 slub_debug=O "

串口log为:
cmdline: console=tty0 console=ttyMT0,921600n1 root=/dev/ram LCM=1-nt51018_1024x600_dsi_vdo_kingdisplay fps=7276 bootprof.pl_t=1955 bootprof.lk_t=2087 printk.disable_uart=0 boot_reason=0
检查编译之后文件会变成:
CONFIG_CMDLINE="console=tty0 console=ttyMT3,115200n1 root=/dev/ram vmalloc=496M slub_max_order=0 slub_debug=O "
CONFIG_CMDLINE="console=tty0 console=ttyMT3,460800n1 root=/dev/ram vmalloc=496M slub_max_order=0 slub_debug=O "(!注释掉之后重新生成bootimage即可!)
后来想,mt6582下也有配置成460800的,以前d800和mt6582下都有的话,就设置成460800,如果只改d800,mt6582的就会覆盖掉这个配置文件。这里也要改!
M:\mediatek\config\mt6582\autoconfig\kconfig\project
#CONFIG_CMDLINE="console=tty0 console=ttyMT3,921600n1 root=/dev/ram vmalloc=496M slub_max_order=0 slub_debug=O "
CONFIG_CMDLINE="console=tty0 console=ttyMT3,460800n1 root=/dev/ram vmalloc=496M slub_max_order=0 slub_debug=O "

无关项目(修改波特率无用):
M:\mediatek\config\out\d800\autoconfig\project


参考资料:


[FAQ04266][uart] 怎样切换 uart log 端口
[FAQ03929][UART]如何配置UART1/UART4为Log输出端口?


15、常用linux指令
find . -name env*
grep -R "delay" .


很好,学习了

MTK的MT6582平台如何

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top