Age | Commit message (Collapse) | Author |
|
Place the init sections between the text and data sections. This
means all code is grouped together at the beginning of the kernel
image, and all data is at the end of the image. This avoids problems
with the 24-bit branch instruction relocations becoming invalid with
large initramfs images.
Acked-by: Nicolas Pitre <nicolas.pitre@linaro.org>
Tested-by: Stephen Boyd <sboyd@codeaurora.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
|
|
This patch adds simple definitions of cpu_reset for ARMv6 and ARMv7
cores, which disable the MMU via the SCTLR.
Signed-off-by: Will Deacon <will.deacon@arm.com>
|
|
Multicore implementations of the Cortex-A15 require bit 6 of the
auxiliary control register to be set in order for cache and TLB
maintenance operations to be broadcast between CPUs.
This patch adds a new proc_info structure for Cortex-A15, which enables
the SMP bit during setup and includes the new HWCAP for integer
division.
Signed-off-by: Will Deacon <will.deacon@arm.com>
|
|
This patch adds processor info for ARM Ltd. Cortex A5,
which has SCU initialisation procedure identical to A9.
Signed-off-by: Pawel Moll <pawel.moll@arm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
|
|
As most of the proc info content is common across all v7
processors, this patch converts existing A9 and generic v7
descriptions into a macro (allowing extra flags in future).
Signed-off-by: Pawel Moll <pawel.moll@arm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
|
|
CNS3xxx SOCs have L310-compatible cache controller, so let's use it.
With this patch benchmarking with 'gzip' shows that performance is
doubled, and I'm still able to boot full-fledged userland over NFS
(using PCIe NIC), so the support should be pretty robust.
p.s. While CNS3xxx reports that it has PL310, it still needs to wait
on cache line operations, so we should not select 'CACHE_PL310',
which is a micro-optimization that removes these waits for v7 CPUs.
Someday we'd better rename CACHE_PL310 Kconfig option into
NO_CACHE_WAIT or something less ambiguous.
Signed-off-by: Anton Vorontsov <avorontsov@mvista.com>
|
|
Signed-off-by: Dave Martin <dave.martin@linaro.org>
|
|
Signed-off-by: Dave Martin <dave.martin@linaro.org>
|
|
Signed-off-by: Dave Martin <dave.martin@linaro.org>
|
|
Signed-off-by: Dave Martin <dave.martin@linaro.org>
|
|
Signed-off-by: Dave Martin <dave.martin@linaro.org>
|
|
Signed-off-by: Dave Martin <dave.martin@linaro.org>
|
|
Signed-off-by: Dave Martin <dave.martin@linaro.org>
|
|
Without this patch, xscale_80200_A0_A1 is missing the
icache_flush_all entry, which would result in the wrong functions
being called at run-time.
This patch re-uses xscale_icache_flush_all for
xscale_80200_A0_A1_cache_fns.
Signed-off-by: Dave Martin <dave.martin@linaro.org>
|
|
Signed-off-by: Dave Martin <dave.martin@linaro.org>
|
|
Signed-off-by: Dave Martin <dave.martin@linaro.org>
|
|
Signed-off-by: Dave Martin <dave.martin@linaro.org>
|
|
Signed-off-by: Dave Martin <dave.martin@linaro.org>
|
|
Signed-off-by: Dave Martin <dave.martin@linaro.org>
|
|
This patch also defines a suitable flush_icache_all implementation
which would otherwise be missing, resulting in a link failure.
Thanks to Nicolas Pitre for suggesting the code for this.
Signed-off-by: Dave Martin <dave.martin@linaro.org>
Signed-off-by: Nicolas Pitre <nicolas.pitre@linaro.org>
|
|
Signed-off-by: Dave Martin <dave.martin@linaro.org>
Acked-by: Nicolas Pitre <nicolas.pitre@linaro.org>
|
|
Signed-off-by: Dave Martin <dave.martin@linaro.org>
|
|
Signed-off-by: Dave Martin <dave.martin@linaro.org>
|
|
Signed-off-by: Dave Martin <dave.martin@linaro.org>
|
|
Signed-off-by: Dave Martin <dave.martin@linaro.org>
|
|
Signed-off-by: Dave Martin <dave.martin@linaro.org>
|
|
Signed-off-by: Dave Martin <dave.martin@linaro.org>
|
|
Signed-off-by: Dave Martin <dave.martin@linaro.org>
|
|
Signed-off-by: Dave Martin <dave.martin@linaro.org>
|
|
Signed-off-by: Dave Martin <dave.martin@linaro.org>
|
|
Signed-off-by: Dave Martin <dave.martin@linaro.org>
|
|
Signed-off-by: Dave Martin <dave.martin@linaro.org>
|
|
Signed-off-by: Dave Martin <dave.martin@linaro.org>
|
|
Signed-off-by: Dave Martin <dave.martin@linaro.org>
|
|
Signed-off-by: Dave Martin <dave.martin@linaro.org>
|
|
Signed-off-by: Dave Martin <dave.martin@linaro.org>
|
|
Signed-off-by: Dave Martin <dave.martin@linaro.org>
|
|
Signed-off-by: Dave Martin <dave.martin@linaro.org>
|
|
Signed-off-by: Dave Martin <dave.martin@linaro.org>
|
|
Signed-off-by: Dave Martin <dave.martin@linaro.org>
|
|
Signed-off-by: Dave Martin <dave.martin@linaro.org>
|
|
Signed-off-by: Dave Martin <dave.martin@linaro.org>
|
|
Signed-off-by: Dave Martin <dave.martin@linaro.org>
|
|
Signed-off-by: Dave Martin <dave.martin@linaro.org>
|
|
This patch adds some generic macros to reduce boilerplate when
declaring certain common structures in arch/arm/mm/*.S
Thanks to Russell King for outlining what the
define_processor_functions macro could look like.
Signed-off-by: Dave Martin <dave.martin@linaro.org>
Acked-by: Nicolas Pitre <nicolas.pitre@linaro.org>
|
|
The l2x0_disable function attempts to writel with the l2x0_lock held.
This results in deadlock when the writel contains an outer_sync call
for the platform since the l2x0_lock is already held by the disable
function. A further problem is that disabling the L2 without flushing it
first can lead to the spin_lock operation becoming visible after the
spin_unlock, causing any subsequent L2 maintenance to deadlock.
This patch replaces the writel with a call to writel_relaxed in the
disabling code and adds a flush before disabling in the control
register, preventing livelock from occurring.
Acked-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
|
|
Ensure that the meminfo array is sanity checked before we pass the
memory to memblock. This helps to ensure that memblock and meminfo
agree on the dimensions of memory, especially when more memory is
passed than the kernel can deal with.
Acked-by: Nicolas Pitre <nicolas.pitre@linaro.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
|
|
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
|
|
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
|
|
Now that we pass r2 into these helper functions as the pointer to
pt_regs, use r2 as the base of the registers on the stack rather
than using the stack pointer directly.
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
|