###############################################################################
#
# MN10300 Exception and interrupt entry points
#
# Copyright (C) 2007 Matsushita Electric Industrial Co., Ltd.
# Copyright (C) 2007 Red Hat, Inc. All Rights Reserved.
# Modified by David Howells (dhowells@redhat.com)
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public Licence
# as published by the Free Software Foundation; either version
# 2 of the Licence, or (at your option) any later version.
#
###############################################################################
#include <linux/sys.h>
#include <linux/linkage.h>
#include <asm/smp.h>
#include <asm/irqflags.h>
#include <asm/thread_info.h>
#include <asm/intctl-regs.h>
#include <asm/busctl-regs.h>
#include <asm/timer-regs.h>
#include <unit/leds.h>
#include <asm/page.h>
#include <asm/pgtable.h>
#include <asm/errno.h>
#include <asm/asm-offsets.h>
#include <asm/frame.inc>

#if defined(CONFIG_SMP) && defined(CONFIG_GDBSTUB)
#include <asm/gdb-stub.h>
#endif /* CONFIG_SMP && CONFIG_GDBSTUB */

#ifdef CONFIG_PREEMPT
#define preempt_stop		LOCAL_IRQ_DISABLE
#else
#define preempt_stop
#define resume_kernel		restore_all
#endif

	.am33_2

###############################################################################
#
# the return path for a forked child
# - on entry, D0 holds the address of the previous task to run
#
###############################################################################
ENTRY(ret_from_fork)
	call	schedule_tail[],0
	GET_THREAD_INFO a2

	# return 0 to indicate child process
	clr	d0
	mov	d0,(REG_D0,fp)
	jmp	syscall_exit

ENTRY(ret_from_kernel_thread)
	call	schedule_tail[],0
	mov	(REG_D0,fp),d0
	mov	(REG_A0,fp),a0
	calls	(a0)
	GET_THREAD_INFO a2		# A2 must be set on return from sys_exit()
	clr	d0
	mov	d0,(REG_D0,fp)
	jmp	syscall_exit

###############################################################################
#
# system call handler
#
###############################################################################
ENTRY(system_call)
	add	-4,sp
	SAVE_ALL
	mov	d0,(REG_ORIG_D0,fp)
	GET_THREAD_INFO a2
	cmp	nr_syscalls,d0
	bcc	syscall_badsys
	btst	_TIF_SYSCALL_TRACE,(TI_flags,a2)
	bne	syscall_entry_trace
syscall_call:
	add	d0,d0,a1
	add	a1,a1
	mov	(REG_A0,fp),d0
	mov	(sys_call_table,a1),a0
	calls	(a0)
	mov	d0,(REG_D0,fp)
syscall_exit:
	# make sure we don't miss an interrupt setting need_resched or
	# sigpending between sampling and the rti
	LOCAL_IRQ_DISABLE
	mov	(TI_flags,a2),d2
	btst	_TIF_ALLWORK_MASK,d2
	bne	syscall_exit_work
restore_all:
	RESTORE_ALL

###############################################################################
#
# perform work that needs to be done immediately before resumption and syscall
# tracing
#
###############################################################################
	ALIGN
syscall_exit_work:
	mov	(REG_EPSW,fp),d0
	and	EPSW_nSL,d0
	beq	resume_kernel		# returning to supervisor mode

	LOCAL_IRQ_ENABLE		# could let syscall_trace_exit() call
					# schedule() instead
	btst	_TIF_SYSCALL_TRACE,d2
	beq	work_pending
	mov	fp,d0
	call	syscall_trace_exit[],0	# do_syscall_trace(regs)
	jmp	resume_userspace

	ALIGN
work_pending:
	btst	_TIF_NEED_RESCHED,d2
	beq	work_notifysig

work_resched:
	call	schedule[],0

resume_userspace:
	# make sure we don't miss an interrupt setting need_resched or
	# sigpending between sampling and the rti
	LOCAL_IRQ_DISABLE

	# is there any work to be done other than syscall tracing?
	mov	(TI_flags,a2),d2
	btst	_TIF_WORK_MASK,d2
	beq	restore_all

	LOCAL_IRQ_ENABLE
	btst	_TIF_NEED_RESCHED,d2
	bne	work_resched

	# deal with pending signals and notify-resume requests
