1What: /sys/firmware/sgi_uv/ 2Date: September 2020 3Contact: Justin Ernst <justin.ernst@hpe.com> 4Description: 5 The /sys/firmware/sgi_uv directory contains information 6 about the UV platform. 7 8 Under that directory are a number of read-only attributes:: 9 10 archtype 11 hub_type 12 hubless 13 partition_id 14 coherence_id 15 uv_type 16 17 The archtype entry contains the UV architecture type that 18 is used to select arch-dependent addresses and features. 19 It can be set via the OEM_ID in the ACPI MADT table or by 20 UVsystab entry both passed from UV BIOS. 21 22 The hub_type entry is used to select the type of hub which is 23 similar to uv_type but encoded in a binary format. Include 24 the file uv_hub.h to get the definitions. 25 26 The hubless entry basically is present and set only if there 27 is no hub. In this case the hub_type entry is not present. 28 29 The partition_id entry contains the partition id. 30 UV systems can be partitioned into multiple physical 31 machines, which each partition running a unique copy 32 of the operating system. Each partition will have a unique 33 partition id. 34 35 The coherence_id entry contains the coherence id. 36 A partitioned UV system can have one or more coherence 37 domains. The coherence id indicates which coherence domain 38 this partition is in. 39 40 The uv_type entry contains the hub revision number. 41 This value can be used to identify the UV system version:: 42 "0.*" = Hubless UV ('*' is subtype) 43 44 "3.0" = UV2 45 "5.0" = UV3 46 "7.0" = UV4 47 "7.1" = UV4a 48 "9.0" = UV5 49 50 The /sys/firmware/sgi_uv directory also contains two directories:: 51 52 hubs/ 53 pcibuses/ 54 55 The hubs directory contains a number of hub objects, each representing 56 a UV Hub visible to the BIOS. Each hub object's name is appended by a 57 unique ordinal value (ex. /sys/firmware/sgi_uv/hubs/hub_5) 58 59 Each hub object directory contains a number of read-only attributes:: 60 61 cnode 62 location 63 name 64 nasid 65 shared 66 this_partition 67 68 The cnode entry contains the cnode number of the corresponding hub. 69 If a cnode value is not applicable, the value returned will be -1. 70 71 The location entry contains the location string of the corresponding hub. 72 This value is used to physically identify a hub within a system. 73 74 The name entry contains the name of the corresponding hub. This name can 75 be two variants:: 76 77 "UVHub x.x" = A 'node' ASIC, connecting a CPU to the interconnect 78 fabric. The 'x.x' value represents the ASIC revision. 79 (ex. 'UVHub 5.0') 80 81 "NLxRouter" = A 'router ASIC, only connecting other ASICs to 82 the interconnect fabric. The 'x' value representing 83 the fabric technology version. (ex. 'NL8Router') 84 85 The nasid entry contains the nasid number of the corresponding hub. 86 If a nasid value is not applicable, the value returned will be -1. 87 88 The shared entry contains a boolean value describing whether the 89 corresponding hub is shared between system partitions. 90 91 The this_partition entry contains a boolean value describing whether 92 the corresponding hub is local to the current partition. 93 94 Each hub object directory also contains a number of port objects, 95 each representing a fabric port on the corresponding hub. 96 A port object's name is appended by a unique ordinal value 97 (ex. /sys/firmware/sgi_uv/hubs/hub_5/port_3) 98 99 Each port object directory contains a number of read-only attributes:: 100 101 conn_hub 102 conn_port 103 104 The conn_hub entry contains a value representing the unique 105 oridinal value of the hub on the other end of the fabric 106 cable plugged into the port. If the port is disconnected, 107 the value returned will be -1. 108 109 The conn_port entry contains a value representing the unique 110 oridinal value of the port on the other end of the fabric cable 111 plugged into the port. If the port is disconnected, the value 112 returned will be -1. 113 114 Ex: 115 A value of '3' is read from: 116 /sys/firmware/sgi_uv/hubs/hub_5/port_3/conn_hub 117 118 and a value of '6' is read from: 119 /sys/firmware/sgi_uv/hubs/hub_5/port_3/conn_port 120 121 representing that this port is connected to: 122 /sys/firmware/sgi_uv/hubs/hub_3/port_6 123 124 The pcibuses directory contains a number of PCI bus objects. 125 Each PCI bus object's name is appended by its PCI bus address. 126 (ex. pcibus_0003:80) 127 128 Each pcibus object has a number of possible read-only attributes:: 129 130 type 131 location 132 slot 133 ppb_addr 134 iio_stack 135 136 The type entry contains a value describing the type of IO at 137 the corresponding PCI bus address. Known possible values 138 across all UV versions are:: 139 140 BASE IO 141 PCIe IO 142 PCIe SLOT 143 NODE IO 144 Riser 145 PPB 146 147 The location entry contains the location string of the UV Hub 148 of the CPU physically connected to the corresponding PCI bus. 149 150 The slot entry contains the physical slot number of the 151 corresponding PCI bus. This value is used to physically locate 152 PCI cards within a system. 153 154 The ppb_addr entry contains the PCI address string of the 155 bridged PCI bus. This entry is only present when the PCI bus 156 object type is 'PPB'. 157 158 The iio_stack entry contains a value describing the IIO stack 159 number that the corresponding PCI bus object is connected to. 160