otp.h 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. /*
  2. * OTP Masks
  3. */
  4. #ifndef __BFIN_PERIPHERAL_OTP__
  5. #define __BFIN_PERIPHERAL_OTP__
  6. #ifndef __ASSEMBLY__
  7. #include "bootrom.h"
  8. static uint32_t (* const otp_command)(uint32_t command, uint32_t value) = (void *)_BOOTROM_OTP_COMMAND;
  9. static uint32_t (* const otp_read)(uint32_t page, uint32_t flags, uint64_t *page_content) = (void *)_BOOTROM_OTP_READ;
  10. static uint32_t (* const otp_write)(uint32_t page, uint32_t flags, uint64_t *page_content) = (void *)_BOOTROM_OTP_WRITE;
  11. #endif
  12. /* otp_command(): defines for "command" */
  13. #define OTP_INIT 0x00000001
  14. #define OTP_CLOSE 0x00000002
  15. /* otp_{read,write}(): defines for "flags" */
  16. #define OTP_LOWER_HALF 0x00000000 /* select upper/lower 64-bit half (bit 0) */
  17. #define OTP_UPPER_HALF 0x00000001
  18. #define OTP_NO_ECC 0x00000010 /* do not use ECC */
  19. #define OTP_LOCK 0x00000020 /* sets page protection bit for page */
  20. #define OTP_ACCESS_READ 0x00001000
  21. #define OTP_ACCESS_READWRITE 0x00002000
  22. /* Return values for all functions */
  23. #define OTP_SUCCESS 0x00000000
  24. #define OTP_MASTER_ERROR 0x001
  25. #define OTP_WRITE_ERROR 0x003
  26. #define OTP_READ_ERROR 0x005
  27. #define OTP_ACC_VIO_ERROR 0x009
  28. #define OTP_DATA_MULT_ERROR 0x011
  29. #define OTP_ECC_MULT_ERROR 0x021
  30. #define OTP_PREV_WR_ERROR 0x041
  31. #define OTP_DATA_SB_WARN 0x100
  32. #define OTP_ECC_SB_WARN 0x200
  33. /* Predefined otp pages: Factory Programmed Settings */
  34. #define FPS00 0x0004
  35. #define FPS01 0x0005
  36. #define FPS02 0x0006
  37. #define FPS03 0x0007
  38. #define FPS04 0x0008
  39. #define FPS05 0x0009
  40. #define FPS06 0x000A
  41. #define FPS07 0x000B
  42. #define FPS08 0x000C
  43. #define FPS09 0x000D
  44. #define FPS10 0x000E
  45. #define FPS11 0x000F
  46. /* Predefined otp pages: Customer Programmed Settings */
  47. #define CPS00 0x0010
  48. #define CPS01 0x0011
  49. #define CPS02 0x0012
  50. #define CPS03 0x0013
  51. #define CPS04 0x0014
  52. #define CPS05 0x0015
  53. #define CPS06 0x0016
  54. #define CPS07 0x0017
  55. /* Predefined otp pages: Pre-Boot Settings */
  56. #define PBS00 0x0018
  57. #define PBS01 0x0019
  58. #define PBS02 0x001A
  59. #define PBS03 0x001B
  60. #endif