ARM startup: Do call __mmu_cache_flush during startup
Traditionally we call __mmu_cache_flush in early startup. There
is a problem with armv7 and hierarchical caches though, on these
systems __mmu_cache_flush uses the stack. Appearantly this was
seldomly a problem, because most of these systems have a ROM
bootloader which sets up some stack, but on a special i.MX6 system
this failed badly. We should not have to flush caches here. Every
sane system should pass control to the bootloader without stale
entries in the caches *), so it should be a safe assumption that the
cache flush can be removed.

Since __mmu_cache_flush is not called from early code anymore we can
also move it to the regular text section.

Be brave and give it a try.

*) omap3 seems to be a exception to this, but this has a cache flush
in arch_init_lowlevel already

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
WIP_next-LS master next stable/v2013.05 stable/v2013.06 stable/v2013.07 stable/v2013.08 stable/v2013.10 stable/v2014.05 stable/v2014.06 stable/v2014.07 stable/v2014.08 stable/v2014.09 stable/v2014.10 stable/v2014.11 stable/v2014.12 stable/v2015.01 stable/v2015.02 stable/v2017.05 stable/v2017.06 stable/v2017.07 stable/v2017.11 stable/v2018.07 stable/v2018.09 stable/v2018.12 work/fit-support v2020.07.0 v2020.06.0 v2020.05.0 v2020.04.0 v2020.03.0 v2020.02.0 v2020.01.0 v2019.12.0 v2019.11.0 v2019.10.0 v2019.09.0 v2019.08.1 v2019.08.0 v2019.07.0 v2019.06.1 v2019.06.0 v2019.05.0 v2019.04.0 v2019.03.0 v2019.02.0 v2019.01.0 v2018.12.0 v2018.11.0 v2018.10.0 v2018.09.1 v2018.09.0 v2018.08.1 v2018.08.0 v2018.07.2 v2018.07.1 v2018.07.0 v2018.06.0 v2018.05.0 v2018.04.0 v2018.03.0 v2018.02.0 v2018.01.0 v2017.12.0 v2017.11.0 v2017.10.0 v2017.09.0 v2017.08.0 v2017.07.1 v2017.07.0 v2017.06.2 v2017.06.1 v2017.06.0 v2017.05.4 v2017.05.3 v2017.05.2 v2017.05.1 v2017.05.0 v2017.04.0 v2017.03.0 v2017.02.0 v2017.01.0 v2016.11.0 v2016.10.0 v2016.09.0 v2016.08.0 v2016.07.0 v2016.06.0 v2016.05.0 v2016.04.0 v2016.03.0 v2016.02.0 v2016.01.0 v2015.12.0 v2015.11.0 v2015.10.0 v2015.09.0 v2015.08.0 v2015.07.0 v2015.06.0 v2015.05.0 v2015.04.0 v2015.03.0 v2015.02.0 v2015.01.0 v2014.12.0 v2014.11.0 v2014.10.0 v2014.09.0 v2014.08.0 v2014.07.0 v2014.06.0 v2014.05.0 v2014.04.0 v2014.03.0 v2014.02.0 v2014.01.0 v2013.12.0 v2013.11.0 v2013.10.1 v2013.10.0 v2013.09.0 v2013.08.1 v2013.08.0 v2013.07.0 v2013.06.1 v2013.06.0 v2013.05.1 v2013.05.0 v2013.04.0 v2013.03.0 v2013.02.0 v2013.01.0 v2012.12.1 v2012.12.0 v2012.11.0 v2012.10.0 v2012.09.0 v2012.08.0 v2012.07.0
1 parent 2c2f657 commit 023e9f01c742614cc15ce1ce7038a4e1bebf2eab
@Sascha Hauer Sascha Hauer authored on 13 Apr 2012
Showing 5 changed files
View
arch/arm/cpu/cache-armv4.S
View
arch/arm/cpu/cache-armv5.S
View
arch/arm/cpu/cache-armv6.S
View
arch/arm/cpu/cache-armv7.S
View
arch/arm/cpu/start.c