summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHiroshi Doyu <hdoyu@nvidia.com>2013-05-03 06:18:02 +0300
committerHarshada Kale <hkale@nvidia.com>2013-06-10 03:51:22 -0700
commitab30491df5386eb2873b53bb8bcfae83e91b2cb6 (patch)
tree3ebd2caf040d513f9ea421d6eeabdb32dc9f4cb6
parent2fa899cea85450ffda872115c5c931089bd1d14f (diff)
iommu/tegra: smmu: Add Tegra errata 1053704 for some of Tegra SoC
Add workaround of TEGRA_ERRATA_1053704 for some of Tegra SoC bug 1286500 Change-Id: I7d1a75b198051bc49eb7e14e4e7892eab9818f29 (cherry picked from commit fc688d6f91ae4250cb16274bc8b41875ead06b4e) Signed-off-by: Hiroshi Doyu <hdoyu@nvidia.com> Reviewed-on: http://git-master/r/234132 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Krishna Reddy <vdumpa@nvidia.com>
-rw-r--r--arch/arm/mach-tegra/Kconfig2
-rw-r--r--drivers/iommu/Kconfig14
2 files changed, 16 insertions, 0 deletions
diff --git a/arch/arm/mach-tegra/Kconfig b/arch/arm/mach-tegra/Kconfig
index fa308f922b25..e5c6fbec5ec2 100644
--- a/arch/arm/mach-tegra/Kconfig
+++ b/arch/arm/mach-tegra/Kconfig
@@ -92,6 +92,7 @@ config ARCH_TEGRA_3x_SOC
select TEGRA_LATENCY_ALLOWANCE if !TEGRA_FPGA_PLATFORM
select TEGRA_LATENCY_ALLOWANCE_SCALING if !TEGRA_FPGA_PLATFORM
select SOC_BUS
+ select TEGRA_ERRATA_1053704
help
Support for NVIDIA Tegra T30 processor family, based on the
ARM CortexA9MP CPU and the ARM PL310 L2 cache controller
@@ -126,6 +127,7 @@ config ARCH_TEGRA_11x_SOC
select TEGRA_ISOMGR_SYSFS
select TEGRA_ISOMGR_DEBUG
select TEGRA_ERRATA_1157520
+ select TEGRA_ERRATA_1053704
select TEGRA_CORE_EDP_LIMITS
select TEGRA_VDD_CORE_OVERRIDE if TEGRA_EMC_SCALING_ENABLE
select TEGRA_THERMAL_THROTTLE_EXACT_FREQ
diff --git a/drivers/iommu/Kconfig b/drivers/iommu/Kconfig
index feec0e680d2a..35c1fd7d88a0 100644
--- a/drivers/iommu/Kconfig
+++ b/drivers/iommu/Kconfig
@@ -177,4 +177,18 @@ config TEGRA_IOMMU_SMMU_LINEAR
IOMMU'able bus. Otherwise DMA API should be used correctly
in device drivers.
+config TEGRA_ERRATA_1053704
+ bool "Tegra errata: SMMU Hit-Under-Miss FIFO Out-of-Order"
+ depends on TEGRA_IOMMU_SMMU
+ depends on ARCH_TEGRA_3x_SOC || ARCH_TEGRA_11x_SOC
+ help
+ SMMU TLB entry invalidate, while hit-under-miss(HUM) FIFO
+ has pending transaction(s) based on the TLB entry, can cause
+ violation of transactions ordering requirement at SMMU, if
+ the subsequent transaction to the same IOVA address gets PTE
+ into a different TLB entry. If this happens, The new
+ transaction(s) can bypass pending transaction(s) and can
+ lead to memory corruption. The workaround is not to flush
+ TLB entry, which has pending transactions in HUM FIFO.
+
endif # IOMMU_SUPPORT