aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mm
diff options
context:
space:
mode:
authorTzachi Perelstein <tzachi@marvell.com>2007-11-06 10:35:40 +0200
committerRussell King <rmk+kernel@arm.linux.org.uk>2008-01-26 15:03:41 +0000
commitd910a0aa21c9c6e824744d0139bbe6a9ae676e2d (patch)
treee56c1651cc9367b31c4dcda721a6a33eb0d36ae4 /arch/arm/mm
parent3ebb5a2b44b02bddd5fbf0f29d71f1df6146c2c3 (diff)
downloadkernel_samsung_smdk4412-d910a0aa21c9c6e824744d0139bbe6a9ae676e2d.zip
kernel_samsung_smdk4412-d910a0aa21c9c6e824744d0139bbe6a9ae676e2d.tar.gz
kernel_samsung_smdk4412-d910a0aa21c9c6e824744d0139bbe6a9ae676e2d.tar.bz2
[ARM] Feroceon: support old cores with ARM926 ID
This enables the usage of some old Feroceon cores for which the CPU ID is equal to the ARM926 ID. Relevant for Feroceon-1850 and old Feroceon-2850. Signed-off-by: Tzachi Perelstein <tzachi@marvell.com> Signed-off-by: Nicolas Pitre <nico@marvell.com> Acked-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm/mm')
-rw-r--r--arch/arm/mm/Kconfig9
-rw-r--r--arch/arm/mm/proc-feroceon.S27
2 files changed, 36 insertions, 0 deletions
diff --git a/arch/arm/mm/Kconfig b/arch/arm/mm/Kconfig
index 378fb74..9cdc74f 100644
--- a/arch/arm/mm/Kconfig
+++ b/arch/arm/mm/Kconfig
@@ -354,6 +354,15 @@ config CPU_FEROCEON
select CPU_COPY_V4WB if MMU
select CPU_TLB_V4WBI if MMU
+config CPU_FEROCEON_OLD_ID
+ bool "Accept early Feroceon cores with an ARM926 ID"
+ depends on CPU_FEROCEON && !CPU_ARM926T
+ default y
+ help
+ This enables the usage of some old Feroceon cores
+ for which the CPU ID is equal to the ARM926 ID.
+ Relevant for Feroceon-1850 and early Feroceon-2850.
+
# ARMv6
config CPU_V6
bool "Support ARM V6 processor"
diff --git a/arch/arm/mm/proc-feroceon.S b/arch/arm/mm/proc-feroceon.S
index 8ad341a..fa0dc7e 100644
--- a/arch/arm/mm/proc-feroceon.S
+++ b/arch/arm/mm/proc-feroceon.S
@@ -453,6 +453,33 @@ cpu_feroceon_name:
.section ".proc.info.init", #alloc, #execinstr
+#ifdef CONFIG_CPU_FEROCEON_OLD_ID
+ .type __feroceon_old_id_proc_info,#object
+__feroceon_old_id_proc_info:
+ .long 0x41069260
+ .long 0xfffffff0
+ .long PMD_TYPE_SECT | \
+ PMD_SECT_BUFFERABLE | \
+ PMD_SECT_CACHEABLE | \
+ PMD_BIT4 | \
+ PMD_SECT_AP_WRITE | \
+ PMD_SECT_AP_READ
+ .long PMD_TYPE_SECT | \
+ PMD_BIT4 | \
+ PMD_SECT_AP_WRITE | \
+ PMD_SECT_AP_READ
+ b __feroceon_setup
+ .long cpu_arch_name
+ .long cpu_elf_name
+ .long HWCAP_SWP|HWCAP_HALF|HWCAP_THUMB|HWCAP_FAST_MULT|HWCAP_EDSP
+ .long cpu_feroceon_name
+ .long feroceon_processor_functions
+ .long v4wbi_tlb_fns
+ .long v4wb_user_fns
+ .long feroceon_cache_fns
+ .size __feroceon_old_id_proc_info, . - __feroceon_old_id_proc_info
+#endif
+
.type __feroceon_proc_info,#object
__feroceon_proc_info:
.long 0x56055310