work_notifysig:
	mov	fp,d0
	mov	d2,d1
	call	do_notify_resume[],0
	jmp	resume_userspace

	# perform syscall entry tracing
syscall_entry_trace:
	mov	-ENOSYS,d0
	mov	d0,(REG_D0,fp)
	mov	fp,d0
	call	syscall_trace_entry[],0	# returns the syscall number to actually use
	mov	(REG_D1,fp),d1
	cmp	nr_syscalls,d0
	bcs	syscall_call
	jmp	syscall_exit

syscall_badsys:
	mov	-ENOSYS,d0
	mov	d0,(REG_D0,fp)
	jmp	resume_userspace

	# userspace resumption stub bypassing syscall exit tracing
	.globl	ret_from_exception, ret_from_intr
	ALIGN
ret_from_exception:
	preempt_stop
ret_from_intr:
	GET_THREAD_INFO a2
	mov	(REG_EPSW,fp),d0	# need to deliver signals before
					# returning to userspace
	and	EPSW_nSL,d0
	bne	resume_userspace	# returning to userspace

#ifdef CONFIG_PREEMPT
resume_kernel:
	LOCAL_IRQ_DISABLE
	mov	(TI_preempt_count,a2),d0	# non-zero preempt_count ?
	cmp	0,d0
	bne	restore_all

need_resched:
	btst	_TIF_NEED_RESCHED,(TI_flags,a2)
	beq	restore_all
	mov	(REG_EPSW,fp),d0
	and	EPSW_IM,d0
	cmp	EPSW_IM_7,d0		# interrupts off (exception path) ?
	bne	restore_all
	call	preempt_schedule_irq[],0
	jmp	need_resched
#else
	jmp	resume_kernel
#endif


###############################################################################
#
# IRQ handler entry point
# - intended to be entered at multiple priorities
#
###############################################################################
ENTRY(irq_handler)
	add	-4,sp
	SAVE_ALL

	# it's not a syscall
	mov	0xffffffff,d0
	mov	d0,(REG_ORIG_D0,fp)

	mov	fp,d0
	call	do_IRQ[],0			# do_IRQ(regs)

	jmp	ret_from_intr

###############################################################################
#
# Double Fault handler entry point
# - note that there will not be a stack, D0/A0 will hold EPSW/PC as were
#
###############################################################################
	.section .bss
	.balign	THREAD_SIZE
	.space	THREAD_SIZE
__df_stack:
	.previous

ENTRY(double_fault)
	mov	a0,(__df_stack-4)	# PC as was
	mov	d0,(__df_stack-8)	# EPSW as was
	mn10300_set_dbfleds		# display 'db-f' on the LEDs
	mov	0xaa55aa55,d0
	mov	d0,(__df_stack-12)	# no ORIG_D0
	mov	sp,a0			# save corrupted SP
	mov	__df_stack-12,sp	# emergency supervisor stack
	SAVE_ALL
	mov	a0,(REG_A0,fp)		# save corrupted SP as A0 (which got
					# clobbered by the CPU)
	mov	fp,d0
	calls	do_double_fault
double_fault_loop:
	bra	double_fault_loop

###############################################################################
#
# Bus Error handler entry point
# - handle external (async) bus errors separately
#
###############################################################################
ENTRY(raw_bus_error)
	add	-4,sp
	mov	d0,(sp)
#if defined(CONFIG_ERRATUM_NEED_TO_RELOAD_MMUCTR)
	mov	(MMUCTR),d0
	mov	d0,(MMUCTR)
#endif
	mov	(BCBERR),d0		# what
	btst	BCBERR_BEMR_DMA,d0	# see if it was an external bus error
	beq	__common_exception_aux	# it wasn't

	SAVE_ALL
	mov	(BCBEAR),d1		# destination of erroneous access

	mov	(REG_ORIG_D0,fp),d2
	mov	d2,(REG_D0,fp)
	mov	-1,d2
	mov	d2,(REG_ORIG_D0,fp)

	add	-4,sp
	mov	fp,(12,sp)		# frame pointer
	call	io_bus_error[],0
	jmp	restore_all

