mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-06-16 19:47:55 +00:00
sh: Share exception vector table for SH-3/4.
The only difference between these at the moment are the FPU exceptions, and these are hidden away under CONFIG_SH_FPU (which is only set for the SH-4 case anyways..). This consolidates the two tables, and updates SH-4 to use the updated copy. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
This commit is contained in:
parent
44530c696b
commit
00bf0610e4
3 changed files with 11 additions and 70 deletions
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* arch/sh/kernel/cpu/sh3/ex.S
|
* arch/sh/kernel/cpu/sh3/ex.S
|
||||||
*
|
*
|
||||||
* The SH-3 exception vector table.
|
* The SH-3 and SH-4 exception vector table.
|
||||||
|
|
||||||
* Copyright (C) 1999, 2000, 2002 Niibe Yutaka
|
* Copyright (C) 1999, 2000, 2002 Niibe Yutaka
|
||||||
* Copyright (C) 2003 - 2006 Paul Mundt
|
* Copyright (C) 2003 - 2006 Paul Mundt
|
||||||
|
@ -9,7 +9,6 @@
|
||||||
* This file is subject to the terms and conditions of the GNU General Public
|
* This file is subject to the terms and conditions of the GNU General Public
|
||||||
* License. See the file "COPYING" in the main directory of this archive
|
* License. See the file "COPYING" in the main directory of this archive
|
||||||
* for more details.
|
* for more details.
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
#include <linux/linkage.h>
|
#include <linux/linkage.h>
|
||||||
|
|
||||||
|
@ -36,8 +35,12 @@ ENTRY(exception_handling_table)
|
||||||
.long exception_error ! address error load
|
.long exception_error ! address error load
|
||||||
.long exception_error ! address error store /* 100 */
|
.long exception_error ! address error store /* 100 */
|
||||||
#endif
|
#endif
|
||||||
.long exception_error ! fpu_exception /* 120 */
|
#if defined(CONFIG_SH_FPU)
|
||||||
.long exception_error /* 140 */
|
.long do_fpu_error /* 120 */
|
||||||
|
#else
|
||||||
|
.long exception_error /* 120 */
|
||||||
|
#endif
|
||||||
|
.long exception_error /* 140 */
|
||||||
.long system_call ! Unconditional Trap /* 160 */
|
.long system_call ! Unconditional Trap /* 160 */
|
||||||
.long exception_error ! reserved_instruction (filled by trap_init) /* 180 */
|
.long exception_error ! reserved_instruction (filled by trap_init) /* 180 */
|
||||||
.long exception_error ! illegal_slot_instruction (filled by trap_init) /*1A0*/
|
.long exception_error ! illegal_slot_instruction (filled by trap_init) /*1A0*/
|
||||||
|
@ -55,4 +58,4 @@ ENTRY(user_break_point_trap)
|
||||||
* away offsets can be manually inserted in to their appropriate
|
* away offsets can be manually inserted in to their appropriate
|
||||||
* location via set_exception_table_{evt,vec}().
|
* location via set_exception_table_{evt,vec}().
|
||||||
*/
|
*/
|
||||||
.balign 4096,0,4096
|
.balign 4096,0,4096
|
||||||
|
|
|
@ -2,10 +2,10 @@
|
||||||
# Makefile for the Linux/SuperH SH-4 backends.
|
# Makefile for the Linux/SuperH SH-4 backends.
|
||||||
#
|
#
|
||||||
|
|
||||||
obj-y := ex.o probe.o common.o
|
obj-y := probe.o common.o
|
||||||
common-y += $(addprefix ../sh3/, entry.o)
|
common-y += $(addprefix ../sh3/, entry.o ex.o)
|
||||||
|
|
||||||
obj-$(CONFIG_SH_FPU) += fpu.o
|
obj-$(CONFIG_SH_FPU) += fpu.o
|
||||||
obj-$(CONFIG_SH_STORE_QUEUES) += sq.o
|
obj-$(CONFIG_SH_STORE_QUEUES) += sq.o
|
||||||
|
|
||||||
# CPU subtype setup
|
# CPU subtype setup
|
||||||
|
|
|
@ -1,62 +0,0 @@
|
||||||
/*
|
|
||||||
* arch/sh/kernel/cpu/sh4/ex.S
|
|
||||||
*
|
|
||||||
* The SH-4 exception vector table.
|
|
||||||
|
|
||||||
* Copyright (C) 1999, 2000, 2002 Niibe Yutaka
|
|
||||||
* Copyright (C) 2003 - 2006 Paul Mundt
|
|
||||||
*
|
|
||||||
* This file is subject to the terms and conditions of the GNU General Public
|
|
||||||
* License. See the file "COPYING" in the main directory of this archive
|
|
||||||
* for more details.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
#include <linux/linkage.h>
|
|
||||||
|
|
||||||
.align 2
|
|
||||||
.data
|
|
||||||
|
|
||||||
ENTRY(exception_handling_table)
|
|
||||||
.long exception_error /* 000 */
|
|
||||||
.long exception_error
|
|
||||||
#if defined(CONFIG_MMU)
|
|
||||||
.long tlb_miss_load /* 040 */
|
|
||||||
.long tlb_miss_store
|
|
||||||
.long initial_page_write
|
|
||||||
.long tlb_protection_violation_load
|
|
||||||
.long tlb_protection_violation_store
|
|
||||||
.long address_error_load
|
|
||||||
.long address_error_store /* 100 */
|
|
||||||
#else
|
|
||||||
.long exception_error ! tlb miss load /* 040 */
|
|
||||||
.long exception_error ! tlb miss store
|
|
||||||
.long exception_error ! initial page write
|
|
||||||
.long exception_error ! tlb prot violation load
|
|
||||||
.long exception_error ! tlb prot violation store
|
|
||||||
.long exception_error ! address error load
|
|
||||||
.long exception_error ! address error store /* 100 */
|
|
||||||
#endif
|
|
||||||
#if defined(CONFIG_SH_FPU)
|
|
||||||
.long do_fpu_error /* 120 */
|
|
||||||
#else
|
|
||||||
.long exception_error /* 120 */
|
|
||||||
#endif
|
|
||||||
.long exception_error /* 140 */
|
|
||||||
.long system_call ! Unconditional Trap /* 160 */
|
|
||||||
.long exception_error ! reserved_instruction (filled by trap_init) /* 180 */
|
|
||||||
.long exception_error ! illegal_slot_instruction (filled by trap_init) /*1A0*/
|
|
||||||
ENTRY(nmi_slot)
|
|
||||||
#if defined (CONFIG_KGDB_NMI)
|
|
||||||
.long debug_enter /* 1C0 */ ! Allow trap to debugger
|
|
||||||
#else
|
|
||||||
.long exception_none /* 1C0 */ ! Not implemented yet
|
|
||||||
#endif
|
|
||||||
ENTRY(user_break_point_trap)
|
|
||||||
.long break_point_trap /* 1E0 */
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Pad the remainder of the table out, exceptions residing in far
|
|
||||||
* away offsets can be manually inserted in to their appropriate
|
|
||||||
* location via set_exception_table_{evt,vec}().
|
|
||||||
*/
|
|
||||||
.balign 4096,0,4096
|
|
Loading…
Add table
Reference in a new issue