WSL2-Linux-Kernel/arch/arm
Russell King 02b4e2756e ARM: v7 setup function should invalidate L1 cache
All ARMv5 and older CPUs invalidate their caches in the early assembly
setup function, prior to enabling the MMU.  This is because the L1
cache should not contain any data relevant to the execution of the
kernel at this point; all data should have been flushed out to memory.

This requirement should also be true for ARMv6 and ARMv7 CPUs - indeed,
these typically do not search their caches when caching is disabled (as
it needs to be when the MMU is disabled) so this change should be safe.

ARMv7 allows there to be CPUs which search their caches while caching is
disabled, and it's permitted that the cache is uninitialised at boot;
for these, the architecture reference manual requires that an
implementation specific code sequence is used immediately after reset
to ensure that the cache is placed into a sane state.  Such
functionality is definitely outside the remit of the Linux kernel, and
must be done by the SoC's firmware before _any_ CPU gets to the Linux
kernel.

Changing the data cache clean+invalidate to a mere invalidate allows us
to get rid of a lot of platform specific hacks around this issue for
their secondary CPU bringup paths - some of which were buggy.

Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
Tested-by: Florian Fainelli <f.fainelli@gmail.com>
Tested-by: Heiko Stuebner <heiko@sntech.de>
Tested-by: Dinh Nguyen <dinguyen@opensource.altera.com>
Acked-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
Tested-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
Acked-by: Shawn Guo <shawn.guo@linaro.org>
Tested-by: Thierry Reding <treding@nvidia.com>
Acked-by: Thierry Reding <treding@nvidia.com>
Tested-by: Geert Uytterhoeven <geert+renesas@glider.be>
Tested-by: Michal Simek <michal.simek@xilinx.com>
Tested-by: Wei Xu <xuwei5@hisilicon.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2015-06-01 11:30:26 +01:00
..
boot ARM: Show proper respect for Heinrich Hertz by using the correct unit for frequency 2015-05-14 16:22:05 +01:00
common ARM: SoC platform updates for v4.1 2015-04-22 09:08:39 -07:00
configs ARM: SoC defconfig updates for v4.1 2015-04-22 09:21:30 -07:00
crypto Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 2015-04-15 10:42:15 -07:00
firmware
include This mostly includes the PPC changes for 4.1, which this time cover 2015-04-26 13:06:22 -07:00
kernel Merge branch 'for-linus' of git://ftp.arm.linux.org.uk/~rmk/linux-arm 2015-04-24 08:10:53 -07:00
kvm This mostly includes the PPC changes for 4.1, which this time cover 2015-04-26 13:06:22 -07:00
lib ARM: ensure delay timer has sufficient accuracy for delays 2015-04-14 22:28:07 +01:00
mach-alpine ARM: alpine: add support for generic pci 2015-04-14 01:15:57 +02:00
mach-asm9260
mach-at91 Fourth batch of cleanup for 4.1: 2015-04-14 01:50:21 +02:00
mach-axxia
mach-bcm ARM: v7 setup function should invalidate L1 cache 2015-06-01 11:30:26 +01:00
mach-berlin ARM: v7 setup function should invalidate L1 cache 2015-06-01 11:30:26 +01:00
mach-clps711x
mach-cns3xxx ARM: cns3xxx: don't export static symbol 2015-03-13 11:02:15 +01:00
mach-davinci ARM: Show proper respect for Heinrich Hertz by using the correct unit for frequency 2015-05-14 16:22:05 +01:00
mach-digicolor
mach-dove PCI: Cleanup control flow 2015-03-19 10:17:22 -05:00
mach-ebsa110
mach-efm32
mach-ep93xx
mach-exynos ARM: SoC driver updates for v4.1 2015-04-22 09:18:17 -07:00
mach-footbridge
mach-gemini
mach-highbank
mach-hisi ARM: v7 setup function should invalidate L1 cache 2015-06-01 11:30:26 +01:00
mach-imx ARM: v7 setup function should invalidate L1 cache 2015-06-01 11:30:26 +01:00
mach-integrator
mach-iop13xx ARM: Show proper respect for Heinrich Hertz by using the correct unit for frequency 2015-05-14 16:22:05 +01:00
mach-iop32x
mach-iop33x
mach-ixp4xx ARM: Show proper respect for Heinrich Hertz by using the correct unit for frequency 2015-05-14 16:22:05 +01:00
mach-keystone
mach-ks8695 ARM: Show proper respect for Heinrich Hertz by using the correct unit for frequency 2015-05-14 16:22:05 +01:00
mach-lpc32xx
mach-mediatek
mach-meson
mach-mmp
mach-moxart
mach-mv78xx0 PCI: Cleanup control flow 2015-03-19 10:17:22 -05:00
mach-mvebu ARM: v7 setup function should invalidate L1 cache 2015-06-01 11:30:26 +01:00
mach-mxs
mach-netx
mach-nomadik
mach-nspire
mach-omap1 ARM: OMAP1: PM: fix some build warnings on 1510-only Kconfigs 2015-03-16 16:09:23 -07:00
mach-omap2 ARM: Show proper respect for Heinrich Hertz by using the correct unit for frequency 2015-05-14 16:22:05 +01:00
mach-orion5x PCI: Cleanup control flow 2015-03-19 10:17:22 -05:00
mach-picoxcell
mach-prima2 ARM: v7 setup function should invalidate L1 cache 2015-06-01 11:30:26 +01:00
mach-pxa ARM: Show proper respect for Heinrich Hertz by using the correct unit for frequency 2015-05-14 16:22:05 +01:00
mach-qcom
mach-realview
mach-rockchip ARM: v7 setup function should invalidate L1 cache 2015-06-01 11:30:26 +01:00
mach-rpc
mach-s3c24xx
mach-s3c64xx ARM: SoC platform updates for v4.1 2015-04-22 09:08:39 -07:00
mach-s5pv210 ARM: 8326/1: s5pv210: move resume code to .text section 2015-03-29 23:11:58 +01:00
mach-sa1100
mach-shmobile ARM: v7 setup function should invalidate L1 cache 2015-06-01 11:30:26 +01:00
mach-socfpga ARM: v7 setup function should invalidate L1 cache 2015-06-01 11:30:26 +01:00
mach-spear
mach-sti
mach-sunxi
mach-tegra ARM: v7 setup function should invalidate L1 cache 2015-06-01 11:30:26 +01:00
mach-u300
mach-ux500 ARM: ux500: switch from gic_arch_extn to gic_set_irqchip_flags 2015-03-15 01:28:11 +00:00
mach-versatile
mach-vexpress ARM: SoC driver updates for v4.1 2015-04-22 09:18:17 -07:00
mach-vt8500
mach-w90x900
mach-zynq ARM: v7 setup function should invalidate L1 cache 2015-06-01 11:30:26 +01:00
mm ARM: v7 setup function should invalidate L1 cache 2015-06-01 11:30:26 +01:00
net
nwfpe ARM: 8322/1: keep .text and .fixup regions closer together 2015-03-29 23:11:56 +01:00
oprofile
plat-iop
plat-omap ARM, clocksource/drivers: Provide read_boot_clock64() and read_persistent_clock64() and use them 2015-04-03 08:18:23 +02:00
plat-orion
plat-pxa ARM: plat-pxa: remove use of seq_printf return value 2015-04-15 16:35:25 -07:00
plat-samsung
plat-versatile
probes
tools
vdso ARM: 8344/1: VDSO: honor CONFIG_VDSO in Makefile 2015-04-21 15:28:02 +01:00
vfp
xen xen/privcmd: improve performance of MMAPBATCH_V2 2015-03-16 14:49:15 +00:00
Kconfig ARM: SoC multiplatform code changes for v4.1 2015-04-22 09:20:15 -07:00
Kconfig-nommu
Kconfig.debug ARM: SoC multiplatform code changes for v4.1 2015-04-22 09:20:15 -07:00
Makefile ARM: SoC platform updates for v4.1 2015-04-22 09:08:39 -07:00