###############################################################################
#
# NMI exception entry points
#
# This is used by ordinary interrupt channels that have the GxICR_NMI bit set
# in addition to the main NMI and Watchdog channels.  SMP NMI IPIs use this
# facility.
#
###############################################################################
ENTRY(nmi_handler)
	add	-4,sp
	mov	d0,(sp)
	mov	(TBR),d0

#ifdef CONFIG_SMP
	add	-4,sp
	mov	d0,(sp)			# save d0(TBR)
	movhu	(NMIAGR),d0
	and	NMIAGR_GN,d0
	lsr	0x2,d0
	cmp	CALL_FUNCTION_NMI_IPI,d0
	bne	nmi_not_smp_callfunc	# if not call function, jump

	# function call nmi ipi
	add	4,sp			# no need to store TBR
	mov	GxICR_DETECT,d0		# clear NMI request
	movbu	d0,(GxICR(CALL_FUNCTION_NMI_IPI))
	movhu	(GxICR(CALL_FUNCTION_NMI_IPI)),d0
	and	~EPSW_NMID,epsw		# enable NMI

	mov	(sp),d0			# restore d0
	SAVE_ALL
	call	smp_nmi_call_function_interrupt[],0
	RESTORE_ALL

nmi_not_smp_callfunc:
#ifdef CONFIG_KERNEL_DEBUGGER
	cmp	DEBUGGER_NMI_IPI,d0
	bne	nmi_not_debugger	# if not kernel debugger NMI IPI, jump

	# kernel debugger NMI IPI
	add	4,sp			# no need to store TBR
	mov	GxICR_DETECT,d0		# clear NMI
	movbu	d0,(GxICR(DEBUGGER_NMI_IPI))
	movhu	(GxICR(DEBUGGER_NMI_IPI)),d0
	and	~EPSW_NMID,epsw		# enable NMI

	mov     (sp),d0
	SAVE_ALL
	mov	fp,d0			# arg 0: stacked register file
	mov	a2,d1			# arg 1: exception number
	call    debugger_nmi_interrupt[],0
	RESTORE_ALL

nmi_not_debugger:
#endif /* CONFIG_KERNEL_DEBUGGER */
	mov     (sp),d0                 # restore TBR to d0
	add     4,sp
#endif /* CONFIG_SMP */

	bra	__common_exception_nonmi

###############################################################################
#
# General exception entry point
#
###############################################################################
ENTRY(__common_exception)
	add	-4,sp
	mov	d0,(sp)
#if defined(CONFIG_ERRATUM_NEED_TO_RELOAD_MMUCTR)
	mov	(MMUCTR),d0
	mov	d0,(MMUCTR)
#endif

__common_exception_aux:
	mov	(TBR),d0
	and	~EPSW_NMID,epsw		# turn NMIs back on if not NMI
	or	EPSW_IE,epsw

__common_exception_nonmi:
	and	0x0000FFFF,d0		# turn the exception code into a vector
					# table index

	btst	0x00000007,d0
	bne	1f
	cmp	0x00000400,d0
	bge	1f

	SAVE_ALL			# build the stack frame

	mov	(REG_D0,fp),a2		# get the exception number
	mov	(REG_ORIG_D0,fp),d0
	mov	d0,(REG_D0,fp)
	mov	-1,d0
	mov	d0,(REG_ORIG_D0,fp)

#ifdef CONFIG_GDBSTUB
#ifdef CONFIG_SMP
	call	gdbstub_busy_check[],0
	and	d0,d0			# check return value
	beq	2f
#else  /* CONFIG_SMP */
	btst	0x01,(gdbstub_busy)
	beq	2f
#endif /* CONFIG_SMP */
	and	~EPSW_IE,epsw
	mov	fp,d0
	mov	a2,d1
	call	gdbstub_exception[],0	# gdbstub itself caused an exception
	bra	restore_all
2:
#endif /* CONFIG_GDBSTUB */

	mov	fp,d0			# arg 0: stacked register file
	mov	a2,d1			# arg 1: exception number
	lsr	1,a2

	mov	(exception_table,a2),a2
	calls	(a2)
	jmp	ret_from_exception

