.. | .. |
---|
| 1 | +/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-3-Clause) */ |
---|
1 | 2 | /* QLogic qed NIC Driver |
---|
2 | 3 | * Copyright (c) 2015-2017 QLogic Corporation |
---|
3 | | - * |
---|
4 | | - * This software is available to you under a choice of one of two |
---|
5 | | - * licenses. You may choose to be licensed under the terms of the GNU |
---|
6 | | - * General Public License (GPL) Version 2, available from the file |
---|
7 | | - * COPYING in the main directory of this source tree, or the |
---|
8 | | - * OpenIB.org BSD license below: |
---|
9 | | - * |
---|
10 | | - * Redistribution and use in source and binary forms, with or |
---|
11 | | - * without modification, are permitted provided that the following |
---|
12 | | - * conditions are met: |
---|
13 | | - * |
---|
14 | | - * - Redistributions of source code must retain the above |
---|
15 | | - * copyright notice, this list of conditions and the following |
---|
16 | | - * disclaimer. |
---|
17 | | - * |
---|
18 | | - * - Redistributions in binary form must reproduce the above |
---|
19 | | - * copyright notice, this list of conditions and the following |
---|
20 | | - * disclaimer in the documentation and /or other materials |
---|
21 | | - * provided with the distribution. |
---|
22 | | - * |
---|
23 | | - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, |
---|
24 | | - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
---|
25 | | - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND |
---|
26 | | - * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS |
---|
27 | | - * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN |
---|
28 | | - * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN |
---|
29 | | - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE |
---|
30 | | - * SOFTWARE. |
---|
| 4 | + * Copyright (c) 2019-2020 Marvell International Ltd. |
---|
31 | 5 | */ |
---|
32 | 6 | |
---|
33 | 7 | #ifndef _QED_MCP_H |
---|
.. | .. |
---|
42 | 16 | #include "qed_dev_api.h" |
---|
43 | 17 | |
---|
44 | 18 | struct qed_mcp_link_speed_params { |
---|
45 | | - bool autoneg; |
---|
46 | | - u32 advertised_speeds; /* bitmask of DRV_SPEED_CAPABILITY */ |
---|
47 | | - u32 forced_speed; /* In Mb/s */ |
---|
| 19 | + bool autoneg; |
---|
| 20 | + |
---|
| 21 | + u32 advertised_speeds; |
---|
| 22 | +#define QED_EXT_SPEED_MASK_RES 0x1 |
---|
| 23 | +#define QED_EXT_SPEED_MASK_1G 0x2 |
---|
| 24 | +#define QED_EXT_SPEED_MASK_10G 0x4 |
---|
| 25 | +#define QED_EXT_SPEED_MASK_20G 0x8 |
---|
| 26 | +#define QED_EXT_SPEED_MASK_25G 0x10 |
---|
| 27 | +#define QED_EXT_SPEED_MASK_40G 0x20 |
---|
| 28 | +#define QED_EXT_SPEED_MASK_50G_R 0x40 |
---|
| 29 | +#define QED_EXT_SPEED_MASK_50G_R2 0x80 |
---|
| 30 | +#define QED_EXT_SPEED_MASK_100G_R2 0x100 |
---|
| 31 | +#define QED_EXT_SPEED_MASK_100G_R4 0x200 |
---|
| 32 | +#define QED_EXT_SPEED_MASK_100G_P4 0x400 |
---|
| 33 | + |
---|
| 34 | + u32 forced_speed; /* In Mb/s */ |
---|
| 35 | +#define QED_EXT_SPEED_1G 0x1 |
---|
| 36 | +#define QED_EXT_SPEED_10G 0x2 |
---|
| 37 | +#define QED_EXT_SPEED_20G 0x4 |
---|
| 38 | +#define QED_EXT_SPEED_25G 0x8 |
---|
| 39 | +#define QED_EXT_SPEED_40G 0x10 |
---|
| 40 | +#define QED_EXT_SPEED_50G_R 0x20 |
---|
| 41 | +#define QED_EXT_SPEED_50G_R2 0x40 |
---|
| 42 | +#define QED_EXT_SPEED_100G_R2 0x80 |
---|
| 43 | +#define QED_EXT_SPEED_100G_R4 0x100 |
---|
| 44 | +#define QED_EXT_SPEED_100G_P4 0x200 |
---|
48 | 45 | }; |
---|
49 | 46 | |
---|
50 | 47 | struct qed_mcp_link_pause_params { |
---|
51 | | - bool autoneg; |
---|
52 | | - bool forced_rx; |
---|
53 | | - bool forced_tx; |
---|
| 48 | + bool autoneg; |
---|
| 49 | + bool forced_rx; |
---|
| 50 | + bool forced_tx; |
---|
54 | 51 | }; |
---|
55 | 52 | |
---|
56 | 53 | enum qed_mcp_eee_mode { |
---|
.. | .. |
---|
60 | 57 | }; |
---|
61 | 58 | |
---|
62 | 59 | struct qed_mcp_link_params { |
---|
63 | | - struct qed_mcp_link_speed_params speed; |
---|
64 | | - struct qed_mcp_link_pause_params pause; |
---|
65 | | - u32 loopback_mode; |
---|
66 | | - struct qed_link_eee_params eee; |
---|
| 60 | + struct qed_mcp_link_speed_params speed; |
---|
| 61 | + struct qed_mcp_link_pause_params pause; |
---|
| 62 | + u32 loopback_mode; |
---|
| 63 | + struct qed_link_eee_params eee; |
---|
| 64 | + u32 fec; |
---|
| 65 | + |
---|
| 66 | + struct qed_mcp_link_speed_params ext_speed; |
---|
| 67 | + u32 ext_fec_mode; |
---|
67 | 68 | }; |
---|
68 | 69 | |
---|
69 | 70 | struct qed_mcp_link_capabilities { |
---|
70 | | - u32 speed_capabilities; |
---|
71 | | - bool default_speed_autoneg; |
---|
72 | | - enum qed_mcp_eee_mode default_eee; |
---|
73 | | - u32 eee_lpi_timer; |
---|
74 | | - u8 eee_speed_caps; |
---|
| 71 | + u32 speed_capabilities; |
---|
| 72 | + bool default_speed_autoneg; |
---|
| 73 | + u32 fec_default; |
---|
| 74 | + enum qed_mcp_eee_mode default_eee; |
---|
| 75 | + u32 eee_lpi_timer; |
---|
| 76 | + u8 eee_speed_caps; |
---|
| 77 | + |
---|
| 78 | + u32 default_ext_speed_caps; |
---|
| 79 | + u32 default_ext_autoneg; |
---|
| 80 | + u32 default_ext_speed; |
---|
| 81 | + u32 default_ext_fec; |
---|
75 | 82 | }; |
---|
76 | 83 | |
---|
77 | 84 | struct qed_mcp_link_state { |
---|
78 | | - bool link_up; |
---|
79 | | - |
---|
80 | | - u32 min_pf_rate; |
---|
| 85 | + bool link_up; |
---|
| 86 | + u32 min_pf_rate; |
---|
81 | 87 | |
---|
82 | 88 | /* Actual link speed in Mb/s */ |
---|
83 | | - u32 line_speed; |
---|
| 89 | + u32 line_speed; |
---|
84 | 90 | |
---|
85 | 91 | /* PF max speed in Mb/s, deduced from line_speed |
---|
86 | 92 | * according to PF max bandwidth configuration. |
---|
87 | 93 | */ |
---|
88 | | - u32 speed; |
---|
89 | | - bool full_duplex; |
---|
| 94 | + u32 speed; |
---|
90 | 95 | |
---|
91 | | - bool an; |
---|
92 | | - bool an_complete; |
---|
93 | | - bool parallel_detection; |
---|
94 | | - bool pfc_enabled; |
---|
| 96 | + bool full_duplex; |
---|
| 97 | + bool an; |
---|
| 98 | + bool an_complete; |
---|
| 99 | + bool parallel_detection; |
---|
| 100 | + bool pfc_enabled; |
---|
95 | 101 | |
---|
96 | | -#define QED_LINK_PARTNER_SPEED_1G_HD BIT(0) |
---|
97 | | -#define QED_LINK_PARTNER_SPEED_1G_FD BIT(1) |
---|
98 | | -#define QED_LINK_PARTNER_SPEED_10G BIT(2) |
---|
99 | | -#define QED_LINK_PARTNER_SPEED_20G BIT(3) |
---|
100 | | -#define QED_LINK_PARTNER_SPEED_25G BIT(4) |
---|
101 | | -#define QED_LINK_PARTNER_SPEED_40G BIT(5) |
---|
102 | | -#define QED_LINK_PARTNER_SPEED_50G BIT(6) |
---|
103 | | -#define QED_LINK_PARTNER_SPEED_100G BIT(7) |
---|
104 | | - u32 partner_adv_speed; |
---|
| 102 | + u32 partner_adv_speed; |
---|
| 103 | +#define QED_LINK_PARTNER_SPEED_1G_HD BIT(0) |
---|
| 104 | +#define QED_LINK_PARTNER_SPEED_1G_FD BIT(1) |
---|
| 105 | +#define QED_LINK_PARTNER_SPEED_10G BIT(2) |
---|
| 106 | +#define QED_LINK_PARTNER_SPEED_20G BIT(3) |
---|
| 107 | +#define QED_LINK_PARTNER_SPEED_25G BIT(4) |
---|
| 108 | +#define QED_LINK_PARTNER_SPEED_40G BIT(5) |
---|
| 109 | +#define QED_LINK_PARTNER_SPEED_50G BIT(6) |
---|
| 110 | +#define QED_LINK_PARTNER_SPEED_100G BIT(7) |
---|
105 | 111 | |
---|
106 | | - bool partner_tx_flow_ctrl_en; |
---|
107 | | - bool partner_rx_flow_ctrl_en; |
---|
| 112 | + bool partner_tx_flow_ctrl_en; |
---|
| 113 | + bool partner_rx_flow_ctrl_en; |
---|
108 | 114 | |
---|
109 | | -#define QED_LINK_PARTNER_SYMMETRIC_PAUSE (1) |
---|
110 | | -#define QED_LINK_PARTNER_ASYMMETRIC_PAUSE (2) |
---|
111 | | -#define QED_LINK_PARTNER_BOTH_PAUSE (3) |
---|
112 | | - u8 partner_adv_pause; |
---|
| 115 | + u8 partner_adv_pause; |
---|
| 116 | +#define QED_LINK_PARTNER_SYMMETRIC_PAUSE 0x1 |
---|
| 117 | +#define QED_LINK_PARTNER_ASYMMETRIC_PAUSE 0x2 |
---|
| 118 | +#define QED_LINK_PARTNER_BOTH_PAUSE 0x3 |
---|
113 | 119 | |
---|
114 | | - bool sfp_tx_fault; |
---|
115 | | - bool eee_active; |
---|
116 | | - u8 eee_adv_caps; |
---|
117 | | - u8 eee_lp_adv_caps; |
---|
| 120 | + bool sfp_tx_fault; |
---|
| 121 | + bool eee_active; |
---|
| 122 | + u8 eee_adv_caps; |
---|
| 123 | + u8 eee_lp_adv_caps; |
---|
| 124 | + |
---|
| 125 | + u32 fec_active; |
---|
118 | 126 | }; |
---|
119 | 127 | |
---|
120 | 128 | struct qed_mcp_function_info { |
---|
.. | .. |
---|
251 | 259 | struct qed_mfw_tlv_iscsi iscsi; |
---|
252 | 260 | }; |
---|
253 | 261 | |
---|
| 262 | +#define QED_NVM_CFG_OPTION_ALL BIT(0) |
---|
| 263 | +#define QED_NVM_CFG_OPTION_INIT BIT(1) |
---|
| 264 | +#define QED_NVM_CFG_OPTION_COMMIT BIT(2) |
---|
| 265 | +#define QED_NVM_CFG_OPTION_FREE BIT(3) |
---|
| 266 | +#define QED_NVM_CFG_OPTION_ENTITY_SEL BIT(4) |
---|
| 267 | + |
---|
254 | 268 | /** |
---|
255 | 269 | * @brief - returns the link params of the hw function |
---|
256 | 270 | * |
---|
.. | .. |
---|
333 | 347 | struct qed_ptt *p_ptt, u32 *media_type); |
---|
334 | 348 | |
---|
335 | 349 | /** |
---|
| 350 | + * @brief Get transceiver data of the port. |
---|
| 351 | + * |
---|
| 352 | + * @param cdev - qed dev pointer |
---|
| 353 | + * @param p_ptt |
---|
| 354 | + * @param p_transceiver_state - transceiver state. |
---|
| 355 | + * @param p_transceiver_type - media type value |
---|
| 356 | + * |
---|
| 357 | + * @return int - |
---|
| 358 | + * 0 - Operation was successful. |
---|
| 359 | + * -EBUSY - Operation failed |
---|
| 360 | + */ |
---|
| 361 | +int qed_mcp_get_transceiver_data(struct qed_hwfn *p_hwfn, |
---|
| 362 | + struct qed_ptt *p_ptt, |
---|
| 363 | + u32 *p_transceiver_state, |
---|
| 364 | + u32 *p_tranceiver_type); |
---|
| 365 | + |
---|
| 366 | +/** |
---|
| 367 | + * @brief Get transceiver supported speed mask. |
---|
| 368 | + * |
---|
| 369 | + * @param cdev - qed dev pointer |
---|
| 370 | + * @param p_ptt |
---|
| 371 | + * @param p_speed_mask - Bit mask of all supported speeds. |
---|
| 372 | + * |
---|
| 373 | + * @return int - |
---|
| 374 | + * 0 - Operation was successful. |
---|
| 375 | + * -EBUSY - Operation failed |
---|
| 376 | + */ |
---|
| 377 | + |
---|
| 378 | +int qed_mcp_trans_speed_mask(struct qed_hwfn *p_hwfn, |
---|
| 379 | + struct qed_ptt *p_ptt, u32 *p_speed_mask); |
---|
| 380 | + |
---|
| 381 | +/** |
---|
| 382 | + * @brief Get board configuration. |
---|
| 383 | + * |
---|
| 384 | + * @param cdev - qed dev pointer |
---|
| 385 | + * @param p_ptt |
---|
| 386 | + * @param p_board_config - Board config. |
---|
| 387 | + * |
---|
| 388 | + * @return int - |
---|
| 389 | + * 0 - Operation was successful. |
---|
| 390 | + * -EBUSY - Operation failed |
---|
| 391 | + */ |
---|
| 392 | +int qed_mcp_get_board_config(struct qed_hwfn *p_hwfn, |
---|
| 393 | + struct qed_ptt *p_ptt, u32 *p_board_config); |
---|
| 394 | + |
---|
| 395 | +/** |
---|
336 | 396 | * @brief General function for sending commands to the MCP |
---|
337 | 397 | * mailbox. It acquire mutex lock for the entire |
---|
338 | 398 | * operation, from sending the request until the MCP |
---|
.. | .. |
---|
393 | 453 | qed_mcp_send_drv_version(struct qed_hwfn *p_hwfn, |
---|
394 | 454 | struct qed_ptt *p_ptt, |
---|
395 | 455 | struct qed_mcp_drv_version *p_ver); |
---|
| 456 | + |
---|
| 457 | +/** |
---|
| 458 | + * @brief Read the MFW process kill counter |
---|
| 459 | + * |
---|
| 460 | + * @param p_hwfn |
---|
| 461 | + * @param p_ptt |
---|
| 462 | + * |
---|
| 463 | + * @return u32 |
---|
| 464 | + */ |
---|
| 465 | +u32 qed_get_process_kill_counter(struct qed_hwfn *p_hwfn, |
---|
| 466 | + struct qed_ptt *p_ptt); |
---|
| 467 | + |
---|
| 468 | +/** |
---|
| 469 | + * @brief Trigger a recovery process |
---|
| 470 | + * |
---|
| 471 | + * @param p_hwfn |
---|
| 472 | + * @param p_ptt |
---|
| 473 | + * |
---|
| 474 | + * @return int |
---|
| 475 | + */ |
---|
| 476 | +int qed_start_recovery_process(struct qed_hwfn *p_hwfn, struct qed_ptt *p_ptt); |
---|
| 477 | + |
---|
| 478 | +/** |
---|
| 479 | + * @brief A recovery handler must call this function as its first step. |
---|
| 480 | + * It is assumed that the handler is not run from an interrupt context. |
---|
| 481 | + * |
---|
| 482 | + * @param cdev |
---|
| 483 | + * @param p_ptt |
---|
| 484 | + * |
---|
| 485 | + * @return int |
---|
| 486 | + */ |
---|
| 487 | +int qed_recovery_prolog(struct qed_dev *cdev); |
---|
396 | 488 | |
---|
397 | 489 | /** |
---|
398 | 490 | * @brief Notify MFW about the change in base device properties |
---|
.. | .. |
---|
495 | 587 | */ |
---|
496 | 588 | int qed_mcp_nvm_write(struct qed_dev *cdev, |
---|
497 | 589 | u32 cmd, u32 addr, u8 *p_buf, u32 len); |
---|
498 | | - |
---|
499 | | -/** |
---|
500 | | - * @brief Put file begin |
---|
501 | | - * |
---|
502 | | - * @param cdev |
---|
503 | | - * @param addr - nvm offset |
---|
504 | | - * |
---|
505 | | - * @return int - 0 - operation was successful. |
---|
506 | | - */ |
---|
507 | | -int qed_mcp_nvm_put_file_begin(struct qed_dev *cdev, u32 addr); |
---|
508 | 590 | |
---|
509 | 591 | /** |
---|
510 | 592 | * @brief Check latest response |
---|
.. | .. |
---|
611 | 693 | */ |
---|
612 | 694 | int qed_mfw_process_tlv_req(struct qed_hwfn *p_hwfn, struct qed_ptt *p_ptt); |
---|
613 | 695 | |
---|
| 696 | +/** |
---|
| 697 | + * @brief Send raw debug data to the MFW |
---|
| 698 | + * |
---|
| 699 | + * @param p_hwfn |
---|
| 700 | + * @param p_ptt |
---|
| 701 | + * @param p_buf - raw debug data buffer |
---|
| 702 | + * @param size - buffer size |
---|
| 703 | + */ |
---|
| 704 | +int |
---|
| 705 | +qed_mcp_send_raw_debug_data(struct qed_hwfn *p_hwfn, |
---|
| 706 | + struct qed_ptt *p_ptt, u8 *p_buf, u32 size); |
---|
| 707 | + |
---|
614 | 708 | /* Using hwfn number (and not pf_num) is required since in CMT mode, |
---|
615 | 709 | * same pf_num may be used by two different hwfn |
---|
616 | 710 | * TODO - this shouldn't really be in .h file, but until all fields |
---|
.. | .. |
---|
622 | 716 | ((p_hwfn)->abs_pf_id & 1) << 3) : \ |
---|
623 | 717 | rel_pfid) |
---|
624 | 718 | #define MCP_PF_ID(p_hwfn) MCP_PF_ID_BY_REL(p_hwfn, (p_hwfn)->rel_pf_id) |
---|
625 | | - |
---|
626 | | -#define MFW_PORT(_p_hwfn) ((_p_hwfn)->abs_pf_id % \ |
---|
627 | | - ((_p_hwfn)->cdev->num_ports_in_engine * \ |
---|
628 | | - qed_device_num_engines((_p_hwfn)->cdev))) |
---|
629 | 719 | |
---|
630 | 720 | struct qed_mcp_info { |
---|
631 | 721 | /* List for mailbox commands which were sent and wait for a response */ |
---|
.. | .. |
---|
661 | 751 | |
---|
662 | 752 | /* Capabilties negotiated with the MFW */ |
---|
663 | 753 | u32 capabilities; |
---|
| 754 | + |
---|
| 755 | + /* S/N for debug data mailbox commands */ |
---|
| 756 | + atomic_t dbg_data_seq; |
---|
664 | 757 | }; |
---|
665 | 758 | |
---|
666 | 759 | struct qed_mcp_mb_params { |
---|
.. | .. |
---|
687 | 780 | #define QED_DRV_TLV_FLAGS_CHANGED 0x01 |
---|
688 | 781 | u8 tlv_flags; |
---|
689 | 782 | }; |
---|
| 783 | + |
---|
| 784 | +/** |
---|
| 785 | + * qed_mcp_is_ext_speed_supported() - Check if management firmware supports |
---|
| 786 | + * extended speeds. |
---|
| 787 | + * @p_hwfn: HW device data. |
---|
| 788 | + * |
---|
| 789 | + * Return: true if supported, false otherwise. |
---|
| 790 | + */ |
---|
| 791 | +static inline bool |
---|
| 792 | +qed_mcp_is_ext_speed_supported(const struct qed_hwfn *p_hwfn) |
---|
| 793 | +{ |
---|
| 794 | + return !!(p_hwfn->mcp_info->capabilities & |
---|
| 795 | + FW_MB_PARAM_FEATURE_SUPPORT_EXT_SPEED_FEC_CONTROL); |
---|
| 796 | +} |
---|
690 | 797 | |
---|
691 | 798 | /** |
---|
692 | 799 | * @brief Initialize the interface with the MCP |
---|
.. | .. |
---|
763 | 870 | int qed_mcp_load_req(struct qed_hwfn *p_hwfn, |
---|
764 | 871 | struct qed_ptt *p_ptt, |
---|
765 | 872 | struct qed_load_req_params *p_params); |
---|
| 873 | + |
---|
| 874 | +/** |
---|
| 875 | + * @brief Sends a LOAD_DONE message to the MFW |
---|
| 876 | + * |
---|
| 877 | + * @param p_hwfn |
---|
| 878 | + * @param p_ptt |
---|
| 879 | + * |
---|
| 880 | + * @return int - 0 - Operation was successful. |
---|
| 881 | + */ |
---|
| 882 | +int qed_mcp_load_done(struct qed_hwfn *p_hwfn, struct qed_ptt *p_ptt); |
---|
766 | 883 | |
---|
767 | 884 | /** |
---|
768 | 885 | * @brief Sends a UNLOAD_REQ message to the MFW |
---|
.. | .. |
---|
921 | 1038 | int qed_mcp_mask_parities(struct qed_hwfn *p_hwfn, |
---|
922 | 1039 | struct qed_ptt *p_ptt, u32 mask_parities); |
---|
923 | 1040 | |
---|
| 1041 | +/* @brief - Gets the mdump retained data from the MFW. |
---|
| 1042 | + * |
---|
| 1043 | + * @param p_hwfn |
---|
| 1044 | + * @param p_ptt |
---|
| 1045 | + * @param p_mdump_retain |
---|
| 1046 | + * |
---|
| 1047 | + * @param return 0 upon success. |
---|
| 1048 | + */ |
---|
| 1049 | +int |
---|
| 1050 | +qed_mcp_mdump_get_retain(struct qed_hwfn *p_hwfn, |
---|
| 1051 | + struct qed_ptt *p_ptt, |
---|
| 1052 | + struct mdump_retain_data_stc *p_mdump_retain); |
---|
| 1053 | + |
---|
924 | 1054 | /** |
---|
925 | 1055 | * @brief - Sets the MFW's max value for the given resource |
---|
926 | 1056 | * |
---|
.. | .. |
---|
1070 | 1200 | struct qed_resc_unlock_params *p_unlock, |
---|
1071 | 1201 | enum qed_resc_lock |
---|
1072 | 1202 | resource, bool b_is_permanent); |
---|
| 1203 | + |
---|
| 1204 | +/** |
---|
| 1205 | + * @brief - Return whether management firmware support smart AN |
---|
| 1206 | + * |
---|
| 1207 | + * @param p_hwfn |
---|
| 1208 | + * |
---|
| 1209 | + * @return bool - true if feature is supported. |
---|
| 1210 | + */ |
---|
| 1211 | +bool qed_mcp_is_smart_an_supported(struct qed_hwfn *p_hwfn); |
---|
| 1212 | + |
---|
1073 | 1213 | /** |
---|
1074 | 1214 | * @brief Learn of supported MFW features; To be done during early init |
---|
1075 | 1215 | * |
---|
.. | .. |
---|
1102 | 1242 | */ |
---|
1103 | 1243 | int qed_mcp_nvm_info_populate(struct qed_hwfn *p_hwfn); |
---|
1104 | 1244 | |
---|
| 1245 | +/** |
---|
| 1246 | + * @brief Delete nvm info shadow in the given hardware function |
---|
| 1247 | + * |
---|
| 1248 | + * @param p_hwfn |
---|
| 1249 | + */ |
---|
| 1250 | +void qed_mcp_nvm_info_free(struct qed_hwfn *p_hwfn); |
---|
| 1251 | + |
---|
| 1252 | +/** |
---|
| 1253 | + * @brief Get the engine affinity configuration. |
---|
| 1254 | + * |
---|
| 1255 | + * @param p_hwfn |
---|
| 1256 | + * @param p_ptt |
---|
| 1257 | + */ |
---|
| 1258 | +int qed_mcp_get_engine_config(struct qed_hwfn *p_hwfn, struct qed_ptt *p_ptt); |
---|
| 1259 | + |
---|
| 1260 | +/** |
---|
| 1261 | + * @brief Get the PPFID bitmap. |
---|
| 1262 | + * |
---|
| 1263 | + * @param p_hwfn |
---|
| 1264 | + * @param p_ptt |
---|
| 1265 | + */ |
---|
| 1266 | +int qed_mcp_get_ppfid_bitmap(struct qed_hwfn *p_hwfn, struct qed_ptt *p_ptt); |
---|
| 1267 | + |
---|
| 1268 | +/** |
---|
| 1269 | + * @brief Get NVM config attribute value. |
---|
| 1270 | + * |
---|
| 1271 | + * @param p_hwfn |
---|
| 1272 | + * @param p_ptt |
---|
| 1273 | + * @param option_id |
---|
| 1274 | + * @param entity_id |
---|
| 1275 | + * @param flags |
---|
| 1276 | + * @param p_buf |
---|
| 1277 | + * @param p_len |
---|
| 1278 | + */ |
---|
| 1279 | +int qed_mcp_nvm_get_cfg(struct qed_hwfn *p_hwfn, struct qed_ptt *p_ptt, |
---|
| 1280 | + u16 option_id, u8 entity_id, u16 flags, u8 *p_buf, |
---|
| 1281 | + u32 *p_len); |
---|
| 1282 | + |
---|
| 1283 | +/** |
---|
| 1284 | + * @brief Set NVM config attribute value. |
---|
| 1285 | + * |
---|
| 1286 | + * @param p_hwfn |
---|
| 1287 | + * @param p_ptt |
---|
| 1288 | + * @param option_id |
---|
| 1289 | + * @param entity_id |
---|
| 1290 | + * @param flags |
---|
| 1291 | + * @param p_buf |
---|
| 1292 | + * @param len |
---|
| 1293 | + */ |
---|
| 1294 | +int qed_mcp_nvm_set_cfg(struct qed_hwfn *p_hwfn, struct qed_ptt *p_ptt, |
---|
| 1295 | + u16 option_id, u8 entity_id, u16 flags, u8 *p_buf, |
---|
| 1296 | + u32 len); |
---|
1105 | 1297 | #endif |
---|