^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) Hisilicon Network Subsystem NIC controller
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) Required properties:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) - compatible: "hisilicon,hns-nic-v1" or "hisilicon,hns-nic-v2".
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) "hisilicon,hns-nic-v1" is for hip05.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) "hisilicon,hns-nic-v2" is for Hi1610 and Hi1612.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) - ae-handle: accelerator engine handle for hns,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) specifies a reference to the associating hardware driver node.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) see Documentation/devicetree/bindings/net/hisilicon-hns-dsaf.txt
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) - port-id: is the index of port provided by DSAF (the accelerator). DSAF can
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) connect to 8 PHYs. Port 0 to 1 are both used for administration purpose. They
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) are called debug ports.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) The remaining 6 PHYs are taken according to the mode of DSAF.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) In NIC mode of DSAF, all 6 PHYs are taken as ethernet ports to the CPU. The
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) port-id can be 2 to 7. Here is the diagram:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) +-----+---------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) | CPU |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) +-+-+-+---+-+-+-+-+-+-+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) | | | | | | | |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) debug service
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) port port
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) (0,1) (2-7)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) In Switch mode of DSAF, all 6 PHYs are taken as physical ports connect to a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) LAN Switch while the CPU side assume itself have one single NIC connect to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) this switch. In this case, the port-id will be 2 only.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) +-----+---------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) | CPU |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) +-+-+-+---+-+-+-+-+-+-+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) | | service| port(2)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) debug +------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) port | switch |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) (0,1) +-+-+-+-+-+-++
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) | | | | | |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) external port
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) This attribute is remained for compatible purpose. It is not recommended to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) use it in new code.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) - port-idx-in-ae: is the index of port provided by AE.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) In NIC mode of DSAF, all 6 PHYs of service DSAF are taken as ethernet ports
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) to the CPU. The port-idx-in-ae can be 0 to 5. Here is the diagram:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) +-----+---------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) | CPU |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) +-+-+-+---+-+-+-+-+-+-+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) | | | | | | | |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) debug debug service
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) port port port
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) (0) (0) (0-5)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) In Switch mode of DSAF, all 6 PHYs of service DSAF are taken as physical
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54) ports connected to a LAN Switch while the CPU side assume itself have one
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) single NIC connected to this switch. In this case, the port-idx-in-ae
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) will be 0 only.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57) +-----+-----+------+------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58) | CPU |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59) +-+-+-+-+-+-+-+-+-+-+-+-+-+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60) | | service| port(0)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61) debug debug +------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62) port port | switch |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63) (0) (0) +-+-+-+-+-+-++
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64) | | | | | |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65) external port
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 67) - local-mac-address: mac addr of the ethernet interface
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 68)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 69) Example:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 70)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 71) ethernet@0{
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 72) compatible = "hisilicon,hns-nic-v1";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 73) ae-handle = <&dsaf0>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 74) port-idx-in-ae = <0>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 75) local-mac-address = [a2 14 e4 4b 56 76];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 76) };