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