OpenPOWER: Add support for Self Boot Engine(SBE) dump

SBE is a microcontroller that sits inside the processor
to initialize it to start the booting and also acts as a secure channel
for accessing certain control functions on the processor. During the
booting or other hardware access operations SBE can encounter errors
and become unresponsive. In such situations, the debug data needs to be
collected from such SBEs to find out the root cause of the error.
This data includes hardware state, configuration, memory, etc.
The collected data is then packaged into the OpenPOWER dump format
and which is called as SBE dump.

This commit adds implementation for SBE dump entry creation,
package, list, deletion and offload.

Tests:
Create entry
List entry
Delete entry

Signed-off-by: Dhruvaraj Subhashchandran <dhruvaraj@in.ibm.com>
Change-Id: Iaaac90a83d68b51a0076bfe3c7d254b978b60309
3 files changed
tree: c8f31fcf4b8be0b6df5499417fba796e96ce7c35
  1. dump-extensions/
  2. host-transport-extensions/
  3. subprojects/
  4. test/
  5. tools/
  6. xyz/
  7. .clang-format
  8. .gitignore
  9. .shellcheck-ignore
  10. bmc_dump_entry.hpp
  11. bmcstored_dump_entry.cpp
  12. bmcstored_dump_entry.hpp
  13. core_manager.cpp
  14. core_manager.hpp
  15. core_manager_main.cpp
  16. dump-extensions.hpp
  17. dump_entry.cpp
  18. dump_entry.hpp
  19. dump_internal.hpp
  20. dump_manager.cpp
  21. dump_manager.hpp
  22. dump_manager_bmc.cpp
  23. dump_manager_bmc.hpp
  24. dump_manager_bmcstored.cpp
  25. dump_manager_bmcstored.hpp
  26. dump_manager_faultlog.cpp
  27. dump_manager_faultlog.hpp
  28. dump_manager_main.cpp
  29. dump_offload.cpp
  30. dump_offload.hpp
  31. dump_serialize.cpp
  32. dump_serialize.hpp
  33. dump_utils.cpp
  34. dump_utils.hpp
  35. elog_watch.cpp
  36. elog_watch.hpp
  37. errors_map.mako.hpp
  38. errors_map_gen.py
  39. example_errors_watch.yaml
  40. faultlog_dump_entry.cpp
  41. faultlog_dump_entry.hpp
  42. ffdc
  43. host_transport_exts.hpp
  44. LICENSE
  45. meson.build
  46. meson_options.txt
  47. OWNERS
  48. ramoops_manager.cpp
  49. ramoops_manager.hpp
  50. ramoops_manager_main.cpp
  51. README.md
  52. watch.cpp
  53. watch.hpp
README.md

phosphor-debug-collector

Phosphor Debug Collector provides mechanisms to collect various log files and system parameters. Used to troubleshoot problems in OpenBMC based systems.

One such mechanism is dreport, a script that collects debug data and packages it into an archive file.

To Build

To build this package with meson, do the following steps:

    1. meson builddir
    2. ninja -C builddir

To clean the built files run ninja -C builddir clean.

To run unit tests

Tests can be run in the CI docker container, refer local-ci-build

or with an OpenBMC x86 sdk(see below for x86 steps).

meson -Dtests=enabled build
ninja -C build test