u-boot/arch/arm/cpu/armv7
Hans de Goede c09d29057a arm: Replace v7_maint_dcache_all(ARMV7_DCACHE_CLEAN_INVAL_ALL) with asm code
v7_maint_dcache_all() does not work reliable when build with gcc6,
see: https://bugzilla.redhat.com/show_bug.cgi?id=1318788

While debugging this I learned that v7_maint_dcache_all() is unreliable
when build with gcc5 too when it is marked as noinline.

This commit fixes the reliability issues by replacing the C-code with
the ready to use asm implementation from the kernel.

Given that this code when written as C-code clearly is quite fragile
(also see the existing comments about the C-code being the way it is
 to get optimal assembly) and that we have a proven asm alternative,
I believe that this is the best solution.

Note that we actually already had a copy of the kernel's
v7_flush_dcache_all() before this commit in
arch/arm/mach-uniphier/arm32/lowlevel_init.S.

This commit moves that code arch/arm/cpu/armv7/cache_v7_asm.S, renames
it to __v7_flush_dcache_all(), and adds a v7_flush_dcache_all() wrapper
which saves / restores the clobbered registers for use from C-code.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Acked-by: Masahiro Yamada <yamada.masahiro@socionext.com>
2016-04-11 20:48:26 -04:00
..
am33xx ARM: Various: Future-proof serial platdata 2016-03-14 19:18:48 -04:00
bcm281xx bcm281xx: add support for "USB OTG clock" 2014-12-29 16:31:23 -05:00
bcmcygnus arm: bcmcygnus: Add bcmcygnus u-architecture 2014-08-30 07:46:40 -04:00
bcmnsp arm: bcmnsp: Add bcmnsp u-architecture 2014-08-30 07:46:40 -04:00
iproc-common arm: iproc: Initial commit of iproc architecture code 2014-08-30 07:46:40 -04:00
kona-common bcm281xx: add support for "USB OTG clock" 2014-12-29 16:31:23 -05:00
ls102xa armv7: ls102xa: Move smmu and stream id initialization into the common soc code 2016-02-24 08:51:15 -08:00
mx5 arch: Make board selection choices optional 2015-05-12 18:10:02 -04:00
mx6 imx: mx6: hdmi: handle overflow condition 2016-03-14 22:53:45 +01:00
mx7 imx: mx7d: isolate resources to domain 0 for A7 core 2016-02-21 11:46:26 +01:00
omap-common spl: arm: Make sure to include all of the u_boot_list entries 2016-03-16 15:27:55 -04:00
omap3 sniper: Change vendor name from lge to lg, matching devicetree vendor prefix 2016-04-01 17:18:06 -04:00
omap4 omap4: Check warm reset for reboot mode validity 2016-03-15 15:12:54 -04:00
omap5 ARM: OMAP5/DRA7: Expose do_set_iodelay 2016-03-27 09:12:15 -04:00
rmobile arm: rmobile: Add Stout board support 2015-08-31 17:32:59 +09:00
s5p-common s5p: cpu_info: print "cpu-model" if exists in dts 2015-11-02 10:37:59 +09:00
stv0991 stv0991: configure clock & pad muxing for qspi 2015-07-03 13:50:53 +05:30
sunxi sunxi: Move cpu independent code to mach directory 2016-04-01 09:52:28 +02:00
vf610 imx: vf610 add get_cpu_rev 2015-09-02 15:39:51 +02:00
arch_timer.c arm: add support for arch timer 2014-04-17 17:24:38 -04:00
cache_v7.c arm: Replace v7_maint_dcache_all(ARMV7_DCACHE_CLEAN_INVAL_ALL) with asm code 2016-04-11 20:48:26 -04:00
cache_v7_asm.S arm: Replace v7_maint_dcache_all(ARMV7_DCACHE_CLEAN_INVAL_ALL) with asm code 2016-04-11 20:48:26 -04:00
config.mk ARM: move -march=* and -mtune= options to arch/arm/Makefile 2015-03-27 16:55:22 +01:00
cp15.c ARM: Introduce erratum workaround for 454179 2015-03-13 09:28:48 -04:00
cpu.c arm: Turn of d-cache before i-cache 2015-09-02 21:28:25 -06:00
Kconfig arm: Add support for HYP mode and LPAE page tables 2016-03-27 09:12:17 -04:00
lowlevel_init.S ARM: SPL: Use CONFIG_SPL_DM not CONFIG_DM 2015-08-12 20:48:07 -04:00
Makefile arm: Replace v7_maint_dcache_all(ARMV7_DCACHE_CLEAN_INVAL_ALL) with asm code 2016-04-11 20:48:26 -04:00
nonsec_virt.S Use correct spelling of "U-Boot" 2016-02-06 12:00:59 +01:00
psci.S ARM: Put target PC for PSCI CPU_ON on per-CPU stack 2015-05-13 09:24:14 -07:00
start.S ARM: Introduce erratum workaround for 801819 2015-08-12 20:47:49 -04:00
syslib.c ARM: OMAP: hide custom bit manipulation function sr32() 2014-04-17 14:39:54 -04:00
virt-dt.c virt-dt: Allow reservation of secure region when in a RAM carveout 2015-05-13 09:24:14 -07:00
virt-v7.c tegra124: Reserve secure RAM using MC_SECURITY_CFG{0, 1}_0 2015-05-13 09:24:15 -07:00