Upstream BIOS Attributes under oem extensions

- This commit would upstream all the bios attributes
  that ibm machines use.
- These attributes will be copied onto the BMC when
  it is compiled with oem-ibm flag enabled.

Tested By:
- meson builddir -Doem-ibm=enabled -Dprefix=<>
- ninja -C builddir
- ninja install

Post install step, was able to see all the bios attribute
jsons inside <prefix>/share/pldm/bios folder.

Signed-off-by: Manojkiran Eda <manojkiran.eda@gmail.com>
Change-Id: Iea030b773946298b26bbb26443ef4015f19ff37d
diff --git a/configurations/meson.build b/configurations/meson.build
index c7ddf0c..64180cb 100644
--- a/configurations/meson.build
+++ b/configurations/meson.build
@@ -17,6 +17,7 @@
 if get_option('oem-ibm').enabled()
     install_subdir('../oem/ibm/configurations/fru', install_dir: packagedir)
     install_subdir('../oem/ibm/configurations/events', install_dir: packagedir)
+    install_subdir('../oem/ibm/configurations/bios', install_dir: packagedir)
     install_data('../oem/ibm/configurations/fileTable.json',
         install_dir: packagedir)
     install_data('../oem/ibm/configurations/host_eid', install_dir: packagedir)
diff --git a/oem/ibm/configurations/bios/enum_attrs.json b/oem/ibm/configurations/bios/enum_attrs.json
new file mode 100644
index 0000000..644902a
--- /dev/null
+++ b/oem/ibm/configurations/bios/enum_attrs.json
@@ -0,0 +1,174 @@
+{
+   "entries":[
+      {
+         "attribute_name":"pvm_fw_boot_side",
+         "possible_values":[
+            "Perm",
+            "Temp"
+         ],
+         "default_values":[
+            "Temp"
+         ],
+         "helpText" : "pvm_fw_boot_side",
+         "displayName" : "pvm_fw_boot_side"
+      },
+      {
+         "attribute_name":"pvm_os_boot_side",
+         "possible_values":[
+            "Perm",
+            "Temp"
+         ],
+         "default_values":[
+            "Temp"
+         ],
+         "helpText" : "pvm_os_boot_side",
+         "displayName" : "pvm_os_boot_side"
+      },
+      {
+         "attribute_name":"pvm_inband_code_update",
+         "possible_values":[
+            "Allowed",
+            "Not Allowed"
+         ],
+         "default_values":[
+            "Allowed"
+         ],
+         "helpText" : "pvm_inband_code_update",
+         "displayName" : "pvm_inband_code_update"
+      },
+      {
+         "attribute_name":"pvm_surveillance",
+         "possible_values":[
+            "Disabled",
+            "Enabled"
+         ],
+         "default_values":[
+            "Enabled"
+         ],
+         "helpText" : "pvm_surveillance",
+         "displayName" : "pvm_surveillance"
+      },
+      {
+         "attribute_name":"pvm_pcie_error_inject",
+         "possible_values":[
+            "Disabled",
+            "Enabled"
+         ],
+         "default_values":[
+            "Enabled"
+         ],
+         "helpText" : "pvm_pcie_error_inject",
+         "displayName" : "pvm_pcie_error_inject"
+      },
+      {
+         "attribute_name":"vmi_if0_ipv4_method",
+         "possible_values":[
+            "IPv4Static",
+            "IPv4DHCP"
+         ],
+         "default_values":[
+            "IPv4Static"
+         ],
+         "helpText" : "vmi_if0_ipv4_method",
+         "displayName" : "vmi_if0_ipv4_method"
+      },
+      {
+         "attribute_name":"vmi_if1_ipv4_method",
+         "possible_values":[
+            "IPv4Static",
+            "IPv4DHCP"
+         ],
+         "default_values":[
+            "IPv4Static"
+         ],
+         "helpText" : "vmi_if1_ipv4_method",
+         "displayName" : "vmi_if1_ipv4_method"
+      },
+      {
+         "attribute_name":"hb_hyp_switch",
+         "possible_values":[
+            "PowerVM",
+            "OPAL"
+         ],
+         "default_values":[
+            "PowerVM"
+         ],
+         "helpText" : "hb_hyp_switch",
+         "displayName" : "hb_hyp_switch"
+      },
+      {
+         "attribute_name":"pvm_stop_at_standby",
+         "possible_values":[
+            "Disabled",
+            "Enabled"
+         ],
+         "default_values":[
+            "Disabled"
+         ],
+         "helpText" : "pvm_stop_at_standby",
+         "displayName" : "pvm_stop_at_standby"
+      },
+      {
+         "attribute_name":"hb_debug_console",
+         "possible_values":[
+            "Disabled",
+            "Enabled"
+         ],
+         "default_values":[
+            "Disabled"
+         ],
+         "helpText" : "When set to Enabled Hostboot should emit debug trace information to the VUART2 device.",
+         "displayName" : "hb-debug-console"
+      },
+	  {
+         "attribute_name":"pvm_system_power_off_policy",
+         "possible_values":[
+            "Power Off",
+            "Stay On",
+		    "Automatic"
+         ],
+         "default_values":[
+            "Automatic"
+          ],
+         "helpText" : "The system power off policy flag is a system parameter that controls the system's behavior when the last partition (or only partition in the case of a system that is not managed by an HMC) is powered off.",
+         "displayName" : "System Automatic Power Off Policy"
+      },
+	  {
+         "attribute_name":"pvm_hmc_managed",
+         "possible_values":[
+            "Disabled",
+            "Enabled"
+         ],
+         "default_values":[
+            "Disabled"
+         ],
+         "helpText" : "This option enables or disables the system is managed by HMC.",
+         "displayName" : "HMC managed System"
+      },
+	  {
+         "attribute_name":"pvm_rtad",
+         "possible_values":[
+            "Disabled",
+            "Enabled"
+         ],
+         "default_values":[
+            "Enabled"
+         ],
+         "helpText" : "This option enables or disables the Remote Trusted Attestation Daemon for host firmware.",
+         "displayName" : "Remote Trusted Attestation Daemon State"
+      },
+	  {
+         "attribute_name":"pvm_default_os_type",
+         "possible_values":[
+            "AIX",
+            "Linux",
+            "IBM I"
+         ],
+         "default_values":[
+            "AIX"
+         ],
+         "helpText" : "CEC Primary OS",
+         "displayName" : "CEC Primary OS"
+      }
+   ]
+}
diff --git a/oem/ibm/configurations/bios/integer_attrs.json b/oem/ibm/configurations/bios/integer_attrs.json
new file mode 100644
index 0000000..1c666e2
--- /dev/null
+++ b/oem/ibm/configurations/bios/integer_attrs.json
@@ -0,0 +1,31 @@
+{
+   "entries":[
+      {
+         "attribute_name" : "vmi_if_count",
+         "lower_bound" : 0,
+         "upper_bound" : 2,
+         "scalar_increment" : 1,
+         "default_value" : 1,
+         "helpText" : "vmi_if_count",
+         "displayName" : "vmi_if_count"
+      },
+      {
+         "attribute_name" : "vmi_if0_ipv4_prefix_length",
+         "lower_bound" : 0,
+         "upper_bound" : 32,
+         "scalar_increment" : 1,
+         "default_value" : 0,
+         "helpText" : "vmi_if0_ipv4_prefix_length",
+         "displayName" : "vmi_if0_ipv4_prefix_length"
+      },
+      {
+         "attribute_name" : "vmi_if1_ipv4_prefix_length",
+         "lower_bound" : 0,
+         "upper_bound" : 32,
+         "scalar_increment" : 1,
+         "default_value" : 0,
+         "helpText" : "vmi_if1_ipv4_prefix_length",
+         "displayName" : "vmi_if1_ipv4_prefix_length"
+      }
+   ]
+}
diff --git a/oem/ibm/configurations/bios/string_attrs.json b/oem/ibm/configurations/bios/string_attrs.json
new file mode 100644
index 0000000..9dc6a22
--- /dev/null
+++ b/oem/ibm/configurations/bios/string_attrs.json
@@ -0,0 +1,64 @@
+{
+   "entries":[
+      {
+         "attribute_name" : "pvm_system_name",
+         "string_type" : "ASCII",
+         "minimum_string_length" : 0,
+         "maximum_string_length" : 100,
+         "default_string_length" : 0,
+         "default_string" : "",
+         "helpText" : "pvm_system_name",
+         "displayName" : "pvm_system_name"
+      },
+      {
+         "attribute_name" : "vmi_hostname",
+         "string_type" : "ASCII",
+         "minimum_string_length" : 0,
+         "maximum_string_length" : 255,
+         "default_string_length" : 0,
+         "default_string" : "",
+         "helpText" : "vmi_hostname",
+         "displayName" : "vmi_hostname"
+      },
+      {
+         "attribute_name" : "vmi_if0_ipv4_gateway",
+         "string_type" : "ASCII",
+         "minimum_string_length" : 7,
+         "maximum_string_length" : 15,
+         "default_string_length" : 7,
+         "default_string" : "0.0.0.0",
+         "helpText" : "vmi_if0_ipv4_gateway",
+         "displayName" : "vmi_if0_ipv4_gateway"
+      },
+	  {
+         "attribute_name" : "vmi_if1_ipv4_gateway",
+         "string_type" : "ASCII",
+         "minimum_string_length" : 7,
+         "maximum_string_length" : 15,
+         "default_string_length" : 7,
+         "default_string" : "0.0.0.0",
+         "helpText" : "vmi_if1_ipv4_gateway",
+         "displayName" : "vmi_if1_ipv4_gateway"
+      },
+      {
+         "attribute_name" : "vmi_if0_ipv4_ipaddr",
+         "string_type" : "ASCII",
+         "minimum_string_length" : 7,
+         "maximum_string_length" : 15,
+         "default_string_length" : 7,
+         "default_string" : "0.0.0.0",
+         "helpText" : "vmi_if0_ipv4_ipaddr",
+         "displayName" : "vmi_if0_ipv4_ipaddr"
+      },
+      {
+         "attribute_name" : "vmi_if1_ipv4_ipaddr",
+         "string_type" : "ASCII",
+         "minimum_string_length" : 7,
+         "maximum_string_length" : 15,
+         "default_string_length" : 7,
+         "default_string" : "0.0.0.0",
+         "helpText" : "vmi_if1_ipv4_ipaddr",
+         "displayName" : "vmi_if1_ipv4_ipaddr"
+      }
+    ]
+}