|
|
内核版本为Linux 2.6.20.修改9200的串口驱动,改arch/arm/mach-at91rm9200/board-dk.c。
|
|
理解各项的含义,需要弄清楚at91_uart_config结构体的细节。定义地址在include/asm-arm/arch-at91rm9200/board.h。
|
|
可见,这个结构体要实现SoC硬件设备与tty设备名之间的对应关系。at91rm9200的serial设备有DEGU,USART0,USART1,USART2,USART3.硬件设计上来说,DEGU作为调试通道,一般是有的。而串行口的设计上,可以设计为两个,也可以设计为四个,依定需求而确定。
at91_uart_config的console_tty是调试终端对应的设备名,这里一般会选择ttyS0。这个与bootloader命令行参数设计中console=ttySAC0,115200似乎有点冲突,具体细节需要考虑。
nr_tty是串口设备的数目,比如现在用的板子只有三个串口,那么就要设定为3.
tty_map是映射对应函数。初始化的值是SoC设备代表的数字,其中DEGU为4,USART[0-3]分别为[0
-3]。
|
|
如果设定为上述对应关系,那么.tty_map = { 4, 0, 1, 2, 3 }.
如果串口小于5个,那么用-1表示不存在。比如,在现在这块开发板上面,对应关系如下:
|
|
所以.tty_map = { 4, 0, 1, -1, -1 }
当然,自然对应关系最好,你也可以让DEGU对应ttyS3,不过相应的变化启动脚本要发生变化
