讲师博文
基于FS4412内核移植之DM9000网卡驱动添加 来源 : 未知     2014-09-24

网卡是嵌入式产品常用的设备,这里我们需要完成网卡驱动的移植。FS4412使用的是DM9000网卡,我们通过这个实验能够了解如何在内核中添加网卡驱动及网络功能的基本配置。

由图中可以看到如下内容:

有16根数据线,所以总线宽度为16bit

中断线为DM9000_IRQ对应的XEINT6,也就是使用的终端是外部中断6(EINT6)

片选线为BUF_Xm0cs1,即片选1,对应的地址空间为0x05000000 – 0x06000000

所以设备树文件中添加如下内容:

$ vim arch/arm/boot/dts/exynos4412-fs4412.dts
        添加内容:
        srom-cs1@5000000 {
                compatible = "simple-bus";
                #address-cells = <1>;
                #size-cells = <1>;
                reg = <0x5000000 0x1000000>;
                ranges;
        
                ethernet@5000000 {
                        compatible = "davicom,dm9000";
                        reg = <0x5000000 0x2 0x5000004 0x2>;
                        interrupt-parent = <&gpx0>;
                        interrupts = <6 4>;
                        davicom,no-eeprom;
                        mac-address = [00 0a 2d a6 55 a2];
                };
        };

参考文件:Documentation/devicetree/bindings/net/davicom-dm9000.txt

$ vimarch/arm/boot/dts/exynos4x12-pinctrl.dtsi
        gpx0: gpx0 {
        gpio-controller;
        #gpio-cells = <2>;
        
        interrupt-controller;
        interrupt-parent = <&gic>;
        interrupts = <0 16 0>, <0 17 0>, <0 18 0>, <0 19 0>,
        <0 20 0>, <0 21 0>, <0 22 0>, <0 23 0>;
        #interrupt-cells = <2>;
        };
        

外部中断6对应的GPIO口为GPX0_6,所以:
        interrupt-parent = <&gpx0>;
        外部中断6对应的是gic中的22所以
        
        interrupts = <6 4>; 6对应的是外部中断6也就是gic中的22,4为高电平触发中断

参考内容:Documentation/devicetree/bindings/arm/gic.txt

Documentation/devicetree/bindings/arm/samsung/interrupt-combiner.txt

配置内核:

makemenuconfig
        //网卡相关选项
        [*] Networking support --->
        Networking options --->
        <*> Packet socket
        <*>Unix domain sockets 
        [*] TCP/IP networking
        [*] IP: kernel level autoconfiguration
        //DM9000网卡相关选项
        Device Drivers --->
        [*] Network device support --->
        [*] Ethernet driver support (NEW) --->
        <*> DM9000 support
        //NFS 相关选项
        File systems --->
        [*] Network File Systems (NEW) --->
        <*> NFS client support
        [*] NFS client support for NFS version 3
        [*] NFS client support for the NFSv3 ACL protocol extension
        [*] Root file system on NFS

编译内核和设备树

$ make uImage
        $ make dtbs

设置系统启动参数如果使用NFS启动的话,则可以通过NFS挂载根文件系统

扫码申领本地嵌入式教学实录全套视频及配套源码

上一篇:基于FS4412内核移植之第一次编译

下一篇:安卓程序解决网络传输乱码问题

400-611-6270

Copyright © 2004-2024 华清远见教育科技集团 版权所有
京ICP备16055225号-5京公海网安备11010802025203号