kfuse: Ensure that kfuse is ready 100% for tsec

This commit is contained in:
CTCaer
2019-10-22 18:57:51 +03:00
parent 7c42f72b8a
commit 65fbdfddbf
6 changed files with 34 additions and 8 deletions

View File

@@ -18,16 +18,25 @@
#include "../soc/clock.h"
#include "../soc/t210.h"
int kfuse_wait_ready()
{
// Wait for KFUSE to finish init and verification of data.
while (!(KFUSE(KFUSE_STATE) & KFUSE_STATE_DONE))
;
if (!(KFUSE(KFUSE_STATE) & KFUSE_STATE_CRCPASS))
return 0;
return 1;
}
int kfuse_read(u32 *buf)
{
int res = 0;
clock_enable_kfuse();
while (!(KFUSE(KFUSE_STATE) & KFUSE_STATE_DONE))
;
if (!(KFUSE(KFUSE_STATE) & KFUSE_STATE_CRCPASS))
if (!kfuse_wait_ready())
goto out;
KFUSE(KFUSE_KEYADDR) = KFUSE_KEYADDR_AUTOINC;

View File

@@ -36,6 +36,7 @@
#define KFUSE_NUM_WORDS 144
int kfuse_wait_ready();
int kfuse_read(u32 *buf);
#endif