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