1description: >
2    Provides Remote BIOS Configuration management functionality. As
3    communication to this service is done through authenticated & authorized
4    session, there won't be any validation for both.
5    https://gerrit.openbmc-project.xyz/c/openbmc/docs/+/29320
6
7methods:
8    - name: SetAttribute
9      description: >
10          To set the new value on existing attribute name. It will create or add
11          the pending attributes.
12      parameters:
13          - name: AttributeName
14            type: string
15            description: >
16                AttributeName which has to be changed.
17          - name: AttributeValue
18            type: variant[int64,string]
19            description: >
20                New attribute value
21
22      errors:
23          - xyz.openbmc_project.Common.Error.InternalFailure
24          - xyz.openbmc_project.BIOSConfig.Common.Error.AttributeReadOnly
25          - xyz.openbmc_project.BIOSConfig.Common.Error.AttributeNotFound
26
27    - name: GetAttribute
28      description: >
29          To get the attribute value of existing attributes.
30      parameters:
31          - name: AttributeName
32            type: string
33            description: >
34                To get the bios attribute current values and pending values if
35                previously set by setAttribute or SetPendingAttributes.
36
37      returns:
38          - name: AttributeValueType
39            type: enum[self.AttributeType]
40            description: >
41                PLDM attribute Type present in PLDM spec
42          - name: CurrentValue
43            type: variant[int64,string]
44            description: >
45                The attribute current value.
46          - name: PendingValue
47            type: variant[int64,string]
48            description: >
49                The pending attribute value if its available.
50      errors:
51          - xyz.openbmc_project.Common.Error.InternalFailure
52          - xyz.openbmc_project.BIOSConfig.Common.Error.AttributeNotFound
53
54properties:
55    - name: ResetBIOSSettings
56      type: enum[self.ResetFlag]
57      default: NoAction
58      description: >
59          Contain reset BIOS setting type: Interface have to set NoAction this
60          property. when Reset BIOS settings are informed to the BIOS.
61
62    - name: BaseBIOSTable
63      type:
64          dict[string,struct[enum[self.AttributeType],boolean,string,string,string,variant[int64,string],variant[int64,string],array[struct[enum[self.BoundType],
65          variant[int64, string],string]]]]
66      description: >
67          map{attributeName,struct{attributeType,readonlyStatus,displayname,
68          description,menuPath,current,default,
69          array{struct{optionstring,optionvalue}}}} Example 1: {"DdrFreqLimit",
70          {xyz.openbmc_project.BIOSConfig.Manager.AttributeType.String,
71           false,
72           "Memory Operating Speed Selection",
73           "Force specific Memory Operating Speed or use Auto setting.",
74           "Advanced/Memory Configuration/Memory Operating Speed Selection",
75           "0x00",
76           "0x0B",
77           { {"OneOf", "auto", "enum0"},
78             {"OneOf", "2133", "enum1"},
79             {"OneOf", "2400", "enum2"},
80             {"OneOf", "2664", "enum3"},
81             {"OneOf", "2933", "enum4"}
82           }
83          } }
84           Example 2:
85          {"BIOSSerialDebugLevel",
86          {xyz.openbmc_project.BIOSConfig.Manager.AttributeType.Integer,
87           false,
88           "BIOS Serial Debug level",
89           "BIOS Serial Debug level during system boot.",
90           "Advanced/Debug Feature Selection",
91           0x00,
92           0x01,
93           { {"MinBound", 0, ""},
94             {"MaxBound", 4, ""},
95             {"ScalarIncrement", 1, ""}
96           }
97          } }
98
99    - name: PendingAttributes
100      type: dict[string,struct[enum[self.AttributeType],variant[int64,string]]]
101      description: >
102          The Pending attribute name and new value. ex- {
103          {"QuietBoot",Type.Integer, 0x1},
104                { "DdrFreqLimit",Type.String,"2933"}
105              }
106      errors:
107          - xyz.openbmc_project.Common.Error.InvalidArgument
108          - xyz.openbmc_project.BIOSConfig.Common.Error.AttributeNotFound
109          - xyz.openbmc_project.BIOSConfig.Common.Error.AttributeReadOnly
110
111enumerations:
112    - name: AttributeType
113      description: >
114          Attribute Type.
115      values:
116          - name: Enumeration
117            description: >
118                Enumeration value Type.
119          - name: String
120            description: >
121                string value Type.
122          - name: Password
123            description: >
124                Encoded string value Type
125          - name: Integer
126            description: >
127                Integer value Type.
128          - name: Boolean
129            description: >
130                Boolean value Type
131
132    - name: ResetFlag
133      description: >
134          Reset BIOS setting type requested by user.
135      values:
136          - name: NoAction
137            description: >
138                Default value, In order to cancel the reset BIOS settings.
139          - name: FactoryDefaults
140            description: >
141                Used to set factory default settings.
142          - name: FailSafeDefaults
143            description: >
144                Used to set the fail safe settings.
145
146    - name: BoundType
147      description: >
148          Contain BoundType value for string and integer
149      values:
150          - name: LowerBound
151            description: >
152                Used to define the lower bound value.
153          - name: UpperBound
154            description: >
155                Used to define the upper bound value.
156          - name: ScalarIncrement
157            description: >
158                Used to define scalar value of integer.
159          - name: MinStringLength
160            description: >
161                Used to define minimum string length.
162          - name: MaxStringLength
163            description: >
164                Used to define maximum string length.
165          - name: OneOf
166            description: >
167                Used to define the enumeration options.
168