160 lines
		
	
	
		
			5.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			160 lines
		
	
	
		
			5.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
What:		/sys/firmware/sgi_uv/
 | 
						|
Date:		September 2020
 | 
						|
Contact:	Justin Ernst <justin.ernst@hpe.com>
 | 
						|
Description:
 | 
						|
		The /sys/firmware/sgi_uv directory contains information
 | 
						|
		about the UV platform.
 | 
						|
 | 
						|
		Under that directory are a number of read-only attributes::
 | 
						|
 | 
						|
			archtype
 | 
						|
			hub_type
 | 
						|
			hubless
 | 
						|
			partition_id
 | 
						|
			coherence_id
 | 
						|
			uv_type
 | 
						|
 | 
						|
		The archtype entry contains the UV architecture type that
 | 
						|
		is used to select arch-dependent addresses and features.
 | 
						|
		It can be set via the OEM_ID in the ACPI MADT table or by
 | 
						|
		UVsystab entry both passed from UV BIOS.
 | 
						|
 | 
						|
		The hub_type entry is used to select the type of hub which is
 | 
						|
		similar to uv_type but encoded in a binary format.  Include
 | 
						|
		the file uv_hub.h to get the definitions.
 | 
						|
 | 
						|
		The hubless entry basically is present and set only if there
 | 
						|
		is no hub.  In this case the hub_type entry is not present.
 | 
						|
 | 
						|
		The partition_id entry contains the partition id.
 | 
						|
		UV systems can be partitioned into multiple physical
 | 
						|
		machines, which each partition running a unique copy
 | 
						|
		of the operating system. Each partition will have a unique
 | 
						|
		partition id.
 | 
						|
 | 
						|
		The coherence_id entry contains the coherence id.
 | 
						|
		A partitioned UV system can have one or more coherence
 | 
						|
		domains. The coherence id indicates which coherence domain
 | 
						|
		this partition is in.
 | 
						|
 | 
						|
		The uv_type entry contains the hub revision number.
 | 
						|
		This value can be used to identify the UV system version::
 | 
						|
 | 
						|
			"0.*" = Hubless UV ('*' is subtype)
 | 
						|
			"3.0" = UV2
 | 
						|
			"5.0" = UV3
 | 
						|
			"7.0" = UV4
 | 
						|
			"7.1" = UV4a
 | 
						|
			"9.0" = UV5
 | 
						|
 | 
						|
		The /sys/firmware/sgi_uv directory also contains two directories::
 | 
						|
 | 
						|
			hubs/
 | 
						|
			pcibuses/
 | 
						|
 | 
						|
		The hubs directory contains a number of hub objects, each representing
 | 
						|
		a UV Hub visible to the BIOS. Each hub object's name is appended by a
 | 
						|
		unique ordinal value (ex. /sys/firmware/sgi_uv/hubs/hub_5)
 | 
						|
 | 
						|
		Each hub object directory contains a number of read-only attributes::
 | 
						|
 | 
						|
			cnode
 | 
						|
			location
 | 
						|
			name
 | 
						|
			nasid
 | 
						|
			shared
 | 
						|
			this_partition
 | 
						|
 | 
						|
		The cnode entry contains the cnode number of the corresponding hub.
 | 
						|
		If a cnode value is not applicable, the value returned will be -1.
 | 
						|
 | 
						|
		The location entry contains the location string of the corresponding hub.
 | 
						|
		This value is used to physically identify a hub within a system.
 | 
						|
 | 
						|
		The name entry contains the name of the corresponding hub. This name can
 | 
						|
		be two variants::
 | 
						|
 | 
						|
			"UVHub x.x" = A 'node' ASIC, connecting a CPU to the interconnect
 | 
						|
			fabric. The 'x.x' value represents the ASIC revision.
 | 
						|
			(ex. 'UVHub 5.0')
 | 
						|
 | 
						|
			"NLxRouter" = A 'router ASIC, only connecting other ASICs to
 | 
						|
			the interconnect fabric. The 'x' value representing
 | 
						|
			the fabric technology version. (ex. 'NL8Router')
 | 
						|
 | 
						|
		The nasid entry contains the nasid number of the corresponding hub.
 | 
						|
		If a nasid value is not applicable, the value returned will be -1.
 | 
						|
 | 
						|
		The shared entry contains a boolean value describing whether the
 | 
						|
		corresponding hub is shared between system partitions.
 | 
						|
 | 
						|
		The this_partition entry contains a boolean value describing whether
 | 
						|
		the corresponding hub is local to the current partition.
 | 
						|
 | 
						|
		Each hub object directory also contains a number of port objects,
 | 
						|
		each representing a fabric port on the corresponding hub.
 | 
						|
		A port object's name is appended by a unique ordinal value
 | 
						|
		(ex. /sys/firmware/sgi_uv/hubs/hub_5/port_3)
 | 
						|
 | 
						|
		Each port object directory contains a number of read-only attributes::
 | 
						|
 | 
						|
			conn_hub
 | 
						|
			conn_port
 | 
						|
 | 
						|
		The conn_hub entry contains a value representing the unique
 | 
						|
		oridinal value of the hub on the other end of the fabric
 | 
						|
		cable plugged into the port. If the port is disconnected,
 | 
						|
		the value returned will be -1.
 | 
						|
 | 
						|
		The conn_port entry contains a value representing the unique
 | 
						|
		oridinal value of the port on the other end of the fabric cable
 | 
						|
		plugged into the port. If the port is disconnected, the value
 | 
						|
		returned will be -1.
 | 
						|
 | 
						|
		Ex:
 | 
						|
			A value of '3' is read from:
 | 
						|
				/sys/firmware/sgi_uv/hubs/hub_5/port_3/conn_hub
 | 
						|
 | 
						|
			and a value of '6' is read from:
 | 
						|
				/sys/firmware/sgi_uv/hubs/hub_5/port_3/conn_port
 | 
						|
 | 
						|
			representing that this port is connected to:
 | 
						|
				/sys/firmware/sgi_uv/hubs/hub_3/port_6
 | 
						|
 | 
						|
		The pcibuses directory contains a number of PCI bus objects.
 | 
						|
		Each PCI bus object's name is appended by its PCI bus address.
 | 
						|
		(ex. pcibus_0003:80)
 | 
						|
 | 
						|
		Each pcibus object has a number of possible read-only attributes::
 | 
						|
 | 
						|
			type
 | 
						|
			location
 | 
						|
			slot
 | 
						|
			ppb_addr
 | 
						|
			iio_stack
 | 
						|
 | 
						|
		The type entry contains a value describing the type of IO at
 | 
						|
		the corresponding PCI bus address. Known possible values
 | 
						|
		across all UV versions are::
 | 
						|
 | 
						|
			BASE IO
 | 
						|
			PCIe IO
 | 
						|
			PCIe SLOT
 | 
						|
			NODE IO
 | 
						|
			Riser
 | 
						|
			PPB
 | 
						|
 | 
						|
		The location entry contains the location string of the UV Hub
 | 
						|
		of the CPU physically connected to the corresponding PCI bus.
 | 
						|
 | 
						|
		The slot entry contains the physical slot number of the
 | 
						|
		corresponding PCI bus. This value is used to physically locate
 | 
						|
		PCI cards within a system.
 | 
						|
 | 
						|
		The ppb_addr entry contains the PCI address string of the
 | 
						|
		bridged PCI bus. This entry is only present when the PCI bus
 | 
						|
		object type is 'PPB'.
 | 
						|
 | 
						|
		The iio_stack entry contains a value describing the IIO stack
 | 
						|
		number that the corresponding PCI bus object is connected to.
 |