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			partition_id
11			coherence_id
12			uv_type
13
14		The partition_id entry contains the partition id.
15		UV systems can be partitioned into multiple physical
16		machines, which each partition running a unique copy
17		of the operating system. Each partition will have a unique
18		partition id.
19
20		The coherence_id entry contains the coherence id.
21		A partitioned UV system can have one or more coherence
22		domains. The coherence id indicates which coherence domain
23		this partition is in.
24
25		The uv_type entry contains the hub revision number.
26		This value can be used to identify the UV system version::
27
28			"3.0" = UV2
29			"5.0" = UV3
30			"7.0" = UV4
31			"7.1" = UV4a
32			"9.0" = UV5
33
34		The /sys/firmware/sgi_uv directory also contains two directories::
35
36			hubs/
37			pcibuses/
38
39		The hubs directory contains a number of hub objects, each representing
40		a UV Hub visible to the BIOS. Each hub object's name is appended by a
41		unique ordinal value (ex. /sys/firmware/sgi_uv/hubs/hub_5)
42
43		Each hub object directory contains a number of read-only attributes::
44
45			cnode
46			location
47			name
48			nasid
49			shared
50			this_partition
51
52		The cnode entry contains the cnode number of the corresponding hub.
53		If a cnode value is not applicable, the value returned will be -1.
54
55		The location entry contains the location string of the corresponding hub.
56		This value is used to physically identify a hub within a system.
57
58		The name entry contains the name of the corresponding hub. This name can
59		be two variants::
60
61			"UVHub x.x" = A 'node' ASIC, connecting a CPU to the interconnect
62			fabric. The 'x.x' value represents the ASIC revision.
63			(ex. 'UVHub 5.0')
64
65			"NLxRouter" = A 'router ASIC, only connecting other ASICs to
66			the interconnect fabric. The 'x' value representing
67			the fabric technology version. (ex. 'NL8Router')
68
69		The nasid entry contains the nasid number of the corresponding hub.
70		If a nasid value is not applicable, the value returned will be -1.
71
72		The shared entry contains a boolean value describing whether the
73		corresponding hub is shared between system partitions.
74
75		The this_partition entry contains a boolean value describing whether
76		the corresponding hub is local to the current partition.
77
78		Each hub object directory also contains a number of port objects,
79		each representing a fabric port on the corresponding hub.
80		A port object's name is appended by a unique ordinal value
81		(ex. /sys/firmware/sgi_uv/hubs/hub_5/port_3)
82
83		Each port object directory contains a number of read-only attributes::
84
85			conn_hub
86			conn_port
87
88		The conn_hub entry contains a value representing the unique
89		oridinal value of the hub on the other end of the fabric
90		cable plugged into the port. If the port is disconnected,
91		the value returned will be -1.
92
93		The conn_port entry contains a value representing the unique
94		oridinal value of the port on the other end of the fabric cable
95		plugged into the port. If the port is disconnected, the value
96		returned will be -1.
97
98		Ex:
99			A value of '3' is read from:
100				/sys/firmware/sgi_uv/hubs/hub_5/port_3/conn_hub
101
102			and a value of '6' is read from:
103				/sys/firmware/sgi_uv/hubs/hub_5/port_3/conn_port
104
105			representing that this port is connected to:
106				/sys/firmware/sgi_uv/hubs/hub_3/port_6
107
108		The pcibuses directory contains a number of PCI bus objects.
109		Each PCI bus object's name is appended by its PCI bus address.
110		(ex. pcibus_0003:80)
111
112		Each pcibus object has a number of possible read-only attributes::
113
114			type
115			location
116			slot
117			ppb_addr
118			iio_stack
119
120		The type entry contains a value describing the type of IO at
121		the corresponding PCI bus address. Known possible values
122		across all UV versions are::
123
124			BASE IO
125			PCIe IO
126			PCIe SLOT
127			NODE IO
128			Riser
129			PPB
130
131		The location entry contains the location string of the UV Hub
132		of the CPU physically connected to the corresponding PCI bus.
133
134		The slot entry contains the physical slot number of the
135		corresponding PCI bus. This value is used to physically locate
136		PCI cards within a system.
137
138		The ppb_addr entry contains the PCI address string of the
139		bridged PCI bus. This entry is only present when the PCI bus
140		object type is 'PPB'.
141
142		The iio_stack entry contains a value describing the IIO stack
143		number that the corresponding PCI bus object is connected to.
144