| syntax = "proto2"; |
| |
| package uhmm; |
| |
| option java_multiple_files = true; |
| option java_package = "com.google.uhmm"; |
| option java_outer_classname = "BusTopologyProto"; |
| |
| // Message to represent an address relative to a device connected to a bus |
| message I2CAddress { |
| optional int32 address = 1; |
| enum AddressLength { |
| ADDRESS_LENGTH_UNSPECIFIED = 0; |
| // 7 bit addressing. |
| ADDRESS_LENGTH_BIT7 = 1; |
| // 10 bit addressing. |
| ADDRESS_LENGTH_BIT10 = 2; |
| } |
| optional AddressLength address_length = 2; |
| } |
| |
| message Mux { |
| // The PMBUS reported model number of this mux. |
| optional string model = 1; |
| optional I2CAddress address_identifier = 2; |
| // The downstream buses that are connected to the mux. |
| repeated Bus downstream_buses = 3; |
| } |
| |
| message Eeprom { |
| // The PMBUS reported model number of this EEPROM. |
| optional string model = 1; |
| // The barepath of the plugin that the EERPOM resides on. |
| optional string barepath = 2; |
| optional I2CAddress address_identifier = 3; |
| // Addressing mode of the eeprom. |
| enum AddressingMode { |
| ADDRESSING_MODE_UNSPECIFIED = 0; |
| ADDRESSING_MODE_BIT8 = 1; |
| ADDRESSING_MODE_BIT16 = 2; |
| } |
| optional AddressingMode addressing_mode = 4; |
| optional int32 size_bytes = 5; |
| |
| // Represents the different reporting areas of an EEPROM. |
| enum ReportingArea { |
| REPORTING_AREA_UNSPECIFIED = 0; |
| REPORTING_AREA_CHASSIS = 1; |
| REPORTING_AREA_BOARD = 2; |
| REPORTING_AREA_PRODUCT = 3; |
| } |
| // The content expected to be written on the EEPROM in accordance with |
| // go/fru-eeprom-specification and the associated reporting area. |
| message FruDeviceInformation { |
| // The area of the EEPROM's memory that contains this information. |
| optional ReportingArea reporting_area = 1; |
| optional string manufacturer = 2; |
| optional string part_number = 3; |
| optional string serial_number = 4; |
| } |
| repeated FruDeviceInformation part_information = 6; |
| } |
| |
| message GpioController { |
| // The PMBUS reported model number of this GPIO controller. |
| optional string model = 1; |
| optional I2CAddress address_identifier = 2; |
| // The barepath of the plugin that the GPIO controller resides on. |
| optional string barepath = 3; |
| } |
| |
| message SensorController { |
| // The PMBUS reported model number of this sensor controller. |
| optional string model = 1; |
| optional I2CAddress address_identifier = 2; |
| // The barepath of the plugin that the sensor controller resides on. |
| optional string barepath = 3; |
| |
| message MonitoredComponent { |
| // The barepath of the FRU component that is being monitored by the sensor |
| // controller. |
| optional string barepath = 1; |
| // The identifier of the probing sensor on the sensor controller that is |
| // monitoring the component. |
| optional string sensor_id = 2; |
| } |
| repeated MonitoredComponent monitored_components = 4; |
| } |
| |
| message Bus { |
| // Relative bus/channel id of the controller/muxes are upstream of this bus. |
| optional int32 channel_id = 1; |
| // Muxes connected to the bus and routing traffic to its downstream. |
| repeated Mux muxes = 2; |
| repeated Eeprom eeproms = 3; |
| repeated GpioController gpio_controllers = 4; |
| repeated SensorController sensor_controllers = 5; |
| } |
| |
| message I2cRoot { |
| // The node entity tag of the target node to be installed with this data. |
| optional string node_entity_tag = 1; |
| // The buses that are connected to the controller. |
| repeated Bus buses = 2; |
| // The chip model of the BMC as reported by the manufacturer. |
| optional string chip_model = 3; |
| } |
| |
| message BmcMonitoredComponentsResponse { |
| message MonitoredComponent { |
| optional string barepath = 1; |
| optional string plugin_id = 2; |
| // Probe paths are encoding of the BMC software interface used to probe data |
| // about a particular part. |
| enum ProbePath { |
| PROBE_PATH_UNSPECIFIED = 0; |
| PROBE_PATH_I2C = 1; |
| PROBE_PATH_NCSI = 2; |
| PROBE_PATH_SMBIOS = 3; |
| PROBE_PATH_ADC = 4; |
| } |
| optional ProbePath probe_path = 3; |
| } |
| repeated MonitoredComponent monitored_components = 1; |
| } |