[RFC] BMC RAS Feature

Supreeth Venkatesh supreeth.venkatesh at amd.com
Wed Mar 22 02:07:43 AEDT 2023


On 3/21/23 05:40, Patrick Williams wrote:
> On Tue, Mar 21, 2023 at 12:14:45AM -0500, Supreeth Venkatesh wrote:
>
>> #### Alternatives Considered
>>
>> In-band mechanisms using System Management Mode (SMM) exists.
>>
>> However, out of band method to gather RAS data is processor specific.
>>
> How does this compare with existing implementations in
> phosphor-debug-collector.
Thanks for your feedback. See below.
> I believe there was some attempt to extend
> P-D-C previously to handle Intel's crashdump behavior.
Intel's crashdump interface uses com.intel.crashdump.
We have implemented com.amd.crashdump based on that reference. However, 
can this be made generic?

PoC below:

busctl tree com.amd.crashdump

└─/com
   └─/com/amd
     └─/com/amd/crashdump
       ├─/com/amd/crashdump/0
       ├─/com/amd/crashdump/1
       ├─/com/amd/crashdump/2
       ├─/com/amd/crashdump/3
       ├─/com/amd/crashdump/4
       ├─/com/amd/crashdump/5
       ├─/com/amd/crashdump/6
       ├─/com/amd/crashdump/7
       ├─/com/amd/crashdump/8
       └─/com/amd/crashdump/9

> The repository
> currently handles IBM's processors, I think, or maybe that is covered by
> openpower-debug-collector.
>
> In any case, I think you should look at the existing D-Bus interfaces
> (and associated Redfish implementation) of these repositories and
> determine if you can use those approaches (or document why now).
I could not find an existing D-Bus interface for RAS in 
xyz/openbmc_project/.
It would be helpful if you could point me to it.
There are references to com.intel.crashdump in bmcweb code, but the 
interface itself does not exist in yaml/com/intel/
we can add com.amd.crashdump as a start or even come up with a new 
generic Dbus interface.
As far as Redfish implementation is concerned, we are following the 
specification.
redfish/v1/Systems/system/LogServices/Crashdump schema is being used.

{

"@odata.id": "/redfish/v1/Systems/system/LogServices/Crashdump/Entries",
"@odata.type": "#LogEntryCollection.LogEntryCollection",
"Description": "Collection of Crashdump Entries",
"Members":
  [
{"@odata.id": "/redfish/v1/Systems/system/LogServices/Crashdump/Entries/0",
"@odata.type": "#LogEntry.v1_7_0.LogEntry",
"AdditionalDataURI": 
"/redfish/v1/Systems/system/LogServices/Crashdump/Entries/0/ras-error0.cper",
"Created": "1970-1-1T0:4:12Z",
"DiagnosticDataType": "OEM",
"EntryType": "Oem",
"Id": "0",
"Name": "CPU Crashdump",
"OEMDiagnosticDataType": "APMLCrashdump"
},
{"@odata.id": "/redfish/v1/Systems/system/LogServices/Crashdump/Entries/1",
"@odata.type": "#LogEntry.v1_7_0.LogEntry",
"AdditionalDataURI": 
"/redfish/v1/Systems/system/LogServices/Crashdump/Entries/1/ras-error1.cper",
"Created": "1970-1-1T0:4:12Z",
"DiagnosticDataType": "OEM",
"EntryType": "Oem",
"Id": "1",
"Name": "CPU Crashdump",
"OEMDiagnosticDataType": "APMLCrashdump"
},
],
"Members at odata.count": 2,
"Name": "Open BMC Crashdump Entries"}
>


More information about the openbmc mailing list