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