b.liu | e958203 | 2025-04-17 19:18:16 +0800 | [diff] [blame^] | 1 | #ifndef h_asr_efuse_h
|
| 2 | #define h_asr_efuse_h
|
| 3 |
|
| 4 | #include <common.h>
|
| 5 |
|
| 6 | #define HW_UNIQUE_KEY_LENGTH (16)
|
| 7 |
|
| 8 | #define EFUSE_BANK_NUM (4)
|
| 9 | #define EFUSE_BANK_LEN_IN_BIT (256)
|
| 10 | #define EFUSE_BANK_LEN_IN_BYTE (32)
|
| 11 | #define EFUSE_BANK_LEN_IN_WORD (8)
|
| 12 |
|
| 13 | struct hw_unique_key {
|
| 14 | uint8_t data[16];
|
| 15 | };
|
| 16 |
|
| 17 | struct efuse_data {
|
| 18 | volatile uint32_t efuse_base;
|
| 19 | int bank_initialized;
|
| 20 | uint8_t bank[EFUSE_BANK_NUM][EFUSE_BANK_LEN_IN_BYTE];
|
| 21 | };
|
| 22 |
|
| 23 | void geu_fuse_test(void);
|
| 24 | int fuse_bank_read(uint32_t bank, uint8_t *buffer);
|
| 25 | int asr_rkek_burned(void);
|
| 26 | int fuse_get_sim_lock(int *sim_lock);
|
| 27 | #endif |