1:	pi				# BUG() equivalent

###############################################################################
#
# Exception handler functions table
#
###############################################################################
	.data
ENTRY(exception_table)
	.rept	0x400>>1
	 .long	uninitialised_exception
	.endr
	.previous

###############################################################################
#
# Change an entry in the exception table
# - D0 exception code, D1 handler
#
###############################################################################
ENTRY(set_excp_vector)
	lsr	1,d0
	add	exception_table,d0
	mov	d1,(d0)
	mov	4,d1
	ret	[],0

###############################################################################
#
# System call table
#
###############################################################################
	.data
ENTRY(sys_call_table)
	.long sys_restart_syscall	/* 0 */
	.long sys_exit
	.long sys_fork
	.long sys_read
	.long sys_write
	.long sys_open		/* 5 */
	.long sys_close
	.long sys_waitpid
	.long sys_creat
	.long sys_link
	.long sys_unlink	/* 10 */
	.long sys_execve
	.long sys_chdir
	.long sys_time
	.long sys_mknod
	.long sys_chmod		/* 15 */
	.long sys_lchown16
	.long sys_ni_syscall	/* old break syscall holder */
	.long sys_stat
	.long sys_lseek
	.long sys_getpid	/* 20 */
	.long sys_mount
	.long sys_oldumount
	.long sys_setuid16
	.long sys_getuid16
	.long sys_stime		/* 25 */
	.long sys_ptrace
	.long sys_alarm
	.long sys_fstat
	.long sys_pause
	.long sys_utime		/* 30 */
	.long sys_ni_syscall	/* old stty syscall holder */
	.long sys_ni_syscall	/* old gtty syscall holder */
	.long sys_access
	.long sys_nice
	.long sys_ni_syscall	/* 35 - old ftime syscall holder */
	.long sys_sync
	.long sys_kill
	.long sys_rename
	.long sys_mkdir
	.long sys_rmdir		/* 40 */
	.long sys_dup
	.long sys_pipe
	.long sys_times
	.long sys_ni_syscall	/* old prof syscall holder */
	.long sys_brk		/* 45 */
	.long sys_setgid16
	.long sys_getgid16
	.long sys_signal
	.long sys_geteuid16
	.long sys_getegid16	/* 50 */
	.long sys_acct
	.long sys_umount	/* recycled never used phys() */
	.long sys_ni_syscall	/* old lock syscall holder */
	.long sys_ioctl
	.long sys_fcntl		/* 55 */
	.long sys_ni_syscall	/* old mpx syscall holder */
	.long sys_setpgid
	.long sys_ni_syscall	/* old ulimit syscall holder */
	.long sys_ni_syscall	/* old sys_olduname */
	.long sys_umask		/* 60 */
	.long sys_chroot
	.long sys_ustat
	.long sys_dup2
	.long sys_getppid
	.long sys_getpgrp	/* 65 */
	.long sys_setsid
	.long sys_sigaction
	.long sys_sgetmask
	.long sys_ssetmask
	.long sys_setreuid16	/* 70 */
	.long sys_setregid16
	.long sys_sigsuspend
	.long sys_sigpending
	.long sys_sethostname
	.long sys_setrlimit	/* 75 */
	.long sys_old_getrlimit
	.long sys_getrusage
	.long sys_gettimeofday
	.long sys_settimeofday
	.long sys_getgroups16	/* 80 */
	.long sys_setgroups16
	.long sys_old_select
	.long sys_symlink
	.long sys_lstat
	.long sys_readlink	/* 85 */
	.long sys_uselib
	.long sys_swapon
	.long sys_reboot
	.long sys_old_readdir
	.long old_mmap		/* 90 */
	.long sys_munmap
	.long sys_truncate
	.long sys_ftruncate
	.long sys_fchmod
	.long sys_fchown16	/* 95 */
	.long sys_getpriority
	.long sys_setpriority
	.long sys_ni_syscall	/* old profil syscall holder */
	.long sys_statfs
	.long sys_fstatfs	/* 100 */
	.long sys_ni_syscall	/* ioperm */
	.long sys_socketcall
	.long sys_syslog
	.long sys_setitimer
	.long sys_getitimer	/* 105 */
	.long sys_newstat
	.long sys_newlstat
	.long sys_newfstat
	.long sys_ni_syscall	/* old sys_uname */
	.long sys_ni_syscall	/* 110 - iopl */
	.long sys_vhangup
	.long sys_ni_syscall	/* old "idle" system call */
	.long sys_ni_syscall	/* vm86old */
	.long sys_wait4
	.long sys_swapoff	/* 115 */
	.long sys_sysinfo
	.long sys_ipc
	.long sys_fsync
	.long sys_sigreturn
	.long sys_clone		/* 120 */
	.long sys_setdomainname
	.long sys_newuname
	.long sys_ni_syscall	/* modify_ldt */
	.long sys_adjtimex
	.long sys_mprotect	/* 125 */
	.long sys_sigprocmask
	.long sys_ni_syscall	/* old "create_module" */
	.long sys_init_module
	.long sys_delete_module
	.long sys_ni_syscall	/* 130:	old "get_kernel_syms" */
	.long sys_quotactl
	.long sys_getpgid
	.long sys_fchdir
	.long sys_bdflush
	.long sys_sysfs		/* 135 */
	.long sys_personality
	.long sys_ni_syscall	/* reserved for afs_syscall */
	.long sys_setfsuid16
	.long sys_setfsgid16
	.long sys_llseek	/* 140 */
	.long sys_getdents
	.long sys_select
	.long sys_flock
	.long sys_msync
	.long sys_readv		/* 145 */
	.long sys_writev
	.long sys_getsid
	.long sys_fdatasync
	.long sys_sysctl
	.long sys_mlock		/* 150 */
	.long sys_munlock
	.long sys_mlockall
	.long sys_munlockall
	.long sys_sched_setparam
	.long sys_sched_getparam   /* 155 */
	.long sys_sched_setscheduler
	.long sys_sched_getscheduler
	.long sys_sched_yield
	.long sys_sched_get_priority_max
	.long sys_sched_get_priority_min  /* 160 */
	.long sys_sched_rr_get_interval
	.long sys_nanosleep
	.long sys_mremap
	.long sys_setresuid16
	.long sys_getresuid16	/* 165 */
	.long sys_ni_syscall	/* vm86 */
	.long sys_ni_syscall	/* Old sys_query_module */
	.long sys_poll
	.long sys_ni_syscall	/* was nfsservctl */
	.long sys_setresgid16	/* 170 */
	.long sys_getresgid16
	.long sys_prctl
	.long sys_rt_sigreturn
	.long sys_rt_sigaction
	.long sys_rt_sigprocmask	/* 175 */
	.long sys_rt_sigpending
	.long sys_rt_sigtimedwait
	.long sys_rt_sigqueueinfo
	.long sys_rt_sigsuspend
	.long sys_pread64	/* 180 */
	.long sys_pwrite64
	.long sys_chown16
	.long sys_getcwd
	.long sys_capget
	.long sys_capset	/* 185 */
	.long sys_sigaltstack
	.long sys_sendfile
	.long sys_ni_syscall	/* reserved for streams1 */
	.long sys_ni_syscall	/* reserved for streams2 */
	.long sys_vfork		/* 190 */
	.long sys_getrlimit
	.long sys_mmap_pgoff
	.long sys_truncate64
	.long sys_ftruncate64
	.long sys_stat64	/* 195 */
	.long sys_lstat64
	.long sys_fstat64
	.long sys_lchown
	.long sys_getuid
	.long sys_getgid	/* 200 */
	.long sys_geteuid
	.long sys_getegid
	.long sys_setreuid
	.long sys_setregid
	.long sys_getgroups	/* 205 */
	.long sys_setgroups
	.long sys_fchown
	.long sys_setresuid
	.long sys_getresuid
	.long sys_setresgid	/* 210 */
	.long sys_getresgid
	.long sys_chown
	.long sys_setuid
	.long sys_setgid
	.long sys_setfsuid	/* 215 */
	.long sys_setfsgid
	.long sys_pivot_root
	.long sys_mincore
	.long sys_madvise
	.long sys_getdents64	/* 220 */
	.long sys_fcntl64
	.long sys_ni_syscall	/* reserved for TUX */
	.long sys_ni_syscall
	.long sys_gettid
	.long sys_readahead	/* 225 */
	.long sys_setxattr
	.long sys_lsetxattr
	.long sys_fsetxattr
	.long sys_getxattr
	.long sys_lgetxattr	/* 230 */
	.long sys_fgetxattr
	.long sys_listxattr
	.long sys_llistxattr
	.long sys_flistxattr
	.long sys_removexattr	/* 235 */
	.long sys_lremovexattr
	.long sys_fremovexattr
	.long sys_tkill
	.long sys_sendfile64
	.long sys_futex		/* 240 */
	.long sys_sched_setaffinity
	.long sys_sched_getaffinity
	.long sys_ni_syscall	/* sys_set_thread_area */
	.long sys_ni_syscall	/* sys_get_thread_area */
	.long sys_io_setup	/* 245 */
	.long sys_io_destroy
	.long sys_io_getevents
	.long sys_io_submit
	.long sys_io_cancel
	.long sys_fadvise64	/* 250 */
	.long sys_ni_syscall
	.long sys_exit_group
	.long sys_lookup_dcookie
	.long sys_epoll_create
	.long sys_epoll_ctl	/* 255 */
	.long sys_epoll_wait
 	.long sys_remap_file_pages
 	.long sys_set_tid_address
 	.long sys_timer_create
 	.long sys_timer_settime		/* 260 */
 	.long sys_timer_gettime
 	.long sys_timer_getoverrun
 	.long sys_timer_delete
 	.long sys_clock_settime
 	.long sys_clock_gettime		/* 265 */
 	.long sys_clock_getres
 	.long sys_clock_nanosleep
	.long sys_statfs64
	.long sys_fstatfs64
	.long sys_tgkill		/* 270 */
	.long sys_utimes
 	.long sys_fadvise64_64
	.long sys_ni_syscall	/* sys_vserver */
	.long sys_mbind
	.long sys_get_mempolicy		/* 275 */
	.long sys_set_mempolicy
	.long sys_mq_open
	.long sys_mq_unlink
	.long sys_mq_timedsend
	.long sys_mq_timedreceive	/* 280 */
	.long sys_mq_notify
	.long sys_mq_getsetattr
	.long sys_kexec_load
	.long sys_waitid
	.long sys_ni_syscall		/* 285 */ /* available */
	.long sys_add_key
	.long sys_request_key
	.long sys_keyctl
	.long sys_cacheflush
	.long sys_ioprio_set		/* 290 */
	.long sys_ioprio_get
	.long sys_inotify_init
	.long sys_inotify_add_watch
	.long sys_inotify_rm_watch
	.long sys_migrate_pages		/* 295 */
	.long sys_openat
	.long sys_mkdirat
	.long sys_mknodat
	.long sys_fchownat
	.long sys_futimesat		/* 300 */
	.long sys_fstatat64
	.long sys_unlinkat
	.long sys_renameat
	.long sys_linkat
	.long sys_symlinkat		/* 305 */
	.long sys_readlinkat
	.long sys_fchmodat
	.long sys_faccessat
	.long sys_pselect6
	.long sys_ppoll			/* 310 */
	.long sys_unshare
	.long sys_set_robust_list
	.long sys_get_robust_list
	.long sys_splice
	.long sys_sync_file_range	/* 315 */
	.long sys_tee
	.long sys_vmsplice
	.long sys_move_pages
	.long sys_getcpu
	.long sys_epoll_pwait		/* 320 */
	.long sys_utimensat
	.long sys_signalfd
	.long sys_timerfd_create
	.long sys_eventfd
	.long sys_fallocate		/* 325 */
	.long sys_timerfd_settime
	.long sys_timerfd_gettime
	.long sys_signalfd4
	.long sys_eventfd2
	.long sys_epoll_create1		/* 330 */
	.long sys_dup3
	.long sys_pipe2
	.long sys_inotify_init1
	.long sys_preadv
	.long sys_pwritev		/* 335 */
	.long sys_rt_tgsigqueueinfo
	.long sys_perf_event_open
	.long sys_recvmmsg
	.long sys_setns


nr_syscalls=(.-sys_call_table)/4
