^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) ==============================================================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) NUMA binding description.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) ==============================================================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) ==============================================================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) 1 - Introduction
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) ==============================================================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) Systems employing a Non Uniform Memory Access (NUMA) architecture contain
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) collections of hardware resources including processors, memory, and I/O buses,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) that comprise what is commonly known as a NUMA node.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) Processor accesses to memory within the local NUMA node is generally faster
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) than processor accesses to memory outside of the local NUMA node.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) DT defines interfaces that allow the platform to convey NUMA node
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) topology information to OS.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) ==============================================================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) 2 - numa-node-id
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) ==============================================================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) For the purpose of identification, each NUMA node is associated with a unique
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) token known as a node id. For the purpose of this binding
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) a node id is a 32-bit integer.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) A device node is associated with a NUMA node by the presence of a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) numa-node-id property which contains the node id of the device.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) Example:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) /* numa node 0 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) numa-node-id = <0>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) /* numa node 1 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) numa-node-id = <1>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) ==============================================================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) 3 - distance-map
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) ==============================================================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) The optional device tree node distance-map describes the relative
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) distance (memory latency) between all numa nodes.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) - compatible : Should at least contain "numa-distance-map-v1".
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) - distance-matrix
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) This property defines a matrix to describe the relative distances
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) between all numa nodes.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) It is represented as a list of node pairs and their relative distance.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) Note:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) 1. Each entry represents distance from first node to second node.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) The distances are equal in either direction.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) 2. The distance from a node to self (local distance) is represented
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) with value 10 and all internode distance should be represented with
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54) a value greater than 10.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) 3. distance-matrix should have entries in lexicographical ascending
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) order of nodes.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57) 4. There must be only one device node distance-map which must
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58) reside in the root node.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59) 5. If the distance-map node is not present, a default
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60) distance-matrix is used.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62) Example:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63) 4 nodes connected in mesh/ring topology as below,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65) 0_______20______1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66) | |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 67) | |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 68) 20 20
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 69) | |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 70) | |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 71) |_______________|
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 72) 3 20 2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 73)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 74) if relative distance for each hop is 20,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 75) then internode distance would be,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 76) 0 -> 1 = 20
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 77) 1 -> 2 = 20
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 78) 2 -> 3 = 20
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 79) 3 -> 0 = 20
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 80) 0 -> 2 = 40
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 81) 1 -> 3 = 40
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 82)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 83) and dt presentation for this distance matrix is,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 84)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 85) distance-map {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 86) compatible = "numa-distance-map-v1";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 87) distance-matrix = <0 0 10>,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 88) <0 1 20>,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 89) <0 2 40>,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 90) <0 3 20>,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 91) <1 0 20>,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 92) <1 1 10>,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 93) <1 2 20>,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 94) <1 3 40>,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 95) <2 0 40>,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 96) <2 1 20>,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 97) <2 2 10>,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 98) <2 3 20>,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 99) <3 0 20>,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100) <3 1 40>,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101) <3 2 20>,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102) <3 3 10>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 103) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 104)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 105) ==============================================================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 106) 4 - Example dts
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 107) ==============================================================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 108)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 109) Dual socket system consists of 2 boards connected through ccn bus and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 110) each board having one socket/soc of 8 cpus, memory and pci bus.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 111)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 112) memory@c00000 {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 113) device_type = "memory";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 114) reg = <0x0 0xc00000 0x0 0x80000000>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 115) /* node 0 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 116) numa-node-id = <0>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 117) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 118)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 119) memory@10000000000 {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 120) device_type = "memory";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 121) reg = <0x100 0x0 0x0 0x80000000>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 122) /* node 1 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 123) numa-node-id = <1>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 124) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 125)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 126) cpus {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 127) #address-cells = <2>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 128) #size-cells = <0>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 129)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 130) cpu@0 {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 131) device_type = "cpu";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 132) compatible = "arm,armv8";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 133) reg = <0x0 0x0>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 134) enable-method = "psci";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 135) /* node 0 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 136) numa-node-id = <0>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 137) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 138) cpu@1 {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 139) device_type = "cpu";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 140) compatible = "arm,armv8";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 141) reg = <0x0 0x1>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 142) enable-method = "psci";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 143) numa-node-id = <0>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 144) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 145) cpu@2 {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 146) device_type = "cpu";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 147) compatible = "arm,armv8";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 148) reg = <0x0 0x2>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 149) enable-method = "psci";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 150) numa-node-id = <0>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 151) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 152) cpu@3 {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 153) device_type = "cpu";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 154) compatible = "arm,armv8";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 155) reg = <0x0 0x3>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 156) enable-method = "psci";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 157) numa-node-id = <0>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 158) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 159) cpu@4 {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 160) device_type = "cpu";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 161) compatible = "arm,armv8";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 162) reg = <0x0 0x4>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 163) enable-method = "psci";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 164) numa-node-id = <0>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 165) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 166) cpu@5 {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 167) device_type = "cpu";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 168) compatible = "arm,armv8";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 169) reg = <0x0 0x5>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 170) enable-method = "psci";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 171) numa-node-id = <0>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 172) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 173) cpu@6 {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 174) device_type = "cpu";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 175) compatible = "arm,armv8";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 176) reg = <0x0 0x6>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 177) enable-method = "psci";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 178) numa-node-id = <0>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 179) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 180) cpu@7 {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 181) device_type = "cpu";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 182) compatible = "arm,armv8";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 183) reg = <0x0 0x7>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 184) enable-method = "psci";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 185) numa-node-id = <0>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 186) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 187) cpu@8 {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 188) device_type = "cpu";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 189) compatible = "arm,armv8";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 190) reg = <0x0 0x8>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 191) enable-method = "psci";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 192) /* node 1 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 193) numa-node-id = <1>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 194) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 195) cpu@9 {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 196) device_type = "cpu";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 197) compatible = "arm,armv8";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 198) reg = <0x0 0x9>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 199) enable-method = "psci";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 200) numa-node-id = <1>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 201) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 202) cpu@a {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 203) device_type = "cpu";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 204) compatible = "arm,armv8";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 205) reg = <0x0 0xa>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 206) enable-method = "psci";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 207) numa-node-id = <1>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 208) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 209) cpu@b {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 210) device_type = "cpu";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 211) compatible = "arm,armv8";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 212) reg = <0x0 0xb>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 213) enable-method = "psci";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 214) numa-node-id = <1>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 215) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 216) cpu@c {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 217) device_type = "cpu";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 218) compatible = "arm,armv8";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 219) reg = <0x0 0xc>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 220) enable-method = "psci";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 221) numa-node-id = <1>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 222) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 223) cpu@d {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 224) device_type = "cpu";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 225) compatible = "arm,armv8";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 226) reg = <0x0 0xd>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 227) enable-method = "psci";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 228) numa-node-id = <1>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 229) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 230) cpu@e {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 231) device_type = "cpu";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 232) compatible = "arm,armv8";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 233) reg = <0x0 0xe>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 234) enable-method = "psci";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 235) numa-node-id = <1>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 236) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 237) cpu@f {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 238) device_type = "cpu";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 239) compatible = "arm,armv8";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 240) reg = <0x0 0xf>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 241) enable-method = "psci";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 242) numa-node-id = <1>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 243) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 244) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 245)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 246) pcie0: pcie0@848000000000 {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 247) compatible = "arm,armv8";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 248) device_type = "pci";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 249) bus-range = <0 255>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 250) #size-cells = <2>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 251) #address-cells = <3>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 252) reg = <0x8480 0x00000000 0 0x10000000>; /* Configuration space */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 253) ranges = <0x03000000 0x8010 0x00000000 0x8010 0x00000000 0x70 0x00000000>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 254) /* node 0 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 255) numa-node-id = <0>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 256) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 257)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 258) pcie1: pcie1@948000000000 {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 259) compatible = "arm,armv8";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 260) device_type = "pci";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 261) bus-range = <0 255>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 262) #size-cells = <2>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 263) #address-cells = <3>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 264) reg = <0x9480 0x00000000 0 0x10000000>; /* Configuration space */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 265) ranges = <0x03000000 0x9010 0x00000000 0x9010 0x00000000 0x70 0x00000000>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 266) /* node 1 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 267) numa-node-id = <1>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 268) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 269)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 270) distance-map {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 271) compatible = "numa-distance-map-v1";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 272) distance-matrix = <0 0 10>,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 273) <0 1 20>,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 274) <1 1 10>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 275) };