History log of /openbmc/estoraged/src/ (Results 26 – 50 of 60)
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
740e94bd10-Jun-2022 John Edward Broadbent <jebr@google.com>

Add location interface

Tested:
$busctl introspect xyz.openbmc_project.eStoraged \
/xyz/openbmc_project/inventory/storage/mmcblk0
...
xyz.openbmc_project.Inventory.Decorator.LocationCode interface
.

Add location interface

Tested:
$busctl introspect xyz.openbmc_project.eStoraged \
/xyz/openbmc_project/inventory/storage/mmcblk0
...
xyz.openbmc_project.Inventory.Decorator.LocationCode interface
.LocationCode property s "Embedded" emits-change
...

Signed-off-by: John Edward Broadbent <jebr@google.com>
Change-Id: Ib1c2177541de193c5930238958201ad26b38e7d2

show more ...

9e63982010-Jun-2022 John Edward Broadbent <jebr@google.com>

Update utils_test explicit unsigned literals

There exist a combination of gmock, and std::filesystem that creates an
error of the from:

```
if (lhs == rhs) {

'const int' and 'const long long uns

Update utils_test explicit unsigned literals

There exist a combination of gmock, and std::filesystem that creates an
error of the from:

```
if (lhs == rhs) {

'const int' and 'const long long unsigned int'

```
for the follow block
```
EXPECT_EQ(3, std::filesystem::remove_all("mmcblk0"));
```

We don't see it in CI testing, but we do see it in builds.
Possibly an architecture related issue.

Signed-off-by: John Edward Broadbent <jebr@google.com>
Change-Id: I8170567494082914e338104e7e126b54d86ddc5e

show more ...

14aee77420-Apr-2022 John Edward Broadbent <jebr@google.com>

Add Lock property to drives interface

This change adds the locked property, which is driven the same way the
volumes lock property is driven.

Tested:
busctl introspect xyz.openbmc_project.eStoraged

Add Lock property to drives interface

This change adds the locked property, which is driven the same way the
volumes lock property is driven.

Tested:
busctl introspect xyz.openbmc_project.eStoraged /xyz/openbmc_project/inventory/storage/mmcblk0
.Locked property b false emits-change
busctl call xyz.openbmc_project.eStoraged /xyz/openbmc_project/inventory/storage/mmcblk0 xyz.openbmc_project.Inventory.Item.Volume Lock
.Locked property b true emits-change

Signed-off-by: John Edward Broadbent <jebr@google.com>
Change-Id: I750def0fd02cdfc36c060d162ef70fed34fa46c8

show more ...

f78215fd07-Jun-2022 John Wedig <johnwedig@google.com>

Fix code to search for MMC device

The findDevice() function is broken currently because it's looking for a
device in sysfs with the name of mmcblk*. The problem is that the boot
partitions are also

Fix code to search for MMC device

The findDevice() function is broken currently because it's looking for a
device in sysfs with the name of mmcblk*. The problem is that the boot
partitions are also showing up in sysfs (mmcblk0boot0 and mmcblk0boot1),
and the findDevice() function is getting confused.

Instead of relying on the name of the device to find the MMC device, we
now look at the following entry in sysfs, to make sure we found an MMC
device:

/sys/block/<dev_name>/device/type

The contents of that file should be MMC.

Tested:
Ran eStoraged on a machine to confirm that it created a D-Bus object
with the mmcblk0 device, instead of mmcblk0boot0.
$ busctl tree xyz.openbmc_project.eStoraged
`-/xyz
`-/xyz/openbmc_project
`-/xyz/openbmc_project/inventory
`-/xyz/openbmc_project/inventory/storage
`-/xyz/openbmc_project/inventory/storage/mmcblk0

Signed-off-by: John Wedig <johnwedig@google.com>
Change-Id: I786934fcdc950b55c62bc7e3784e29d5ba73099f

show more ...

91c1ec1b20-May-2022 John Edward Broadbent <jebr@google.com>

Add DriveEncryptionState property

Tested:
Verify the property is as expected (Encrypted). Then wipe the disk, and
re-check the value to verify it is as expected (unknown).

$ busctl get-property xyz

Add DriveEncryptionState property

Tested:
Verify the property is as expected (Encrypted). Then wipe the disk, and
re-check the value to verify it is as expected (unknown).

$ busctl get-property xyz.openbmc_project.eStoraged \
/xyz/openbmc_project/inventory/storage/mmcblk0 \
xyz.openbmc_project.Inventory.Item.Drive EncryptionStatus s \
"xyz.openbmc_project.Inventory.Item.Drive.DriveEncryptionState.Encrypted"

$ busctl call xyz.openbmc_project.eStoraged \
/xyz/openbmc_project/inventory/storage/mmcblk0 \
xyz.openbmc_project.Inventory.Item.Volume Erase s \
xyz.openbmc_project.Inventory.Item.Volume.EraseMethod.VendorSanitize

$ busctl get-property xyz.openbmc_project.eStoraged \
/xyz/openbmc_project/inventory/storage/mmcblk0 \
xyz.openbmc_project.Inventory.Item.Drive EncryptionStatus s \
"xyz.openbmc_project.Inventory.Item.Drive.DriveEncryptionState.Unknown"

Signed-off-by: John Edward Broadbent <jebr@google.com>
Change-Id: I4abba7a1e7f047c481aaf4938b2b1e2b7d7ec6be

show more ...

4906f4ef28-Apr-2022 John Edward Broadbent <jebr@google.com>

span: switch to std

Reduce the dependency on stdplus' version of span now that we are using
C++20 and use the one out of the STL instead.

See:https://gerrit.openbmc-project.xyz/c/openbmc/stdplus/+/

span: switch to std

Reduce the dependency on stdplus' version of span now that we are using
C++20 and use the one out of the STL instead.

See:https://gerrit.openbmc-project.xyz/c/openbmc/stdplus/+/53308

Change-Id: I2a35670ab50c40fed093474c4986dd6d2cb79011
Signed-off-by: John Edward Broadbent <jebr@google.com>

show more ...

6c0d8ce122-Apr-2022 John Wedig <johnwedig@google.com>

Add association between chassis and drive

This commit adds an association between the storage device ("drive") and
the associated chassis. Specifically, the new association is the
following:
["cha

Add association between chassis and drive

This commit adds an association between the storage device ("drive") and
the associated chassis. Specifically, the new association is the
following:
["chassis", "drive", <chassis_path>]

This association will be used in bmcweb to add Redfish links between
drive and chassis.

Tested:
$ busctl get-property xyz.openbmc_project.eStoraged \
/xyz/openbmc_project/inventory/storage/mmcblk0 \
xyz.openbmc_project.Association.Definitions Associations
$ busctl get-property xyz.openbmc_project.ObjectMapper \
/xyz/openbmc_project/inventory/system/board/dcscm/drive \
xyz.openbmc_project.Association endpoints
$ busctl get-property xyz.openbmc_project.ObjectMapper \
/xyz/openbmc_project/inventory/storage/mmcblk0/chassis \
xyz.openbmc_project.Association endpoints

Signed-off-by: John Wedig <johnwedig@google.com>
Change-Id: Ie21725e9ceb5134ac94854dcb06f3b86a48eeabd

show more ...

d32b966713-Apr-2022 John Wedig <johnwedig@google.com>

Initial integration with Entity Manager

This commit changes eStoraged so that it doesn't take a specific device
as an argument. Instead, it looks for a config object from Entity
Manager and creates

Initial integration with Entity Manager

This commit changes eStoraged so that it doesn't take a specific device
as an argument. Instead, it looks for a config object from Entity
Manager and creates a D-Bus object corresponding to the config object.

The config objects need to expose the following interface:
"xyz.openbmc_project.Configuration.EmmcDevice"

To support more types of storage devices in the future, we can introduce
a new interface for each one.

In addition, eStoraged currently only supports 1 eMMC device. If we want
to support more than one in the future, we will need to add more
information to the Entity Manager config, to distinguish between them.

Assuming the eMMC is located on a FRU-detectable board, an "Exposes"
entry can be added to that board's Entity Manager config, for example:
{
"Name": "example_emmc",
"Type": "EmmcDevice"
}

Doing so will tell Entity Manager to create a config object with the
EmmcDevice interface mentioned above. Then, eStoraged will find the
config object with that interface and create its own D-Bus object that
can be used to manage the eMMC.

Tested:
Updated the Entity Manager config (as described above), started
eStoraged, then tested most of its methods and properties using busctl.
$ busctl call xyz.openbmc_project.eStoraged \
/xyz/openbmc_project/inventory/storage/mmcblk0 \
xyz.openbmc_project.Inventory.Item.Volume FormatLuks ays 3 1 2 3 \
xyz.openbmc_project.Inventory.Item.Volume.FilesystemType.ext4 \
--timeout=60
$ busctl call xyz.openbmc_project.eStoraged \
/xyz/openbmc_project/inventory/storage/mmcblk0 \
xyz.openbmc_project.Inventory.Item.Volume Lock
$ busctl call xyz.openbmc_project.eStoraged \
/xyz/openbmc_project/inventory/storage/mmcblk0 \
xyz.openbmc_project.Inventory.Item.Volume Unlock ay 3 1 2 3
$ busctl get-property xyz.openbmc_project.eStoraged \
/xyz/openbmc_project/inventory/storage/mmcblk0 \
xyz.openbmc_project.Inventory.Item.Volume Locked
$ busctl get-property xyz.openbmc_project.eStoraged \
/xyz/openbmc_project/inventory/storage/mmcblk0 \
xyz.openbmc_project.Inventory.Item.Drive Capacity
$ busctl call xyz.openbmc_project.eStoraged \
/xyz/openbmc_project/inventory/storage/mmcblk0 \
xyz.openbmc_project.Inventory.Item.Volume Erase s \
xyz.openbmc_project.Inventory.Item.Volume.EraseMethod.VerifyGeometry
$ busctl call xyz.openbmc_project.eStoraged \
/xyz/openbmc_project/inventory/storage/mmcblk0 \
xyz.openbmc_project.Inventory.Item.Volume Erase s \
xyz.openbmc_project.Inventory.Item.Volume.EraseMethod.LogicalOverWrite \
--timeout=1200
$ busctl call xyz.openbmc_project.eStoraged \
/xyz/openbmc_project/inventory/storage/mmcblk0 \
xyz.openbmc_project.Inventory.Item.Volume Erase s \
xyz.openbmc_project.Inventory.Item.Volume.EraseMethod.LogicalVerify \
--timeout=1200

Signed-off-by: John Wedig <johnwedig@google.com>
Change-Id: If137d02e185c366f4a1437076512b4883ba6d595

show more ...

fa5cb6f712-Apr-2022 John Wedig <johnwedig@google.com>

Remove device name from D-Bus service name

When eStoraged gets integrated with entity manager, eStoraged could
potentially be used to manage multiple storage devices. And we will want
the different

Remove device name from D-Bus service name

When eStoraged gets integrated with entity manager, eStoraged could
potentially be used to manage multiple storage devices. And we will want
the different D-Bus objects to be under the same service name.

This commit removes the device name from the D-Bus service name, so that
it can ultimately start managing multiple storage devices. This change
has its own commit, since it breaks compatibility with existing client
software.

Tested:
$ busctl introspect xyz.openbmc_project.eStoraged \
/xyz/openbmc_project/inventory/storage/mmcblk0

Signed-off-by: John Wedig <johnwedig@google.com>
Change-Id: I4a1606cbbe20fa97cee0fde81c8cf5731d71f8ee

show more ...

b2c86be315-Apr-2022 John Edward Broadbent <jebr@google.com>

Change ownership of handle to eStorageD object

Clients used to create both the CryptHandle and the eStorageD objects
using the same information. Then the client would pass the CryptHandle
into eStor

Change ownership of handle to eStorageD object

Clients used to create both the CryptHandle and the eStorageD objects
using the same information. Then the client would pass the CryptHandle
into eStorageD methods in order to perform crypto methods. This change
creates the CryptHandle closer to where it is used. This makes the code
simpler and easier to understand.

Tested:
busctl call xyz.openbmc_project.eStoraged.mmcblk0 \
> /xyz/openbmc_project/inventory/storage/mmcblk0 \
> xyz.openbmc_project.Inventory.Item.Volume FormatLuks ays 3 1 2 3 \
> xyz.openbmc_project.Inventory.Item.Volume.FilesystemType.ext4 \
> --timeout=60

Change-Id: I276e97146f4498191eb19512bc244a1e8d9cd2cb
Signed-off-by: John Edward Broadbent <jebr@google.com>

show more ...

2b5454d314-Apr-2022 John Edward Broadbent <jebr@google.com>

fix error handling for CryptHandle.get

The old code calls CryptHandle once to make sure it is valid, then
calls it again to use it.

Tested:
busctl call xyz.openbmc_project.eStoraged.mmcblk0 \
> /

fix error handling for CryptHandle.get

The old code calls CryptHandle once to make sure it is valid, then
calls it again to use it.

Tested:
busctl call xyz.openbmc_project.eStoraged.mmcblk0 \
> /xyz/openbmc_project/inventory/storage/mmcblk0 \
> xyz.openbmc_project.Inventory.Item.Volume FormatLuks ays 3 1 2 3 \
> xyz.openbmc_project.Inventory.Item.Volume.FilesystemType.ext4 \
> --timeout=60

Signed-off-by: John Edward Broadbent <jebr@google.com>
Change-Id: I21c02315c365e74ead3d0b5b2578c62503376756

show more ...

34a75f0514-Apr-2022 John Edward Broadbent <jebr@google.com>

Fix shadowed variable improperly scoped

These variables were outside of the function that used them. Every other
function that set the "size" variable was shadowing the improperly
scoped variables.

Fix shadowed variable improperly scoped

These variables were outside of the function that used them. Every other
function that set the "size" variable was shadowing the improperly
scoped variables.

Change-Id: I45b20606492987c7a09105c33847bc5b35b9e0ec
Signed-off-by: John Edward Broadbent <jebr@google.com>

show more ...

d6071fc231-Mar-2022 John Edward Broadbent <jebr@google.com>

Fix Short read/write issue

It was possible for "short" reads and writes to cause the pattern and
zero steps to not work correctly. This change adds logic to deal with
the short reads.

Tested: unit

Fix Short read/write issue

It was possible for "short" reads and writes to cause the pattern and
zero steps to not work correctly. This change adds logic to deal with
the short reads.

Tested: unit test and machine test
root@bmc# time busctl call xyz.openbmc_project.eStoraged.mmcblk0 \
> /xyz/openbmc_project/inventory/storage/mmcblk0 \
> xyz.openbmc_project.Inventory.Item.Volume Erase s \
> xyz.openbmc_project.Inventory.Item.Volume.EraseMethod.ZeroOverWrite \
> --timeout=1200
real 6m0.815s
user 0m0.010s
sys 0m0.010s

Change-Id: If8df9bdba159a3bcfa77104a4c17b8d352794db2
Signed-off-by: John Edward Broadbent <jebr@google.com>

show more ...

5d799bb922-Mar-2022 John Edward Broadbent <jebr@google.com>

Add lifetime property for drives interface

This will set the lifetime property when the eStoraged object is
created. This change does not expect the lifetime to change.

Tested:
busctl introspect x

Add lifetime property for drives interface

This will set the lifetime property when the eStoraged object is
created. This change does not expect the lifetime to change.

Tested:
busctl introspect xyz.openbmc_project.eStoraged.mmcblk0 /xyz/openbmc_project/inventory/storage/mmcblk0
NAME TYPE SIGNATURE RESULT/VALUE FLAGS
org.freedesktop.DBus.Introspectable interface - - -
.Introspect method - s -
org.freedesktop.DBus.Peer interface - - -
.GetMachineId method - s -
.Ping method - - -
org.freedesktop.DBus.Properties interface - - -
.Get method ss v -
.GetAll method s a{sv} -
.Set method ssv - -
.PropertiesChanged signal sa{sv}as - -
xyz.openbmc_project.Inventory.Item.Drive interface - - -
.Capacity property t (top secret) emits-change
.PredictedMediaLifeLeftPercent property y 100 emits-change
xyz.openbmc_project.Inventory.Item.Volume interface - - -
.ChangePassword method ayay - -
.Erase method s - -
.FormatLuks method ays - -
.Lock method - - -
.Unlock method ay - -

Signed-off-by: John Edward Broadbent <jebr@google.com>
Change-Id: Ifbbed7d81c55e3edbe519c2b1048b5d1731fbb0e

show more ...

67a4744605-Apr-2022 John Wedig <johnwedig@google.com>

Switch eStoraged to asio interface

Switching the D-Bus interface to asio makes it easier to integrate with
EntityManager. In addition, this switch to asio makes sense since some
of the erase operati

Switch eStoraged to asio interface

Switching the D-Bus interface to asio makes it easier to integrate with
EntityManager. In addition, this switch to asio makes sense since some
of the erase operations take a long time, about 6 minutes.

This commit also removes one of the clang-tidy checks because clang was
flagging an error in one of the boost asio files, inside the constructor
for sdbusplus::asio::connection.

Tested:
Tested most of the methods and properties using busctl.
$ busctl call xyz.openbmc_project.eStoraged.mmcblk0 \
/xyz/openbmc_project/inventory/storage/mmcblk0 \
xyz.openbmc_project.Inventory.Item.Volume FormatLuks ays 3 1 2 3 \
xyz.openbmc_project.Inventory.Item.Volume.FilesystemType.ext4 \
--timeout=60
$ busctl call xyz.openbmc_project.eStoraged.mmcblk0 \
/xyz/openbmc_project/inventory/storage/mmcblk0 \
xyz.openbmc_project.Inventory.Item.Volume Lock
$ busctl call xyz.openbmc_project.eStoraged.mmcblk0 \
/xyz/openbmc_project/inventory/storage/mmcblk0 \
xyz.openbmc_project.Inventory.Item.Volume Unlock ay 3 1 2 3
$ busctl get-property xyz.openbmc_project.eStoraged.mmcblk0 \
/xyz/openbmc_project/inventory/storage/mmcblk0 \
xyz.openbmc_project.Inventory.Item.Volume Locked
$ busctl get-property xyz.openbmc_project.eStoraged.mmcblk0 \
/xyz/openbmc_project/inventory/storage/mmcblk0 \
xyz.openbmc_project.Inventory.Item.Drive Capacity
$ busctl call xyz.openbmc_project.eStoraged.mmcblk0 \
/xyz/openbmc_project/inventory/storage/mmcblk0 \
xyz.openbmc_project.Inventory.Item.Volume Erase s \
xyz.openbmc_project.Inventory.Item.Volume.EraseMethod.VerifyGeometry
$ busctl call xyz.openbmc_project.eStoraged.mmcblk0 \
/xyz/openbmc_project/inventory/storage/mmcblk0 \
xyz.openbmc_project.Inventory.Item.Volume Erase s \
xyz.openbmc_project.Inventory.Item.Volume.EraseMethod.LogicalOverWrite \
--timeout=1200
$ busctl call xyz.openbmc_project.eStoraged.mmcblk0 \
/xyz/openbmc_project/inventory/storage/mmcblk0 \
xyz.openbmc_project.Inventory.Item.Volume Erase s \
xyz.openbmc_project.Inventory.Item.Volume.EraseMethod.LogicalVerify \
--timeout=1200

Signed-off-by: John Wedig <johnwedig@google.com>
Change-Id: I99cb371871bfa68eb0193f614f899221afd9013a

show more ...

605085a605-Nov-2021 John Edward Broadbent <jebr@google.com>

Add erase sanitize

Sanitize uses the eMMC firmware to erase all blocks.

Tested:
$ cat /dev/urandom > /dev/mmcblk0

$ time busctl call xyz.openbmc_project.eStoraged.mmcblk0 \
/xyz/openbmc_project/in

Add erase sanitize

Sanitize uses the eMMC firmware to erase all blocks.

Tested:
$ cat /dev/urandom > /dev/mmcblk0

$ time busctl call xyz.openbmc_project.eStoraged.mmcblk0 \
/xyz/openbmc_project/inventory/storage/mmcblk0 \
xyz.openbmc_project.Inventory.Item.Volume Erase s \
xyz.openbmc_project.Inventory.Item.Volume.EraseMethod.VendorSanitize \
--timeout=1200

real 0m1.793s
user 0m0.021s
sys 0m0.009s

root@ytbaz20-nfd01:/# cat /dev/mmcblk0 | hexdump

0000000 0000 0000 0000 0000 0000 0000 0000 0000
*

Signed-off-by: John Edward Broadbent <jebr@google.com>
Change-Id: I31bc21c0b6d31cbba0db752d94a93eb004dbbde6

show more ...

e35e736122-Mar-2022 John Edward Broadbent <jebr@google.com>

Add implementation capacity for drive interface

This will set the capacity property when the eStoraged object is
created. This change does not expect the drive size to change.

Change-Id: I72cd68c50

Add implementation capacity for drive interface

This will set the capacity property when the eStoraged object is
created. This change does not expect the drive size to change.

Change-Id: I72cd68c5045e9ef49939f4655a223a02234c7434
Signed-off-by: John Edward Broadbent <jebr@google.com>

show more ...

a6e3b99d17-Mar-2022 John Edward Broadbent <jebr@google.com>

Refactor findsize into util away from erase

At first the size was only needed for erase, now it is needed for the
drives interface. The code needed to be refactored to make drive
interface implement

Refactor findsize into util away from erase

At first the size was only needed for erase, now it is needed for the
drives interface. The code needed to be refactored to make drive
interface implementation possible.

Signed-off-by: John Edward Broadbent <jebr@google.com>
Change-Id: I0a23ee23a0de3fd89a9e776b4854e8da9a8ff2e4

show more ...

86dfb24414-Mar-2022 John Edward Broadbent <jebr@google.com>

Add the Drives Interface to eStorageD

This new interface will be able to send machine health information from
eStorageD to clients on dbus using phosphor dbus interfaces.

$ busctl call -j xyz.openb

Add the Drives Interface to eStorageD

This new interface will be able to send machine health information from
eStorageD to clients on dbus using phosphor dbus interfaces.

$ busctl call -j xyz.openbmc_project.ObjectMapper /xyz/openbmc_project/object_mapper xyz.openbmc_project.ObjectMapper GetSubTree sias "/xyz/openbmc_project/inventory" 0 1 "xyz.openbmc_project.Inventory.Item.Drive"

$ curl -u root:0penBmc -X GET "http://localbmc/redfish/v1/Systems/system/Storage/1/Drives/mmcblk0"

Signed-off-by: John Edward Broadbent <jebr@google.com>
Change-Id: I91facaf6d1ac0d52258fc97ba93e6f2138619073

show more ...

a1e0eb0315-Mar-2022 John Edward Broadbent <jebr@google.com>

Change DBus path from storage to inventory

bmcweb only searches for drive in the inventory. If we want bmcweb to
find and treat the eMMC like drive, we must change this path.

It would be possible t

Change DBus path from storage to inventory

bmcweb only searches for drive in the inventory. If we want bmcweb to
find and treat the eMMC like drive, we must change this path.

It would be possible to change how bmcweb find drives. See below:
https://github.com/openbmc/bmcweb/blob/master/redfish-core/lib/storage.hpp#L561

Tested: Ran on real machine and verified the path was correct.
Change-Id: Ibba9d144f4d141fdad358da1e43db6d871d6d013
Signed-off-by: John Edward Broadbent <jebr@google.com>

show more ...

82897c3521-Feb-2022 Ed Tanous <edtanous@google.com>

Check in a clang-tidy

This should've been done when we first created the repo, but better late
than never.

Signed-off-by: Ed Tanous <edtanous@google.com>
Signed-off-by: John Edward Broadbent <jebr@

Check in a clang-tidy

This should've been done when we first created the repo, but better late
than never.

Signed-off-by: Ed Tanous <edtanous@google.com>
Signed-off-by: John Edward Broadbent <jebr@google.com>
Change-Id: I68da1d13167ec94f9d008dea307c9f23a991d42c

show more ...

0c2808f025-Feb-2022 Patrick Williams <patrick@stwcx.xyz>

build: enable subproject-based build

* Move existing phosphor-logging.wrap to the subprojects directory.
* Add wrap files for all openbmc dependencies.
* Fix up meson.build files to utilize subproje

build: enable subproject-based build

* Move existing phosphor-logging.wrap to the subprojects directory.
* Add wrap files for all openbmc dependencies.
* Fix up meson.build files to utilize subproject dependencies and follow
Meson conventions for dependency naming.
* Ensure wrap files are not ignored by .gitignore.

Tested: Built on a typical Linux development system and 'ninja test'
passed.

Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
Change-Id: I167911f045ee1f27cc69bcba7be185762844a030

show more ...

f59b729115-Feb-2022 John Edward Broadbent <jebr@google.com>

Add Locking

This uses the estoraged version of locking for erase use.
It will unmount the file system, and make the encrypted block disappear.
Ideally we will add hardware locking support at a later

Add Locking

This uses the estoraged version of locking for erase use.
It will unmount the file system, and make the encrypted block disappear.
Ideally we will add hardware locking support at a later time.

Signed-off-by: John Edward Broadbent <jebr@google.com>
Change-Id: I0cfb0637fc8d3dd6f8d23c9dd60d1f66fd424a4e

show more ...

d3bfa7bb13-Jan-2022 John Edward Broadbent <jebr@google.com>

Add namespaces to erase methods

Some erase objects did not have the required namespace. This change adds
the estoraged and estoraged_testing namespace where it is needed.

Testing: Not tested
Change

Add namespaces to erase methods

Some erase objects did not have the required namespace. This change adds
the estoraged and estoraged_testing namespace where it is needed.

Testing: Not tested
Change-Id: I63757ea4d3672659f21108e5e65fd09aa1c03406
Signed-off-by: John Edward Broadbent <jebr@google.com>

show more ...

59dffa6313-Jan-2022 John Edward Broadbent <jebr@google.com>

Add crypto Erase to eStorageD.

The goal is to erase the keys that are used to decrypt the drive. After
the keys are erased it will not be possible to decrypt the drive, even
if the password can be r

Add crypto Erase to eStorageD.

The goal is to erase the keys that are used to decrypt the drive. After
the keys are erased it will not be possible to decrypt the drive, even
if the password can be recalled. The data is forever inaccessible.

Testing:

$ systemctl stop emmc.service

$ /eStoraged -b /dev/mmcblk0 &

$ busctl call xyz.openbmc_project.eStoraged.mmcblk0 /xyz/openbmc_project/storage/mmcblk0 xyz.openbmc_project.Inventory.Item.Volume FormatLuks ays 3 1 2 3 xyz.openbmc_project.Inventory.Item.Volume.FilesystemType.ext4

$ busctl call xyz.openbmc_project.eStoraged.mmcblk0 /xyz/openbmc_project/storage/mmcblk0 xyz.openbmc_project.Inventory.Item.Volume Lock

$ busctl call xyz.openbmc_project.eStoraged.mmcblk0 /xyz/openbmc_project/storage/mmcblk0 xyz.openbmc_project.Inventory.Item.Volume Erase s xyz.openbmc_project.Inventory.Item.Volume.EraseMethod.CryptoErase

$ busctl call xyz.openbmc_project.eStoraged.mmcblk0 /xyz/openbmc_project/storage/mmcblk0 xyz.openbmc_project.Inventory.Item.Volume Unlock ay 3 1 2 3
Call failed: The operation failed internally.

Signed-off-by: John Edward Broadbent <jebr@google.com>
Change-Id: I3221e82a92c1b555e2379b19c9e1d5b6e4b02f9b

show more ...

123