tree de391fa60a0b93d642d1bbb9f1f3b243b02e30e1
parent f27431b729f4e935c87de75a4763a68cf08e88c2
author Ramesh Iyyar <rameshi1@in.ibm.com> 1630917839 -0500
committer Ramesh Iyyar <rameshi1@in.ibm.com> 1639064641 -0600

PHAL: Set HardwareIsolation policy before start the host

- The HardwareIsolation (aka guard) policy is used to prevent
  the HardwareIsolation functionality during the boot of the host
  by the user.

- In this patch, using that policy flag to ignore the isolated hardware
  records to apply during the start of the host from the BMC context.

- By default, it will be set as "true" before starting the host to boot
  if the HardwareIsolation policy is not present or failed to read that
  policy.

  - Created the error log with procedure callout if failed to read
    the HardwareIsolation policy.

Tested:
- Verified the HWAS_STATE of the isolated hardware, is not applied when
  the HardwareIsolation policy is enabled.

- Verified the HWAS_STATE of the isolated hardware, is applied when
  the HardwareIsolation policy is disabled.

- Verified the HWAS_STATE of the isolated hardware, is applied when
  the HardwareIsolation policy is not present.

- PEL for the third test case.

```
{
"Private Header": {
    "Section Version":          "1",
    "Sub-section type":         "0",
    "Created by":               "0x3000",
...
"User Header": {
    "Section Version":          "1",
    "Sub-section type":         "0",
    "Log Committed by":         "0x2000",
    "Subsystem":                "CEC Hardware",
    "Event Scope":              "Entire Platform",
    "Event Severity":           "Unrecoverable Error",
    "Event Type":               "Not Applicable",
    "Action Flags": [
                                "Service Action Required",
                                "Report Externally",
                                "HMC Call Home"
    ],
    "Host Transmission":        "Not Sent",
    "HMC Transmission":         "Not Sent"
},
...
"Primary SRC": {
    "Section Version":          "1",
    "Sub-section type":         "1",
    "Created by":               "0x3000",
...
    "Error Details": {
        "Message":              "Failure occured during boot process"
    },
    "Valid Word Count":         "0x09",
    "Reference Code":           "BD503001",
...
    "Callout Section": {
        "Callout Count":        "1",
        "Callouts": [{
            "FRU Type":         "Maintenance Procedure Required",
            "Priority":         "Medium Priority",
            "Procedure":        "BMC0001"
        }]
    }
...
"User Data 1": {
    "Section Version": "1",
    "Sub-section type": "1",
    "Created by": "0x2000",
    "REASON_FOR_PEL": "Failed to read the HardwareIsolation policy from the path [/xyz/openbmc_project/hardware_isolation/allow_hw_isolation] interface [xyz.openbmc_project.Object.Enable]. Continuing with default mode(allow_hw_isolation)",
    "_PID": "681"
},
"User Data 2": {
    "Section Version": "1",
    "Sub-section type": "1",
    "Created by": "0x2000",
    "Data": [
        {
            "Priority": "M",
            "Procedure": "BMC0001"
        }
    ]
}
}
```

Signed-off-by: Ramesh Iyyar <rameshi1@in.ibm.com>
Change-Id: I2d7e33ad1e6af69b150d6637619c17db5b9a7151
