1*bbeb9bddSPatrick Williams# Settings Manager
2*bbeb9bddSPatrick Williams
367221990SDeepak Kodihalli## Introduction
467221990SDeepak Kodihalli
567221990SDeepak KodihalliThe settings manager has the following design goals:
667221990SDeepak Kodihalli
7*bbeb9bddSPatrick Williams- Each setting should be a distinct D-Bus object.
867221990SDeepak Kodihalli
9*bbeb9bddSPatrick Williams- The above makes it possible to not even create settings objects that do not
1067221990SDeepak Kodihalli  apply to a specific system.
1167221990SDeepak Kodihalli
12*bbeb9bddSPatrick Williams- It should be possible, for example, for host0/ and host1/ on a system with two
13*bbeb9bddSPatrick Williams  hosts to not only have different values for certain settings, but have
14*bbeb9bddSPatrick Williams  different applicable settings as well.
1567221990SDeepak Kodihalli
16*bbeb9bddSPatrick Williams- It should be possible to specify default settings for a system at build-time,
17ba39928bSGunnar Mills  based on which the settings manager should at run-time create appropriate
18ba39928bSGunnar Mills  D-Bus objects and place them on the bus.
1967221990SDeepak Kodihalli
2067221990SDeepak Kodihalli## Settings policy file
2167221990SDeepak Kodihalli
2267221990SDeepak KodihalliSome of the design goals above are achieved via a policy file, which is written
2367221990SDeepak Kodihalliin YAML. Based on this policy file, the settings manager code is generated to be
24ba39928bSGunnar Millsable to create only relevant settings D-Bus objects along with specifying their
2567221990SDeepak Kodihallidefaults.
2667221990SDeepak Kodihalli
2767221990SDeepak KodihalliHere's an example of how entries in the YAML would look:
2867221990SDeepak Kodihalli
29*bbeb9bddSPatrick Williams```yaml
3067221990SDeepak Kodihalli/xyz/openbmc_project/control/host0/boot_mode:
3167221990SDeepak Kodihalli  Interface: xyz.openbmc_project.Control.Boot.Mode
3267221990SDeepak Kodihalli  Defaults:
3367221990SDeepak Kodihalli    BootMode: Mode::Modes::Regular
3467221990SDeepak Kodihalli
3567221990SDeepak Kodihalli/xyz/openbmc_project/control/host1/boot_mode:
3667221990SDeepak Kodihalli  Interface: xyz.openbmc_project.Control.Boot.Mode
3767221990SDeepak Kodihalli  Defaults:
3867221990SDeepak Kodihalli    BootMode: Mode::Modes::Safe
3967221990SDeepak Kodihalli```
4067221990SDeepak Kodihalli
4167221990SDeepak KodihalliIt is possible to specify this policy file via a bitbake recipe for a system
4267221990SDeepak Kodihallispecific policy.
43