uboot/include/fsl_errata.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0+ */
   2/*
   3 * Copyright 2013 - 2015  Freescale Semiconductor, Inc.
   4 */
   5
   6#ifndef _FSL_ERRATA_H
   7#define _FSL_ERRATA_H
   8
   9#include <common.h>
  10#if defined(CONFIG_PPC)
  11#include <asm/processor.h>
  12#elif defined(CONFIG_ARCH_LS1021A)
  13#include <asm/arch-ls102xa/immap_ls102xa.h>
  14#elif defined(CONFIG_FSL_LAYERSCAPE)
  15#include <asm/arch/soc.h>
  16#endif
  17
  18
  19#ifdef CONFIG_SYS_FSL_ERRATUM_A006379
  20static inline bool has_erratum_a006379(void)
  21{
  22        u32 svr = get_svr();
  23        if (((SVR_SOC_VER(svr) == SVR_T4240) && SVR_MAJ(svr) <= 1) ||
  24            ((SVR_SOC_VER(svr) == SVR_T4160) && SVR_MAJ(svr) <= 1) ||
  25            ((SVR_SOC_VER(svr) == SVR_T4080) && SVR_MAJ(svr) <= 1) ||
  26            ((SVR_SOC_VER(svr) == SVR_B4860) && SVR_MAJ(svr) <= 2) ||
  27            ((SVR_SOC_VER(svr) == SVR_B4420) && SVR_MAJ(svr) <= 2) ||
  28            ((SVR_SOC_VER(svr) == SVR_T2080) && SVR_MAJ(svr) <= 1) ||
  29            ((SVR_SOC_VER(svr) == SVR_T2081) && SVR_MAJ(svr) <= 1))
  30                return true;
  31
  32        return false;
  33}
  34#endif
  35
  36#ifdef CONFIG_SYS_FSL_ERRATUM_A007186
  37static inline bool has_erratum_a007186(void)
  38{
  39        u32 svr = get_svr();
  40        u32 soc = SVR_SOC_VER(svr);
  41
  42        switch (soc) {
  43        case SVR_T4240:
  44                return IS_SVR_REV(svr, 2, 0);
  45        case SVR_T4160:
  46                return IS_SVR_REV(svr, 2, 0);
  47        case SVR_B4860:
  48                return IS_SVR_REV(svr, 2, 0);
  49        case SVR_B4420:
  50                return IS_SVR_REV(svr, 2, 0);
  51        case SVR_T2081:
  52        case SVR_T2080:
  53                return IS_SVR_REV(svr, 1, 0) || IS_SVR_REV(svr, 1, 1);
  54        }
  55
  56        return false;
  57}
  58#endif
  59
  60#ifdef CONFIG_SYS_FSL_ERRATUM_A008378
  61static inline bool has_erratum_a008378(void)
  62{
  63        u32 svr = get_svr();
  64        u32 soc = SVR_SOC_VER(svr);
  65
  66
  67        switch (soc) {
  68#ifdef CONFIG_ARCH_LS1021A
  69        case SOC_VER_LS1020:
  70        case SOC_VER_LS1021:
  71        case SOC_VER_LS1022:
  72        case SOC_VER_SLS1020:
  73                return IS_SVR_REV(svr, 1, 0);
  74#endif
  75#ifdef CONFIG_PPC
  76        case SVR_T1023:
  77        case SVR_T1024:
  78                return IS_SVR_REV(svr, 1, 0);
  79        case SVR_T1020:
  80        case SVR_T1022:
  81        case SVR_T1040:
  82        case SVR_T1042:
  83                return IS_SVR_REV(svr, 1, 0) || IS_SVR_REV(svr, 1, 1);
  84#endif
  85        default:
  86                return false;
  87        }
  88}
  89#endif
  90
  91#endif /*  _FSL_ERRATA_H */
  92