| da5aa614 | 18-Dec-2025 |
Willy Tu <wltu@google.com> |
enable BKOPS to manual mode
Check if the BKOPS is supported before enabling it and setting to manual mode.
Tested: Before ``` $ mmc extcsd read /dev/mmcblk0 | grep BKOPS Background operations suppo
enable BKOPS to manual mode
Check if the BKOPS is supported before enabling it and setting to manual mode.
Tested: Before ``` $ mmc extcsd read /dev/mmcblk0 | grep BKOPS Background operations support [BKOPS_SUPPORT: 0x01] Background operations status [BKOPS_STATUS: 0x00] Enable background operations handshake [BKOPS_EN]: 0x00 ```
After ``` eStoraged[29228]: BKOPS is supported for /dev/mmcblk0 eStoraged[29228]: Successfully enable BKOPS for /dev/mmcblk0 ```
```sh $ mmc extcsd read /dev/mmcblk0 | grep BKOPS Background operations support [BKOPS_SUPPORT: 0x01] Background operations status [BKOPS_STATUS: 0x00] Enable background operations handshake [BKOPS_EN]: 0x01 ```
Change-Id: Id2f80310b4f420192205aebdbc7726bfaac0dc15 Signed-off-by: Willy Tu <wltu@google.com>
show more ...
|
| 9ce2965d | 17-Dec-2025 |
Willy Tu <wltu@google.com> |
build: Add missing dependency for sdbus++
Add missing program_names so that we can build this repo without any installed libraries.
Change-Id: Ifae1a14e3f54b2e673f808a0764d3e2932818a3f Signed-off-b
build: Add missing dependency for sdbus++
Add missing program_names so that we can build this repo without any installed libraries.
Change-Id: Ifae1a14e3f54b2e673f808a0764d3e2932818a3f Signed-off-by: Willy Tu <wltu@google.com>
show more ...
|
| 530ce1e8 | 16-Dec-2025 |
Rom Lemarchand <romlem@google.com> |
Add support for trim commands
Trim commands help with flash lifespan and performance: - Explicitly discard blocks when formatting the filesystem - Add support for discard commands to get passed thro
Add support for trim commands
Trim commands help with flash lifespan and performance: - Explicitly discard blocks when formatting the filesystem - Add support for discard commands to get passed through the device-mapper
Change-Id: Ie3a3ba86757806935fb2863adf092449139941d2 Signed-off-by: Rom Lemarchand <romlem@google.com>
show more ...
|
| 1d6665fc | 04-Dec-2025 |
John Wedig <johnwedig@google.com> |
Run fsck before mounting filesystem
Running fsck should help correct any filesystem errors and make mounting more reliable. For example, filesystem errors might occur when there's a power loss while
Run fsck before mounting filesystem
Running fsck should help correct any filesystem errors and make mounting more reliable. For example, filesystem errors might occur when there's a power loss while writes are in flight.
Tested: Below is some example output from eStoraged with fsck. ``` root@wodp1-nfd02:~# systemctl status -l xyz.openbmc_project.eStoraged ● xyz.openbmc_project.eStoraged.service - Storage management daemon for an encrypted storage device Loaded: loaded (/usr/lib/systemd/system/xyz.openbmc_project.eStoraged.service; enabled; preset: enabled) Active: active (running) since Thu 2025-12-04 16:38:57 PST; 23min ago Invocation: ea8275ce96d74cce8036596450060255 Main PID: 812 (eStoraged) Tasks: 1 (limit: 1965) Memory: 4.3M CPU: 5.247s CGroup: /system.slice/xyz.openbmc_project.eStoraged.service └─812 /usr/bin/eStoraged
Dec 04 16:38:57 wodp1-nfd02.prod.google.com systemd[1]: Started Storage management daemon for an encrypted storage device. Dec 04 16:39:10 wodp1-nfd02.prod.google.com eStoraged[812]: Storage management service is running Dec 04 16:39:24 wodp1-nfd02.prod.google.com eStoraged[812]: Created eStoraged object for path /xyz/openbmc_project/inventory/system/board/eMMC/emmc Dec 04 16:39:45 wodp1-nfd02.prod.google.com eStoraged[812]: Starting unlock Dec 04 16:39:45 wodp1-nfd02.prod.google.com eStoraged[812]: Activating LUKS dev /dev/mmcblk0 Dec 04 16:39:48 wodp1-nfd02.prod.google.com eStoraged[812]: Successfully activated LUKS dev /dev/mmcblk0 Dec 04 16:39:48 wodp1-nfd02.prod.google.com eStoraged[3049]: fsck from util-linux 2.39.3 Dec 04 16:39:49 wodp1-nfd02.prod.google.com eStoraged[3074]: /dev/mapper/luks-mmcblk0: recovering journal Dec 04 16:39:49 wodp1-nfd02.prod.google.com eStoraged[3074]: /dev/mapper/luks-mmcblk0: clean, 34/954720 files, 98720/3812864 blocks Dec 04 16:39:49 wodp1-nfd02.prod.google.com eStoraged[812]: Successfully mounted filesystem at /mnt/luks-mmcblk0_fs ```
Change-Id: Ie333a7fd9c8af2fe6e07ad52507249f42ca0e8e8 Signed-off-by: John Wedig <johnwedig@google.com>
show more ...
|
| 1e169d0c | 05-Dec-2025 |
John Wedig <johnwedig@google.com> |
Fix clang-tidy error about pointer arithmetic
This commit replaces a few instances of pointer arithmetic with spans, in order to resolve the clang tidy error cppcoreguidelines-pro-bounds-pointer-ari
Fix clang-tidy error about pointer arithmetic
This commit replaces a few instances of pointer arithmetic with spans, in order to resolve the clang tidy error cppcoreguidelines-pro-bounds-pointer-arithmetic.
Change-Id: I808f6415292b40b8691a3ae46ff3e4be5f8ee399 Signed-off-by: John Wedig <johnwedig@google.com>
show more ...
|
| 9066ff65 | 11-Aug-2025 |
Patrick Williams <patrick@stwcx.xyz> |
meson: simplify sdbusplus dependency
There is a lot of cruft in the sdbusplus dependency that is no longer needed:
1. Use "dependency" with wrap file support rather than "subproject".
2. R
meson: simplify sdbusplus dependency
There is a lot of cruft in the sdbusplus dependency that is no longer needed:
1. Use "dependency" with wrap file support rather than "subproject".
2. Remove "include_type: system" since this is part of sdbusplus itself now.
3. Leverage wrap file "provides" directives for dependency variable lookup.
Signed-off-by: Patrick Williams <patrick@stwcx.xyz> Change-Id: I7890258cc65381a2e5d1987c2d93c909210288cc
show more ...
|
| 1755d1b9 | 21-Jul-2025 |
John Wedig <johnwedig@google.com> |
Make lifetime property read/write
This commit makes the property PredictedMediaLifeLeftPercent read-writable. This property is exposed through Redfish, so by making this property read-writable, we c
Make lifetime property read/write
This commit makes the property PredictedMediaLifeLeftPercent read-writable. This property is exposed through Redfish, so by making this property read-writable, we can better test other things that consume this property through Redfish.
Tested: ``` $ busctl get-property xyz.openbmc_project.eStoraged \ /xyz/openbmc_project/inventory/storage/mmcblk0 \ xyz.openbmc_project.Inventory.Item.Drive PredictedMediaLifeLeftPercent y 100 $ busctl set-property xyz.openbmc_project.eStoraged \ /xyz/openbmc_project/inventory/storage/mmcblk0 \ xyz.openbmc_project.Inventory.Item.Drive PredictedMediaLifeLeftPercent y 90 $ curl localhost:80/redfish/v1/Chassis/dcscm/Drives/mmcblk0 { ... "PredictedMediaLifeLeftPercent": 90, ... } ```
Change-Id: I93bde64e76ee45640f85b00222df6e4a8a98ff4c Signed-off-by: John Wedig <johnwedig@google.com>
show more ...
|
| 71f09033 | 30-May-2025 |
Patrick Williams <patrick@stwcx.xyz> |
clang-tidy: format with config-clang-tidy
Reformat the .clang-tidy file for consistency using the config-clang-tidy tool from openbmc-build-scripts.
Change-Id: I3e78d872d684aa824bad1000977d20b44564
clang-tidy: format with config-clang-tidy
Reformat the .clang-tidy file for consistency using the config-clang-tidy tool from openbmc-build-scripts.
Change-Id: I3e78d872d684aa824bad1000977d20b44564a8e6 Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
show more ...
|
| 75a21ff2 | 08-May-2025 |
Patrick Williams <patrick@stwcx.xyz> |
clang-format: update latest spec and reformat with clang-20
Copy the latest format file from the docs repository and apply using clang-format-20.
See I1818407fdd8ab2ca11a939ffebd5f3e5445403c3 for c
clang-format: update latest spec and reformat with clang-20
Copy the latest format file from the docs repository and apply using clang-format-20.
See I1818407fdd8ab2ca11a939ffebd5f3e5445403c3 for clang-20 enablement.
Change-Id: I8c092b5399d495b8ca0958390fade19388320d58 Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
show more ...
|
| c0f85486 | 03-Mar-2025 |
Patrick Williams <patrick@stwcx.xyz> |
fix struct and variable case styles
Fix the following clang-tidy warnings:
``` /data0/jenkins/workspace/ci-repository/openbmc/estoraged/include/sanitize.hpp:41:37: error: invalid case style for str
fix struct and variable case styles
Fix the following clang-tidy warnings:
``` /data0/jenkins/workspace/ci-repository/openbmc/estoraged/include/sanitize.hpp:41:37: error: invalid case style for struct 'mmc_io_multi_cmd_erase' [readability-identifier-naming,-warnings-as-errors] 41 | struct mmc_io_multi_cmd_erase data) = 0; /data0/jenkins/workspace/ci-repository/openbmc/estoraged/src/test/include/estoraged_test.hpp:48:30: error: invalid case style for parameter 'cipher_mode' [readability-identifier-naming,-warnings-as-errors] 48 | const char* cipher_mode, const char* uuid, /data0/jenkins/workspace/ci-repository/openbmc/estoraged/src/test/include/estoraged_test.hpp:49:30: error: invalid case style for parameter 'volume_key' [readability-identifier-naming,-warnings-as-errors] 49 | const char* volume_key, size_t volume_key_size, void* params), /data0/jenkins/workspace/ci-repository/openbmc/estoraged/src/test/include/estoraged_test.hpp:49:49: error: invalid case style for parameter 'volume_key_size' [readability-identifier-naming,-warnings-as-errors] 49 | const char* volume_key, size_t volume_key_size, void* params), /data0/jenkins/workspace/ci-repository/openbmc/estoraged/src/test/include/estoraged_test.hpp:55:25: error: invalid case style for parameter 'passphrase_size' [readability-identifier-naming,-warnings-as-errors] /data0/jenkins/workspace/ci-repository/openbmc/estoraged/src/test/include/estoraged_test.hpp:59:56: error: invalid case style for parameter 'requested_type' [readability-identifier-naming,-warnings-as-errors] 59 | (struct crypt_device * cd, const char* requested_type, ```
Signed-off-by: Patrick Williams <patrick@stwcx.xyz> Change-Id: Ib4c685db2037514b0517e42369b1d66b49b00e03
show more ...
|
| 9c2e8362 | 01-Feb-2025 |
Patrick Williams <patrick@stwcx.xyz> |
meson: reformat with meson formatter
Apply the `meson format` results.
Change-Id: I4cc78e59d8341dd5ea54ee2793afdab179b259e8 Signed-off-by: Patrick Williams <patrick@stwcx.xyz> |
| 50081549 | 18-Dec-2024 |
Patrick Williams <patrick@stwcx.xyz> |
clang-format: re-format for clang-19
clang-format-19 isn't compatible with the clang-format-18 output, so we need to reformat the code with the latest version. A few parameters in clang-tidy have b
clang-format: re-format for clang-19
clang-format-19 isn't compatible with the clang-format-18 output, so we need to reformat the code with the latest version. A few parameters in clang-tidy have been deprecated, so adjust the style file accordingly.
See Ie2f6eb3b043f2d655c9df806815afd7971fd0947 for updated style. See I88192b41ab7a95599a90915013579608af7bc56f for clang-19 enablement.
Change-Id: Iac28fd8d324bb55f8ccc8caf3267519d21c2b11a Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
show more ...
|
| 55d960bf | 23-Aug-2023 |
Patrick Williams <patrick@stwcx.xyz> |
build: upgrade to C++23
Meson 1.1.1 and GCC-13 both support C++23 and a sufficient portion of the standard has been implemented. Upgrade the build to leverage it.
Change-Id: I9c373a66b0345991726a6
build: upgrade to C++23
Meson 1.1.1 and GCC-13 both support C++23 and a sufficient portion of the standard has been implemented. Upgrade the build to leverage it.
Change-Id: I9c373a66b0345991726a6be778d7457b8483b075 Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
show more ...
|
| 15b63e12 | 16-Aug-2024 |
Patrick Williams <patrick@stwcx.xyz> |
clang-format: re-format for clang-18
clang-format-18 isn't compatible with the clang-format-17 output, so we need to reformat the code with the latest version. The way clang-18 handles lambda forma
clang-format: re-format for clang-18
clang-format-18 isn't compatible with the clang-format-17 output, so we need to reformat the code with the latest version. The way clang-18 handles lambda formatting also changed, so we have made changes to the organization default style format to better handle lambda formatting.
See I5e08687e696dd240402a2780158664b7113def0e for updated style. See Iea0776aaa7edd483fa395e23de25ebf5a6288f71 for clang-18 enablement.
Change-Id: I07372e75f12f406bd0555dd27e249bc7dd0958d4 Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
show more ...
|
| d4554f2a | 17-Jun-2024 |
Manojkiran Eda <manojkiran.eda@gmail.com> |
Fix spelling mistakes using codespell
This commit corrects various spelling mistakes throughout the repository. The corrections were made automatically using `codespell`[1] tool.
[1]: https://githu
Fix spelling mistakes using codespell
This commit corrects various spelling mistakes throughout the repository. The corrections were made automatically using `codespell`[1] tool.
[1]: https://github.com/codespell-project/codespell
Change-Id: I153217f4ae8454e3546a59da9fcfe3f83fd04b39 Signed-off-by: Manojkiran Eda <manojkiran.eda@gmail.com>
show more ...
|
| 3cf9e806 | 30-Apr-2024 |
John Wedig <johnwedig@google.com> |
Add retries when getting dbus properties
We have found that the dbus requests to Entity Manager sometimes time out at startup, when getting the dbus properties from the Entity Manager config object.
Add retries when getting dbus properties
We have found that the dbus requests to Entity Manager sometimes time out at startup, when getting the dbus properties from the Entity Manager config object. This commit adds retries, similar to how dbus-sensors will retry these requests, if needed.
Tested: Observed the dbus request to Entity Manager get retried on a machine, and then it succeeded on the second attempt.
Signed-off-by: John Wedig <johnwedig@google.com> Change-Id: I924703e9be0879489477cc31644ef280429c347b
show more ...
|
| f1c89eff | 29-Mar-2024 |
Konstantin Aladyshev <aladyshev22@gmail.com> |
meson: Update meson version to 0.59.0
Since project uses features which were added in meson 0.59.0 ('feature_option.allowed()'), update meson requirement to that version.
Change-Id: If7e9540a9871ac
meson: Update meson version to 0.59.0
Since project uses features which were added in meson 0.59.0 ('feature_option.allowed()'), update meson requirement to that version.
Change-Id: If7e9540a9871ac2b824ad702303df892456d9331 Signed-off-by: Konstantin Aladyshev <aladyshev22@gmail.com>
show more ...
|
| 620d1a51 | 29-Mar-2024 |
Konstantin Aladyshev <aladyshev22@gmail.com> |
build: Fix boost dependency
Currently local build fails with a message: """ src/meson.build:16:14: ERROR: Include dir subprojects/boost_1_78_0/ does not exist """ The error is happening because the
build: Fix boost dependency
Currently local build fails with a message: """ src/meson.build:16:14: ERROR: Include dir subprojects/boost_1_78_0/ does not exist """ The error is happening because the correct path for the includes should not be "subprojects/boost_1_79_0/" but "../subprojects/boost_1_79_0/". But such relative links are deprecated, therefore rewrite boost dependency with its own packagefile. Also boost library is required for the project build, therefore drop "required: false" statement for the dependency. And since boost is required for the libeStoragedErase, add boost_dep to its dependencies.
Tested: "meson setup build && cd build && meson compile" now works without any issues.
Change-Id: Id0afda7563c944f3afc88cd1f59099794611525e Signed-off-by: Konstantin Aladyshev <aladyshev22@gmail.com>
show more ...
|
| 0cec4286 | 12-Mar-2024 |
Hao Zhou <haoooamazing@google.com> |
Return Unencrypted if header is not found
Previously when drive is not in Encrypted status, bmcweb will simply omit encryptionStatus property with Unknown returned here. That's to say we can never r
Return Unencrypted if header is not found
Previously when drive is not in Encrypted status, bmcweb will simply omit encryptionStatus property with Unknown returned here. That's to say we can never reach a case where Unencrypted is populated.
We should change it to Unencrypted so when the drive is not encrypted, Unencrypted state can be observed on BMCweb
Tested: BMCWeb have EncryptionStatus populated when drive unencrypted
Change-Id: Ie3df1df77bff40527d684f5c5b495fb2f36463e0 Signed-off-by: Hao Zhou <haoooamazing@google.com>
show more ...
|
| c0d66eb7 | 26-Feb-2024 |
John Wedig <johnwedig@google.com> |
Populate Protocol property in Item.Drive interface
By populating this property, bmcweb can populate the "Protocol" property in the Drive schema.
Tested: $ busctl get-property xyz.openbmc_project.eS
Populate Protocol property in Item.Drive interface
By populating this property, bmcweb can populate the "Protocol" property in the Drive schema.
Tested: $ busctl get-property xyz.openbmc_project.eStoraged \ /xyz/openbmc_project/inventory/storage/mmcblk0 \ xyz.openbmc_project.Inventory.Item.Drive Protocol s "xyz.openbmc_project.Inventory.Item.Drive.DriveProtocol.eMMC"
Signed-off-by: John Wedig <johnwedig@google.com> Change-Id: I2bd19190c445ce57f3d867ffbb437c1a4a370b51
show more ...
|
| e7f6975e | 02-Feb-2024 |
Nan Zhou <nanzhou@google.com> |
use Wants for Entity Manager
We found that restarting EntityManager can lead to restart of the estoraged service, and leads to unexpected results.
We should use Wants, instead of Requires.
Tested:
use Wants for Entity Manager
We found that restarting EntityManager can lead to restart of the estoraged service, and leads to unexpected results.
We should use Wants, instead of Requires.
Tested: estoraged no longer restarts when EntityManager restarts.
Change-Id: If6aa7c9d79e5bda59eb1c1752cd05732b5b8809d Signed-off-by: Nan Zhou <nanzhou@google.com> Signed-off-by: Nan Zhou <nanzhoumails@gmail.com>
show more ...
|
| d7be42bd | 19-Jan-2024 |
John Wedig <johnwedig@google.com> |
Populate the Type property in Item.Drive interface
By populating this property, bmcweb can populate the "MediaType" property in the Drive schema.
Tested: $ busctl get-property xyz.openbmc_project.e
Populate the Type property in Item.Drive interface
By populating this property, bmcweb can populate the "MediaType" property in the Drive schema.
Tested: $ busctl get-property xyz.openbmc_project.eStoraged \ /xyz/openbmc_project/inventory/storage/mmcblk0 \ xyz.openbmc_project.Inventory.Item.Drive Type s "xyz.openbmc_project.Inventory.Item.Drive.DriveType.SSD"
$ curl http://localhost:80/redfish/v1/Chassis/DCSCM/Drives/mmcblk0 { ... "MediaType": "SSD", ... }
Signed-off-by: John Wedig <johnwedig@google.com> Change-Id: I2cb6c7d3ec3b49e8d666da940d873f1117a0aa85
show more ...
|
| 043af59f | 23-Nov-2023 |
Tom Tung <shes050117@gmail.com> |
Get eraseMaxGeometry and eraseMinGeometry from dbus
Also, make findDevice return output parameters based on RVO.
With the change like in EntityManager JSON: ``` { "Name": "example_emmc", "T
Get eraseMaxGeometry and eraseMinGeometry from dbus
Also, make findDevice return output parameters based on RVO.
With the change like in EntityManager JSON: ``` { "Name": "example_emmc", "Type": "EmmcDevice", "LocationCode": "location" "EraseMaxGeometry": 10000000000, "EraseMinGeometry": 5000000000, } ``` and geometry values will be set to estoraged.
Tested: - unit test pass: ``` 5/7 util_test OK 0.05s ```
Change-Id: Ia8499af2168c7e740558978273fc80456eb29282 Signed-off-by: Tom Tung <shes050117@gmail.com>
show more ...
|
| ff1b64f0 | 20-Oct-2023 |
Patrick Williams <patrick@stwcx.xyz> |
clang-format: copy latest and re-format
clang-format-17 has some backwards incompatible changes that require additional settings for best compatibility and re-running the formatter. Copy the latest
clang-format: copy latest and re-format
clang-format-17 has some backwards incompatible changes that require additional settings for best compatibility and re-running the formatter. Copy the latest .clang-format from the docs repository and reformat the repository.
Change-Id: Idc09d9211b70f7afc008f32e8cb66485ebe0510c Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
show more ...
|
| b650879b | 07-Aug-2023 |
George Liu <liuxiwei@inspur.com> |
build-tests: The allowed method is used by default
The allowed method returns true when the feature is set to `enabled` or `auto`. The allowed method returns false when the feature is set to `disabl
build-tests: The allowed method is used by default
The allowed method returns true when the feature is set to `enabled` or `auto`. The allowed method returns false when the feature is set to `disabled`. So we prefer to use the `allowed` method instead of `enabled`.
Change-Id: I1f1bb8bf40c1312d6943e67a81abc58dabfd94cd Signed-off-by: George Liu <liuxiwei@inspur.com>
show more ...
|