1 | /********************************************************************** |
2 | * Author: Cavium, Inc. |
3 | * |
4 | * Contact: support@cavium.com |
5 | * Please include "LiquidIO" in the subject. |
6 | * |
7 | * Copyright (c) 2003-2016 Cavium, Inc. |
8 | * |
9 | * This file is free software; you can redistribute it and/or modify |
10 | * it under the terms of the GNU General Public License, Version 2, as |
11 | * published by the Free Software Foundation. |
12 | * |
13 | * This file is distributed in the hope that it will be useful, but |
14 | * AS-IS and WITHOUT ANY WARRANTY; without even the implied warranty |
15 | * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE, TITLE, or |
16 | * NONINFRINGEMENT. See the GNU General Public License for more details. |
17 | ***********************************************************************/ |
18 | /*! \file cn23xx_device.h |
19 | * \brief Host Driver: Routines that perform CN23XX specific operations. |
20 | */ |
21 | |
22 | #ifndef __CN23XX_VF_DEVICE_H__ |
23 | #define __CN23XX_VF_DEVICE_H__ |
24 | |
25 | #include "cn23xx_vf_regs.h" |
26 | |
27 | /* Register address and configuration for a CN23XX devices. |
28 | * If device specific changes need to be made then add a struct to include |
29 | * device specific fields as shown in the commented section |
30 | */ |
31 | struct octeon_cn23xx_vf { |
32 | struct octeon_config *conf; |
33 | }; |
34 | |
35 | #define BUSY_READING_REG_VF_LOOP_COUNT 10000 |
36 | |
37 | #define CN23XX_MAILBOX_MSGPARAM_SIZE 6 |
38 | |
39 | void cn23xx_vf_ask_pf_to_do_flr(struct octeon_device *oct); |
40 | |
41 | int cn23xx_octeon_pfvf_handshake(struct octeon_device *oct); |
42 | |
43 | int cn23xx_setup_octeon_vf_device(struct octeon_device *oct); |
44 | |
45 | u32 cn23xx_vf_get_oq_ticks(struct octeon_device *oct, u32 time_intr_in_us); |
46 | |
47 | void cn23xx_dump_vf_initialized_regs(struct octeon_device *oct); |
48 | #endif |
49 | |