1*e4a64ba7SThang Trandescription: > 2*e4a64ba7SThang Tran This defines a PCIe function to be exposed for system management. It 3*e4a64ba7SThang Tran includes the function properties that are shown in the space configuration. 4*e4a64ba7SThang Tran 5*e4a64ba7SThang Tranproperties: 6*e4a64ba7SThang Tran - name: BusNumber 7*e4a64ba7SThang Tran type: byte 8*e4a64ba7SThang Tran description: > 9*e4a64ba7SThang Tran Indicates the Bus number in the BDF byte. 10*e4a64ba7SThang Tran - name: DeviceNumber 11*e4a64ba7SThang Tran type: byte 12*e4a64ba7SThang Tran description: > 13*e4a64ba7SThang Tran Indicates the Device number in the BDF byte. 14*e4a64ba7SThang Tran - name: FunctionNumber 15*e4a64ba7SThang Tran type: byte 16*e4a64ba7SThang Tran description: > 17*e4a64ba7SThang Tran Indicates the Function number in the BDF byte. 18*e4a64ba7SThang Tran - name: DeviceId 19*e4a64ba7SThang Tran type: uint16 20*e4a64ba7SThang Tran description: > 21*e4a64ba7SThang Tran The Device ID for this function. 22*e4a64ba7SThang Tran - name: RevisionId 23*e4a64ba7SThang Tran type: byte 24*e4a64ba7SThang Tran description: > 25*e4a64ba7SThang Tran The Revision ID for this function. 26*e4a64ba7SThang Tran - name: SubsystemId 27*e4a64ba7SThang Tran type: uint16 28*e4a64ba7SThang Tran description: > 29*e4a64ba7SThang Tran The Subsystem ID for this function. 30*e4a64ba7SThang Tran - name: SubsystemVendorId 31*e4a64ba7SThang Tran type: uint16 32*e4a64ba7SThang Tran description: > 33*e4a64ba7SThang Tran The Subsystem Vendor ID for this function. 34*e4a64ba7SThang Tran - name: VendorId 35*e4a64ba7SThang Tran type: uint16 36*e4a64ba7SThang Tran description: > 37*e4a64ba7SThang Tran The Vendor ID for this function. 38*e4a64ba7SThang Tran - name: BaseClassCode 39*e4a64ba7SThang Tran type: byte 40*e4a64ba7SThang Tran description: > 41*e4a64ba7SThang Tran The Base Class Code for this function. 42*e4a64ba7SThang Tran - name: SubClassCode 43*e4a64ba7SThang Tran type: byte 44*e4a64ba7SThang Tran description: > 45*e4a64ba7SThang Tran The SubClass for this function. 46*e4a64ba7SThang Tran - name: ProgrammingInterface 47*e4a64ba7SThang Tran type: byte 48*e4a64ba7SThang Tran description: > 49*e4a64ba7SThang Tran The PIFClass Code for this function. 50*e4a64ba7SThang Tran - name: DeviceClass 51*e4a64ba7SThang Tran type: enum[self.DeviceClasses] 52*e4a64ba7SThang Tran default: Unknown 53*e4a64ba7SThang Tran description: > 54*e4a64ba7SThang Tran The class for this PCIe function. 55*e4a64ba7SThang Tran - name: FunctionType 56*e4a64ba7SThang Tran type: enum[self.FunctionTypes] 57*e4a64ba7SThang Tran default: Unknown 58*e4a64ba7SThang Tran description: > 59*e4a64ba7SThang Tran Indicates if the function is Physical or Virtual 60*e4a64ba7SThang Tran 61*e4a64ba7SThang Tranenumerations: 62*e4a64ba7SThang Tran - name: DeviceClasses 63*e4a64ba7SThang Tran description: > 64*e4a64ba7SThang Tran Possible Device Classes 65*e4a64ba7SThang Tran values: 66*e4a64ba7SThang Tran - name: Unknown 67*e4a64ba7SThang Tran description: > 68*e4a64ba7SThang Tran An unknown class 69*e4a64ba7SThang Tran - name: Bridge 70*e4a64ba7SThang Tran description: > 71*e4a64ba7SThang Tran A bridge 72*e4a64ba7SThang Tran - name: CommunicationController 73*e4a64ba7SThang Tran description: > 74*e4a64ba7SThang Tran A communication controller 75*e4a64ba7SThang Tran - name: Coprocessor 76*e4a64ba7SThang Tran description: > 77*e4a64ba7SThang Tran A coprocessor 78*e4a64ba7SThang Tran - name: DisplayController 79*e4a64ba7SThang Tran description: > 80*e4a64ba7SThang Tran A display controller 81*e4a64ba7SThang Tran - name: DockingStation 82*e4a64ba7SThang Tran description: > 83*e4a64ba7SThang Tran A docking station 84*e4a64ba7SThang Tran - name: EncryptionController 85*e4a64ba7SThang Tran description: > 86*e4a64ba7SThang Tran An encryption controller 87*e4a64ba7SThang Tran - name: GenericSystemPeripheral 88*e4a64ba7SThang Tran description: > 89*e4a64ba7SThang Tran A generic system peripheral 90*e4a64ba7SThang Tran - name: InputDeviceController 91*e4a64ba7SThang Tran description: > 92*e4a64ba7SThang Tran An input device controller 93*e4a64ba7SThang Tran - name: IntelligentController 94*e4a64ba7SThang Tran description: > 95*e4a64ba7SThang Tran An intelligent controller 96*e4a64ba7SThang Tran - name: MassStorageController 97*e4a64ba7SThang Tran description: > 98*e4a64ba7SThang Tran A mass storage controller 99*e4a64ba7SThang Tran - name: MemoryController 100*e4a64ba7SThang Tran description: > 101*e4a64ba7SThang Tran A memory controller 102*e4a64ba7SThang Tran - name: MultimediaController 103*e4a64ba7SThang Tran description: > 104*e4a64ba7SThang Tran A multimedia controller 105*e4a64ba7SThang Tran - name: NetworkController 106*e4a64ba7SThang Tran description: > 107*e4a64ba7SThang Tran A network controller 108*e4a64ba7SThang Tran - name: NonEssentialInstrumentation 109*e4a64ba7SThang Tran description: > 110*e4a64ba7SThang Tran A non-essential instrumentation 111*e4a64ba7SThang Tran - name: Other 112*e4a64ba7SThang Tran description: > 113*e4a64ba7SThang Tran Other class. The function Class Code needs to be verified 114*e4a64ba7SThang Tran - name: ProcessingAccelerators 115*e4a64ba7SThang Tran description: > 116*e4a64ba7SThang Tran A processing accelerators 117*e4a64ba7SThang Tran - name: Processor 118*e4a64ba7SThang Tran description: > 119*e4a64ba7SThang Tran A processor 120*e4a64ba7SThang Tran - name: SatelliteCommunicationsController 121*e4a64ba7SThang Tran description: > 122*e4a64ba7SThang Tran A satellite communications controller 123*e4a64ba7SThang Tran - name: SerialBusController 124*e4a64ba7SThang Tran description: > 125*e4a64ba7SThang Tran A serial bus controller 126*e4a64ba7SThang Tran - name: SignalProcessingController 127*e4a64ba7SThang Tran description: > 128*e4a64ba7SThang Tran A signal processing controller 129*e4a64ba7SThang Tran - name: UnassignedClass 130*e4a64ba7SThang Tran description: > 131*e4a64ba7SThang Tran An unassigned class 132*e4a64ba7SThang Tran - name: UnclassifiedDevice 133*e4a64ba7SThang Tran description: > 134*e4a64ba7SThang Tran An unclassified device 135*e4a64ba7SThang Tran - name: WirelessController 136*e4a64ba7SThang Tran description: > 137*e4a64ba7SThang Tran A wireless controller 138*e4a64ba7SThang Tran 139*e4a64ba7SThang Tran - name: FunctionTypes 140*e4a64ba7SThang Tran description: > 141*e4a64ba7SThang Tran Possible Function Type 142*e4a64ba7SThang Tran values: 143*e4a64ba7SThang Tran - name: Unknown 144*e4a64ba7SThang Tran description: > 145*e4a64ba7SThang Tran An unknown function type 146*e4a64ba7SThang Tran - name: Physical 147*e4a64ba7SThang Tran description: > 148*e4a64ba7SThang Tran A physical PCIe function 149*e4a64ba7SThang Tran - name: Virtual 150*e4a64ba7SThang Tran description: > 151*e4a64ba7SThang Tran A virtual PCIe function 152*e4a64ba7SThang Tran 153*e4a64ba7SThang Tranassociations: 154*e4a64ba7SThang Tran - name: exposed_by 155*e4a64ba7SThang Tran description: > 156*e4a64ba7SThang Tran Objects that implement PCIeFunction can implement the exposed_by 157*e4a64ba7SThang Tran association to provide a link back to a PCIe Device. 158*e4a64ba7SThang Tran reverse_names: 159*e4a64ba7SThang Tran - exposing 160*e4a64ba7SThang Tran required_endpoint_interfaces: 161*e4a64ba7SThang Tran - xyz.openbmc_project.Inventory.Item.PCIeDevice 162*e4a64ba7SThang Tran 163*e4a64ba7SThang Tran - name: producing 164*e4a64ba7SThang Tran description: > 165*e4a64ba7SThang Tran Objects that implement PCIeFunction can optionally implement the 166*e4a64ba7SThang Tran producing association to provide a link back to an item. 167*e4a64ba7SThang Tran reverse_names: 168*e4a64ba7SThang Tran - produced_by 169*e4a64ba7SThang Tran required_endpoint_interfaces: 170*e4a64ba7SThang Tran - xyz.openbmc_project.Inventory.Item.NetworkInterface 171*e4a64ba7SThang Tran - xyz.openbmc_project.Inventory.Item.Drive 172*e4a64ba7SThang Tran - xyz.openbmc_project.Inventory.Item.StorageController 173