True Hitless - SPI image change (1)

SPI image Package installation change: https://gbmc-internal-review.git.corp.google.com/c/meta-google-gbmc/+/241086
True-hitless-image Change: https://gbmc-internal-review.git.corp.google.com/c/meta-google-gbmc/+/241855

1. Add emmc-unavilable receipe to create emmc-unavailable.target
2. Modified emmc-available receipe to make it trigger emmc-available-postprocess
3. Add emmc-postprocess scripts and services

When emmc is available: emmc-available.target ACTIVE
=> emmc-available-postprocessing.service
=> emmc-true-hitless-enable.sh: This script enables the true-hitless services by mounting the true-hitless image (as needed) and copying systemd service files from the eMMC to the system's configuration directory (as needed). If the eMMC was previously unavailable, it restarts the eMMC services.

When emmc is unavailable: emmc-unavailable.target ACTIVE
=> emmc-unavailable-postprocessing.service
=> emmc-true-hitless-disable.sh: This script disables the true-hitless services by removing the emmc-override.conf files that were created during the true-hitless installation. It then reloads the systemd daemon to apply the changes (as needed).

When emmc is available and emmc services are up and running, but one of the emmc services crashed.
emmc-services-fallback will be triggered =>
emmc-true-hitless-disable.sh =>
emmc-services-restart

[emmc-available-postprocessing.service will also be triggered during true-hitless POST_INSTALL to enable true-hitless overrides/services]

Change-Id: I840c1e8335ff22ff7d57923d9c78ee8da6a6e114
Fusion-Link: fusion2 N/A
Tested: Tested build SPI image with true-hitless-image with no issues
Google-Bug-Id: 445241073
Signed-off-by: Baicheng Zong <baichengz@google.com>
10 files changed
tree: ac96e409920b0ff05c9e2e1c98881367d6f04a9d
  1. classes/
  2. conf/
  3. dynamic-layers/
  4. recipes-bsp/
  5. recipes-connectivity/
  6. recipes-core/
  7. recipes-devtools/
  8. recipes-extended/
  9. recipes-google/
  10. recipes-kernel/
  11. recipes-phosphor/
  12. recipes-support/
  13. recipes-tpm1/
  14. recipes-tpm2/
  15. LICENSE
  16. README.md
README.md

meta-gbmc-staging

This repository contains additions to the openbmc/meta-google layer that are not yet ready for OpenBMC inclusion.

How to use this layer

  1. Clone openbmc/openbmc from GitHub.
  2. Clone this layer from GitHub into a subdirectory of openbmc.