-
Notifications
You must be signed in to change notification settings - Fork 35
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Updated HW Release Process with feedback based on Caliptra Sync on 6/…
…9/2023
- Loading branch information
Showing
2 changed files
with
396 additions
and
30 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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 | ||
|
||
<br> *Caliptra Release Flow* | ||
![Caliptra Release Flow Chart](doc/images/Caliptra_release_flow.svg) |
Oops, something went wrong.