chassishandler: Add support for BIOS verbosity

Implement the set/get BIOS verbosity, data 3 of the boot option
parameters boot flags (0x05).

Tested:
```
root@bmc:~# ipmitool chassis bootparam get 5 |grep verb
   - BIOS verbosity : System Default
root@bmc:~# ipmitool raw 0x0 0x8 0x5 0xe0 0x0 0x40 0x0 0x0

root@bmc:~# ipmitool chassis bootparam get 5 |grep verb
   - BIOS verbosity : Request Verbose Display
```

Signed-off-by: Cosmo Chou <cosmo.chou@quantatw.com>
Change-Id: I50121a6e1826047b9d6240bec8331fd563328323
diff --git a/chassishandler.cpp b/chassishandler.cpp
index dcf26d7..07e5544 100644
--- a/chassishandler.cpp
+++ b/chassishandler.cpp
@@ -1840,6 +1840,7 @@
 static uint8_t bootFlagValidBitClr = 0;
 static uint5_t bootInitiatorAckData = 0x0;
 static bool cmosClear = false;
+static uint2_t biosVerbosity = 0x0;
 
 /** @brief implements the Get Chassis system boot option
  *  @param ctx - context pointer
@@ -1965,11 +1966,11 @@
 
             uint1_t validFlag = valid ? 1 : 0;
 
-            response.pack(bootOptionParameter, reserved1, uint5_t{},
-                          uint1_t{biosBootType}, uint1_t{permanent},
-                          uint1_t{validFlag}, uint2_t{}, uint4_t{bootOption},
-                          uint1_t{}, cmosClear, uint8_t{}, uint8_t{},
-                          uint8_t{});
+            response.pack(
+                bootOptionParameter, reserved1, uint5_t{},
+                uint1_t{biosBootType}, uint1_t{permanent}, uint1_t{validFlag},
+                uint2_t{}, uint4_t{bootOption}, uint1_t{}, cmosClear, uint5_t{},
+                uint2_t{biosVerbosity}, uint1_t{}, uint8_t{}, uint8_t{});
             return ipmi::responseSuccess(std::move(response));
         }
         catch (const InternalFailure& e)
@@ -2066,7 +2067,8 @@
         bool screenBlank;
         uint4_t bootDeviceSelector;
         bool lockKeyboard;
-        uint8_t data3;
+        uint5_t biosCtrls;
+        bool lockOutPower;
         uint4_t biosInfo;
         uint4_t rsvd1;
         uint5_t deviceInstance;
@@ -2074,8 +2076,9 @@
 
         if (data.unpack(rsvd, biosBootType, permanent, validFlag,
                         lockOutResetButton, screenBlank, bootDeviceSelector,
-                        lockKeyboard, cmosClear, data3, biosInfo, rsvd1,
-                        deviceInstance, rsvd2) != 0 ||
+                        lockKeyboard, cmosClear, biosCtrls, biosVerbosity,
+                        lockOutPower, biosInfo, rsvd1, deviceInstance, rsvd2) !=
+                0 ||
             !data.fullyUnpacked())
         {
             return ipmi::responseReqDataLenInvalid();