Skip to content

Initial draft of OCP Global Demo Proposal. - #456

Open
CourtneyDrant wants to merge 1 commit into
OpenPRoT:ocp-global-demo-wipfrom
CourtneyDrant:ocp-global-demo-wip
Open

Initial draft of OCP Global Demo Proposal.#456
CourtneyDrant wants to merge 1 commit into
OpenPRoT:ocp-global-demo-wipfrom
CourtneyDrant:ocp-global-demo-wip

Conversation

@CourtneyDrant

Copy link
Copy Markdown
Contributor

No description provided.

@chrysh

chrysh commented Sep 3, 2026

Copy link
Copy Markdown
Contributor
pr456-demo-flow Looking at the diagram, how can the BMC be informed about an invalid image when it is not booted yet?

chrysh

This comment was marked as duplicate.

@chrysh

chrysh commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

How does the BMC signal to the eRoT a successfull boot? How do we distinguish it from a hung BMC?

What happens on failure?

@FerralCoder

@chrysh

chrysh commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

Maybe do 12 (Mark B as active) first, then 11 (Erase staging area). Otherwise, in case there is a power outage between 11 and 12, we would need to retransfer the firmware over PLDM.
If we do 12, then 11: Compare the staged digest against active B digest and erase staging area if disgests are equal, or keep a separate staging applied to slot B marker.

Or maybe even better: Erase staging area after successful boot?

@chrysh

chrysh commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

Small issues:

  • OpenPRoT: Fix spelling
  • AST2700 or AST2070?
  • Is ActivatePendingComponentImage a PLDM T5 command? I assume the black lines are PLDM commands?
  • Is there a timeout between tell BMC to shut down and pulling the power? @FerralCoder

CAD: Will fix. ActivatePendingComponentImage is a T5 Command used while FSM is "IDLE" for FW activation without Component Image Transfer.

@chrysh

chrysh commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

Why do we do this "Update inactive slot A to match slot B"? Don't we want to keep a "previously known-good firmware" for rollback? What if the BMC turns out to have a broken daemon or service or so?

("requires mastership and ANOTHER BMC power cycle")

@FerralCoder

@chrysh

chrysh commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

It looks like in case of image bad, we still end up in good update completed after the BMC boot completes.

@chrysh

chrysh commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

Maybe the diagram should start by the BMC writing the new firmware image into the SPI?

@chrysh

chrysh commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

Should we also add Timeouts into this sequence diagram, e.g. boot timeout?

@rusty1968
rusty1968 requested a review from gmandyam September 3, 2026 16:19
participant OpenProt as OpenProt
participant fwspi as BMC SPI bus (fwspi)

BMC->>OpenProt: GetFirmwareParameters

@rusty1968 rusty1968 Sep 8, 2026

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Add the trigger event to the flow - The flow diagram never shows the event triggering the flow - an external agent writing the flash image to the staging area - The first documented event is GetFirmwareParameters, and by the time OpenPRoT does "Verify BMC image in staging area," the diagram just assumes the image is already sitting there.

@rusty1968

Copy link
Copy Markdown
Collaborator

@CourtneyDrant , I have proposed some changes to the flow as a PR to your fork.

Use OpenProt as Firmware Device to execute extern staging flow listed below.
Update agent will send GetFirmParameters for Inventory and ActivatePendingComponentImage to signal to OpenProt to begin this flow.

sequenceDiagram

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

There should be more actors here - for the demo there should be a human trigger - the demonstrator opens a webui with a file picker and an upload firmware button.

OpenProt->>OpenProt: Erase staging area
OpenProt->>OpenProt: Mark "B" partition as active
else Image bad
OpenProt-->>BMC: Activation failed (image invalid)

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

OpenProt tries to send "Activation failed (image invalid)" to a BMC that has no power.

BMC->>OpenProt: ActivatePendingComponentImage(AST2070 Component Identifier)
OpenProt-->>BMC: EstimatedTimeForActivation

Note over OpenProt,BMC: OpenProt disables access by BMC (notify BMC to shutdown, then pull power)

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

What is the transport for this notification? Currently openBMC and the AST1060 communicate via a software-based mailbox over the I2C. What is the

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

ActivatePendingComponentImage is the notification.

Propsal:
Build a small Update Agent leverage pldm-lib/pldm-common to run ontop of OpenBMC on AST2700.
Use OpenProt as Firmware Device to execute extern staging flow listed below.
Update agent will send GetFirmParameters for Inventory and ActivatePendingComponentImage to signal to OpenProt to begin this flow.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Let's state explicitly that ActivatePendingComponentImage is not a DSP0267 command. The standard PLDM T5 activation command is ActivateFirmware (opcode 0x1a).

participant OpenProt as OpenProt
participant fwspi as BMC SPI bus (fwspi)

BMC->>OpenProt: GetFirmwareParameters

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

We need to add an explicit causal link between the staging firmware and the GetFirmwareParameters command.

Note over OpenProt,BMC: OpenProt disables access by BMC (notify BMC to shutdown, then pull power)

OpenProt->>fwspi: Claim mastership
OpenProt->>OpenProt: Verify BMC image in staging area

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

OpenPRoT must persist the outcome of the verification process across the power cycle. UA will poll for it later when it comes back up.

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.

3 participants