在扁平设备配置树文件中添加pci设备----基于MPC8313

       今天使用MPC8313的DMO板套件跑我们自己的板子,出现了PCI设备找不到的情况,最后通过上网查资料,总结如下:

       Powerpc使用扁平设备配置书文件引导内核,内核在启动过程中会扫描PCI设备,此时硬件上最重要的连线IDSEL起作用了。

       先总结一下PCI设备启动过程。内核启动时,pci设备自由bios会扫描自身信息,然后生成含有pci设备信息的数据结构,然后保存起来。内核在扫描32位pci设备的时候,因为在硬件上IDSEL[11:31]实际上相当于pci设备的片选信号(图一),所以内核根据dts文件(即扁平设备配置树)扫描响应IDSEL对应的PCI设备,然后读取PCI设备的数据结构存储起来,以备以后使用。

       具体的对应关系看8313的datasheet。见图二和图三。

\"在扁平设备配置树文件中添加pci设备----基于MPC8313

 图一:PCI设备IDSEL脚的连接方式

\"在扁平设备配置树文件中添加pci设备----基于MPC8313

 图二:LDSEL对应的编号 1

\"在扁平设备配置树文件中添加pci设备----基于MPC8313

 图三:LDSEL对应的编号 2

\"在扁平设备配置树文件中添加pci设备----基于MPC8313

图四:CPU硬件终端号 

\"在扁平设备配置树文件中添加pci设备----基于MPC8313

图五:PCI硬件连接图  注:1:IDSEL连PCI_AD14  3:INTA连IRQ2。 

   

       修改好的dts文件中PCI相关代码如下:

pci@8500 {
            interrupt-map-mask = <f800 0 0 7>;
            interrupt-map = <
                    /* IDSEL 0x0E - 380 */
                     7000 0 0 1 &ipic 11 8 /*注意红色部分, f800 & 7000,然后去高5位,值为0x0E即(01110),表示它的IDSEL脚连在PCI地址*/

                                                   /*线的PCI_AD14号管脚上,蓝色部分代表此设备所连到CPU的硬件终端号(注意:16进制),如图四和五。*/
                     7000 0 0 2 &ipic 11 8
                     7000 0 0 3 &ipic 11 8
                     7000 0 0 4 &ipic 11 8

                    /* IDSEL 0x0F - Audio */
                     7800 0 0 1 &ipic 12 8
                     7800 0 0 2 &ipic 12 8
                     7800 0 0 3 &ipic 12 8
                     7800 0 0 4 &ipic 12 8

                    /* IDSEL 0xA0 - 3602_01 */
                     A000 0 0 1 &ipic 30 8
                     A000 0 0 2 &ipic 30 8
                     A000 0 0 3 &ipic 30 8
                     A000 0 0 4 &ipic 30 8

                    /* IDSEL 0xA8 - 3602_02 */
                     A800 0 0 1 &ipic 13 8
                     A800 0 0 2 &ipic 13 8
                     A800 0 0 3 &ipic 13 8
                     A800 0 0 4 &ipic 13 8>;
            interrupt-parent = < &ipic >;
            interrupts = <42 8>;
            bus-range = <0 0>;
            ranges = <02000000 0 90000000 90000000 0 10000000
                      42000000 0 80000000 80000000 0 10000000
                      01000000 0 00000000 e2000000 0 00100000>;
            clock-frequency = <3f940aa>;
            #interrupt-cells = <1>;
            #size-cells = <2>;
            #address-cells = <3>;
            reg = <8500 100>;
            compatible = \"fsl,mpc8349-pci\

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值