diff options
Diffstat (limited to 'xyz/openbmc_project/Control')
10 files changed, 266 insertions, 0 deletions
diff --git a/xyz/openbmc_project/Control/CFMLimit.interface.yaml b/xyz/openbmc_project/Control/CFMLimit.interface.yaml new file mode 100644 index 0000000..5946f3c --- /dev/null +++ b/xyz/openbmc_project/Control/CFMLimit.interface.yaml @@ -0,0 +1,10 @@ +description: > + Implement to provide a CFM upper limit for fan control. + This can be used with a CFM algorithm to calculate the + maximum allowed fan speed for a system. + +properties: + - name: Limit + type: double + description: > + The CFM limit, 0 means disabled. diff --git a/xyz/openbmc_project/Control/ChassisCapabilities.interface.yaml b/xyz/openbmc_project/Control/ChassisCapabilities.interface.yaml new file mode 100644 index 0000000..2bfe620 --- /dev/null +++ b/xyz/openbmc_project/Control/ChassisCapabilities.interface.yaml @@ -0,0 +1,28 @@ +description: > + An interface for chassis capabilities defined in IPMI spec. +properties: + - name: CapabilitiesFlags + type: byte + description: > + Chassis capabilities flags. bit1= Provides front panel lockout, + bit0 = Provides intrusion. All other bits reserved. + - name: FRUDeviceAddress + type: byte + description: > + Chassis FRU device address. + - name: SDRDeviceAddress + type: byte + description: > + Chassis SDR device address. + - name: SELDeviceAddress + type: byte + description: > + Chassis SEL device address. + - name: SMDeviceAddress + type: byte + description: > + Chassis SM device address. + - name: BridgeDeviceAddress + type: byte + description: > + Chassis Bridge device address. diff --git a/xyz/openbmc_project/Control/FanRedundancy.interface.yaml b/xyz/openbmc_project/Control/FanRedundancy.interface.yaml new file mode 100644 index 0000000..50ae5bc --- /dev/null +++ b/xyz/openbmc_project/Control/FanRedundancy.interface.yaml @@ -0,0 +1,37 @@ +description: > + An interface to set whether fans are redundant. +properties: + - name: AllowedFailures + type: byte + flags: + - const + description: > + Number of fans in error state before redundancy is lost. + - name: Collection + type: array[path] + flags: + - const + description: > + The group of fans tracked by this redundancy object. + - name: Status + type: enum[self.State] + flags: + - const + description: > + The current redundancy status. + +enumerations: + - name: State + description: > + Possible redundancy states. + values: + - name: Full + description: > + System is in a fully redundant state. + - name: Degraded + description: > + Redundancy is in a degraded state. + - name: Failed + description: > + System has lost redundancy. + diff --git a/xyz/openbmc_project/Control/Mode.interface.yaml b/xyz/openbmc_project/Control/Mode.interface.yaml new file mode 100644 index 0000000..ff7e0b0 --- /dev/null +++ b/xyz/openbmc_project/Control/Mode.interface.yaml @@ -0,0 +1,19 @@ +description: > + Implement to provide manual control for an object. Also provides + for the notion of a fail-safe mode. + + Control.Mode.Manual is read/write. + Control.Mode.FailSafe is read/write, however not all implementations + may respect having this property set externally. + +properties: + - name: Manual + type: boolean + description: > + Whether the object should be in manual or automatic mode. + - name: FailSafe + type: boolean + description: > + Whether the object is in fail-safe mode or not. + +# vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4 diff --git a/xyz/openbmc_project/Control/Power/ACPIPowerState.interface.yaml b/xyz/openbmc_project/Control/Power/ACPIPowerState.interface.yaml new file mode 100644 index 0000000..c8a3349 --- /dev/null +++ b/xyz/openbmc_project/Control/Power/ACPIPowerState.interface.yaml @@ -0,0 +1,62 @@ +description: > + Implement to set/get ACPI power status + +properties: + - name: SysACPIStatus + type: enum[self.ACPI] + description: > + The ACPI system power status. + + - name: DevACPIStatus + type: enum[self.ACPI] + description: > + The ACPI device power status. + +enumerations: + - name: ACPI + description: > + Possible ACPI status. + values: + - name: S0_G0_D0 + description: > + Working, the system is running + - name: S1_D1 + description: > + Hardware context maintained, typically equates to proc/chip + set clocks stopped. + - name: S2_D2 + description: > + Typically equates to stopped clocks with proc/cache context lost. + - name: S3_D3 + description: > + Typically equates to "suspend-to-RAM". + - name: S4 + description: > + Typically equates to "suspend-to-disk". + - name: S5_G2 + description: > + Soft off. + - name: S4_S5 + description: > + Sent when message source cannot differentiate between S4 and S5. + - name: G3 + description: > + Mechanical off. + - name: SLEEP + description: > + Sleeping - cannot differentiate between S1-S3. + - name: G1_SLEEP + description: > + Sleeping - cannot differentiate between S1-S4. + - name: OVERRIDE + description: > + S5 entered by override. + - name: LEGACY_ON + description: > + Legacy On - used when ACPI mode is disabled. + - name: LEGACY_OFF + description: > + Legacy Off - used when ACPI mode is disabled. + - name: Unknown + description: > + System power state has not been initialized. diff --git a/xyz/openbmc_project/Control/PowerSupplyAttributes.interface.yaml b/xyz/openbmc_project/Control/PowerSupplyAttributes.interface.yaml new file mode 100644 index 0000000..1e8f1b3 --- /dev/null +++ b/xyz/openbmc_project/Control/PowerSupplyAttributes.interface.yaml @@ -0,0 +1,10 @@ +description: > + An interface to set control characteristics for an individual power supply. +properties: + - name: DeratingFactor + type: uint32 + flags: + - const + description: > + The power supply derating factor, which is the percentage to multiply + the input power by to get the output power. diff --git a/xyz/openbmc_project/Control/PowerSupplyRedundancy.interface.yaml b/xyz/openbmc_project/Control/PowerSupplyRedundancy.interface.yaml index b99d51b..bf36a77 100644 --- a/xyz/openbmc_project/Control/PowerSupplyRedundancy.interface.yaml +++ b/xyz/openbmc_project/Control/PowerSupplyRedundancy.interface.yaml @@ -3,5 +3,7 @@ description: > properties: - name: PowerSupplyRedundancyEnabled type: boolean + flags: + - const description: > When true, the power supplies are redundant. diff --git a/xyz/openbmc_project/Control/Service/Attributes.interface.yaml b/xyz/openbmc_project/Control/Service/Attributes.interface.yaml new file mode 100644 index 0000000..e9bfc92 --- /dev/null +++ b/xyz/openbmc_project/Control/Service/Attributes.interface.yaml @@ -0,0 +1,36 @@ +description: > + This interface exposes properties for service objects like + SSH, web, RMCP+ etc. under the service configuration manager. + This interface can be used to get/set of service properties. + +properties: + - name: State + type: enum[self.SupportedStates] + description: > + Specifies the state of the service. + - name: Port + type: uint32 + description: > + Specifies the listening port number of service. + This property is used to get or set the service + listening port number. + - name: Channel + type: array[string] + description: > + Specifies the channel on which service allows client + connections. This property is used to get or set the + allowed channel interfaces in array of strings. It accepts + the interface names, which are created as objects in + network service and returns error if not found. + +enumerations: + - name: SupportedStates + description: > + State values. + values: + - name: 'enabled' + description: > + Service is enabled. + - name: 'disabled' + description: > + Service is disabled. diff --git a/xyz/openbmc_project/Control/Service/README.md b/xyz/openbmc_project/Control/Service/README.md new file mode 100644 index 0000000..fd9f92c --- /dev/null +++ b/xyz/openbmc_project/Control/Service/README.md @@ -0,0 +1,36 @@ +# Service Management + +## Overview +Applications must use service manager daemon to configure services like +phosphor-ipmi-net, web, SSH etc. service in the system, instead of +directly controlling the same using 'systemd' or 'iptables'. This way client +applications doesn't need to change to configure services, when the +implementations differ. + +### Attributes Interface +Service manager daemon, will create objects for configurable service +in the system under object path `/xyz/openbmc_project/Control/Service/<object>`. +Each service object can be handled through 'org.freedesktop.DBus.ObjectManager'. +Service object will expose following properties. + +#### xyz.openbmc_project.Control.Service.Attributes interface +##### properties +* State - State of the service. Enabled / Disabled. +* Port - Port number to which the service is configured to listen. +* Channel - Supported network interface objects, to which port has to bind. + +## Note +Implementations can elect to implement service manager daemon either through +'systemctl' (override.conf) or implement the same through 'iptables' logic, of +disabling the port, updating the port etc. + +## Example usage: +Webserver can update the RMCP+ port number from default 623 to different one, +by updating the `Port` property value under path `/xyz/openbmc_project/Control/ +Service/netipmid` through interface `xyz.openbmc_project.Control.Service. +Attributes`. + +## Systemd (override.conf) implementation +In order to update the property value, `override.conf` file under `/etc/systemd +/system/<Service unit name>/` has to be updated and service unit has to be +restarted through `org.freedesktop.systemd1`. diff --git a/xyz/openbmc_project/Control/ThermalMode.interface.yaml b/xyz/openbmc_project/Control/ThermalMode.interface.yaml new file mode 100644 index 0000000..8ec8eba --- /dev/null +++ b/xyz/openbmc_project/Control/ThermalMode.interface.yaml @@ -0,0 +1,26 @@ +description: > + Implement to provide alternative thermal control modes of a system + that can be enabled, overriding the system defaults. + + Control.ThermalMode.Supported is read only. + Implementation of this interface populates the list of supported modes. + Control.ThermalMode.Current is read/write. + Implementation specific mode for the thermal control application + to run in. + +properties: + - name: Supported + type: array[string] + flags: + - const + description: > + An implemention specific list of supported modes that the thermal + control application can be configured to provide for a platform. + - name: Current + type: string + default: "Default" + description: > + The current mode the thermal control application should execute in + selected from the supported modes provided. + +# vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4 |