Name Date Size #Lines LOC

..13-Nov-2024-

Boot/H06-Dec-2022-10491

Host/H06-Dec-2022-2218

Power/H25-Jun-2024-396356

Processor/H14-Mar-2022-2928

Security/H09-Feb-2024-6458

Service/H28-Jun-2024-11492

TPM/H09-Jun-2021-97

CFMLimit.interface.yamlH A D06-Dec-2022292 119

ChassisCapabilities.interface.yamlH A D06-Dec-20221.5 KiB4746

Device.errors.yamlH A D09-Jun-2021113 43

Device.metadata.yamlH A D29-Apr-202283 43

FanPwm.interface.yamlH A D09-Jun-2021585 1713

FanRedundancy.interface.yamlH A D24-Oct-2022964 3735

FanSpeed.interface.yamlH A D09-Jun-2021591 1713

FieldMode.interface.yamlH A D14-Mar-2022590 1614

Host.errors.yamlH A D14-Mar-2022122 43

Host.interface.yamlH A D06-Dec-20222 KiB5651

Host.metadata.yamlH A D09-Jun-202141 32

MinimumShipLevel.interface.yamlH A D06-Dec-2022527 1411

Mode.interface.yamlH A D06-Dec-2022552 1815

PowerSupplyAttributes.interface.yamlH A D14-Mar-2022339 1110

PowerSupplyRedundancy.interface.yamlH A D18-Jun-20242.7 KiB7371

README.msl.mdH A D06-Dec-20222.4 KiB4938

ThermalMode.interface.yamlH A D18-Jun-2024896 2522

VoltageRegulatorControl.interface.yamlH A D11-Jan-20231.1 KiB3532

VoltageRegulatorMode.interface.yamlH A D11-Jan-20231.8 KiB3734

README.msl.md

1# Minimum Ship Level (MSL)
2
3## Overview
4
5The OpenBMC API provides a global setting for enforcement of minimum ship level.
6Typically a setting like this would be used to enable the use of hardware
7configurations in platform development that may not necessarily be supported in
8a manufacturing or field environment.
9
10If an OpenBMC implementation provides MinimumShipLevelRequired, it must be on
11`/xyz/openbmc_project/control/minimum_ship_level_required`. There are **no**
12requirements on how the setting is used; implementations are free to react to
13the value of the setting however they choose.
14
15In anticipation of a common use case of examining hardware assets, determining
16if they are of a certain revision or part, and taking some action if they are
17not, the OpenBMC API also provides an inventory decorator called
18MeetsMinimumShipLevel.
19
20MeetsMinimumShipLevel can be implemented on any object in the inventory
21namespace. Again, there are no requirements on what an implementation does when
22a particular inventory object does or does not meet the minimum ship level.
23
24## Implementation Notes
25
26Consider a server platform with an MSL requirement that a fan control card is a
27certain revision, and if it is not, the server must not be allowed to boot,
28unless a user explicitly specifies otherwise.
29
30Phosphor OpenBMC provides a basic implementation of MinimumShipLevelRequired. It
31maintains a setting store and interface for the setting value. This
32implementation is suitable for the hypothetical platform implementation
33requirements, allowing a user to toggle the setting back and forth.
34
35To enable verification that MSL has been satisfied, the hypothetical platform
36implementation would need to write an application that implements
37MeetsMinimumShipLevel on the inventory assets to be verified. At present
38Phosphor OpenBMC does not provide any applications that do this. If your
39application is general purpose and could meet the needs of others, consider
40contributing it to Phosphor OpenBMC. A possible implementation for the
41hypothetical fan control card might be an application that validates a number of
42hwmon sensors exist and then sets the MinimumShipLevelRequired on the fan
43inventory object accordingly.
44
45Finally, the setting and the inventory assets must be compared and the server
46prevented from powering on. This could be accomplished with a custom application
47or for simple logic, with
48[PDM](https://github.com/openbmc/phosphor-dbus-monitor) rules.
49