|  | # Supported BMC layout types. Reference: | 
|  | # https://github.com/openbmc/docs/blob/master/architecture/code-update/flash-layout.md#supported-filesystem-choices | 
|  | # - static: NOR flash configured with fixed-sized MTD partitions. | 
|  | # - ubi: NOR flash device configured with UBI volumes. | 
|  | # - mmc: eMMC flash device configured with ext4 filesystems. | 
|  | option( | 
|  | 'bmc-layout', | 
|  | type: 'combo', | 
|  | choices: ['static', 'ubi', 'mmc'], | 
|  | value: 'static', | 
|  | description: 'The BMC layout type.', | 
|  | ) | 
|  |  | 
|  | # Features | 
|  | option( | 
|  | 'host-bios-upgrade', | 
|  | type: 'feature', | 
|  | value: 'enabled', | 
|  | description: 'Enable host bios upgrade support.', | 
|  | ) | 
|  |  | 
|  | option( | 
|  | 'sync-bmc-files', | 
|  | type: 'feature', | 
|  | value: 'enabled', | 
|  | description: 'Enable sync of filesystem files.', | 
|  | ) | 
|  |  | 
|  | option('tests', type: 'feature', description: 'Build tests') | 
|  |  | 
|  | option( | 
|  | 'verify-signature', | 
|  | type: 'feature', | 
|  | value: 'enabled', | 
|  | description: 'Enable image signature validation.', | 
|  | ) | 
|  |  | 
|  | option( | 
|  | 'usb-code-update', | 
|  | type: 'feature', | 
|  | value: 'enabled', | 
|  | description: 'Firmware update via USB.', | 
|  | ) | 
|  |  | 
|  | option( | 
|  | 'software-update-dbus-interface', | 
|  | type: 'feature', | 
|  | value: 'enabled', | 
|  | description: 'Implementation using software update D-Bus interface - https://github.com/openbmc/docs/blob/master/designs/code-update.md.', | 
|  | ) | 
|  |  | 
|  | option( | 
|  | 'side-switch-on-boot', | 
|  | type: 'feature', | 
|  | value: 'enabled', | 
|  | description: 'Automatic flash side switch on boot', | 
|  | ) | 
|  |  | 
|  | # Variables | 
|  | option( | 
|  | 'active-bmc-max-allowed', | 
|  | type: 'integer', | 
|  | value: 1, | 
|  | description: 'The maximum allowed active BMC versions.', | 
|  | ) | 
|  |  | 
|  | option( | 
|  | 'hash-file-name', | 
|  | type: 'string', | 
|  | value: 'hashfunc', | 
|  | description: 'The name of the hash file.', | 
|  | ) | 
|  |  | 
|  | option( | 
|  | 'img-upload-dir', | 
|  | type: 'string', | 
|  | value: '/tmp/images', | 
|  | description: 'Directory where downloaded software images are placed.', | 
|  | ) | 
|  |  | 
|  | option( | 
|  | 'manifest-file-name', | 
|  | type: 'string', | 
|  | value: 'MANIFEST', | 
|  | description: 'The name of the MANIFEST file.', | 
|  | ) | 
|  |  | 
|  | option( | 
|  | 'media-dir', | 
|  | type: 'string', | 
|  | value: '/run/media', | 
|  | description: 'The base dir where all read-only partitions are mounted.', | 
|  | ) | 
|  |  | 
|  | option( | 
|  | 'optional-images', | 
|  | type: 'array', | 
|  | value: [], | 
|  | description: 'A list of additional image files in the BMC tarball.', | 
|  | ) | 
|  |  | 
|  | option( | 
|  | 'publickey-file-name', | 
|  | type: 'string', | 
|  | value: 'publickey', | 
|  | description: 'The name of the public key file.', | 
|  | ) | 
|  |  | 
|  | option( | 
|  | 'signature-file-ext', | 
|  | type: 'string', | 
|  | value: '.sig', | 
|  | description: 'The extension of the Signature file.', | 
|  | ) | 
|  |  | 
|  | option( | 
|  | 'signed-image-conf-path', | 
|  | type: 'string', | 
|  | value: '/etc/activationdata/', | 
|  | description: 'Path of public key and hash function files.', | 
|  | ) | 
|  |  | 
|  | option( | 
|  | 'sync-list-dir-path', | 
|  | type: 'string', | 
|  | value: '/etc/', | 
|  | description: 'The path to the sync list file directory.', | 
|  | ) | 
|  |  | 
|  | option( | 
|  | 'sync-list-file-name', | 
|  | type: 'string', | 
|  | value: 'synclist', | 
|  | description: 'The name of the sync list file.', | 
|  | ) | 
|  |  | 
|  | option( | 
|  | 'bmc-msl', | 
|  | type: 'string', | 
|  | value: '', | 
|  | description: 'The BMC minimum ship level.', | 
|  | ) | 
|  |  | 
|  | option( | 
|  | 'regex-bmc-msl', | 
|  | type: 'string', | 
|  | value: '', | 
|  | description: 'The Regular expression to parse the MSL.', | 
|  | ) | 
|  |  | 
|  | option( | 
|  | 'bios-object-path', | 
|  | type: 'string', | 
|  | value: '/xyz/openbmc_project/software/bios_active', | 
|  | description: 'The BIOS DBus object path.', | 
|  | ) | 
|  |  | 
|  | option( | 
|  | 'bmc-static-dual-image', | 
|  | type: 'feature', | 
|  | value: 'enabled', | 
|  | description: 'Enable the dual image support for static layout.', | 
|  | ) | 
|  |  | 
|  | option( | 
|  | 'alt-rofs-dir', | 
|  | type: 'string', | 
|  | value: '/run/media/rofs-alt', | 
|  | description: 'The base dir where all read-only partitions are mounted.', | 
|  | ) | 
|  |  | 
|  | option( | 
|  | 'alt-rwfs-dir', | 
|  | type: 'string', | 
|  | value: '/run/media/rwfs-alt/cow', | 
|  | description: 'The dir for alt-rwfs partition.', | 
|  | ) |