blob: 206767094e9f8895a142dda1bad2358f8588aa34 [file] [log] [blame]
Tom Rini10e47792018-05-06 17:58:06 -04001// SPDX-License-Identifier: GPL-2.0+
Chris Zankel1387dab2016-08-10 18:36:44 +03002/*
3 * (C) Copyright 2008 - 2013 Tensilica Inc.
4 * (C) Copyright 2014 - 2016 Cadence Design Systems Inc.
Chris Zankel1387dab2016-08-10 18:36:44 +03005 */
6
7/*
8 * Exception handling.
9 * We currently don't handle any exception and force a reset.
10 * (Note that alloca is a special case and handled in start.S)
11 */
12
Chris Zankel1387dab2016-08-10 18:36:44 +030013#include <command.h>
Simon Glass9b61c7c2019-11-14 12:57:41 -070014#include <irq_func.h>
Simon Glass6b9f0102020-05-10 11:40:06 -060015#include <asm/ptrace.h>
Chris Zankel1387dab2016-08-10 18:36:44 +030016#include <asm/string.h>
17#include <asm/regs.h>
Tom Rinidec7ea02024-05-20 13:35:03 -060018#include <vsprintf.h>
Chris Zankel1387dab2016-08-10 18:36:44 +030019
20typedef void (*handler_t)(struct pt_regs *);
21
22void unhandled_exception(struct pt_regs *regs)
23{
24 printf("Unhandled Exception: EXCCAUSE = %ld, EXCVADDR = %lx, pc = %lx\n",
25 regs->exccause, regs->excvaddr, regs->pc);
26 panic("*** PANIC\n");
27}
28
29handler_t exc_table[EXCCAUSE_LAST] = {
30 [0 ... EXCCAUSE_LAST-1] = unhandled_exception,
31};
32
33int interrupt_init(void)
34{
35 return 0;
36}
37
38void enable_interrupts(void)
39{
40}
41
42int disable_interrupts(void)
43{
44 return 0;
45}