linux内核版本:4.14

pcie转四路串口芯片:亚信的AX99100

linux内核里是没有这块芯片的驱动的,这里自己添加驱动进去进行编译。

1.从亚信官网下载该芯片的linux驱动https://www.asix.com.tw/cs/download.php?sub=driverdetail&PItemID=256

2.在 linux/drivers/tty/serial/的目录下新建一个99xx的目录,把解压之后的文件里除了.cache.mk、Makefile、readme之外的其他13个文件全部放入该目录。

3.在linux-marvell/drivers/tty/serial/99xx目录下创建Makefile文件,内容如下

obj-$(CONFIG_SERIAL_CH99xx_EXAR)           += ax99100_spi.o ax99100_sp.o 

4.参照8250下的Kconfig在该目录下创建Kconfig文件,内容如下

config SERIAL_99xx
        tristate "99xx/8250/16550 and compatible serial support"
        select SERIAL_CORE

config SERIAL_CH99xx_EXAR
        tristate "99xx/8250/16550 Exar/Commtech PCI/PCIe device support"
        depends on SERIAL_99xx  PCI
    default SERIAL_99xx

5.修改linux-marvell/drivers/tty/serial下的Makefile,增加

obj-$(CONFIG_SERIAL_99xx) += 99xx/

6.修改linux-marvell/drivers/tty/serial下的Kconfig,增加

source "drivers/tty/serial/99xx/Kconfig"

7.在linux目录下,使用你自己的编译器进入menuconfig进行内核配置(make menuconfig)

8.进入到Device Drivers > Character devices > Serial drivers目录下,勾选以下两个刚才添加的选项,并把8250的两个选项取消选中

9.进行编译,这样就把AX99100的驱动编译进内核里了,验证一下系统起来可以看到四路串口,ttyF0~ttyF3。

如果觉得我的文章对你有用,请随意赞赏