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

[hmac] D3 Signoff #22638

Closed
rnongie opened this issue Apr 17, 2024 · 7 comments
Closed

[hmac] D3 Signoff #22638

rnongie opened this issue Apr 17, 2024 · 7 comments

Comments

@rnongie
Copy link

rnongie commented Apr 17, 2024

Description

No response

@andrea-caforio
Copy link
Contributor

andrea-caforio commented Dec 4, 2024

This procedure covers all commits that introduced RTL/software changes in HMAC over the period between
the D2(S) signoff d748311 and the latest state of the upstream master branch f698217.

Checklist

NEW_FEATURES_D3

Any approved new features since D2 have been documented and reviewed with DV/SW/FPGA

Most of the changes since D2 concerned bugfixes around the save/restore and secure wiping capabilities,
notable changes that added new features to the IP block are as follows:

Both features have been properly documented and appear in the DV workflow.

TODO_COMPLETE

All TODOs are resolved. Deferred TODOs have been marked as “iceboxed” in the code and have been attached an issue as follows: // ICEBOX(#issue-nr).

The HMAC contains an unresolved TODO at rtl/hmac.sv+171:

DoneAwaitMessageComplete: begin
  if (digest_on_blk) begin
    // Once the digest is being computed for the complete message block, wait for the hash to
    // complete.
    // TODO (issue #21710): handle incomplete message size and check against 512 or 1024
    done_state_d = DoneAwaitHashComplete;
  end
end

The mentioned issue #21710 has been closed as unplanned.

LINT_COMPLETE

The lint checking flow is clean. Any lint waiver files have been reviewed and signed off by the technical steering committee.

Both veriblelint and ascentlint do not report any issues which is contrasted by the verilator output upon execution of the command:

$ ./util/dvsim/dvsim.py hw/top_earlgrey/lint/top_earlgrey_lint_cfgs.hjson --tool verilator --local --purge --select-cfgs hmac

ERROR: %Warning-WIDTH: ../src/lowrisc_ip_hmac_0.1/rtl/hmac_core.sv:296:24: Operator ASSIGNDLY expects 4 bits on the Assign RHS, but Assign RHS's CONST '3'h0' generates 3 bits.
%Warning-WIDTH: ../src/lowrisc_ip_hmac_0.1/rtl/hmac_core.sv:298:24: Operator ASSIGNDLY expects 4 bits on the Assign RHS, but Assign RHS's CONST '3'h0' generates 3 bits.
%Warning-WIDTH: ../src/lowrisc_ip_hmac_0.1/rtl/hmac.sv:553:57: Operator SHIFTR expects 32 or 7 bits on the LHS, but LHS's VARREF 'hmac_fifo_wdata_sel' generates 4 bits.

CDC_COMPLETE/RDC_COMPLETE

The CDC checking flow is clean. CDC waiver files have been reviewed and understood. If there is no CDC flow at the block-level, this requirement can be waived. The RDC checking flow is clean. RDC waiver files have been reviewed and understood. If there is no RDC flow at the block-level, this requirement can be waived.

Not relevant here.

REVIEW_RTL

A simple design review has been conducted by an independent designer.

I went through the RTL and tried to digest the design. Nothing to report here.

REVIEW_DELETED_FF

Any deleted flops have been reviewed and signed off. If there is no synthesis flow at the block-level, this requirement can be waived.

After a top-level Vivado synthesis no trimmed flip-flops were reported in the HMAC block. There is a basic
synthesis flow defined for DC for HMAC, maybe someone else with access to the tool can take a look at it.

REVIEW_SW_CHANGE

Any software-visible design changes have been reviewed by the software team.

The two new features described above induce software changes in the cryptolib drive for HMAC that have been handled in #23510.
Note that the changes are not reflected (alongside varying key sizes) in the DIF as per this open issue #22332.

REVIEW_SW_ERRATA

All known “Won’t Fix” bugs and “Errata” have been reviewed by the software team.

Nothing to report.

Commits since the D2(S) Signoff

Below we list all the commits (most recent first) that touched upon the hw/ip/hmac directory since the D2(S) signoff at d748311. Those
highlighted in yellow are commits relevant to this D3 signoff. To recreate this list run:

git log d748311..HEAD --oneline hw/ip/hmac

Open Bug/Feature Issues

@rswarbrick
Copy link
Contributor

Thanks for doing this carefully. Tracking through the text, I think I can see a few action items:

I believe that all three need addressing before D3 signoff is complete for this block, but (on the plus side) they hopefully give an upper bound on the changes required.

andrea-caforio added a commit to andrea-caforio/opentitan that referenced this issue Dec 6, 2024
Some non-trivial work has flown into the HMAC IP, both RTL and DV,
since the 2.0.0 milestone. For a summary of newly added features and
fixed bugs, see lowRISC#22638. This commit bumps the version number to
reflect these changes.

Signed-off-by: Andrea Caforio <andrea.caforio@lowrisc.org>
@andrea-caforio andrea-caforio removed this from the Earlgrey-PROD.M7 milestone Jan 24, 2025
@andrea-caforio
Copy link
Contributor

@rswarbrick @martin-velay

Update January 24

The open action items of the report on December 4, 2024 have been fixed. The list of commits has been amended.

@martin-velay
Copy link
Contributor

LGTM, thanks Andrea !

@vogelpi
Copy link
Contributor

vogelpi commented Feb 13, 2025

Thanks for updating this issue @andrea-caforio . Would you mind preparing the D3 sign-off PR please? For inspiration, please check the V3 sign-off PR #26262

@vogelpi
Copy link
Contributor

vogelpi commented Feb 14, 2025

The PR is here: #26294

@rswarbrick
Copy link
Contributor

Signoff commit merged. Congratulations, @andrea-caforio !

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

6 participants