1 /* SPDX-License-Identifier: GPL-2.0 */ 1 2 /* 3 * Preliminary support for HW exception handin 4 * 5 * Copyright (C) 2008-2009 Michal Simek <monst 6 * Copyright (C) 2008-2009 PetaLogix 7 * Copyright (C) 2005 John Williams <jwilliams 8 */ 9 10 #ifndef _ASM_MICROBLAZE_EXCEPTIONS_H 11 #define _ASM_MICROBLAZE_EXCEPTIONS_H 12 13 #ifdef __KERNEL__ 14 #ifndef __ASSEMBLY__ 15 16 /* Macros to enable and disable HW exceptions 17 /* Define MSR enable bit for HW exceptions */ 18 #define HWEX_MSR_BIT (1 << 8) 19 20 #if CONFIG_XILINX_MICROBLAZE0_USE_MSR_INSTR 21 #define __enable_hw_exceptions() 22 __asm__ __volatile__ (" msrset r0, %0 23 nop;" 24 : 25 : "i" (HWEX_MS 26 : "memory") 27 28 #define __disable_hw_exceptions() 29 __asm__ __volatile__ (" msrclr r0, %0; 30 nop;" 31 : 32 : "i" (HWEX_MS 33 : "memory") 34 #else /* !CONFIG_XILINX_MICROBLAZE0_USE_MSR_IN 35 #define __enable_hw_exceptions() 36 __asm__ __volatile__ (" 37 mfs r12, r 38 nop; 39 ori r12, r 40 mts rmsr, 41 nop;" 42 : 43 : "i" (HWEX_MS 44 : "memory", "r 45 46 #define __disable_hw_exceptions() 47 __asm__ __volatile__ (" 48 mfs r12, r 49 nop; 50 andi r12, r 51 mts rmsr, 52 nop;" 53 : 54 : "i" (HWEX_MS 55 : "memory", "r 56 #endif /* CONFIG_XILINX_MICROBLAZE0_USE_MSR_IN 57 58 asmlinkage void full_exception(struct pt_regs 59 60 61 asmlinkage void sw_exception(struct pt_regs *r 62 void bad_page_fault(struct pt_regs *regs, unsi 63 64 void die(const char *str, struct pt_regs *fp, 65 void _exception(int signr, struct pt_regs *reg 66 67 #endif /*__ASSEMBLY__ */ 68 #endif /* __KERNEL__ */ 69 #endif /* _ASM_MICROBLAZE_EXCEPTIONS_H */ 70
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.