xref: /openbmc/pldm/meson.options (revision 6fa09e9621b4e8ad3f4ed935a23f665ec9bcfed8)
1# PLDM daemon options
2option('tests', type: 'feature', value: 'enabled', description: 'Build tests')
3
4option(
5    'utilities',
6    type: 'feature',
7    value: 'enabled',
8    description: 'Enable debug utilities',
9)
10
11option(
12    'libpldmresponder',
13    type: 'feature',
14    value: 'enabled',
15    description: 'Enable libpldmresponder',
16)
17
18option(
19    'systemd',
20    type: 'feature',
21    value: 'enabled',
22    description: 'Include systemd support',
23)
24
25option(
26    'transport-implementation',
27    type: 'combo',
28    choices: ['mctp-demux', 'af-mctp'],
29    description: 'transport via af-mctp or mctp-demux',
30)
31
32# As per PLDM spec DSP0240 version 1.1.0, in Timing Specification for PLDM messages (Table 6),
33# the instance ID for a given response will expire and become reusable if a response has not been
34# received within a maximum of 6 seconds after a request is sent. By setting the dbus timeout
35# value to 5 seconds we ensure that PLDM does not wait for a response from a dbus call even after
36# the instance ID has expired. If the option is set to 5 seconds, any dbus call originated from
37# PLDM daemon will timeout after 5 seconds.
38option(
39    'dbus-timeout-value',
40    type: 'integer',
41    min: 3,
42    max: 10,
43    value: 5,
44    description: '''The amount of time pldm waits to get a response for a dbus
45                    message before timing out''',
46)
47
48option(
49    'heartbeat-timeout-seconds',
50    type: 'integer',
51    value: 120,
52    description: '''The amount of time host waits for BMC to respond to pings
53                    from host, as part of host-bmc surveillance''',
54)
55
56# Flight Recorder for PLDM Daemon
57option(
58    'flightrecorder-max-entries',
59    type: 'integer',
60    min: 0,
61    max: 30,
62    value: 0,
63    description: '''The max number of pldm messages that can be stored in the
64                    recorder, this feature will be disabled if it is set to 0''',
65)
66
67# PLDM Daemon Terminus options
68option(
69    'terminus-id',
70    type: 'integer',
71    min: 0,
72    max: 255,
73    value: 1,
74    description: '''The terminus id value of the device that is running this
75                    pldm stack''',
76)
77
78option(
79    'terminus-handle',
80    type: 'integer',
81    min: 0,
82    max: 65535,
83    value: 1,
84    description: '''The terminus handle value of the device that is running this
85                    pldm stack''',
86)
87
88# Timing specification options for PLDM messages
89option(
90    'number-of-request-retries',
91    type: 'integer',
92    min: 2,
93    max: 30,
94    value: 2,
95    description: '''The number of times a requester is obligated to retry a
96                    request''',
97)
98
99option(
100    'instance-id-expiration-interval',
101    type: 'integer',
102    min: 5,
103    max: 6,
104    value: 5,
105    description: 'Instance ID expiration interval in seconds',
106)
107
108# Default response-time-out set to 2 seconds to facilitate a minimum retry of
109# the request of 2.
110option(
111    'response-time-out',
112    type: 'integer',
113    min: 300,
114    max: 4800,
115    value: 2000,
116    description: '''The amount of time a requester has to wait for a response
117                    message in milliseconds''',
118)
119
120# Firmware update configuration parameters
121option(
122    'maximum-transfer-size',
123    type: 'integer',
124    min: 16,
125    max: 4294967295,
126    value: 4096,
127    description: '''Maximum size in bytes of the variable payload allowed to be
128                    requested by the FD, via RequestFirmwareData command''',
129)
130
131option(
132    'update-timeout-seconds',
133    type: 'integer',
134    min: 60,
135    max: 90,
136    value: 60,
137    description: '''Timeout in seconds for the UA to cancel the component update
138                    if no command is received from the FD during component image
139                    transfer stage''',
140)
141
142# Bios Attributes option
143option(
144    'system-specific-bios-json',
145    type: 'feature',
146    value: 'disabled',
147    description: 'Support for different set of bios attributes for different types of systems',
148)
149
150# PLDM Soft Power off options
151option(
152    'softoff',
153    type: 'feature',
154    value: 'enabled',
155    description: 'Build soft power off application',
156)
157
158option(
159    'softoff-timeout-seconds',
160    type: 'integer',
161    value: 7200,
162    description: 'softoff: Time to wait for host to gracefully shutdown',
163)
164
165# Vendor Specific Options
166
167## OEM IBM Options
168option(
169    'oem-ibm',
170    type: 'feature',
171    value: 'enabled',
172    description: 'Enable IBM OEM PLDM',
173)
174
175option(
176    'oem-ibm-dma-maxsize',
177    type: 'integer',
178    min: 4096,
179    max: 16773120,
180    value: 8384512,
181    description: 'OEM-IBM: max DMA size',
182)
183
184
185## OEM AMPERE Options
186option(
187    'oem-ampere',
188    type: 'feature',
189    description: 'Enable AMPERE OEM PLDM',
190    value: 'enabled',
191)
192
193## Default Sensor Update Interval Options
194option(
195    'default-sensor-update-interval',
196    type: 'integer',
197    min: 1,
198    max: 4294967295,
199    description: '''The default sensor polling interval in milliseconds.
200                    The value will be used when the internal is not configured
201                    in the PLDM sensor PDRs use `updateInterval` field. `pldmd`
202                    will send `GetSensorReading` to get the PLDM sensor values
203                    of the monitoring terminus after each configured
204                    interval.''',
205    value: 999,
206)
207
208# Platform-mc configuration parameters
209
210## Sensor Polling Options
211option(
212    'sensor-polling-time',
213    type: 'integer',
214    min: 1,
215    max: 10000,
216    description: '''The configured timeout in milliseconds of the common sensor
217                    polling timer of each terminus which will trigger the
218                    terminus sensor reading task. The task will check
219                    whether the sensor in the terminus sensors list need to
220                    be updated by comparing the sensor `updateInterval` with the
221                    interval between current timestamp and latest updated
222                    timestamp of the sensor. The task will send
223                    `GetSensorReading` if the sensor need to be updated.''',
224    value: 249,
225)
226