lowRISC / opentitan

OpenTitan: Open source silicon root of trust
https://www.opentitan.org
Apache License 2.0
2.49k stars 742 forks source link

[lc_ctrl] Study prod netlist when SecVolatileRawUnlockEn set to 0 to verify logic is removed #18250

Closed msfschaffner closed 4 months ago

msfschaffner commented 1 year ago

Description

msfschaffner commented 7 months ago

@andreaskurth @vogelpi FYI this will be important for PROD. We need to make sure the volatile unlock feature is removed.

vogelpi commented 4 months ago

I am now in contact with the PD team regarding this issue. I think it should be sufficient to check if the volatile_raw_unlock_success_q registers inside lc_ctrl_fsm.sv are there in the netlist or optimzied away.

vogelpi commented 4 months ago

I got feedback from @meisnere who checked the netlist and confirmed that:

This makes me feel reasonably confident that things are as they should be. I am ticking off the corresponding box above. The question is now whether we need to re-check this after RTL freeze?

andreaskurth commented 4 months ago

Thanks for checking this in the current netlist. To ensure that this keeps holding for the tapeout, I suggest we add this to the post-synthesis stage of the tapeout checklist.

vogelpi commented 4 months ago

This sounds good to me. We've taken a note to add this to the tapeout checklist and I am now closing the issue.

msfschaffner commented 4 months ago

Note that there is a TLT that checks whether this is behaving correctly (e.g. check that volatile unlock does not work). You could tell NT to run that on a GLS to be absolutely sure.