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