Lines Matching +full:vendor +full:- +full:specific
1 # phosphor-psu-code-mgmt
3 phosphor-psu-code-mgmt is a service to provide management for PSU code,
6 - PSU code version
7 - PSU code update
12 meson build/ && ninja -C build
17 - Run it in OpenBMC CI, refer to [local-ci-build.md][1]
18 - Run it in [OE SDK][2], run below commands in a x86-64 SDK env:
21 meson -Doe-sdk=enabled -Dtests=enabled build/
22 ninja -C build/ test # Meson skips running the case due to it thinks it's cross compiling
24 for t in `find build/test/ -maxdepth 1 -name "test_*"`; do ./$t || break ; done
27 ## Vendor-specific tools
30 depends on vendor-specific tools to provide the below functions on the real PSU
33 - Get PSU firmware version
34 - Get PSU model
35 - Compare the firmware version
36 - Update the PSU firmware
38 It provides configure options for vendor-specific tools for the above functions:
40 - `PSU_VERSION_UTIL`: It shall be defined as a command-line tool that accepts
42 - `PSU_MODEL_UTIL`: It shall be defined as a command-line tool that accepts the
44 - `PSU_VERSION_COMPARE_UTIL`: It shall be defined as a command-line tool that
47 - `PSU_UPDATE_SERVICE`: It shall be defined as a systemd service that accepts
49 - The PSU inventory DBus object;
50 - The path of the PSU image(s).
55 meson -Dtests=disabled \
56 '-DPSU_VERSION_UTIL=/usr/bin/psutils --raw --get-version' \
57 '-DPSU_MODEL_UTIL=/usr/bin/psutils --raw --get-model' \
58 '-DPSU_VERSION_COMPARE_UTIL=/usr/bin/psutils --raw --compare' \
59 '-DPSU_UPDATE_SERVICE=psu-update@.service' \
63 The above configures the vendor-specific tools to use `psutils` from
64 [phosphor-power][3] to get the PSU version and model, compare PSU versions, and
65 use `psu-update@.service` to perform the PSU firmware update, where internally
73 paths, invokes the vendor-specific tool to get the versions, and creates version
80 - Example of system with two PSUs that have different versions:
115 - Example of system with two PSUs that have the same version:
142 1. Generate a tarball of PSU firmware image by [generate-psu-tar tool][4].
145 ./generate-psu-tar --image <psu-image> --version <version> --model <model> --manufacturer \
146 <manufacturer> --machineName <machineName> --outfile <psu.tar> --sign
150 [code-update.md][5]:
151 - Upload a PSU image tarball and get the version ID;
152 - Set the RequestedActivation state of the uploaded image's version ID.
153 - Check the state and wait for the activation to be completed.
158 4. It is possible to put a PSU image and MANIFEST in the built-in OpenBMC image
159 in BMC's read-only filesystem defined by `IMG_DIR_BUILTIN`. When the service
160 starts, it will compare the versions of the built-in image and the existing
164 [1]: https://github.com/openbmc/docs/blob/master/testing/local-ci-build.md
166 https://github.com/openbmc/docs/blob/master/cheatsheet.md#building-the-openbmc-sdk
167 [3]: https://github.com/openbmc/phosphor-power/tree/master/tools/power-utils
169 https://github.com/openbmc/phosphor-psu-code-mgmt/blob/master/tools/generate-psu-tar
171 https://github.com/openbmc/docs/blob/master/architecture/code-update/code-update.md