blob: 2ef61b76cf24b8a76c5eced2495a6cbb502470ee [file] [edit]
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;
}