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.
 |