xref: /linux/arch/microblaze/include/asm/xilinx_mb_manager.h (revision a5e3aaa654c15760afdfb85d0b6fd825ce068efc)
1*a5e3aaa6SAppana Durga Kedareswara rao /* SPDX-License-Identifier: GPL-2.0 */
2*a5e3aaa6SAppana Durga Kedareswara rao /*
3*a5e3aaa6SAppana Durga Kedareswara rao  * Copyright (C) 2022 Xilinx, Inc.
4*a5e3aaa6SAppana Durga Kedareswara rao  */
5*a5e3aaa6SAppana Durga Kedareswara rao #ifndef _XILINX_MB_MANAGER_H
6*a5e3aaa6SAppana Durga Kedareswara rao #define _XILINX_MB_MANAGER_H
7*a5e3aaa6SAppana Durga Kedareswara rao 
8*a5e3aaa6SAppana Durga Kedareswara rao #include <linux/of_address.h>
9*a5e3aaa6SAppana Durga Kedareswara rao 
10*a5e3aaa6SAppana Durga Kedareswara rao /*
11*a5e3aaa6SAppana Durga Kedareswara rao  * When the break vector gets asserted because of error injection, the break
12*a5e3aaa6SAppana Durga Kedareswara rao  * signal must be blocked before exiting from the break handler, Below api
13*a5e3aaa6SAppana Durga Kedareswara rao  * updates the manager address and control register and error counter callback
14*a5e3aaa6SAppana Durga Kedareswara rao  * arguments, which will be used by the break handler to block the break and
15*a5e3aaa6SAppana Durga Kedareswara rao  * call the callback function.
16*a5e3aaa6SAppana Durga Kedareswara rao  */
17*a5e3aaa6SAppana Durga Kedareswara rao void xmb_manager_register(uintptr_t phys_baseaddr, u32 cr_val,
18*a5e3aaa6SAppana Durga Kedareswara rao 			  void (*callback)(void *data),
19*a5e3aaa6SAppana Durga Kedareswara rao 			  void *priv, void (*reset_callback)(void *data));
20*a5e3aaa6SAppana Durga Kedareswara rao 
21*a5e3aaa6SAppana Durga Kedareswara rao #endif /* _XILINX_MB_MANAGER_H */
22