fsl_errata.h 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. /*
  2. * Copyright 2013 Freescale Semiconductor, Inc.
  3. *
  4. * SPDX-License-Identifier: GPL-2.0+
  5. */
  6. #ifndef _ASM_FSL_ERRATA_H
  7. #define _ASM_FSL_ERRATA_H
  8. #include <common.h>
  9. #include <asm/processor.h>
  10. #ifdef CONFIG_SYS_FSL_ERRATUM_A006379
  11. static inline bool has_erratum_a006379(void)
  12. {
  13. u32 svr = get_svr();
  14. if (((SVR_SOC_VER(svr) == SVR_T4240) && SVR_MAJ(svr) <= 1) ||
  15. ((SVR_SOC_VER(svr) == SVR_T4160) && SVR_MAJ(svr) <= 1) ||
  16. ((SVR_SOC_VER(svr) == SVR_B4860) && SVR_MAJ(svr) <= 2) ||
  17. ((SVR_SOC_VER(svr) == SVR_B4420) && SVR_MAJ(svr) <= 2) ||
  18. ((SVR_SOC_VER(svr) == SVR_T2080) && SVR_MAJ(svr) <= 1) ||
  19. ((SVR_SOC_VER(svr) == SVR_T2081) && SVR_MAJ(svr) <= 1))
  20. return true;
  21. return false;
  22. }
  23. #endif
  24. #ifdef CONFIG_SYS_FSL_ERRATUM_A006261
  25. static inline bool has_erratum_a006261(void)
  26. {
  27. u32 svr = get_svr();
  28. u32 soc = SVR_SOC_VER(svr);
  29. switch (soc) {
  30. case SVR_P1010:
  31. return IS_SVR_REV(svr, 1, 0) || IS_SVR_REV(svr, 2, 0);
  32. case SVR_P2041:
  33. case SVR_P2040:
  34. return IS_SVR_REV(svr, 1, 0) ||
  35. IS_SVR_REV(svr, 1, 1) || IS_SVR_REV(svr, 2, 1);
  36. case SVR_P3041:
  37. return IS_SVR_REV(svr, 1, 0) ||
  38. IS_SVR_REV(svr, 1, 1) ||
  39. IS_SVR_REV(svr, 2, 0) || IS_SVR_REV(svr, 2, 1);
  40. case SVR_P5010:
  41. case SVR_P5020:
  42. case SVR_P5021:
  43. return IS_SVR_REV(svr, 1, 0) || IS_SVR_REV(svr, 2, 0);
  44. case SVR_T4240:
  45. case SVR_T4160:
  46. return IS_SVR_REV(svr, 1, 0) || IS_SVR_REV(svr, 2, 0);
  47. case SVR_T1040:
  48. return IS_SVR_REV(svr, 1, 0);
  49. case SVR_P5040:
  50. return IS_SVR_REV(svr, 1, 0);
  51. }
  52. return false;
  53. }
  54. #endif
  55. static inline bool has_erratum_a007075(void)
  56. {
  57. u32 svr = get_svr();
  58. u32 soc = SVR_SOC_VER(svr);
  59. switch (soc) {
  60. case SVR_B4860:
  61. case SVR_B4420:
  62. return IS_SVR_REV(svr, 1, 0) || IS_SVR_REV(svr, 2, 0);
  63. case SVR_P1010:
  64. return IS_SVR_REV(svr, 1, 0);
  65. case SVR_P4080:
  66. return IS_SVR_REV(svr, 2, 0) || IS_SVR_REV(svr, 3, 0);
  67. }
  68. return false;
  69. }
  70. #endif