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