Hi!
I'm storing a key in the KMU for use by the ECB.
If I set the slot's destination address to an address in RAM, the KMU pushes the key there correctly, but if I instead set the destination address to &NRF_ECU00->KEY.VALUE[0], I can't push the key.
I run this code to push they key:
if (nrf_kmu_status_get(NRF_KMU) != NRF_KMU_STATUS_READY) { printf("ERROR: KMU not ready\n"); return; } nrf_kmu_keyslot_set(NRF_KMU, slot_id); nrf_kmu_event_clear(NRF_KMU, NRF_KMU_EVENT_KEYSLOT_PUSHED); nrf_kmu_task_trigger(NRF_KMU, NRF_KMU_TASK_PUSH_KEYSLOT); while (nrf_kmu_status_get(NRF_KMU) == NRF_KMU_STATUS_BUSY) { /* Busy wait */ } if (!nrf_kmu_event_check(NRF_KMU, NRF_KMU_EVENT_KEYSLOT_PUSHED)) { printf("Failed to push key\n"); return; }
I run this code in a mpsl timeslot handler.
I can write to the NRF_ECB00->KEY.VALUE[0] key registers there with the CPU.
Is there something more I have to do to be able to push they key directly to the ECB's KEY registers from the KMU?