2 * (C) Copyright 2007 Michal Simek
4 * Michal SIMEK <monstr@monstr.eu>
6 * SPDX-License-Identifier: GPL-2.0+
12 void _hw_exception_handler (void)
16 /* loading address of exception EAR */
18 /* loading excetpion state register ESR */
20 printf ("Hardware exception at 0x%x address\n", address);
21 switch (state & 0x1f) { /* mask on exception cause */
23 puts ("Unaligned data access exception\n");
26 puts ("Illegal op-code exception\n");
29 puts ("Instruction bus error exception\n");
32 puts ("Data bus error exception\n");
35 puts ("Divide by zero exception\n");
39 puts("Priviledged or stack protection violation exception\n");
42 puts ("Exception in delay slot\n");
46 puts ("Undefined cause\n");
49 printf ("Unaligned %sword access\n", ((state & 0x800) ? "" : "half"));
50 printf ("Unaligned %s access\n", ((state & 0x400) ? "store" : "load"));
51 printf ("Register R%x\n", (state & 0x3E) >> 5);
55 #ifdef CONFIG_SYS_USR_EXCEP
56 void _exception_handler (void)
58 puts ("User vector_exception\n");