tree 1b1ac980c76fc90ce8be1c01918686faa55a4745
parent c1f5ed6fc7ad4ad30102ff98b016344379f0a9c5
author Dhruvaraj Subhashchandran <dhruvaraj@in.ibm.com> 1690087840 -0500
committer Dhruvaraj Subhashchandran <dhruvaraj@in.ibm.com> 1692816958 -0500

Generate error map as part of dump types

An error type is a specific type of BMC dump that is generated
when a particular error is logged in the BMC. Previously,
dump types and error types were managed independently, with
error types being defined in separate files, namely 'error_map.hpp'
and its associated mako template 'error_map.mako.cpp'. However, this
practice led to inconsistencies, as the dreport script, which is used
for handling dump collection and packaging, was interpreting error
type as another dump type rather than as additional parameters.

The separate error_map.hpp file and its associated mako template
(error_map.mako.cpp) have been removed. Instead, error types are now
incorporated directly into the dump types along with an error type map
for validating the error names. This integration aligns the code with
the existing behaviour of the dreport script, allowing for more
consistent processing of dump types

As a result of this integration, the error map generation is now part
of the  dump_types_mako.cpp file. To support these changes, a second
input YAML file has been added to the map_gen.py script to generate
the dump types and error types together.

Tests:
Create InternalFailure
> busctl call xyz.openbmc_project.Logging  /xyz/openbmc_project/logging \
  xyz.openbmc_project.Logging.Create Create ssa{ss}  \
  xyz.openbmc_project.Common.Error.InternalFailure \
  xyz.openbmc_project.Logging.Entry.Level.Error 0
> dump created
  /var/lib/phosphor-debug-collector/dumps/1/\
  BMCDUMP.XXXXXXXX.0000001.20230723084043

Create Checkstop
> busctl call xyz.openbmc_project.Logging  /xyz/openbmc_project/logging \
  xyz.openbmc_project.Logging.Create Create ssa{ss}  \
  org.open_power.Host.Boot.Error.Checkstop \
  xyz.openbmc_project.Logging.Entry.Level.Error 0
> /var/lib/phosphor-debug-collector/dumps/4/\
  BMCDUMP.XXXXXXXX.0000004.20230723094150

Change-Id: Iac483f4993b59cf0fc063ed9584785f1a1fa04a8
Signed-off-by: Dhruvaraj Subhashchandran <dhruvaraj@in.ibm.com>
