Home PCIe RC设备树
Post
Cancel

PCIe RC设备树

在嵌入式SOC中,PCIe的RC一般是厂商各自的,RC代码位于 drivers/pci/controller/ 下, 在嵌入式环境下,一般就会使用设备树,这个和x86环境不同。

记录一个关于PCIe RC设备树节点属性ranges

example:

	amba_pl: amba_pl@0 {
                #address-cells = <2>;
                #size-cells = <2>;
                compatible = "simple-bus";
                ranges ;
                pcie_dma_versal_0: axi-pcie@80000000 {
                        #address-cells = <3>;
                        #interrupt-cells = <1>;
                        #size-cells = <2>;
                        compatible = "xlnx,qdma-host-3.00";
                        device_type = "pci";
                        interrupt-map = <0 0 0 1 &psv_pcie_intc_0 1>, <0 0 0 2 &psv_pcie_intc_0 2>, <0 0 0 3 &psv_pcie_intc_0 3>, <0 0 0 4 &psv_pcie_intc_0 4>;
                        interrupt-map-mask = <0 0 0 7>;
                        interrupt-names = "misc", "msi0", "msi1";
                        interrupt-parent = <&gic>;
                        interrupts = <0 84 4 0 85 4 0 86 4>;
                        ranges = <0x02000000 0x00000000 0xA8000000 0x0 0xA8000000 0x00000000 0x100000>;
                        reg = <0x0 0x90000000 0x0 0x5000>,
                                <0x0 0x80000000 0x0 0x1000000>;
                        reg-names = "breg", "cfg";
                        psv_pcie_intc_0: interrupt-controller {
                                #address-cells = <0>;
                                #interrupt-cells = <1>;
                                interrupt-controller ;
                        };
                };

    };

ranges 一般是用来表示地址转换的,ranges = <local_address parent_address address_size>,但是在PCIe RC这里就不同,用法有些变化

bus-range = <2 3>;       该设备(一般为RC)下的pci总线号范围
 ranges = <0x2000000 0x0 0xc0000000 0 0xc0000000 0x0 0x20000000  
                 0x1000000 0x0 0x00000000 0 0xffc20000 0x0 0x10000>;

ranges表示资源配置信息,7个元素为一组,第一个元素表示属性,第二个和第三个为pci域地址, 第四个和第五个为CPU域地址空间,第六个和第七个为size,表示设备将访问CPU域的地址时,将转化到pci域的地址。 上例中地址映射符合一般的一一对应映射。 元素属性暂不知如何理解

This post is licensed under CC BY 4.0 by the author.

Git with ssh key

FFmpeg基本使用