日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

MT7628/MT7688 修改串口2作为调试串口 所踩的坑

發布時間:2024/10/12 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MT7628/MT7688 修改串口2作为调试串口 所踩的坑 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?MTK的芯片設計有些讓人搞不懂,非得將串口作為啟動選擇引腳;

MT76x8 參考其datesheet,TXD0 啟動時必須為低電平,TXD1啟動時必須保持高電平;

一共最多3個串口,唯獨UART2不影響啟動;但是UART2與 NET PORT2是復用的;使用uart2必須犧牲1個網口;

準確來說是犧牲所有網口(PORT0除外),因此MT76x8 要么作為單網口使用要么作為5網口使用,沒有中間模式;這一點也比較蛋疼;

但這不是我們今天要關心的;今天只談uart2作為啟動串口;

設定uart2作為啟動調試串口,需要修改2個地方;一個是uboot,一個是kernel;

首先,在Uboot中 ?? board/rt2880/serial.c,設定串口模式及復位串口;

參考datesheet



RSTCTL偏移地址0x34;


RSTCTL? bit12,19,20分別對應uart0,1,2,首先需將其復位;


然后將UART2設為UART-lite模式,其默認為GPIO模式;

修改代碼,位于board/rt2880/serial.c?? serial_setbrg 函數,

//*(unsigned long *)(RALINK_SYSCTL_BASE + 0x0034) |= cpu_to_le32(1<<19|1<<12);*(unsigned long *)(RALINK_SYSCTL_BASE + 0x0034) |= cpu_to_le32(3<<19|1<<12); // 12 19 20 uart012置1/* RST Control change from W1C to W1W0 to reset, update 20080812 *///*(unsigned long *)(RALINK_SYSCTL_BASE + 0x0034) &= ~(1<<19|1<<12);*(unsigned long *)(RALINK_SYSCTL_BASE + 0x0034) &= ~(3<<19|1<<12); // 12 19 20 uart012清零,復位控制(復位芯片部分功能){u32 reg;reg = ra_inl(RT2880_GPIOMODE_REG);reg &= ~(0x3 << 26); // bit 26 27 清零,uart2//reg |= (0x3 << 2);ra_outl(RT2880_GPIOMODE_REG, reg);}

其次修改board/rt2880/serial.h

#define CFG_RT2880_CONSOLE?? ?RT2880_UART3

定義console為uart3

到此Uboot修改完畢。

然后Kernel中,修改比較簡單,如使用openwrt,只需在dts中定義console為ttyS2即可;

chosen {bootargs = "console=ttyS2,115200";};

到此全部修改完畢。


總結

以上是生活随笔為你收集整理的MT7628/MT7688 修改串口2作为调试串口 所踩的坑的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。