Merge branch 'for-5.11' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup
[linux-2.6-microblaze.git] / Documentation / ABI / testing / sysfs-firmware-sgi_uv
1 What:           /sys/firmware/sgi_uv/
2 Date:           September 2020
3 Contact:        Justin Ernst <justin.ernst@hpe.com>
4 Description:
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.