1 Hisilicon DSA Fabric device controller 1 Hisilicon DSA Fabric device controller 2 2 3 Required properties: 3 Required properties: 4 - compatible: should be "hisilicon,hns-dsaf-v1 4 - compatible: should be "hisilicon,hns-dsaf-v1" or "hisilicon,hns-dsaf-v2". 5 "hisilicon,hns-dsaf-v1" is for hip05. 5 "hisilicon,hns-dsaf-v1" is for hip05. 6 "hisilicon,hns-dsaf-v2" is for Hi1610 and Hi 6 "hisilicon,hns-dsaf-v2" is for Hi1610 and Hi1612. 7 - mode: dsa fabric mode string. only support o 7 - mode: dsa fabric mode string. only support one of dsaf modes like these: 8 "2port-64vf", 8 "2port-64vf", 9 "6port-16rss", 9 "6port-16rss", 10 "6port-16vf", 10 "6port-16vf", 11 "single-port". 11 "single-port". 12 - interrupts: should contain the DSA Fabric an 12 - interrupts: should contain the DSA Fabric and rcb interrupt. 13 - reg: specifies base physical address(es) and 13 - reg: specifies base physical address(es) and size of the device registers. 14 The first region is external interface contr 14 The first region is external interface control register base and size(optional, 15 only used when subctrl-syscon does not exist 15 only used when subctrl-syscon does not exist). It is recommended using 16 subctrl-syscon rather than this address. 16 subctrl-syscon rather than this address. 17 The second region is SerDes base register an 17 The second region is SerDes base register and size(optional, only used when 18 serdes-syscon in port node does not exist). 18 serdes-syscon in port node does not exist). It is recommended using 19 serdes-syscon rather than this address. 19 serdes-syscon rather than this address. 20 The third region is the PPE register base an 20 The third region is the PPE register base and size. 21 The fourth region is dsa fabric base registe 21 The fourth region is dsa fabric base register and size. It is not required for 22 single-port mode. 22 single-port mode. 23 - reg-names: may be ppe-base and(or) dsaf-base 23 - reg-names: may be ppe-base and(or) dsaf-base. It is used to find the 24 corresponding reg's index. 24 corresponding reg's index. 25 25 26 - phy-handle: phy handle of physical port, 0 i 26 - phy-handle: phy handle of physical port, 0 if not any phy device. It is optional 27 attribute. If port node exists, phy-handle i 27 attribute. If port node exists, phy-handle in each port node will be used. 28 see ethernet.txt [1]. 28 see ethernet.txt [1]. 29 - subctrl-syscon: is syscon handle for externa 29 - subctrl-syscon: is syscon handle for external interface control register. 30 - reset-field-offset: is offset of reset field 30 - reset-field-offset: is offset of reset field. Its value depends on the hardware 31 user manual. 31 user manual. 32 - buf-size: rx buffer size, should be 16-1024. 32 - buf-size: rx buffer size, should be 16-1024. 33 - desc-num: number of description in TX and RX 33 - desc-num: number of description in TX and RX queue, should be 512, 1024, 2048 or 4096. 34 34 35 - port: subnodes of dsaf. A dsaf node may cont 35 - port: subnodes of dsaf. A dsaf node may contain several port nodes(Depending 36 on mode of dsaf). Port node contain some att 36 on mode of dsaf). Port node contain some attributes listed below: 37 - reg: is physical port index in one dsaf. 37 - reg: is physical port index in one dsaf. 38 - phy-handle: phy handle of physical port. It 38 - phy-handle: phy handle of physical port. It is not required if there isn't 39 phy device. see ethernet.txt [1]. 39 phy device. see ethernet.txt [1]. 40 - serdes-syscon: is syscon handle for SerDes r 40 - serdes-syscon: is syscon handle for SerDes register. 41 - cpld-syscon: is syscon handle + register off 41 - cpld-syscon: is syscon handle + register offset pair for cpld register. It is 42 not required if there isn't cpld device. 42 not required if there isn't cpld device. 43 - port-rst-offset: is offset of reset field fo 43 - port-rst-offset: is offset of reset field for each port in dsaf. Its value 44 depends on the hardware user manual. 44 depends on the hardware user manual. 45 - port-mode-offset: is offset of port mode fie 45 - port-mode-offset: is offset of port mode field for each port in dsaf. Its 46 value depends on the hardware user manual. 46 value depends on the hardware user manual. 47 - mc-mac-mask: mask of multicast address, dete 47 - mc-mac-mask: mask of multicast address, determines bit in multicast address 48 to set: 48 to set: 49 1 stands for this bit will be precisely matc 49 1 stands for this bit will be precisely matched, TCAM will check this bit of 50 MAC address. 50 MAC address. 51 0 stands for this bit will be fuzzy matched, 51 0 stands for this bit will be fuzzy matched, TCAM won't care about this bit 52 of MAC address. 52 of MAC address. 53 53 54 [1] Documentation/devicetree/bindings/net/phy. 54 [1] Documentation/devicetree/bindings/net/phy.txt 55 55 56 Example: 56 Example: 57 57 58 dsaf0: dsa@c7000000 { 58 dsaf0: dsa@c7000000 { 59 compatible = "hisilicon,hns-dsaf-v1"; 59 compatible = "hisilicon,hns-dsaf-v1"; 60 mode = "6port-16rss"; 60 mode = "6port-16rss"; 61 interrupt-parent = <&mbigen_dsa>; 61 interrupt-parent = <&mbigen_dsa>; 62 reg = <0x0 0xc5000000 0x0 0x890000 62 reg = <0x0 0xc5000000 0x0 0x890000 63 0x0 0xc7000000 0x0 0x60000>; 63 0x0 0xc7000000 0x0 0x60000>; 64 reg-names = "ppe-base", "dsaf-base"; 64 reg-names = "ppe-base", "dsaf-base"; 65 subctrl-syscon = <&subctrl>; 65 subctrl-syscon = <&subctrl>; 66 reset-field-offset = 0; 66 reset-field-offset = 0; 67 interrupts = <131 4>,<132 4>, <133 4>, 67 interrupts = <131 4>,<132 4>, <133 4>,<134 4>, 68 <135 4>,<136 4>, <137 4>, 68 <135 4>,<136 4>, <137 4>,<138 4>, 69 <139 4>,<140 4>, <141 4>, 69 <139 4>,<140 4>, <141 4>,<142 4>, 70 <143 4>,<144 4>, <145 4>, 70 <143 4>,<144 4>, <145 4>,<146 4>, 71 <147 4>,<148 4>, <384 1>, 71 <147 4>,<148 4>, <384 1>,<385 1>, 72 <386 1>,<387 1>, <388 1>, 72 <386 1>,<387 1>, <388 1>,<389 1>, 73 <390 1>,<391 1>, 73 <390 1>,<391 1>, 74 buf-size = <4096>; 74 buf-size = <4096>; 75 desc-num = <1024>; 75 desc-num = <1024>; 76 dma-coherent; 76 dma-coherent; 77 77 78 port@0 { 78 port@0 { 79 reg = 0; 79 reg = 0; 80 phy-handle = <&phy0>; 80 phy-handle = <&phy0>; 81 serdes-syscon = <&serdes>; 81 serdes-syscon = <&serdes>; 82 mc-mac-mask = [ff f0 00 00 00 82 mc-mac-mask = [ff f0 00 00 00 00]; 83 }; 83 }; 84 84 85 port@1 { 85 port@1 { 86 reg = 1; 86 reg = 1; 87 serdes-syscon = <&serdes>; 87 serdes-syscon = <&serdes>; 88 mc-mac-mask = [ff f0 00 00 00 88 mc-mac-mask = [ff f0 00 00 00 00]; 89 }; 89 }; 90 }; 90 };
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.