How to configure efuses?

Hey there!

I have just purchased a Hikey960 and would like to know how do the efuses work. Is there any API provided? How can I know more about them and how to used them?
I already checked the Reference Manual and the only info I got there is that EFUSEC is the control module for efuses and it is provided by the System Controller.

Thanks in advance!

Hi,

Usually, eFUSE is used for SoC profile and it’s quite related with security features. As I know, Hikey960 doesn’t provide tool for this kind thing.

If I misunderstand, please feel free correct. Thanks.

Hi @leo-yan!

Thanks for your quick reply.
Yes, I’m aware that eFUSEs are security features but I saw on hikey960 schematics indications of them on page 5 and 12 (also in the Reference Manual, page 15 and 49).
So the thing is: are the fuses there but there’s no way to benefit from them?

Thank you once again!

Hi @vivianemartins16,

You are welcome.

Usually, we need to use provision tool (or manufacturing tool) to access the eFUSE; Hikey960 is delivered as a development board and if I understand correctly, it doesn’t provide provision tools.

The schematics give regulator for eFUSE block, this means the board is using default values from eFUSE. Just want to remind (but I think you have known very well :slight_smile:): we don’t have any info for the bitmap definition for eFUSE, it would be dangerous to write values to eFUSE and it might cause the board cannot bootup and cannot be recovered.

If your purpose is to store some trivial information, suggest to consider other media (flash, or even SRAM) rather than eFUSE.

Hi @leo-yan

Thanks for the reply! Yes, I understand it can be dangerous to play around with eFUSEs. In our lab we have three Hikeys for development and we never touched the eFUSEs exactly for that reason.

We would like to make a Proof of Concept, end-to-end of our architecture and carefully set those eFUSE so we can see the whole thing working.

I don’t intend to use them to store trivial information. We would like to test our root of trust architecture. :slight_smile:

Do you have any suggestions on this?

Thank you!

Hi @vivianemartins16,

To be honest, I don’t know well for security; the first thing in my head is TPM [1], you could check if TPM can meet your requirement or not.

[1] https://www.96boards.org/blog/getting-started-with-the-secure96-tpm/