efuse.h 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. /*
  2. * Copyright (C) 2015 Reinhard Pfau <reinhard.pfau@gdsys.cc>
  3. *
  4. * SPDX-License-Identifier: GPL-2.0+
  5. */
  6. #ifndef _MVEBU_EFUSE_H
  7. #define _MVEBU_EFUSE_H
  8. #include <common.h>
  9. struct efuse_val {
  10. union {
  11. struct {
  12. u8 d[8];
  13. } bytes;
  14. struct {
  15. u16 d[4];
  16. } words;
  17. struct {
  18. u32 d[2];
  19. } dwords;
  20. };
  21. u32 lock;
  22. };
  23. #if defined(CONFIG_ARMADA_38X)
  24. enum efuse_line {
  25. EFUSE_LINE_SECURE_BOOT = 24,
  26. EFUSE_LINE_PUBKEY_DIGEST_0 = 26,
  27. EFUSE_LINE_PUBKEY_DIGEST_1 = 27,
  28. EFUSE_LINE_PUBKEY_DIGEST_2 = 28,
  29. EFUSE_LINE_PUBKEY_DIGEST_3 = 29,
  30. EFUSE_LINE_PUBKEY_DIGEST_4 = 30,
  31. EFUSE_LINE_CSK_0_VALID = 31,
  32. EFUSE_LINE_CSK_1_VALID = 32,
  33. EFUSE_LINE_CSK_2_VALID = 33,
  34. EFUSE_LINE_CSK_3_VALID = 34,
  35. EFUSE_LINE_CSK_4_VALID = 35,
  36. EFUSE_LINE_CSK_5_VALID = 36,
  37. EFUSE_LINE_CSK_6_VALID = 37,
  38. EFUSE_LINE_CSK_7_VALID = 38,
  39. EFUSE_LINE_CSK_8_VALID = 39,
  40. EFUSE_LINE_CSK_9_VALID = 40,
  41. EFUSE_LINE_CSK_10_VALID = 41,
  42. EFUSE_LINE_CSK_11_VALID = 42,
  43. EFUSE_LINE_CSK_12_VALID = 43,
  44. EFUSE_LINE_CSK_13_VALID = 44,
  45. EFUSE_LINE_CSK_14_VALID = 45,
  46. EFUSE_LINE_CSK_15_VALID = 46,
  47. EFUSE_LINE_FLASH_ID = 47,
  48. EFUSE_LINE_BOX_ID = 48,
  49. EFUSE_LINE_MIN = 0,
  50. EFUSE_LINE_MAX = 63,
  51. };
  52. #endif
  53. int mvebu_efuse_init_hw(void);
  54. int mvebu_read_efuse(int nr, struct efuse_val *val);
  55. int mvebu_write_efuse(int nr, struct efuse_val *val);
  56. int mvebu_lock_efuse(int nr);
  57. #endif