From a26903c58f48868536c8fcc8b478339a8387dbcc Mon Sep 17 00:00:00 2001 From: Fabrizio Damato Date: Fri, 9 Jun 2023 18:19:32 -0400 Subject: [PATCH] Updated HW Release Process with feedback based on Caliptra Sync on 6/9/2023 --- HWReleaseProcess.md | 77 +++--- doc/images/Caliptra_release_flow.svg | 349 +++++++++++++++++++++++++++ 2 files changed, 396 insertions(+), 30 deletions(-) create mode 100644 doc/images/Caliptra_release_flow.svg diff --git a/HWReleaseProcess.md b/HWReleaseProcess.md index 4b7ada4..5f27f6a 100644 --- a/HWReleaseProcess.md +++ b/HWReleaseProcess.md @@ -1,41 +1,58 @@ -# The Release process +# HW Release process + +## Nightly 1. When a new release is triggered a new **release candidate** branch will be created from the HEAD of the **main** branch in the **caliptra-rtl** repo. - Naming of the branch fill indicate it is a release candidate and will have a target point release version (ex. HWRC 0.8_0; HWRC 0.8_1) -2. A PR will be created in the **caliptra-sw** repo on a new **release candidatre** branch - * PR will update the RTL submodule pointer to point to the new RTL release candidate branch creates in Step #1. - * PR will also update the registers RDL -3. If all the caliptra-sw repo CI tests pass on the PR from step 2 it will be merged -4. RTL regressions will run using ROM built from the **release candidate** branch in the caliptra-sw repo -5. If RTL Regression passes a new release will be made on the **TBD** repo and a ZIP file containing the release collateral will be included as part of the release. -6. The caliptra-rtl and caliptra-sw repos will be tagged with a **release** version tag. +2. A new **release candidate** branch will be created from the HEAD of the **main** branch in the **caliptra-sw** repo. +3. A new commit will update the RTL submodule pointer to point to the new RTL release candidate branch creates in Step #1, and update the registers RDL +4. If all the caliptra-sw repo CI tests pass: + 1. A **release candidate** TAG will be made on the HEAD of the **release candidate** branch + 2. A **release collateral** archive will be generated and pushed as a Github Artifact + +## Major Releases + +1. The **release collateral** will be manually used for a RTL DV Checkout +2. If the RTL Regression passes a new release will be made on the **caliptra** repo and a ZIP file containing the release collateral will be included as part of the release. +3. The **caliptra-rtl** and **caliptra-sw** repos will be tagged with a **release** version tag. ## Fail Case + 1. Failure in caliptra-sw repo - 1. Create PR with the fixes to go to **main** branch in the caliptra-sw repo - 2. Once PR is merged, fix will be cherry picked into ** release candidate** branch and we would go back to Step #4 + 1. Create PR with the fixes to go to **main** branch in the caliptra-sw repo + 2. Once PR is merged, fix will be cherry picked into **release candidate** branch and we would go back to Step #4 2. Failure in RTL Repo - 1. Create PR with the fixes to go to **main** branch in the caliptra-rtl repo - 2. Once PR is merged, fix will be cherry picked into ** release candidate** branch and we would go back to Step #2 + 1. Create PR with the fixes to go to **main** branch in the caliptra-rtl repo + 2. Once PR is merged, fix will be cherry picked into **release candidate** branch and we would go back to Step #3 ## Release Collateral -- Release ZIP File - - RTL SRC - - ROM binary files (BIN ,ELF, and HEX) - - Additional Documentation - - All specs? - - Register Documentation (External) - - Header files with: - - Register definitions. - - Reference code for mailbox, etc. - - Release notes TXT file - - Which tests were run and which ones passed/failed? - - All relevant Git commit hashes from both repos -- Separate Supporting ZIP File (due to size concerns) - - FPGA Bitstream file - - C HW model - - Headers and static library + +- Release ZIP File + - RTL SRC + - ROM binary files (BIN ,ELF, and HEX) + - Additional Documentation + - All specs? + - Register Documentation (External) + - Header files with: + - Register definitions. + - Reference code for mailbox, etc. + - Release notes TXT file + - Which tests were run and which ones passed/failed? + - All relevant Git commit hashes from both repos +- Separate Supporting ZIP File (due to size concerns) + - FPGA Bitstream file + - C HW model + - Headers and static library + - Firmware signed (development key) binary files (BIN, ELF) + - Integrator Test Checklist + - Fuse Matrix + - Test List + - Development Key ## Release Rules/Opens -- All fixes go into a main branch first and then any required fixes for a release will get cherrypicked over. -- All releases will come from a release candidate branch + +- All fixes go into a main branch first and then any required fixes for a release will get cherrypicked over. +- All releases will come from a release candidate branch + +
*Caliptra Release Flow* +![Caliptra Release Flow Chart](doc/images/Caliptra_release_flow.svg) \ No newline at end of file diff --git a/doc/images/Caliptra_release_flow.svg b/doc/images/Caliptra_release_flow.svg new file mode 100644 index 0000000..4427c74 --- /dev/null +++ b/doc/images/Caliptra_release_flow.svg @@ -0,0 +1,349 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Page-1 + + + + + + Line 1.2 + + + + Circle.3 + + + + + + + Sheet.8 + RC N.0 + + + + RC N.0 + + Sheet.13 + Caliptra RTL + + + + Caliptra RTL + + Line 1.15 + + + + Circle.16 + + + + + + + Line-curve connector.17 + release-N + + + + + + + + + release-N + + Sheet.18 + RC N.0 + + + + RC N.0 + + Circle.19 + + + + + + + Sheet.22 + Caliptra SW + + + + Caliptra SW + + Arced Line Arrow.29 + + + + + + + + + + + Sheet.30 + git submodule + + + + git submodule + + Sheet.99 + HW Release Flow + + + + HW Release Flow + + + + + Filing Box Archive.139 + Release N (Nightly) + + Sheet.140 + + + + + + + Sheet.141 + + + + + + + + Release N(Nightly) + + + Process Arrow.143 + + + + + + + + Sheet.152 + Archive Collaterals + + + + Archive Collaterals + + Process group.221 + RTL DV Checkout + + + + + + + RTL DV Checkout + + Process group.226 + SW CI + + + + + + + SW CI + + Dynamic connector.249 + + + + Sheet.252 + Caliptra Major HW Release + + + + Caliptra Major HW Release + + Dynamic connector.280 + + + + Line 1.283 + + + + Sheet.284 + Caliptra Spec + + + + Caliptra Spec + + Bent Arrow + + + + + + + Circle.1 + + + + + + + Circle.287 + + + + + + + + + + Filing Box Archive.288 + HW Release Package + + Sheet.289 + + + + + + + Sheet.290 + + + + + + + + HW Release Package + + + Dynamic connector + + + + Sheet.293 + Manual for Major releases + + + + Manual for Major releases + + Circle.297 + + + + + + + Circle.298 + + + + + + + Circle.299 + + + + + + + Circle.14 + + + + + + +