1 /* SPDX-License-Identifier: GPL-2.0 */
2 /*
3  * Copyright (C) 2022 Xilinx, Inc.
4  */
5 #ifndef _XILINX_MB_MANAGER_H
6 #define _XILINX_MB_MANAGER_H
7 
8 # ifndef __ASSEMBLY__
9 
10 #include <linux/of_address.h>
11 
12 /*
13  * When the break vector gets asserted because of error injection, the break
14  * signal must be blocked before exiting from the break handler, Below api
15  * updates the manager address and control register and error counter callback
16  * arguments, which will be used by the break handler to block the break and
17  * call the callback function.
18  */
19 void xmb_manager_register(uintptr_t phys_baseaddr, u32 cr_val,
20 			  void (*callback)(void *data),
21 			  void *priv, void (*reset_callback)(void *data));
22 asmlinkage void xmb_inject_err(void);
23 
24 # endif /* __ASSEMBLY__ */
25 
26 /* Error injection offset */
27 #define XMB_INJECT_ERR_OFFSET	0x200
28 
29 #endif /* _XILINX_MB_MANAGER_H */
30