经过修改,可以在omapl138平台上达到想要的目的(把打印串口由uart2改为uart0)
一、在da850sdi.h里面
1.#define CONFIG_SYS_NS16550_COM1 DAVINCI_UART2_BASE /* Base address of UART2 */
改为:#define CONFIG_SYS_NS16550_COM1 DAVINCI_UART0_BASE /* Base address of UART1*/
2、#define CONFIG_SYS_NS16550_CLK clk_get(DAVINCI_UART2_CLKID)
改为:#define CONFIG_SYS_NS16550_CLK clk_get(DAVINCI_UART1_CLKID)
在hardware.h
添加: DAVINCI_UART0_CLKID = 2,结果如下图
二、管脚复用配置的修改(在da850sdi.c里面)
在const struct pinmux_resource pinmuxes[] 里面加上与uart1管脚复用配置相关信息,如下图
需要在da850_pinmux.c中定义:
在pinmux_defs.h中引用:
extern const struct pinmux_config uart0_pins_txrx[2];
在da850sdi.c文件中通过函数davinci_configure_pin_mux_items(pinmuxes, ARRAY_SIZE(pinmuxes)进行管脚配置(UART0)
三、模块电源管理
在da850sdi.c里面,在const struct lpsc_resource lpsc[]结构体里增加DAVINCI_LPSC_UART0,如下图:
随后,下面的函数会调用const struct lpsc_resource lpsc即:da8xx_configure_lpsc_items(lpsc, ARRAY_SIZE(lpsc))
下面的函数用调用lpsc_on函数,相当于使能uart
四、芯片内部模块的SUSPSRC控制使用
在da850sdi.c里面,修改如下
在hardware.h定义:#define DAVINCI_SYSCFG_SUSPSRC_UART0 (1 << 18)
五. enable the console UART
把davinci_uart2_ctrl_regs改成 davinci_uart0_ctrl_regs
这样就可以UBOOT的串口参数就修改完成。
六、在da850sdi.h中修改ttyS2为ttyS0
#define CONFIG_BOOTARGS "mem=32M console=ttyS0,115200n8 root=/dev/mmcblk0p2 rw rootwait ip=off"
否则内核不能正常引导。