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