162306a36Sopenharmony_ciWhat:		/sys/firmware/sgi_uv/
262306a36Sopenharmony_ciDate:		September 2020
362306a36Sopenharmony_ciContact:	Justin Ernst <justin.ernst@hpe.com>
462306a36Sopenharmony_ciDescription:
562306a36Sopenharmony_ci		The /sys/firmware/sgi_uv directory contains information
662306a36Sopenharmony_ci		about the UV platform.
762306a36Sopenharmony_ci
862306a36Sopenharmony_ci		Under that directory are a number of read-only attributes::
962306a36Sopenharmony_ci
1062306a36Sopenharmony_ci			archtype
1162306a36Sopenharmony_ci			hub_type
1262306a36Sopenharmony_ci			hubless
1362306a36Sopenharmony_ci			partition_id
1462306a36Sopenharmony_ci			coherence_id
1562306a36Sopenharmony_ci			uv_type
1662306a36Sopenharmony_ci
1762306a36Sopenharmony_ci		The archtype entry contains the UV architecture type that
1862306a36Sopenharmony_ci		is used to select arch-dependent addresses and features.
1962306a36Sopenharmony_ci		It can be set via the OEM_ID in the ACPI MADT table or by
2062306a36Sopenharmony_ci		UVsystab entry both passed from UV BIOS.
2162306a36Sopenharmony_ci
2262306a36Sopenharmony_ci		The hub_type entry is used to select the type of hub which is
2362306a36Sopenharmony_ci		similar to uv_type but encoded in a binary format.  Include
2462306a36Sopenharmony_ci		the file uv_hub.h to get the definitions.
2562306a36Sopenharmony_ci
2662306a36Sopenharmony_ci		The hubless entry basically is present and set only if there
2762306a36Sopenharmony_ci		is no hub.  In this case the hub_type entry is not present.
2862306a36Sopenharmony_ci
2962306a36Sopenharmony_ci		The partition_id entry contains the partition id.
3062306a36Sopenharmony_ci		UV systems can be partitioned into multiple physical
3162306a36Sopenharmony_ci		machines, which each partition running a unique copy
3262306a36Sopenharmony_ci		of the operating system. Each partition will have a unique
3362306a36Sopenharmony_ci		partition id.
3462306a36Sopenharmony_ci
3562306a36Sopenharmony_ci		The coherence_id entry contains the coherence id.
3662306a36Sopenharmony_ci		A partitioned UV system can have one or more coherence
3762306a36Sopenharmony_ci		domains. The coherence id indicates which coherence domain
3862306a36Sopenharmony_ci		this partition is in.
3962306a36Sopenharmony_ci
4062306a36Sopenharmony_ci		The uv_type entry contains the hub revision number.
4162306a36Sopenharmony_ci		This value can be used to identify the UV system version::
4262306a36Sopenharmony_ci
4362306a36Sopenharmony_ci			"0.*" = Hubless UV ('*' is subtype)
4462306a36Sopenharmony_ci			"3.0" = UV2
4562306a36Sopenharmony_ci			"5.0" = UV3
4662306a36Sopenharmony_ci			"7.0" = UV4
4762306a36Sopenharmony_ci			"7.1" = UV4a
4862306a36Sopenharmony_ci			"9.0" = UV5
4962306a36Sopenharmony_ci
5062306a36Sopenharmony_ci		The /sys/firmware/sgi_uv directory also contains two directories::
5162306a36Sopenharmony_ci
5262306a36Sopenharmony_ci			hubs/
5362306a36Sopenharmony_ci			pcibuses/
5462306a36Sopenharmony_ci
5562306a36Sopenharmony_ci		The hubs directory contains a number of hub objects, each representing
5662306a36Sopenharmony_ci		a UV Hub visible to the BIOS. Each hub object's name is appended by a
5762306a36Sopenharmony_ci		unique ordinal value (ex. /sys/firmware/sgi_uv/hubs/hub_5)
5862306a36Sopenharmony_ci
5962306a36Sopenharmony_ci		Each hub object directory contains a number of read-only attributes::
6062306a36Sopenharmony_ci
6162306a36Sopenharmony_ci			cnode
6262306a36Sopenharmony_ci			location
6362306a36Sopenharmony_ci			name
6462306a36Sopenharmony_ci			nasid
6562306a36Sopenharmony_ci			shared
6662306a36Sopenharmony_ci			this_partition
6762306a36Sopenharmony_ci
6862306a36Sopenharmony_ci		The cnode entry contains the cnode number of the corresponding hub.
6962306a36Sopenharmony_ci		If a cnode value is not applicable, the value returned will be -1.
7062306a36Sopenharmony_ci
7162306a36Sopenharmony_ci		The location entry contains the location string of the corresponding hub.
7262306a36Sopenharmony_ci		This value is used to physically identify a hub within a system.
7362306a36Sopenharmony_ci
7462306a36Sopenharmony_ci		The name entry contains the name of the corresponding hub. This name can
7562306a36Sopenharmony_ci		be two variants::
7662306a36Sopenharmony_ci
7762306a36Sopenharmony_ci			"UVHub x.x" = A 'node' ASIC, connecting a CPU to the interconnect
7862306a36Sopenharmony_ci			fabric. The 'x.x' value represents the ASIC revision.
7962306a36Sopenharmony_ci			(ex. 'UVHub 5.0')
8062306a36Sopenharmony_ci
8162306a36Sopenharmony_ci			"NLxRouter" = A 'router ASIC, only connecting other ASICs to
8262306a36Sopenharmony_ci			the interconnect fabric. The 'x' value representing
8362306a36Sopenharmony_ci			the fabric technology version. (ex. 'NL8Router')
8462306a36Sopenharmony_ci
8562306a36Sopenharmony_ci		The nasid entry contains the nasid number of the corresponding hub.
8662306a36Sopenharmony_ci		If a nasid value is not applicable, the value returned will be -1.
8762306a36Sopenharmony_ci
8862306a36Sopenharmony_ci		The shared entry contains a boolean value describing whether the
8962306a36Sopenharmony_ci		corresponding hub is shared between system partitions.
9062306a36Sopenharmony_ci
9162306a36Sopenharmony_ci		The this_partition entry contains a boolean value describing whether
9262306a36Sopenharmony_ci		the corresponding hub is local to the current partition.
9362306a36Sopenharmony_ci
9462306a36Sopenharmony_ci		Each hub object directory also contains a number of port objects,
9562306a36Sopenharmony_ci		each representing a fabric port on the corresponding hub.
9662306a36Sopenharmony_ci		A port object's name is appended by a unique ordinal value
9762306a36Sopenharmony_ci		(ex. /sys/firmware/sgi_uv/hubs/hub_5/port_3)
9862306a36Sopenharmony_ci
9962306a36Sopenharmony_ci		Each port object directory contains a number of read-only attributes::
10062306a36Sopenharmony_ci
10162306a36Sopenharmony_ci			conn_hub
10262306a36Sopenharmony_ci			conn_port
10362306a36Sopenharmony_ci
10462306a36Sopenharmony_ci		The conn_hub entry contains a value representing the unique
10562306a36Sopenharmony_ci		ordinal value of the hub on the other end of the fabric
10662306a36Sopenharmony_ci		cable plugged into the port. If the port is disconnected,
10762306a36Sopenharmony_ci		the value returned will be -1.
10862306a36Sopenharmony_ci
10962306a36Sopenharmony_ci		The conn_port entry contains a value representing the unique
11062306a36Sopenharmony_ci		ordinal value of the port on the other end of the fabric cable
11162306a36Sopenharmony_ci		plugged into the port. If the port is disconnected, the value
11262306a36Sopenharmony_ci		returned will be -1.
11362306a36Sopenharmony_ci
11462306a36Sopenharmony_ci		Ex:
11562306a36Sopenharmony_ci			A value of '3' is read from:
11662306a36Sopenharmony_ci				/sys/firmware/sgi_uv/hubs/hub_5/port_3/conn_hub
11762306a36Sopenharmony_ci
11862306a36Sopenharmony_ci			and a value of '6' is read from:
11962306a36Sopenharmony_ci				/sys/firmware/sgi_uv/hubs/hub_5/port_3/conn_port
12062306a36Sopenharmony_ci
12162306a36Sopenharmony_ci			representing that this port is connected to:
12262306a36Sopenharmony_ci				/sys/firmware/sgi_uv/hubs/hub_3/port_6
12362306a36Sopenharmony_ci
12462306a36Sopenharmony_ci		The pcibuses directory contains a number of PCI bus objects.
12562306a36Sopenharmony_ci		Each PCI bus object's name is appended by its PCI bus address.
12662306a36Sopenharmony_ci		(ex. pcibus_0003:80)
12762306a36Sopenharmony_ci
12862306a36Sopenharmony_ci		Each pcibus object has a number of possible read-only attributes::
12962306a36Sopenharmony_ci
13062306a36Sopenharmony_ci			type
13162306a36Sopenharmony_ci			location
13262306a36Sopenharmony_ci			slot
13362306a36Sopenharmony_ci			ppb_addr
13462306a36Sopenharmony_ci			iio_stack
13562306a36Sopenharmony_ci
13662306a36Sopenharmony_ci		The type entry contains a value describing the type of IO at
13762306a36Sopenharmony_ci		the corresponding PCI bus address. Known possible values
13862306a36Sopenharmony_ci		across all UV versions are::
13962306a36Sopenharmony_ci
14062306a36Sopenharmony_ci			BASE IO
14162306a36Sopenharmony_ci			PCIe IO
14262306a36Sopenharmony_ci			PCIe SLOT
14362306a36Sopenharmony_ci			NODE IO
14462306a36Sopenharmony_ci			Riser
14562306a36Sopenharmony_ci			PPB
14662306a36Sopenharmony_ci
14762306a36Sopenharmony_ci		The location entry contains the location string of the UV Hub
14862306a36Sopenharmony_ci		of the CPU physically connected to the corresponding PCI bus.
14962306a36Sopenharmony_ci
15062306a36Sopenharmony_ci		The slot entry contains the physical slot number of the
15162306a36Sopenharmony_ci		corresponding PCI bus. This value is used to physically locate
15262306a36Sopenharmony_ci		PCI cards within a system.
15362306a36Sopenharmony_ci
15462306a36Sopenharmony_ci		The ppb_addr entry contains the PCI address string of the
15562306a36Sopenharmony_ci		bridged PCI bus. This entry is only present when the PCI bus
15662306a36Sopenharmony_ci		object type is 'PPB'.
15762306a36Sopenharmony_ci
15862306a36Sopenharmony_ci		The iio_stack entry contains a value describing the IIO stack
15962306a36Sopenharmony_ci		number that the corresponding PCI bus object is connected to.
160