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 ("Exception in delay slot\n");
43 puts ("Undefined cause\n");
46 printf ("Unaligned %sword access\n", ((state & 0x800) ? "" : "half"));
47 printf ("Unaligned %s access\n", ((state & 0x400) ? "store" : "load"));
48 printf ("Register R%x\n", (state & 0x3E) >> 5);
52 #ifdef CONFIG_SYS_USR_EXCEP
53 void _exception_handler (void)
55 puts ("User vector_exception\n");