dasharo-issues icon indicating copy to clipboard operation
dasharo-issues copied to clipboard

Capsule Updates require ME to be manually disabled

Open mkopec opened this issue 9 months ago • 4 comments

Component

Dasharo firmware

Device

NovaCustom V56 14th Gen, NovaCustom V54 14th Gen, NovaCustom NS7x 12th Gen, NovaCustom NS7x 11th Gen, NovaCustom NS5x 12th Gen, NovaCustom NS5x 11th Gen, NovaCustom NV4x 12th Gen, NovaCustom NV4x 11th Gen

Dasharo version

No response

Dasharo Tools Suite version

No response

Test case ID

No response

Brief summary

Updating via Capsule Update requires the ME to be manually disabled, to prevent ME from attempting to write to the flash while updating. This is sub-optimal UX.

How reproducible

100%

How to reproduce

  • try to perform capsule update with ME enabled

Expected behavior

capsule update passes

Actual behavior

I get an error from CapsuleApp: Unsupported.

Screenshots

No response

Additional context

There are mechanisms to stop ME for update, like HMRFPO and flash descriptor override by strap.

Solutions you've tried

No response

mkopec avatar Apr 15 '25 15:04 mkopec

@SergiiDmytruk can you describe the issues that you had with automatically disabling the ME on entry to FUM?

mkopec avatar Apr 25 '25 12:04 mkopec

In-ram capsule images can't survive disabling or enabling ME because it requires a cold reset which changes contents of RAM and ruins the capsules. This is why ME needs to be disabled before the capsule is loaded into memory and the system is warm reset. An alternative is loading a capsule from disk after disabling ME, but we only have in-ram capsules at the moment.

SergiiDmytruk avatar Apr 25 '25 17:04 SergiiDmytruk

An alternative is loading a capsule from disk after disabling ME

We are also considering updating ME over ME Interface (HECI). But that is rather more like a future plan.

miczyg1 avatar Apr 28 '25 14:04 miczyg1

Okay so to summarize, to make capsule-in-ram plug & play without needing to manually change settings, we would need to support two update protocols in capsules:

  • ME FWUpdate via HECI when ME is enabled (using prestitched FWUpdate images)
  • Direct flashing if ME is disabled (using a raw ME binary) These could be distributed as part of one capsule and the firmware could make the decision which protocol to use.

or: use capsule-on-disk instead of capsule-in-ram

mkopec avatar Apr 29 '25 11:04 mkopec