因为u-boot-2016.09的架构在向内核靠拢,所以串口不再和以前一样,可以直接使用的,这就加大了uboot移植的工作量,下面我们就来移植串口。
在上一节我们已经在board/samsung/tq210/lowlevel_init.S中添加了串口GPIO的配置
接下来看board_init_f中的串口初始化
查看serial_init,这个函数在drivers/serial/serial.c与drivers/serial/serial-uclass.c都有定义,我们就使用serial.c中的定义,查看Makefile
u-boot-2016.09$ vim drivers/serial/Makefile
为了省事,我就直接将CONFIG_DM_SERIAL的选择去掉,直接使用serial.c,
编译,发现default_serial_console没有定义,搜索发现在serial_s3c24x0.c有定义,于是仿照serial_s3c24x0.c修改serial_s5p.c,需要修改太多,我就不再这里一一贴图出来了。
再次编译,发现可以产生u-boot.bin,烧录,开发板上电,打开串口调试助手,发现没有任何输出,使用点灯调试,最后发现是我在添加arch/arm/dts/s5pv210-tq210.dts时没有修改串口信息,所以一直使用的是serial2,而默认的是serial0,修改arch/arm/dts/s5pv210-tq210.dts,将其中serial地址全部修改为serial0的地址e2900000.
u-boot-2016.09$ vim arch/arm/dts/s5pv210-tq210.dts
再次编译,重新将产生u-boot.bin烧录到开发板,上电,发现串口调试助手有了信息输出,到这里串口就大功告成了。