- 01 6月, 2015 1 次提交
-
-
由 Russell King 提交于
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: NFlorian Fainelli <f.fainelli@gmail.com> Tested-by: NFlorian Fainelli <f.fainelli@gmail.com> Tested-by: NHeiko Stuebner <heiko@sntech.de> Tested-by: NDinh Nguyen <dinguyen@opensource.altera.com> Acked-by: NSebastian Hesselbarth <sebastian.hesselbarth@gmail.com> Tested-by: NSebastian Hesselbarth <sebastian.hesselbarth@gmail.com> Acked-by: NShawn Guo <shawn.guo@linaro.org> Tested-by: NThierry Reding <treding@nvidia.com> Acked-by: NThierry Reding <treding@nvidia.com> Tested-by: NGeert Uytterhoeven <geert+renesas@glider.be> Tested-by: NMichal Simek <michal.simek@xilinx.com> Tested-by: NWei Xu <xuwei5@hisilicon.com> Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
-
- 05 3月, 2014 3 次提交
-
-
由 Shawn Guo 提交于
The function v7_secondary_startup() works just fine in .text section, so there is no need to have .text.head section annotation at all. Drop it. Suggested-by: NRussell King <rmk+kernel@arm.linux.org.uk> Signed-off-by: NShawn Guo <shawn.guo@linaro.org>
-
由 Shawn Guo 提交于
With v7_cpu_resume() being moved out of headsmp.S, all the remaining code in the file is only needed by CONFIG_SMP build. So we can control the build of headsmp.o with only obj-$(CONFIG_SMP) now. Signed-off-by: NShawn Guo <shawn.guo@linaro.org>
-
由 Shawn Guo 提交于
The suspend-imx6.S is introduced recently for suspend low-level assembly code. Since function v7_cpu_resume() is only used by suspend support, it makes sense to move the function into suspend-imx6.S, and control the build of the file with CONFIG_SUSPEND option. Signed-off-by: NShawn Guo <shawn.guo@linaro.org>
-
- 12 5月, 2013 1 次提交
-
-
由 Shawn Guo 提交于
The diagnostic register holds the errata bits. Mostly bootloader does not bring up secondary cores, so that when errata bits are set in bootloader, they are set only for boot cpu. But on a SMP configuration, it should be equally done on every single core. Set up the diagnostic register for secondary cores by replicating the register from boot cpu. Signed-off-by: NShawn Guo <shawn.guo@linaro.org> Acked-by: NDirk Behme <dirk.behme@de.bosch.com>
-
- 04 5月, 2013 1 次提交
-
-
由 Arnd Bergmann 提交于
The ARM CPU suspend function has its own configuration symbol, which we need to use for conditionalizing any code calling into it as well. arch/arm/mach-imx/built-in.o: In function `v7_cpu_resume': /git/arm-soc/arch/arm/mach-imx/headsmp.S:57: undefined reference to `cpu_resume' Cc: Sascha Hauer <kernel@pengutronix.de> Signed-off-by: NArnd Bergmann <arnd@arndb.de>
-
- 04 3月, 2013 1 次提交
-
-
由 Nicolas Pitre 提交于
Building the kernel with allyesconfig fails because the i.mx early resume code located in the .data section is unable to fixup the bl relocation as the branch target gets too far away. The idea of having code in the .data section allows for easy access to nearby data using relative addressing while the MMU is off. However it is probably best to move the code back to the .text section where it belongs and fixup the data access instead. This solves the bl reloc issue (at least until this becomes a general problem) and simplifies the code as well. Signed-off-by: NNicolas Pitre <nico@linaro.org> Signed-off-by: NShawn Guo <shawn.guo@linaro.org>
-
- 12 2月, 2013 1 次提交
-
-
由 Dinh Nguyen 提交于
mach-socfpga is another platform that needs to use v7_invalidate_l1 to bringup additional cores. There was a comment that the ideal place for v7_invalidate_l1 should be in arm/mm/cache-v7.S Signed-off-by: NDinh Nguyen <dinguyen@altera.com> Acked-by: NSimon Horman <horms+renesas@verge.net.au> Acked-by: NStephen Warren <swarren@nvidia.com> Reviewed-by: NPavel Machek <pavel@denx.de> Reviewed-by: NSantosh Shilimkar <santosh.shilimkar@ti.com> Tested-by: NPavel Machek <pavel@denx.de> Tested-by: NStephen Warren <swarren@nvidia.com> Cc: Arnd Bergmann <arnd@arndb.de> Cc: Russell King <linux@arm.linux.org.uk> Cc: Olof Johansson <olof@lixom.net> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: Rob Herring <rob.herring@calxeda.com> Cc: Sascha Hauer <kernel@pengutronix.de> Cc: Magnus Damm <magnus.damm@gmail.com> Signed-off-by: NOlof Johansson <olof@lixom.net>
-
- 23 8月, 2012 1 次提交
-
-
由 Arnd Bergmann 提交于
The head-v7.S contains a call to the generic cpu_suspend function, which is only available when selected by the i.MX6 code. As pointed out by Shawn Guo, i.MX5 does not actually use any functions defined in head-v7.S. It is also needed only for the i.MX6 power management code and for the SMP code, so we can restrict building this file to situations in which at least one of those two is present. Finally, other platforms with a similar file call it headsmp.S, so we can rename it to the same for consistency. Without this patch, building imx5 standalone results in: arch/arm/mach-imx/built-in.o: In function `v7_cpu_resume': arch/arm/mach-imx/head-v7.S:104: undefined reference to `cpu_resume' Signed-off-by: NArnd Bergmann <arnd@arndb.de> Acked-by: NShawn Guo <shawn.guo@linaro.org> Cc: Eric Miao <eric.miao@linaro.org> Cc: stable@vger.kernel.org
-
- 31 12月, 2011 1 次提交
-
-
由 Shawn Guo 提交于
The recent suspend testing on !SMP build discovers that the __CPUINIT annotation for v7_invalidate_l1 should not be there, as the function is called by resume path for not only SMP but also !SMP build. Signed-off-by: NShawn Guo <shawn.guo@linaro.org>
-
- 30 12月, 2011 1 次提交
-
-
由 Shawn Guo 提交于
The recent suspend/resume and reset testing on imx6q discovers that not only D-Cache but also I-Cache has random data and validity when the core comes out of a power recycle. This patch adds I-Cache invalidation into v7_invalidate_l1 to make sure both D-Cache and I-Cache invalidated on power-up. Signed-off-by: NShawn Guo <shawn.guo@linaro.org>
-
- 26 12月, 2011 2 次提交
-
-
由 Eric Miao 提交于
Original patch from Lothar Waßmann, this patch fixes a building error when CONFIG_CACHE_L2X0 is not defined. Cc: Lothar Waßmann <lw@karo-electronics.de> Signed-off-by: NEric Miao <eric.miao@linaro.org> Signed-off-by: NShawn Guo <shawn.guo@linaro.org>
-
由 Eric Miao 提交于
Signed-off-by: NEric Miao <eric.miao@linaro.org> Signed-off-by: NShawn Guo <shawn.guo@linaro.org>
-
- 31 10月, 2011 2 次提交
-
-
由 Shawn Guo 提交于
It adds suspend/resume support for imx6q. Signed-off-by: NAnson Huang <b20788@freescale.com> Signed-off-by: NShawn Guo <shawn.guo@linaro.org>
-
由 Shawn Guo 提交于
It adds smp and cpu hotplug support for imx6q. Signed-off-by: NShawn Guo <shawn.guo@linaro.org>
-