Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[device_id] complete DeviceID proto cleanup #18

Merged
merged 4 commits into from
Sep 12, 2024

Conversation

timothytrippel
Copy link
Collaborator

@timothytrippel timothytrippel commented Sep 12, 2024

This completes the DeviceID proto cleanup by:

  • moving message definitions that are not relevant to device IDs, nor the device registration process, to other proto definitions, and
  • aligning the Device data message definitions with the OpenTitan reference provisioning flow.

Specifically, the latter updates the DeviceData message to simplify it / make more generic, by encapsulating all assets (i.e., certs, seeds, etc.) provisioned into the device into a single data payload byte array that can be up to 8k per device. This enables supporting various OpenTitan SKUs (and is the way the reference provisioning flow in the opentitan repo is implemented) that may provision different sets of certificates and/or seeds into flash that must be harvested during FT.

Lastly, this removes code that is not relevant to OpenTitan provisioning, namely:

  1. TPM and BMC device registration functions in the ATE API, and
  2. invalid OpenTitan LC states.

This moves the Certificate message to the cert.proto (from the
device_id.proto), since it is not directly related to a device ID.

Signed-off-by: Tim Trippel <ttrippel@google.com>
The TPM and BMC device registration functions are not relevant to
OpenTitan device provisioning.

Signed-off-by: Tim Trippel <ttrippel@google.com>
This updates the DeviceData message to align with the reference
OpenTitan provisioning flow (in lowRISC/opentitan) repo. Specifically,
this makes the DeviceData simpler / more generic, by encapsulating all
assets (i.e., certs, seeds, etc.) provisioned into the device into a
single data payload byte array that can be up to 8k per device.

This enables supporting various OpenTitan SKUs that may provision
different sets of certificates and/or seeds into flash that must be
harvested during FT.

Signed-off-by: Tim Trippel <ttrippel@google.com>
This updates the DeviceLifeCycle enum to remove LC states that are not
relevant to OpenTitan devices. The "Invalid" LC state is also removed as
it does not represent a valid LC state a device may be provisioned into.

Signed-off-by: Tim Trippel <ttrippel@google.com>
Copy link
Collaborator

@moidx moidx left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@timothytrippel timothytrippel merged commit 629c029 into lowRISC:main Sep 12, 2024
3 checks passed
@timothytrippel timothytrippel deleted the reorg-protos branch September 19, 2024 17:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants