You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I have a question about how HW writes to the key vault. It seems to me from the code snippet below, that an input to one key vault register (key_entry_next[entry][dword]) might be an OR-ed result from writes of two different HW clients, if they decide to write to the same place at the same time. Is this intentional, because the SW is not expected to ever do such a thing, or is there a realistic scenario where this could be problematic? It also seems to be a generic code structure used elsewhere, too.
I have a question about how HW writes to the key vault. It seems to me from the code snippet below, that an input to one key vault register (key_entry_next[entry][dword]) might be an OR-ed result from writes of two different HW clients, if they decide to write to the same place at the same time. Is this intentional, because the SW is not expected to ever do such a thing, or is there a realistic scenario where this could be problematic? It also seems to be a generic code structure used elsewhere, too.
for (int client = 0; client < KV_NUM_WRITE; client++) begin
key_entry_we[entry][dword] |= ((((kv_write[client].write_entry == entry) & (kv_write[client].write_offset
== dword) & kv_write[client].write_en) | flush_keyvault) &
((~lock_wr_q[entry] & ~lock_use_q[entry]) | debugUnlock_or_scan_mode_switch));
key_entry_next[entry][dword] |= flush_keyvault ? debug_value :
kv_write[client].write_en & (kv_write[client].write_entry == entry) ? kv_write[client].write_data : '0;
end
The text was updated successfully, but these errors were encountered: