summaryrefslogtreecommitdiffstats
path: root/xyz/openbmc_project/Control
diff options
context:
space:
mode:
Diffstat (limited to 'xyz/openbmc_project/Control')
-rw-r--r--xyz/openbmc_project/Control/CFMLimit.interface.yaml10
-rw-r--r--xyz/openbmc_project/Control/ChassisCapabilities.interface.yaml28
-rw-r--r--xyz/openbmc_project/Control/FanRedundancy.interface.yaml37
-rw-r--r--xyz/openbmc_project/Control/Mode.interface.yaml19
-rw-r--r--xyz/openbmc_project/Control/Power/ACPIPowerState.interface.yaml62
-rw-r--r--xyz/openbmc_project/Control/PowerSupplyAttributes.interface.yaml10
-rw-r--r--xyz/openbmc_project/Control/PowerSupplyRedundancy.interface.yaml2
-rw-r--r--xyz/openbmc_project/Control/Service/Attributes.interface.yaml36
-rw-r--r--xyz/openbmc_project/Control/Service/README.md36
-rw-r--r--xyz/openbmc_project/Control/ThermalMode.interface.yaml26
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
OpenPOWER on IntegriCloud