Conversation
|
|
||
| wait_dai_op_idle(0x3FFFF); | ||
| // Masking all partition errors - since they should all be sert after forcing a different digest | ||
| wait_dai_op_idle(0x7FFFFF); |
There was a problem hiding this comment.
nit: Is there an autogenerated constant that can be used to dynamically calculate this mask?
There was a problem hiding this comment.
Integrators will have the ability to re-generate the memory map. We will ask them to re-run the caliptra-ss test suite to make sure there are no issues. This is the reason we should aim to make the test cases resilient to memory map changes.
There was a problem hiding this comment.
Makes sense - thanks.
We've already added the autogenerated constant to fuse_ctrl.c, so the same should be applied here.
There was a problem hiding this comment.
@antmarzam , I think you've now replaced the literal here with the constant right? If yes, this should be flagged to re-trigger a review. Can you please clarify?
There was a problem hiding this comment.
Yes - hardcoded values have been swapped with autogen constant.
I just re-trigger a review!
There was a problem hiding this comment.
Thanks @antmarzam , also for triggering the pipeline as requested by Emre.
6d049d8 to
cbb8ca9
Compare
martin-velay
left a comment
There was a problem hiding this comment.
LGTM thanks Antonio for fixing the issues
b08a54c to
412dc6b
Compare
| CMD_FC_LCC_UNCORRECTABLE_FAULT | ||
| }; | ||
|
|
||
| const uint32_t partition_lower_addr_bound = 0x40; |
There was a problem hiding this comment.
@ekarabu , would you mind pointing us to where these auto-generated base addresses live in C-land please? The team knows where to find the values in the RTL sources but not on the C side. Can it be that these header files are auto-generated at compile time and then only live in the build folder? I've seen this in other projects as well. I I understand why it may be done this way but it makes it a bit harder to find out the names of the constants in C land.
There was a problem hiding this comment.
please check *mmap.h file
There was a problem hiding this comment.
Thanks @ekarabu I believe I'm using now the correct autogen constant - please let me know if you're happy with it
There was a problem hiding this comment.
Thanks @ekarabu for the pointer, it's appreciated.
| }; | ||
|
|
||
| const uint32_t partition_lower_addr_bound = 0x40; | ||
| const uint32_t partition_upper_addr_bound = 0xF0; |
There was a problem hiding this comment.
Assign FE3's Zeroization base address
There was a problem hiding this comment.
I've replaced the harcoded constant for the autogen value:
|
Please ensure your branch is up-to-date and run a promote-pipeline to qualify your PR to be merged! |
412dc6b to
478e8f6
Compare
478e8f6 to
0a8046f
Compare
Thanks Emre - I rebased with the latest main and just started a promote pipeline |
| reset_fc_lcc_rtl(); | ||
| wait_dai_op_idle( | ||
| fault == CMD_FC_LCC_CORRECTABLE_FAULT ? 1 << partition.index : 0x3FFFF | ||
| fault == CMD_FC_LCC_CORRECTABLE_FAULT ? 1 << partition.index : OTP_CTRL_STATUS_LIFE_CYCLE_ERROR_MASK - 1 //0x3FFFFFF |
There was a problem hiding this comment.
@antmarzam: I think you probably want to drop the commented constant from this line? I'd also either get rid of the newline after the ( or put the indentation back to what it was.
There was a problem hiding this comment.
Good spot - thanks
Fix to the address bounds in the partition and to the expected error sent to `wait_dai_op_idle()` This came from the head of PR chipsalliance#727.
|
Hi @antmarzam! As well as the tidy-up I'm suggesting above, do you think you could pull the commits of mine from #740? These all seem related, and maybe this would be a way to land the change atomically. |
0a8046f to
2905fc5
Compare
40b168b to
e3cf8f7
Compare
|
Boo. Looks like this just failed CI. The results that caused it to fail: I'll take a look at this now. |
|
Well that's embarrassing: it's a build failure. Tidying it up now. |
|
@rswarbrick, could you please add the test added in PR #685 to the L1 regression set, in this PR? |
|
@andreaskurth: Sadly not because I still can't push to cailptra-ss. It's extremely frustrating. What's worse, I'm deep in a maze of irritating linker problems (because @ekarabu: I suggest you grab #685 (that Andreas pointed to) and I will have this PR working by tomorrow. Grump, grump, grump! |
|
Ok, I've finally got everything working (this was rather hard!) There's a working version of this PR at https://github.com/rswarbrick/caliptra-ss/tree/new-727. If someone would like to force-push that to this PR, that would be brilliant. If not, I hope that I'll be a member of chipsalliance at last by tomorrow. |
e3cf8f7 to
7438b43
Compare
This avoids fuse_ctrl_mmap.h defining something that actually gets instantiated (and defines a symbol). Without fixing that, if more than one compilation unit includes the header then link will fail because more than one object file defines "partitions" and various fuse index arrays.
Expected mask in `wait_dai_op_idle` now masks all partition errors. The error mask within `wait_dai_op_idle` now masks only partition errors and nothing else.
Fix to the address bounds in the partition and to the expected error sent to `wait_dai_op_idle()`
No functional change (but hopefully it makes things a bit clearer: I found these ranges a bit hard to reason about).
The value in caliptra_ss_fuse_ctrl_manuf_prod_prov hadn't yet been updated for the change in 275521b. This change should make it so that test and also caliptra_ss_fuse_ctrl_init_fail get a magic number from a single (documented) place. Apply the same change to caliptra_ss_fuse_ctrl_test_unlocked0_prov.
7438b43 to
42c81b8
Compare
|
I've been looking at this more carefully and I'm rather unconvinced by the two "fix" commits in this series. I will open an orthogonal PR with the other changes (which I think are easier to be certain about). |
|
I think the changes we need have been implemented in other PRs, so I'm going to close this one now. |
Expected mask in
wait_dai_op_idlenow masks all partition errors.The error mask within
wait_dai_op_idlenow masks only partition errors and nothing else.