0001 What: /sys/firmware/sgi_uv/
0002 Date: September 2020
0003 Contact: Justin Ernst <justin.ernst@hpe.com>
0004 Description:
0005 The /sys/firmware/sgi_uv directory contains information
0006 about the UV platform.
0007
0008 Under that directory are a number of read-only attributes::
0009
0010 archtype
0011 hub_type
0012 hubless
0013 partition_id
0014 coherence_id
0015 uv_type
0016
0017 The archtype entry contains the UV architecture type that
0018 is used to select arch-dependent addresses and features.
0019 It can be set via the OEM_ID in the ACPI MADT table or by
0020 UVsystab entry both passed from UV BIOS.
0021
0022 The hub_type entry is used to select the type of hub which is
0023 similar to uv_type but encoded in a binary format. Include
0024 the file uv_hub.h to get the definitions.
0025
0026 The hubless entry basically is present and set only if there
0027 is no hub. In this case the hub_type entry is not present.
0028
0029 The partition_id entry contains the partition id.
0030 UV systems can be partitioned into multiple physical
0031 machines, which each partition running a unique copy
0032 of the operating system. Each partition will have a unique
0033 partition id.
0034
0035 The coherence_id entry contains the coherence id.
0036 A partitioned UV system can have one or more coherence
0037 domains. The coherence id indicates which coherence domain
0038 this partition is in.
0039
0040 The uv_type entry contains the hub revision number.
0041 This value can be used to identify the UV system version::
0042
0043 "0.*" = Hubless UV ('*' is subtype)
0044 "3.0" = UV2
0045 "5.0" = UV3
0046 "7.0" = UV4
0047 "7.1" = UV4a
0048 "9.0" = UV5
0049
0050 The /sys/firmware/sgi_uv directory also contains two directories::
0051
0052 hubs/
0053 pcibuses/
0054
0055 The hubs directory contains a number of hub objects, each representing
0056 a UV Hub visible to the BIOS. Each hub object's name is appended by a
0057 unique ordinal value (ex. /sys/firmware/sgi_uv/hubs/hub_5)
0058
0059 Each hub object directory contains a number of read-only attributes::
0060
0061 cnode
0062 location
0063 name
0064 nasid
0065 shared
0066 this_partition
0067
0068 The cnode entry contains the cnode number of the corresponding hub.
0069 If a cnode value is not applicable, the value returned will be -1.
0070
0071 The location entry contains the location string of the corresponding hub.
0072 This value is used to physically identify a hub within a system.
0073
0074 The name entry contains the name of the corresponding hub. This name can
0075 be two variants::
0076
0077 "UVHub x.x" = A 'node' ASIC, connecting a CPU to the interconnect
0078 fabric. The 'x.x' value represents the ASIC revision.
0079 (ex. 'UVHub 5.0')
0080
0081 "NLxRouter" = A 'router ASIC, only connecting other ASICs to
0082 the interconnect fabric. The 'x' value representing
0083 the fabric technology version. (ex. 'NL8Router')
0084
0085 The nasid entry contains the nasid number of the corresponding hub.
0086 If a nasid value is not applicable, the value returned will be -1.
0087
0088 The shared entry contains a boolean value describing whether the
0089 corresponding hub is shared between system partitions.
0090
0091 The this_partition entry contains a boolean value describing whether
0092 the corresponding hub is local to the current partition.
0093
0094 Each hub object directory also contains a number of port objects,
0095 each representing a fabric port on the corresponding hub.
0096 A port object's name is appended by a unique ordinal value
0097 (ex. /sys/firmware/sgi_uv/hubs/hub_5/port_3)
0098
0099 Each port object directory contains a number of read-only attributes::
0100
0101 conn_hub
0102 conn_port
0103
0104 The conn_hub entry contains a value representing the unique
0105 oridinal value of the hub on the other end of the fabric
0106 cable plugged into the port. If the port is disconnected,
0107 the value returned will be -1.
0108
0109 The conn_port entry contains a value representing the unique
0110 oridinal value of the port on the other end of the fabric cable
0111 plugged into the port. If the port is disconnected, the value
0112 returned will be -1.
0113
0114 Ex:
0115 A value of '3' is read from:
0116 /sys/firmware/sgi_uv/hubs/hub_5/port_3/conn_hub
0117
0118 and a value of '6' is read from:
0119 /sys/firmware/sgi_uv/hubs/hub_5/port_3/conn_port
0120
0121 representing that this port is connected to:
0122 /sys/firmware/sgi_uv/hubs/hub_3/port_6
0123
0124 The pcibuses directory contains a number of PCI bus objects.
0125 Each PCI bus object's name is appended by its PCI bus address.
0126 (ex. pcibus_0003:80)
0127
0128 Each pcibus object has a number of possible read-only attributes::
0129
0130 type
0131 location
0132 slot
0133 ppb_addr
0134 iio_stack
0135
0136 The type entry contains a value describing the type of IO at
0137 the corresponding PCI bus address. Known possible values
0138 across all UV versions are::
0139
0140 BASE IO
0141 PCIe IO
0142 PCIe SLOT
0143 NODE IO
0144 Riser
0145 PPB
0146
0147 The location entry contains the location string of the UV Hub
0148 of the CPU physically connected to the corresponding PCI bus.
0149
0150 The slot entry contains the physical slot number of the
0151 corresponding PCI bus. This value is used to physically locate
0152 PCI cards within a system.
0153
0154 The ppb_addr entry contains the PCI address string of the
0155 bridged PCI bus. This entry is only present when the PCI bus
0156 object type is 'PPB'.
0157
0158 The iio_stack entry contains a value describing the IIO stack
0159 number that the corresponding PCI bus object is connected to.