mmc: Copy only LID files during update

This is one step closer in replacing the PNOR partition files with LID
files:
- During an update, only copy LID files to the read-write directory. The
  update-bios-attr-table service will create symlinks from PNOR
  partition files to LID files.
- Use the pnor.toc from the read-only directory to get the list of
  preserved partitions, since there won't be a pnor.toc file in the
  read-write directory anymore. A future commit will read the PLDM file
  table to determine which LID files to preserve.
- Preserve the symlink target (LID file) instead of the symlink name
  (partition file name), otherwise the symlink gets broken if we copy a
  file that was a symlink.

Tested: Verified after code update that all the partition files were
symlinks to a LID file, and a subsequent update preserved the LID files
that correspond to the preserved partitions.

Change-Id: I3fbe3de5a910d85c299ed7e5a535198283bd3f9a
1 file changed
tree: a6dc7f78af681bfa6c1cbc119b758e8c9f8dc945
  1. dbus/
  2. mmc/
  3. static/
  4. test/
  5. ubi/
  6. vpnor/
  7. .clang-format
  8. .gitignore
  9. .shellcheck
  10. activation.cpp
  11. activation.hpp
  12. functions.cpp
  13. functions.hpp
  14. generate-tar
  15. generate-ubi
  16. image_verify.cpp
  17. image_verify.hpp
  18. item_updater.cpp
  19. item_updater.hpp
  20. item_updater_main.cpp
  21. LICENSE
  22. MAINTAINERS
  23. meson.build
  24. meson_options.txt
  25. msl_verify.cpp
  26. msl_verify.hpp
  27. msl_verify_main.cpp
  28. op-pnor-msl.service
  29. openpower-pnor-update@.service
  30. org.open_power.Software.Host.Updater.service
  31. OWNERS
  32. README.md
  33. utils.cpp
  34. utils.hpp
  35. version.cpp
  36. version.hpp
README.md

openpower-pnor-code-mgmt

OpenPower PNOR (Processor NOR) Code Management provides a set of host software management applications for OpenPower systems. The host firmware is stored on the PNOR chip. More information can be found at Software Architecture or Host Code Update

To Build

To build this package, do the following steps:

  1. meson build
  2. ninja -C build

To clean the repository run rm -r build.