diff options
author | Russell King <rmk+kernel@arm.linux.org.uk> | 2012-05-04 07:04:26 -0400 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2012-05-05 00:50:50 -0400 |
commit | 357c9c1f07d4546bc3fbc0fd1044d96b114d14ed (patch) | |
tree | a355e9cd73ab9f7b536b4c7562d931cfb3f5a885 /arch/arm/kernel | |
parent | 69964ea4c7b68c9399f7977aa5b9aa6539a6a98a (diff) |
ARM: Remove support for ARMv3 ARM610 and ARM710 CPUs
This patch removes support for ARMv3 CPUs, which haven't worked properly
for quite some time (see the FIXME comment in arch/arm/mm/fault.c). The
only V3 parts left is the cache model for ARMv3, which is needed for some
odd reason by ARM740T CPUs, and being able to build with -march=armv3,
which is required for the RiscPC platform due to its bus structure.
Acked-by: Will Deacon <will.deacon@arm.com>
Acked-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm/kernel')
-rw-r--r-- | arch/arm/kernel/entry-armv.S | 4 | ||||
-rw-r--r-- | arch/arm/kernel/entry-common.S | 28 |
2 files changed, 0 insertions, 32 deletions
diff --git a/arch/arm/kernel/entry-armv.S b/arch/arm/kernel/entry-armv.S index 7fd3ad048da9..437f0c426517 100644 --- a/arch/arm/kernel/entry-armv.S +++ b/arch/arm/kernel/entry-armv.S | |||
@@ -556,10 +556,6 @@ call_fpe: | |||
556 | #endif | 556 | #endif |
557 | tst r0, #0x08000000 @ only CDP/CPRT/LDC/STC have bit 27 | 557 | tst r0, #0x08000000 @ only CDP/CPRT/LDC/STC have bit 27 |
558 | tstne r0, #0x04000000 @ bit 26 set on both ARM and Thumb-2 | 558 | tstne r0, #0x04000000 @ bit 26 set on both ARM and Thumb-2 |
559 | #if defined(CONFIG_CPU_ARM610) || defined(CONFIG_CPU_ARM710) | ||
560 | and r8, r0, #0x0f000000 @ mask out op-code bits | ||
561 | teqne r8, #0x0f000000 @ SWI (ARM6/7 bug)? | ||
562 | #endif | ||
563 | moveq pc, lr | 559 | moveq pc, lr |
564 | get_thread_info r10 @ get current thread | 560 | get_thread_info r10 @ get current thread |
565 | and r8, r0, #0x00000f00 @ mask out CP number | 561 | and r8, r0, #0x00000f00 @ mask out CP number |
diff --git a/arch/arm/kernel/entry-common.S b/arch/arm/kernel/entry-common.S index 54ee265dd819..7bd2d3cb8957 100644 --- a/arch/arm/kernel/entry-common.S +++ b/arch/arm/kernel/entry-common.S | |||
@@ -335,20 +335,6 @@ ENDPROC(ftrace_stub) | |||
335 | *----------------------------------------------------------------------------- | 335 | *----------------------------------------------------------------------------- |
336 | */ | 336 | */ |
337 | 337 | ||
338 | /* If we're optimising for StrongARM the resulting code won't | ||
339 | run on an ARM7 and we can save a couple of instructions. | ||
340 | --pb */ | ||
341 | #ifdef CONFIG_CPU_ARM710 | ||
342 | #define A710(code...) code | ||
343 | .Larm710bug: | ||
344 | ldmia sp, {r0 - lr}^ @ Get calling r0 - lr | ||
345 | mov r0, r0 | ||
346 | add sp, sp, #S_FRAME_SIZE | ||
347 | subs pc, lr, #4 | ||
348 | #else | ||
349 | #define A710(code...) | ||
350 | #endif | ||
351 | |||
352 | .align 5 | 338 | .align 5 |
353 | ENTRY(vector_swi) | 339 | ENTRY(vector_swi) |
354 | sub sp, sp, #S_FRAME_SIZE | 340 | sub sp, sp, #S_FRAME_SIZE |
@@ -379,9 +365,6 @@ ENTRY(vector_swi) | |||
379 | ldreq r10, [lr, #-4] @ get SWI instruction | 365 | ldreq r10, [lr, #-4] @ get SWI instruction |
380 | #else | 366 | #else |
381 | ldr r10, [lr, #-4] @ get SWI instruction | 367 | ldr r10, [lr, #-4] @ get SWI instruction |
382 | A710( and ip, r10, #0x0f000000 @ check for SWI ) | ||
383 | A710( teq ip, #0x0f000000 ) | ||
384 | A710( bne .Larm710bug ) | ||
385 | #endif | 368 | #endif |
386 | #ifdef CONFIG_CPU_ENDIAN_BE8 | 369 | #ifdef CONFIG_CPU_ENDIAN_BE8 |
387 | rev r10, r10 @ little endian instruction | 370 | rev r10, r10 @ little endian instruction |
@@ -392,26 +375,15 @@ ENTRY(vector_swi) | |||
392 | /* | 375 | /* |
393 | * Pure EABI user space always put syscall number into scno (r7). | 376 | * Pure EABI user space always put syscall number into scno (r7). |
394 | */ | 377 | */ |
395 | A710( ldr ip, [lr, #-4] @ get SWI instruction ) | ||
396 | A710( and ip, ip, #0x0f000000 @ check for SWI ) | ||
397 | A710( teq ip, #0x0f000000 ) | ||
398 | A710( bne .Larm710bug ) | ||
399 | |||
400 | #elif defined(CONFIG_ARM_THUMB) | 378 | #elif defined(CONFIG_ARM_THUMB) |
401 | |||
402 | /* Legacy ABI only, possibly thumb mode. */ | 379 | /* Legacy ABI only, possibly thumb mode. */ |
403 | tst r8, #PSR_T_BIT @ this is SPSR from save_user_regs | 380 | tst r8, #PSR_T_BIT @ this is SPSR from save_user_regs |
404 | addne scno, r7, #__NR_SYSCALL_BASE @ put OS number in | 381 | addne scno, r7, #__NR_SYSCALL_BASE @ put OS number in |
405 | ldreq scno, [lr, #-4] | 382 | ldreq scno, [lr, #-4] |
406 | 383 | ||
407 | #else | 384 | #else |
408 | |||
409 | /* Legacy ABI only. */ | 385 | /* Legacy ABI only. */ |
410 | ldr scno, [lr, #-4] @ get SWI instruction | 386 | ldr scno, [lr, #-4] @ get SWI instruction |
411 | A710( and ip, scno, #0x0f000000 @ check for SWI ) | ||
412 | A710( teq ip, #0x0f000000 ) | ||
413 | A710( bne .Larm710bug ) | ||
414 | |||
415 | #endif | 387 | #endif |
416 | 388 | ||
417 | #ifdef CONFIG_ALIGNMENT_TRAP | 389 | #ifdef CONFIG_ALIGNMENT_TRAP |