TH scripts improvments for resolving SHM issue

Key Changes
1. Logic Migration
MSV Scripts: Removed SHM (Shared Memory) removal and IPMI restart operations from MSV scripts, including pre-rm and postinstall.
TH Scripts: Centralized these operations within the TH post-processing scripts:
emmc-available-postprocessing
emmc-unavailable-postprocessing
2. TH Upgrade Scenario Logic
Operations are abstracted into a transition model between TH1 (old version/list) and TH2 (new version/list):

First-time Onboarding: TH1 (empty) → TH2
Removal: TH1 → TH2 (empty)
Upgrade/Downgrade: TH1 → TH2

3. eMMC run-time availability status change logic
available → unavailable: Similar logic as TH1 -> TH2 (empty), but keep TH package existing in the system for both eMMC and /var/google.
unavailable → available: Similar logic as TH1 (empty) -> TH2, but without copying/pasting work for TH packages
Prerequisite for Execution: When either TH1 or TH2 includes bmcweb daemons, the following sequence is triggered (if bmcweb is not included in both TH, the following logic will be skipped):

Clear SHM.
Restart all daemons (Union of TH1 and TH2).
Restart IPMI.

4. Previous block-override.conf has been discarded and the new content has been updated through recipes-google/true-hitless/true-hitless/true-hitless-initialize.sh.

New content: "[Unit]
ConditionPathExists=|/run/true-hitless/emmc-available-postprocessing-complete
ConditionPathExists=|/run/true-hitless/emmc-unavailable-postprocessing-complete"

Diff: 1. removed After=emmc-available-postprocessing so that we can restart TH daemons inside of emmc-available-postprocessing. 2. added ConditionPathExists=|/run/true-hitless/emmc-unavailable-postprocessing-complete constrain to avoid double initialization when eMMC is unavailable since reboot.

Platforms-Affected: EMR, GF
Tested: Detailed tested steps is in cl/908884346. Will also be tested through TH nightly/weekly test suite
Google-Bug-Id: 492591099
Fusion-Link: fusion2  https://fusion2.corp.google.com/3a1ed5b5-ddce-4667-8687-a939dff5aff6 , tested experimental package - https://msvbrowse.corp.google.com/versionz?hash=1-713fb0f5_7f3d8598_4fd97d78_52e0eb86_f812b17b_a8707ec0_3ee9b308_d2df21c6
Change-Id: I7dc047d8cd2dd996d70c47e87c54d8dd9b75b979
5 files changed
tree: c2250909fff2984204b9d6704d3c1cf096d3540a
  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.