alpd4
alpd4

Reputation: 1

Devicetree "ranges" property on simple-bus

I work with a FPGA SoC. I am trying to understand the ranges property in devicetree. I read "ranges" chapter on devicetree specification and simple-bus binding document for kernel but these are not clear enough to me.

In the example given in the specification and other posts on web pages, it explained with triple values to ranges :

soc {
   compatible = "simple-bus";
   #address-cells = <1>;
   #size-cells = <1>;
   ranges = <0x0 0xe0000000 0x00100000>;

   serial@4600 {
      device_type = "serial";

But, in the dts/devicetree of the board I have, there is a six-values assigment for range property.

How can I find out at which memory address the these FICs shown in the code is located? I learned that the HIGH and LOW parts are related to 32-bit and 64-bit architectures.

Can anyone explain that property through FICs (fabric interface controllers) please?

/ {
    bus: bus@40000000 {
        compatible = "simple-bus";
        #address-cells = <2>;
        #size-cells = <2>;
        ranges = <0x0 0x40000000 0x0 0x40000000 0x0 0x20000000>, /* FIC */
                 <0x0 0x60000000 0x0 0x60000000 0x0 0x20000000>, /* FIC0, LO */
                 <0x0 0xe0000000 0x0 0xe0000000 0x0 0x20000000>, /* FIC1, LO */
                 <0x20 0x0 0x20 0x0 0x10 0x0>, /* FIC0,HI */
                 <0x30 0x0 0x30 0x0 0x10 0x0>; /* FIC1,HI */  
    };
};

I'm trying to remove FIC ports from device-tree. I'm in the research phase.

Upvotes: -1

Views: 67

Answers (0)

Related Questions