| # PLDM daemon options | |
| option('tests', type: 'feature', value: 'enabled', description: 'Build tests') | |
| option( | |
| 'utilities', | |
| type: 'feature', | |
| value: 'enabled', | |
| description: 'Enable debug utilities', | |
| ) | |
| option( | |
| 'libpldmresponder', | |
| type: 'feature', | |
| value: 'enabled', | |
| description: 'Enable libpldmresponder', | |
| ) | |
| option( | |
| 'systemd', | |
| type: 'feature', | |
| value: 'enabled', | |
| description: 'Include systemd support', | |
| ) | |
| option( | |
| 'transport-implementation', | |
| type: 'combo', | |
| choices: ['mctp-demux', 'af-mctp'], | |
| description: 'transport via af-mctp or mctp-demux', | |
| ) | |
| # As per PLDM spec DSP0240 version 1.1.0, in Timing Specification for PLDM messages (Table 6), | |
| # the instance ID for a given response will expire and become reusable if a response has not been | |
| # received within a maximum of 6 seconds after a request is sent. By setting the dbus timeout | |
| # value to 5 seconds we ensure that PLDM does not wait for a response from a dbus call even after | |
| # the instance ID has expired. If the option is set to 5 seconds, any dbus call originated from | |
| # PLDM daemon will timeout after 5 seconds. | |
| option( | |
| 'dbus-timeout-value', | |
| type: 'integer', | |
| min: 3, | |
| max: 10, | |
| value: 5, | |
| description: '''The amount of time pldm waits to get a response for a dbus | |
| message before timing out''', | |
| ) | |
| option( | |
| 'heartbeat-timeout-seconds', | |
| type: 'integer', | |
| value: 120, | |
| description: '''The amount of time host waits for BMC to respond to pings | |
| from host, as part of host-bmc surveillance''', | |
| ) | |
| # Flight Recorder for PLDM Daemon | |
| option( | |
| 'flightrecorder-max-entries', | |
| type: 'integer', | |
| min: 0, | |
| max: 30, | |
| value: 0, | |
| description: '''The max number of pldm messages that can be stored in the | |
| recorder, this feature will be disabled if it is set to 0''', | |
| ) | |
| # PLDM Daemon Terminus options | |
| option( | |
| 'terminus-id', | |
| type: 'integer', | |
| min: 0, | |
| max: 255, | |
| value: 1, | |
| description: '''The terminus id value of the device that is running this | |
| pldm stack''', | |
| ) | |
| option( | |
| 'terminus-handle', | |
| type: 'integer', | |
| min: 0, | |
| max: 65535, | |
| value: 1, | |
| description: '''The terminus handle value of the device that is running this | |
| pldm stack''', | |
| ) | |
| # Timing specification options for PLDM messages | |
| option( | |
| 'number-of-request-retries', | |
| type: 'integer', | |
| min: 2, | |
| max: 30, | |
| value: 2, | |
| description: '''The number of times a requester is obligated to retry a | |
| request''', | |
| ) | |
| option( | |
| 'instance-id-expiration-interval', | |
| type: 'integer', | |
| min: 5, | |
| max: 6, | |
| value: 5, | |
| description: 'Instance ID expiration interval in seconds', | |
| ) | |
| # Default response-time-out set to 2 seconds to facilitate a minimum retry of | |
| # the request of 2. | |
| option( | |
| 'response-time-out', | |
| type: 'integer', | |
| min: 300, | |
| max: 4800, | |
| value: 2000, | |
| description: '''The amount of time a requester has to wait for a response | |
| message in milliseconds''', | |
| ) | |
| # Firmware update configuration parameters | |
| option( | |
| 'maximum-transfer-size', | |
| type: 'integer', | |
| min: 16, | |
| max: 4294967295, | |
| value: 4096, | |
| description: '''Maximum size in bytes of the variable payload allowed to be | |
| requested by the FD, via RequestFirmwareData command''', | |
| ) | |
| option( | |
| 'update-timeout-seconds', | |
| type: 'integer', | |
| min: 60, | |
| max: 90, | |
| value: 60, | |
| description: '''Timeout in seconds for the UA to cancel the component update | |
| if no command is received from the FD during component image | |
| transfer stage''', | |
| ) | |
| # Bios Attributes option | |
| option( | |
| 'system-specific-bios-json', | |
| type: 'feature', | |
| value: 'disabled', | |
| description: 'Support for different set of bios attributes for different types of systems', | |
| ) | |
| # PLDM Soft Power off options | |
| option( | |
| 'softoff', | |
| type: 'feature', | |
| value: 'enabled', | |
| description: 'Build soft power off application', | |
| ) | |
| option( | |
| 'softoff-timeout-seconds', | |
| type: 'integer', | |
| value: 7200, | |
| description: 'softoff: Time to wait for host to gracefully shutdown', | |
| ) | |
| # Vendor Specific Options | |
| ## OEM IBM Options | |
| option( | |
| 'oem-ibm', | |
| type: 'feature', | |
| value: 'disabled', | |
| description: 'Enable IBM OEM PLDM', | |
| ) | |
| option( | |
| 'oem-ibm-dma-maxsize', | |
| type: 'integer', | |
| min: 4096, | |
| max: 16773120, | |
| value: 8384512, | |
| description: 'OEM-IBM: max DMA size', | |
| ) | |
| ## OEM AMPERE Options | |
| option( | |
| 'oem-ampere', | |
| type: 'feature', | |
| description: 'Enable AMPERE OEM PLDM', | |
| value: 'disabled', | |
| ) | |
| ## OEM META Options | |
| option( | |
| 'oem-meta', | |
| type: 'feature', | |
| description: 'Enable META OEM PLDM', | |
| value: 'disabled', | |
| ) | |
| ## OEM NVIDIA Options | |
| option( | |
| 'oem-nvidia', | |
| type: 'feature', | |
| description: 'Enable NVIDIA OEM PLDM', | |
| value: 'disabled', | |
| ) | |
| ## OEM INTEL Options | |
| option( | |
| 'oem-intel', | |
| type: 'feature', | |
| description: 'Enable INTEL OEM PLDM', | |
| value: 'disabled', | |
| ) | |
| ## Default Sensor Update Interval Options | |
| option( | |
| 'default-sensor-update-interval', | |
| type: 'integer', | |
| min: 1, | |
| max: 4294967295, | |
| description: '''The default sensor polling interval in milliseconds. | |
| The value will be used when the internal is not configured | |
| in the PLDM sensor PDRs use `updateInterval` field. `pldmd` | |
| will send `GetSensorReading` to get the PLDM sensor values | |
| of the monitoring terminus after each configured | |
| interval.''', | |
| value: 999, | |
| ) | |
| # Platform-mc configuration parameters | |
| ## Sensor Polling Options | |
| option( | |
| 'sensor-polling-time', | |
| type: 'integer', | |
| min: 1, | |
| max: 10000, | |
| description: '''The configured timeout in milliseconds of the common sensor | |
| polling timer of each terminus which will trigger the | |
| terminus sensor reading task. The task will check | |
| whether the sensor in the terminus sensors list need to | |
| be updated by comparing the sensor `updateInterval` with the | |
| interval between current timestamp and latest updated | |
| timestamp of the sensor. The task will send | |
| `GetSensorReading` if the sensor need to be updated.''', | |
| value: 249, | |
| ) | |
| # Firmware Update configuration parameters | |
| option( | |
| 'firmware-package-staging-dir', | |
| type: 'string', | |
| value: '/tmp/pldm-images', | |
| description: 'Firmware package staging directory for PLDM packages.', | |
| ) | |
| option( | |
| 'fw-update-pkg-inotify', | |
| type: 'feature', | |
| value: 'disabled', | |
| description: 'Enable inotify-based firmware update package monitoring', | |
| ) | |
| option( | |
| 'generate-terminus-locator-pdr', | |
| type: 'feature', | |
| value: 'enabled', | |
| description: 'Enable generating terminus locator pdr', | |
| ) | |
| option( | |
| 'pdr-directory-list', | |
| type: 'array', | |
| value: [], | |
| description: 'A list of directories to look for PDR JSON files', | |
| ) | |
| option( | |
| 'mctp-reactor', | |
| type: 'feature', | |
| value: 'enabled', | |
| description: 'Enable reacting to mctpd events', | |
| ) | |
| option( | |
| 'use-libpldm-subproject', | |
| type: 'boolean', | |
| value: true, | |
| description: 'Force using libpldm subproject wrap instead of system dependency' | |
| ) | |
| option( | |
| 'use-phosphor-dbus-interfaces-subproject', | |
| type: 'boolean', | |
| value: true, | |
| description: 'Build phosphor-dbus-interfaces from subproject' | |
| ) | |
| # Shared memory for PLDM sensors (PID tlBMC migration) | |
| option( | |
| 'pldm-shmem', | |
| type: 'feature', | |
| value: 'disabled', | |
| description: 'Enable shared memory for PLDM sensors (PID tlBMC migration).', | |
| ) |