mirror of
https://github.com/brain-hackers/u-boot-brain
synced 2024-09-13 00:03:26 +09:00
![Nishanth Menon](/assets/img/avatar_default.png)
Add workaround for Cortex-A15 ARM erratum 798870 which says "If back-to-back speculative cache line fills (fill A and fill B) are issued from the L1 data cache of a CPU to the L2 cache, the second request (fill B) is then cancelled, and the second request would have detected a hazard against a recent write or eviction (write B) to the same cache line as fill B then the L2 logic might deadlock." Implementations for SoC families such as Exynos, OMAP5/DRA7 etc will be widely different. Every SoC has slightly different manner of setting up access to L2ACLR and similar registers since the Secure Monitor handling of Secure Monitor Call(smc) is diverse. Hence an weak function is introduced which may be overriden to implement SoC specific accessor implementation. Based on ARM errata Document revision 18.0 (22 Nov 2013) Signed-off-by: Nishanth Menon <nm@ti.com> Tested-by: Matt Porter <mporter@konsulko.com> Reviewed-by: Tom Rini <trini@konsulko.com>
61 lines
1.6 KiB
Makefile
61 lines
1.6 KiB
Makefile
#
|
|
# (C) Copyright 2000-2003
|
|
# Wolfgang Denk, DENX Software Engineering, wd@denx.de.
|
|
#
|
|
# SPDX-License-Identifier: GPL-2.0+
|
|
#
|
|
|
|
extra-y := start.o
|
|
|
|
obj-y += cache_v7.o
|
|
|
|
obj-y += cpu.o cp15.o
|
|
obj-y += syslib.o
|
|
|
|
ifneq ($(CONFIG_AM43XX)$(CONFIG_AM33XX)$(CONFIG_OMAP44XX)$(CONFIG_OMAP54XX)$(CONFIG_TEGRA)$(CONFIG_MX6)$(CONFIG_TI81XX)$(CONFIG_AT91FAMILY)$(CONFIG_SUNXI),)
|
|
ifneq ($(CONFIG_SKIP_LOWLEVEL_INIT),y)
|
|
obj-y += lowlevel_init.o
|
|
endif
|
|
endif
|
|
|
|
ifneq ($(CONFIG_ARMV7_NONSEC)$(CONFIG_ARMV7_VIRT),)
|
|
obj-y += nonsec_virt.o
|
|
obj-y += virt-v7.o
|
|
obj-y += virt-dt.o
|
|
endif
|
|
|
|
ifneq ($(CONFIG_ARMV7_PSCI),)
|
|
obj-y += psci.o
|
|
endif
|
|
|
|
obj-$(CONFIG_IPROC) += iproc-common/
|
|
obj-$(CONFIG_KONA) += kona-common/
|
|
obj-$(CONFIG_OMAP_COMMON) += omap-common/
|
|
obj-$(CONFIG_SYS_ARCH_TIMER) += arch_timer.o
|
|
|
|
ifneq (,$(filter s5pc1xx exynos,$(SOC)))
|
|
obj-y += s5p-common/
|
|
endif
|
|
|
|
obj-$(if $(filter am33xx,$(SOC)),y) += am33xx/
|
|
obj-$(if $(filter armada-xp,$(SOC)),y) += armada-xp/
|
|
obj-$(CONFIG_BCM2835) += bcm2835/
|
|
obj-$(if $(filter bcm281xx,$(SOC)),y) += bcm281xx/
|
|
obj-$(if $(filter bcmcygnus,$(SOC)),y) += bcmcygnus/
|
|
obj-$(if $(filter bcmnsp,$(SOC)),y) += bcmnsp/
|
|
obj-$(CONFIG_ARCH_EXYNOS) += exynos/
|
|
obj-$(if $(filter ls102xa,$(SOC)),y) += ls102xa/
|
|
obj-$(if $(filter mx5,$(SOC)),y) += mx5/
|
|
obj-$(CONFIG_MX6) += mx6/
|
|
obj-$(CONFIG_OMAP34XX) += omap3/
|
|
obj-$(CONFIG_OMAP44XX) += omap4/
|
|
obj-$(CONFIG_OMAP54XX) += omap5/
|
|
obj-$(CONFIG_RMOBILE) += rmobile/
|
|
obj-$(CONFIG_ARCH_S5PC1XX) += s5pc1xx/
|
|
obj-$(CONFIG_SOCFPGA) += socfpga/
|
|
obj-$(if $(filter stv0991,$(SOC)),y) += stv0991/
|
|
obj-$(CONFIG_ARCH_SUNXI) += sunxi/
|
|
obj-$(CONFIG_U8500) += u8500/
|
|
obj-$(CONFIG_VF610) += vf610/
|
|
obj-$(CONFIG_ZYNQ) += zynq/
|