60.网卡移植-设备树详细分析

上节在内核配置的时候,我们完成了对网卡驱动的移植,在菜单操作后,我们又对设备树进行了板卡相关的一些代码配置,那么那些代码是什么含义,我们又怎么根据自己的板卡进行修改呢??

首先我们要知道什么是设备树,为什么要又设备树。

在之前的内核版本的时候是没有设备树的,在内核源码中,存在大量对板级细节信息描述的代码,对内核而言绝大多数纯属垃圾冗余代码,我们维护的时候也不好维护。

设备树通过bootloader将硬件资源传给内核,使得内核和硬件资源描述相对独立(也就是说*.dtb文件由Bootloader读入内存,之后由内核来解析)

设备树的主要优势:对于同一SOC的不同主板,只需更换设备树文件.dtb即可实现不同主板的无差异支持,而无需更换内核文件。

 

在移植的时候也不要马上就看数据手册,先找个类似的设备树进行模仿修改。

内核目录下Documentation/devicetree/bindings/net/davicom-dm9000.txt

其他设备雷同,官方一般都有提供类似的实例。

srom-cs1@5000000 {

       compatible = "simple-bus";

        #address-cells = <1>;

        #size-cells = <1>;

        reg = <0x5000000 0x1000000>;对应芯片手册3Memory Map 的0x0500_0000和16 MB

        ranges;

        ethernet@5000000 {

            compatible = "davicom,dm9000";  内核通过该名字来匹配驱动
            reg = <0x5000000 0x2 0x5000004 0x2>;  寄存器地址和数据宽度
            interrupt-parent = <&gpx0>;   继承于 中断控制器gpx0
            interrupts = <6 4>; 6对应中断源 DM9000_IRQ -> XEINT6 。4对应 active high             
            level-sensitive         
            davicom,no-eeprom;
            mac-address = [00 0a 2d a6 55 a2];

          };

 };

上面那个0x5000000 是怎么的来的。

首先打开我们板卡的底板原理图

这是我们DM9000的硬件接口,通过查看核心板,可以看出它是接到了SROM Control ler总线上,我们查看4412的数据手册,发现SROM总线控制器有四个bank0~bank3,我们的CS片选信号选择的是xm0cs1.

所以当前板卡在bank1上,查看数据手册Memory Map,可以找到它对应的地址为

所以也就知道设备树上的地址是怎么来的了,改用其他的bank我们也都清楚怎么改了。(网卡看作一个SROM)

 

 

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值