10eb822a1Scindi /* 20eb822a1Scindi * CDDL HEADER START 30eb822a1Scindi * 40eb822a1Scindi * The contents of this file are subject to the terms of the 50eb822a1Scindi * Common Development and Distribution License (the "License"). 60eb822a1Scindi * You may not use this file except in compliance with the License. 70eb822a1Scindi * 80eb822a1Scindi * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 90eb822a1Scindi * or http://www.opensolaris.org/os/licensing. 100eb822a1Scindi * See the License for the specific language governing permissions 110eb822a1Scindi * and limitations under the License. 120eb822a1Scindi * 130eb822a1Scindi * When distributing Covered Code, include this CDDL HEADER in each 140eb822a1Scindi * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 150eb822a1Scindi * If applicable, add the following below this CDDL HEADER, with the 160eb822a1Scindi * fields enclosed by brackets "[]" replaced with your own identifying 170eb822a1Scindi * information: Portions Copyright [yyyy] [name of copyright owner] 180eb822a1Scindi * 190eb822a1Scindi * CDDL HEADER END 200eb822a1Scindi */ 210eb822a1Scindi 220eb822a1Scindi /* 2344ed9dbbSStephen Hanson * Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved. 24*45d3dd98SRobert Mustacchi * Copyright (c) 2017, Joyent, Inc. 250eb822a1Scindi */ 260eb822a1Scindi 270eb822a1Scindi #ifndef _TOPO_HC_H 280eb822a1Scindi #define _TOPO_HC_H 290eb822a1Scindi 300eb822a1Scindi #ifdef __cplusplus 310eb822a1Scindi extern "C" { 320eb822a1Scindi #endif 330eb822a1Scindi 340eb822a1Scindi /* 350eb822a1Scindi * Allowable hardware component names for hc FMRIs 360eb822a1Scindi */ 37908f1e13Ssd #define BANK "bank" 38184cd04cScth #define BAY "bay" 39908f1e13Ssd #define BLADE "blade" 4014ea4bb7Ssd #define BRANCH "branch" 410eb822a1Scindi #define CMP "CMP" 420eb822a1Scindi #define CENTERPLANE "centerplane" 430eb822a1Scindi #define CHASSIS "chassis" 440eb822a1Scindi #define CHIP "chip" 45908f1e13Ssd #define CORE "core" 46e3d60c9bSAdrian Frost #define STRAND "strand" 47e3d60c9bSAdrian Frost #define CHIP_SELECT "chip-select" 48940d71d2Seschrock #define CONTROLLER "controller" 490eb822a1Scindi #define CPU "cpu" 5013faa912Ssd #define CPUBOARD "cpuboard" 510eb822a1Scindi #define DIMM "dimm" 520eb822a1Scindi #define DISK "disk" 53908f1e13Ssd #define DRAM "dram" 540eb822a1Scindi #define DRAMCHANNEL "dram-channel" 552eeaed14Srobj #define FAN "fan" 56ded93414SHyon Kim #define FANBOARD "fanboard" 572eeaed14Srobj #define FANMODULE "fanmodule" 58fc333478STom Pothier #define HBA "hba" 590eb822a1Scindi #define HOSTBRIDGE "hostbridge" 600eb822a1Scindi #define INTERCONNECT "interconnect" 610eb822a1Scindi #define IOBOARD "ioboard" 62ac88567aSHyon Kim #define IPORT "iport" 6313faa912Ssd #define MEMBOARD "memboard" 64908f1e13Ssd #define MEMORYBUFFER "memory-buffer" 650eb822a1Scindi #define MEMORYCONTROL "memory-controller" 66908f1e13Ssd #define MICROCORE "micro-core" 670eb822a1Scindi #define MOTHERBOARD "motherboard" 6814ea4bb7Ssd #define NIU "niu" 6914ea4bb7Ssd #define NIUFN "niufn" 700eb822a1Scindi #define PCI_BUS "pcibus" 710eb822a1Scindi #define PCI_DEVICE "pcidev" 720eb822a1Scindi #define PCI_FUNCTION "pcifn" 730eb822a1Scindi #define PCIEX_BUS "pciexbus" 740eb822a1Scindi #define PCIEX_DEVICE "pciexdev" 750eb822a1Scindi #define PCIEX_FUNCTION "pciexfn" 760eb822a1Scindi #define PCIEX_ROOT "pciexrc" 770eb822a1Scindi #define PCIEX_SWUP "pciexswu" 780eb822a1Scindi #define PCIEX_SWDWN "pciexswd" 79*45d3dd98SRobert Mustacchi #define PORT "port" 80ded93414SHyon Kim #define POWERBOARD "powerboard" 812eeaed14Srobj #define POWERMODULE "powermodule" 822eeaed14Srobj #define PSU "psu" 830eb822a1Scindi #define RANK "rank" 84ac88567aSHyon Kim #define RECEPTACLE "receptacle" 85908f1e13Ssd #define RISER "riser" 86ac88567aSHyon Kim #define SASEXPANDER "sas-expander" 87908f1e13Ssd #define SHELF "shelf" 88ac88567aSHyon Kim #define SCSI_DEVICE "scsi-device" 89940d71d2Seschrock #define SES_ENCLOSURE "ses-enclosure" 90ac88567aSHyon Kim #define SMP_DEVICE "smp-device" 914df55fdeSJanie Lu #define SP "sp" 9253dbcc59SSundeep Panicker #define SUBCHASSIS "subchassis" 930eb822a1Scindi #define SYSTEMBOARD "systemboard" 94*45d3dd98SRobert Mustacchi #define TRANSCEIVER "transceiver" 9514ea4bb7Ssd #define XAUI "xaui" 9614ea4bb7Ssd #define XFP "xfp" 970eb822a1Scindi 980eb822a1Scindi /* 990eb822a1Scindi * Allowable hc node property group and property names 1000eb822a1Scindi */ 1010eb822a1Scindi #define TOPO_PGROUP_IO "io" 1020eb822a1Scindi #define TOPO_IO_DEVTYPE "devtype" 1030eb822a1Scindi #define TOPO_IO_DRIVER "driver" 1049dd0f810Scindi #define TOPO_IO_MODULE "module" 1050eb822a1Scindi #define TOPO_IO_DEV "dev" 106602ca9eaScth #define TOPO_IO_DEVID "devid" 1070eb822a1Scindi #define TOPO_IO_DEV_PATH "devfs-path" 1080eb822a1Scindi #define TOPO_IO_AP_PATH "ap-path" 109602ca9eaScth #define TOPO_IO_PHYS_PATH "phys-path" 1100eb822a1Scindi 1110eb822a1Scindi #define TOPO_PGROUP_PCI "pci" 1120eb822a1Scindi #define TOPO_PCI_VENDID "vendor-id" 1130eb822a1Scindi #define TOPO_PCI_DEVID "device-id" 1140eb822a1Scindi #define TOPO_PCI_EXCAP "extended-capabilities" 1150eb822a1Scindi #define TOPO_PCI_BDF "BDF" 1160eb822a1Scindi #define TOPO_PCI_CLASS "class-code" 117eae2e508Skrishnae #define TOPO_PCI_AADDR "assigned-addresses" 1180eb822a1Scindi 119ac88567aSHyon Kim #define TOPO_PGROUP_BINDING "binding" 120ac88567aSHyon Kim #define TOPO_BINDING_OCCUPANT "occupant-path" 121aed5247fSJoshua M. Clulow #define TOPO_BINDING_DRIVER "driver" 122aed5247fSJoshua M. Clulow #define TOPO_BINDING_DEVCTL "devctl" 123aed5247fSJoshua M. Clulow #define TOPO_BINDING_ENCLOSURE "enclosure" 124aed5247fSJoshua M. Clulow #define TOPO_BINDING_SLOT "slot" 125ac88567aSHyon Kim 12644ed9dbbSStephen Hanson #define TOPO_PGROUP_STORAGE "storage" 127ac88567aSHyon Kim #define TOPO_STORAGE_INITIATOR_PORT "initiator-port" 128ac88567aSHyon Kim #define TOPO_STORAGE_INITIATOR_PORT_PM "initiator-port-pm" 129ac88567aSHyon Kim #define TOPO_STORAGE_TARGET_PORT "target-port" 13044ed9dbbSStephen Hanson #define TOPO_STORAGE_TARGET_PORT_L0ID "target-port-l0id" 13144ed9dbbSStephen Hanson #define TOPO_STORAGE_TARGET_PORT_L0IDS "target-port-l0ids" 132ac88567aSHyon Kim #define TOPO_STORAGE_ATTACHED_PORT "attached-port" 133ac88567aSHyon Kim #define TOPO_STORAGE_TARGET_PORT_PM "target-port-pm" 134ac88567aSHyon Kim #define TOPO_STORAGE_ATTACHED_PORT_PM "attached-port-pm" 135ac88567aSHyon Kim #define TOPO_STORAGE_DEVID "devid" 136ac88567aSHyon Kim #define TOPO_STORAGE_LUN64 "lun64" 137ac88567aSHyon Kim #define TOPO_STORAGE_DEVICE_TYPE "inquiry-device-type" 138ac88567aSHyon Kim #define TOPO_STORAGE_MANUFACTURER "manufacturer" 139ac88567aSHyon Kim #define TOPO_STORAGE_MODEL "model" 140ac88567aSHyon Kim #define TOPO_STORAGE_FIRMWARE_REV "firmware-revision" 141ac88567aSHyon Kim #define TOPO_STORAGE_SAS_PHY_MASK "receptacle-pm" 142ac88567aSHyon Kim #define TOPO_STORAGE_SAS_CONNECTOR_TYPE "sas-connector-type" 14303f9f63dSTom Pothier 144e58a33b6SStephen Hanson #define TOPO_PGROUP_SES "ses" 145e58a33b6SStephen Hanson /* Applied any SES standard related topo node. */ 146e58a33b6SStephen Hanson #define TOPO_PROP_NODE_ID "node-id" 147e58a33b6SStephen Hanson #define TOPO_PROP_TARGET_PATH "target-path" 148e58a33b6SStephen Hanson #define TOPO_PROP_SES_DEVID "ses-devid" 149e58a33b6SStephen Hanson #define TOPO_PROP_SES_DEV_PATH "ses-devfs-path" 150e58a33b6SStephen Hanson #define TOPO_PROP_SES_PHYS_PATH "ses-phys-path" 151e58a33b6SStephen Hanson #define TOPO_PROP_SES_TARGET_PORT "ses-target-port" 152e58a33b6SStephen Hanson 153e58a33b6SStephen Hanson #define TOPO_PGROUP_SMP "smp" 154e58a33b6SStephen Hanson /* host SMP target related info for an expander node. */ 155e58a33b6SStephen Hanson #define TOPO_PROP_SMP_DEVID "smp-devid" 156e58a33b6SStephen Hanson #define TOPO_PROP_SMP_DEV_PATH "smp-devfs-path" 157e58a33b6SStephen Hanson #define TOPO_PROP_SMP_PHYS_PATH "smp-phys-path" 158e58a33b6SStephen Hanson #define TOPO_PROP_SMP_TARGET_PORT "smp-target-port" 159e58a33b6SStephen Hanson #define TOPO_PROP_SAS_ADDR "sas-address" 160e58a33b6SStephen Hanson #define TOPO_PROP_PHY_COUNT "phy-count" 161e58a33b6SStephen Hanson #define TOPO_PROP_PATHS "paths" 162e58a33b6SStephen Hanson #define TOPO_PROP_CHASSIS_TYPE "chassis-type" 163e58a33b6SStephen Hanson #define TOPO_PROP_SAS_PHY_MASK "phy-mask" 164e58a33b6SStephen Hanson #define TOPO_PROP_SAS_CONNECTOR_TYPE "sas-connector-type" 165e58a33b6SStephen Hanson 166*45d3dd98SRobert Mustacchi #define TOPO_PGROUP_PORT "port" 167*45d3dd98SRobert Mustacchi #define TOPO_PROP_PORT_TYPE "type" 168*45d3dd98SRobert Mustacchi #define TOPO_PROP_PORT_TYPE_SFF "sff" 169*45d3dd98SRobert Mustacchi 170*45d3dd98SRobert Mustacchi #define TOPO_PGROUP_TRANSCEIVER "transceiver" 171*45d3dd98SRobert Mustacchi #define TOPO_PROP_TRANSCEIVER_TYPE "type" 172*45d3dd98SRobert Mustacchi #define TOPO_PROP_TRANSCEIVER_USABLE "usable" 173*45d3dd98SRobert Mustacchi 174*45d3dd98SRobert Mustacchi #define TOPO_PGROUP_SFF_TRANSCEIVER "sff-transceiver" 175*45d3dd98SRobert Mustacchi #define TOPO_PORT_SFF_TRANSCEIVER_VENDOR "vendor" 176*45d3dd98SRobert Mustacchi #define TOPO_PORT_SFF_TRANSCEIVER_PN "part-number" 177*45d3dd98SRobert Mustacchi #define TOPO_PORT_SFF_TRANSCEIVER_REV "revision" 178*45d3dd98SRobert Mustacchi #define TOPO_PORT_SFF_TRANSCEIVER_SN "serial-number" 179*45d3dd98SRobert Mustacchi 1800eb822a1Scindi #ifdef __cplusplus 1810eb822a1Scindi } 1820eb822a1Scindi #endif 1830eb822a1Scindi 1840eb822a1Scindi #endif /* _TOPO_HC_H */ 185