| @@ -87,6 +87,7 @@ enum { · 86 unmodified lines |
| 87 | 87 | enum { |
| 88 | 88 | MLX5_GENERAL_OBJ_TYPES_CAP_SW_ICM = (1ULL << MLX5_OBJ_TYPE_SW_ICM), |
| 89 | 89 | MLX5_GENERAL_OBJ_TYPES_CAP_GENEVE_TLV_OPT = (1ULL << 11), |
| 90 | + MLX5_GENERAL_OBJ_TYPES_CAP_VIRTIO_NET_Q = (1ULL << 13), |
| 90 | 91 | }; |
| 91 | 92 | |
| 92 | 93 | enum { |
| @@ -374,8 +375,17 @@ struct mlx5_ifc_flow_table_fields_supported_bits { · 281 unmodified lines |
| 374 | 375 | u8 outer_esp_spi[0x1]; |
| 375 | 376 | u8 reserved_at_58[0x2]; |
| 376 | 377 | u8 bth_dst_qp[0x1]; |
| 378 | + u8 reserved_at_5b[0x5]; |
| 377 | 379 | |
| 378 | | − u8 reserved_at_5b[0x25]; |
| 380 | + u8 reserved_at_60[0x18]; |
| 381 | + u8 metadata_reg_c_7[0x1]; |
| 382 | + u8 metadata_reg_c_6[0x1]; |
| 383 | + u8 metadata_reg_c_5[0x1]; |
| 384 | + u8 metadata_reg_c_4[0x1]; |
| 385 | + u8 metadata_reg_c_3[0x1]; |
| 386 | + u8 metadata_reg_c_2[0x1]; |
| 387 | + u8 metadata_reg_c_1[0x1]; |
| 388 | + u8 metadata_reg_c_0[0x1]; |
| 379 | 389 | }; |
| 380 | 390 | |
| 381 | 391 | struct mlx5_ifc_flow_table_prop_layout_bits { |
| @@ -400,7 +410,8 @@ struct mlx5_ifc_flow_table_prop_layout_bits { · 18 unmodified lines |
| 400 | 410 | u8 reformat_l3_tunnel_to_l2[0x1]; |
| 401 | 411 | u8 reformat_l2_to_l3_tunnel[0x1]; |
| 402 | 412 | u8 reformat_and_modify_action[0x1]; |
| 403 | | − u8 reserved_at_15[0x2]; |
| 413 | + u8 ignore_flow_level[0x1]; |
| 414 | + u8 reserved_at_16[0x1]; |
| 404 | 415 | u8 table_miss_action_domain[0x1]; |
| 405 | 416 | u8 termination_table[0x1]; |
| 406 | 417 | u8 reserved_at_19[0x7]; |
| @@ -721,7 +732,9 @@ enum { · 314 unmodified lines |
| 721 | 732 | |
| 722 | 733 | struct mlx5_ifc_flow_table_eswitch_cap_bits { |
| 723 | 734 | u8 fdb_to_vport_reg_c_id[0x8]; |
| 724 | | − u8 reserved_at_8[0xf]; |
| 735 | + u8 reserved_at_8[0xd]; |
| 736 | + u8 fdb_modify_header_fwd_to_table[0x1]; |
| 737 | + u8 reserved_at_16[0x1]; |
| 725 | 738 | u8 flow_source[0x1]; |
| 726 | 739 | u8 reserved_at_18[0x2]; |
| 727 | 740 | u8 multi_fdb_encap[0x1]; |
| @@ -822,7 +835,9 @@ struct mlx5_ifc_qos_cap_bits { · 94 unmodified lines |
| 822 | 835 | struct mlx5_ifc_debug_cap_bits { |
| 823 | 836 | u8 core_dump_general[0x1]; |
| 824 | 837 | u8 core_dump_qp[0x1]; |
| 825 | | − u8 reserved_at_2[0x1e]; |
| 838 | + u8 reserved_at_2[0x7]; |
| 839 | + u8 resource_dump[0x1]; |
| 840 | + u8 reserved_at_a[0x16]; |
| 826 | 841 | |
| 827 | 842 | u8 reserved_at_20[0x2]; |
| 828 | 843 | u8 stall_detect[0x1]; |
| @@ -953,6 +968,19 @@ struct mlx5_ifc_device_event_cap_bits { · 124 unmodified lines |
| 953 | 968 | u8 user_unaffiliated_events[4][0x40]; |
| 954 | 969 | }; |
| 955 | 970 | |
| 971 | +struct mlx5_ifc_device_virtio_emulation_cap_bits { |
| 972 | + u8 reserved_at_0[0x20]; |
| 973 | + |
| 974 | + u8 reserved_at_20[0x13]; |
| 975 | + u8 log_doorbell_stride[0x5]; |
| 976 | + u8 reserved_at_38[0x3]; |
| 977 | + u8 log_doorbell_bar_size[0x5]; |
| 978 | + |
| 979 | + u8 doorbell_bar_offset[0x40]; |
| 980 | + |
| 981 | + u8 reserved_at_80[0x780]; |
| 982 | +}; |
| 983 | + |
| 956 | 984 | enum { |
| 957 | 985 | MLX5_ATOMIC_CAPS_ATOMIC_SIZE_QP_1_BYTE = 0x0, |
| 958 | 986 | MLX5_ATOMIC_CAPS_ATOMIC_SIZE_QP_2_BYTES = 0x2, |
| @@ -1753,6 +1781,132 @@ struct mlx5_ifc_resize_field_select_bits { · 794 unmodified lines |
| 1753 | 1781 | u8 resize_field_select[0x20]; |
| 1754 | 1782 | }; |
| 1755 | 1783 | |
| 1784 | +struct mlx5_ifc_resource_dump_bits { |
| 1785 | + u8 more_dump[0x1]; |
| 1786 | + u8 inline_dump[0x1]; |
| 1787 | + u8 reserved_at_2[0xa]; |
| 1788 | + u8 seq_num[0x4]; |
| 1789 | + u8 segment_type[0x10]; |
| 1790 | + |
| 1791 | + u8 reserved_at_20[0x10]; |
| 1792 | + u8 vhca_id[0x10]; |
| 1793 | + |
| 1794 | + u8 index1[0x20]; |
| 1795 | + |
| 1796 | + u8 index2[0x20]; |
| 1797 | + |
| 1798 | + u8 num_of_obj1[0x10]; |
| 1799 | + u8 num_of_obj2[0x10]; |
| 1800 | + |
| 1801 | + u8 reserved_at_a0[0x20]; |
| 1802 | + |
| 1803 | + u8 device_opaque[0x40]; |
| 1804 | + |
| 1805 | + u8 mkey[0x20]; |
| 1806 | + |
| 1807 | + u8 size[0x20]; |
| 1808 | + |
| 1809 | + u8 address[0x40]; |
| 1810 | + |
| 1811 | + u8 inline_data[52][0x20]; |
| 1812 | +}; |
| 1813 | + |
| 1814 | +struct mlx5_ifc_resource_dump_menu_record_bits { |
| 1815 | + u8 reserved_at_0[0x4]; |
| 1816 | + u8 num_of_obj2_supports_active[0x1]; |
| 1817 | + u8 num_of_obj2_supports_all[0x1]; |
| 1818 | + u8 must_have_num_of_obj2[0x1]; |
| 1819 | + u8 support_num_of_obj2[0x1]; |
| 1820 | + u8 num_of_obj1_supports_active[0x1]; |
| 1821 | + u8 num_of_obj1_supports_all[0x1]; |
| 1822 | + u8 must_have_num_of_obj1[0x1]; |
| 1823 | + u8 support_num_of_obj1[0x1]; |
| 1824 | + u8 must_have_index2[0x1]; |
| 1825 | + u8 support_index2[0x1]; |
| 1826 | + u8 must_have_index1[0x1]; |
| 1827 | + u8 support_index1[0x1]; |
| 1828 | + u8 segment_type[0x10]; |
| 1829 | + |
| 1830 | + u8 segment_name[4][0x20]; |
| 1831 | + |
| 1832 | + u8 index1_name[4][0x20]; |
| 1833 | + |
| 1834 | + u8 index2_name[4][0x20]; |
| 1835 | +}; |
| 1836 | + |
| 1837 | +struct mlx5_ifc_resource_dump_segment_header_bits { |
| 1838 | + u8 length_dw[0x10]; |
| 1839 | + u8 segment_type[0x10]; |
| 1840 | +}; |
| 1841 | + |
| 1842 | +struct mlx5_ifc_resource_dump_command_segment_bits { |
| 1843 | + struct mlx5_ifc_resource_dump_segment_header_bits segment_header; |
| 1844 | + |
| 1845 | + u8 segment_called[0x10]; |
| 1846 | + u8 vhca_id[0x10]; |
| 1847 | + |
| 1848 | + u8 index1[0x20]; |
| 1849 | + |
| 1850 | + u8 index2[0x20]; |
| 1851 | + |
| 1852 | + u8 num_of_obj1[0x10]; |
| 1853 | + u8 num_of_obj2[0x10]; |
| 1854 | +}; |
| 1855 | + |
| 1856 | +struct mlx5_ifc_resource_dump_error_segment_bits { |
| 1857 | + struct mlx5_ifc_resource_dump_segment_header_bits segment_header; |
| 1858 | + |
| 1859 | + u8 reserved_at_20[0x10]; |
| 1860 | + u8 syndrome_id[0x10]; |
| 1861 | + |
| 1862 | + u8 reserved_at_40[0x40]; |
| 1863 | + |
| 1864 | + u8 error[8][0x20]; |
| 1865 | +}; |
| 1866 | + |
| 1867 | +struct mlx5_ifc_resource_dump_info_segment_bits { |
| 1868 | + struct mlx5_ifc_resource_dump_segment_header_bits segment_header; |
| 1869 | + |
| 1870 | + u8 reserved_at_20[0x18]; |
| 1871 | + u8 dump_version[0x8]; |
| 1872 | + |
| 1873 | + u8 hw_version[0x20]; |
| 1874 | + |
| 1875 | + u8 fw_version[0x20]; |
| 1876 | +}; |
| 1877 | + |
| 1878 | +struct mlx5_ifc_resource_dump_menu_segment_bits { |
| 1879 | + struct mlx5_ifc_resource_dump_segment_header_bits segment_header; |
| 1880 | + |
| 1881 | + u8 reserved_at_20[0x10]; |
| 1882 | + u8 num_of_records[0x10]; |
| 1883 | + |
| 1884 | + struct mlx5_ifc_resource_dump_menu_record_bits record[0]; |
| 1885 | +}; |
| 1886 | + |
| 1887 | +struct mlx5_ifc_resource_dump_resource_segment_bits { |
| 1888 | + struct mlx5_ifc_resource_dump_segment_header_bits segment_header; |
| 1889 | + |
| 1890 | + u8 reserved_at_20[0x20]; |
| 1891 | + |
| 1892 | + u8 index1[0x20]; |
| 1893 | + |
| 1894 | + u8 index2[0x20]; |
| 1895 | + |
| 1896 | + u8 payload[0][0x20]; |
| 1897 | +}; |
| 1898 | + |
| 1899 | +struct mlx5_ifc_resource_dump_terminate_segment_bits { |
| 1900 | + struct mlx5_ifc_resource_dump_segment_header_bits segment_header; |
| 1901 | +}; |
| 1902 | + |
| 1903 | +struct mlx5_ifc_menu_resource_dump_response_bits { |
| 1904 | + struct mlx5_ifc_resource_dump_info_segment_bits info; |
| 1905 | + struct mlx5_ifc_resource_dump_command_segment_bits cmd; |
| 1906 | + struct mlx5_ifc_resource_dump_menu_segment_bits menu; |
| 1907 | + struct mlx5_ifc_resource_dump_terminate_segment_bits terminate; |
| 1908 | +}; |
| 1909 | + |
| 1756 | 1910 | enum { |
| 1757 | 1911 | MLX5_MODIFY_FIELD_SELECT_MODIFY_FIELD_SELECT_CQ_PERIOD = 0x1, |
| 1758 | 1912 | MLX5_MODIFY_FIELD_SELECT_MODIFY_FIELD_SELECT_CQ_MAX_COUNT = 0x2, |
| @@ -2026,7 +2180,9 @@ struct mlx5_ifc_eth_per_prio_grp_data_layout_bits { · 267 unmodified lines |
| 2026 | 2180 | |
| 2027 | 2181 | u8 rx_pause_transition_low[0x20]; |
| 2028 | 2182 | |
| 2029 | | − u8 reserved_at_3c0[0x40]; |
| 2183 | + u8 rx_discards_high[0x20]; |
| 2184 | + |
| 2185 | + u8 rx_discards_low[0x20]; |
| 2030 | 2186 | |
| 2031 | 2187 | u8 device_stall_minor_watermark_cnt_high[0x20]; |
| 2032 | 2188 | |
| @@ -2751,6 +2907,7 @@ union mlx5_ifc_hca_cap_union_bits { · 718 unmodified lines |
| 2751 | 2907 | struct mlx5_ifc_fpga_cap_bits fpga_cap; |
| 2752 | 2908 | struct mlx5_ifc_tls_cap_bits tls_cap; |
| 2753 | 2909 | struct mlx5_ifc_device_mem_cap_bits device_mem_cap; |
| 2910 | + struct mlx5_ifc_device_virtio_emulation_cap_bits virtio_emulation_cap; |
| 2754 | 2911 | u8 reserved_at_0[0x8000]; |
| 2755 | 2912 | }; |
| 2756 | 2913 | |
| @@ -3998,7 +4155,8 @@ struct mlx5_ifc_set_fte_in_bits { · 1241 unmodified lines |
| 3998 | 4155 | u8 reserved_at_a0[0x8]; |
| 3999 | 4156 | u8 table_id[0x18]; |
| 4000 | 4157 | |
| 4001 | | − u8 reserved_at_c0[0x18]; |
| 4158 | + u8 ignore_flow_level[0x1]; |
| 4159 | + u8 reserved_at_c1[0x17]; |
| 4002 | 4160 | u8 modify_enable_mask[0x8]; |
| 4003 | 4161 | |
| 4004 | 4162 | u8 reserved_at_e0[0x20]; |
| @@ -5466,15 +5624,32 @@ struct mlx5_ifc_add_action_in_bits { · 1461 unmodified lines |
| 5466 | 5624 | u8 data[0x20]; |
| 5467 | 5625 | }; |
| 5468 | 5626 | |
| 5627 | +struct mlx5_ifc_copy_action_in_bits { |
| 5628 | + u8 action_type[0x4]; |
| 5629 | + u8 src_field[0xc]; |
| 5630 | + u8 reserved_at_10[0x3]; |
| 5631 | + u8 src_offset[0x5]; |
| 5632 | + u8 reserved_at_18[0x3]; |
| 5633 | + u8 length[0x5]; |
| 5634 | + |
| 5635 | + u8 reserved_at_20[0x4]; |
| 5636 | + u8 dst_field[0xc]; |
| 5637 | + u8 reserved_at_30[0x3]; |
| 5638 | + u8 dst_offset[0x5]; |
| 5639 | + u8 reserved_at_38[0x8]; |
| 5640 | +}; |
| 5641 | + |
| 5469 | 5642 | union mlx5_ifc_set_action_in_add_action_in_auto_bits { |
| 5470 | 5643 | struct mlx5_ifc_set_action_in_bits set_action_in; |
| 5471 | 5644 | struct mlx5_ifc_add_action_in_bits add_action_in; |
| 5645 | + struct mlx5_ifc_copy_action_in_bits copy_action_in; |
| 5472 | 5646 | u8 reserved_at_0[0x40]; |
| 5473 | 5647 | }; |
| 5474 | 5648 | |
| 5475 | 5649 | enum { |
| 5476 | 5650 | MLX5_ACTION_TYPE_SET = 0x1, |
| 5477 | 5651 | MLX5_ACTION_TYPE_ADD = 0x2, |
| 5652 | + MLX5_ACTION_TYPE_COPY = 0x3, |
| 5478 | 5653 | }; |
| 5479 | 5654 | |
| 5480 | 5655 | enum { |
| @@ -5510,6 +5685,8 @@ enum { · 29 unmodified lines |
| 5510 | 5685 | MLX5_ACTION_IN_FIELD_METADATA_REG_C_3 = 0x54, |
| 5511 | 5686 | MLX5_ACTION_IN_FIELD_METADATA_REG_C_4 = 0x55, |
| 5512 | 5687 | MLX5_ACTION_IN_FIELD_METADATA_REG_C_5 = 0x56, |
| 5688 | + MLX5_ACTION_IN_FIELD_METADATA_REG_C_6 = 0x57, |
| 5689 | + MLX5_ACTION_IN_FIELD_METADATA_REG_C_7 = 0x58, |
| 5513 | 5690 | MLX5_ACTION_IN_FIELD_OUT_TCP_SEQ_NUM = 0x59, |
| 5514 | 5691 | MLX5_ACTION_IN_FIELD_OUT_TCP_ACK_NUM = 0x5B, |
| 5515 | 5692 | }; |
| @@ -8406,6 +8583,18 @@ struct mlx5_ifc_pplm_reg_bits { · 2890 unmodified lines |
| 8406 | 8583 | u8 fec_override_admin_50g[0x4]; |
| 8407 | 8584 | u8 fec_override_admin_25g[0x4]; |
| 8408 | 8585 | u8 fec_override_admin_10g_40g[0x4]; |
| 8586 | + |
| 8587 | + u8 fec_override_cap_400g_8x[0x10]; |
| 8588 | + u8 fec_override_cap_200g_4x[0x10]; |
| 8589 | + |
| 8590 | + u8 fec_override_cap_100g_2x[0x10]; |
| 8591 | + u8 fec_override_cap_50g_1x[0x10]; |
| 8592 | + |
| 8593 | + u8 fec_override_admin_400g_8x[0x10]; |
| 8594 | + u8 fec_override_admin_200g_4x[0x10]; |
| 8595 | + |
| 8596 | + u8 fec_override_admin_100g_2x[0x10]; |
| 8597 | + u8 fec_override_admin_50g_1x[0x10]; |
| 8409 | 8598 | }; |
| 8410 | 8599 | |
| 8411 | 8600 | struct mlx5_ifc_ppcnt_reg_bits { |
| @@ -8732,7 +8921,9 @@ struct mlx5_ifc_mpegc_reg_bits { · 320 unmodified lines |
| 8732 | 8921 | }; |
| 8733 | 8922 | |
| 8734 | 8923 | struct mlx5_ifc_pcam_enhanced_features_bits { |
| 8735 | | − u8 reserved_at_0[0x6d]; |
| 8924 | + u8 reserved_at_0[0x68]; |
| 8925 | + u8 fec_50G_per_lane_in_pplm[0x1]; |
| 8926 | + u8 reserved_at_69[0x4]; |
| 8736 | 8927 | u8 rx_icrc_encapsulated_counter[0x1]; |
| 8737 | 8928 | u8 reserved_at_6e[0x4]; |
| 8738 | 8929 | u8 ptys_extended_ethernet[0x1]; |
| @@ -8817,6 +9008,28 @@ struct mlx5_ifc_mcam_access_reg_bits { · 78 unmodified lines |
| 8817 | 9008 | u8 regs_31_to_0[0x20]; |
| 8818 | 9009 | }; |
| 8819 | 9010 | |
| 9011 | +struct mlx5_ifc_mcam_access_reg_bits1 { |
| 9012 | + u8 regs_127_to_96[0x20]; |
| 9013 | + |
| 9014 | + u8 regs_95_to_64[0x20]; |
| 9015 | + |
| 9016 | + u8 regs_63_to_32[0x20]; |
| 9017 | + |
| 9018 | + u8 regs_31_to_0[0x20]; |
| 9019 | +}; |
| 9020 | + |
| 9021 | +struct mlx5_ifc_mcam_access_reg_bits2 { |
| 9022 | + u8 regs_127_to_99[0x1d]; |
| 9023 | + u8 mirc[0x1]; |
| 9024 | + u8 regs_97_to_96[0x2]; |
| 9025 | + |
| 9026 | + u8 regs_95_to_64[0x20]; |
| 9027 | + |
| 9028 | + u8 regs_63_to_32[0x20]; |
| 9029 | + |
| 9030 | + u8 regs_31_to_0[0x20]; |
| 9031 | +}; |
| 9032 | + |
| 8820 | 9033 | struct mlx5_ifc_mcam_reg_bits { |
| 8821 | 9034 | u8 reserved_at_0[0x8]; |
| 8822 | 9035 | u8 feature_group[0x8]; |
| @@ -8827,6 +9040,8 @@ struct mlx5_ifc_mcam_reg_bits { · 4 unmodified lines |
| 8827 | 9040 | |
| 8828 | 9041 | union { |
| 8829 | 9042 | struct mlx5_ifc_mcam_access_reg_bits access_regs; |
| 9043 | + struct mlx5_ifc_mcam_access_reg_bits1 access_regs1; |
| 9044 | + struct mlx5_ifc_mcam_access_reg_bits2 access_regs2; |
| 8830 | 9045 | u8 reserved_at_0[0x80]; |
| 8831 | 9046 | } mng_access_reg_cap_mask; |
| 8832 | 9047 | |
| @@ -9432,6 +9647,13 @@ struct mlx5_ifc_mcda_reg_bits { · 599 unmodified lines |
| 9432 | 9647 | u8 data[0][0x20]; |
| 9433 | 9648 | }; |
| 9434 | 9649 | |
| 9650 | +struct mlx5_ifc_mirc_reg_bits { |
| 9651 | + u8 reserved_at_0[0x18]; |
| 9652 | + u8 status_code[0x8]; |
| 9653 | + |
| 9654 | + u8 reserved_at_20[0x20]; |
| 9655 | +}; |
| 9656 | + |
| 9435 | 9657 | union mlx5_ifc_ports_control_registers_document_bits { |
| 9436 | 9658 | struct mlx5_ifc_bufferx_reg_bits bufferx_reg; |
| 9437 | 9659 | struct mlx5_ifc_eth_2819_cntrs_grp_data_layout_bits eth_2819_cntrs_grp_data_layout; |
| @@ -9487,6 +9709,7 @@ union mlx5_ifc_ports_control_registers_document_bits { · 49 unmodified lines |
| 9487 | 9709 | struct mlx5_ifc_mcqi_reg_bits mcqi_reg; |
| 9488 | 9710 | struct mlx5_ifc_mcc_reg_bits mcc_reg; |
| 9489 | 9711 | struct mlx5_ifc_mcda_reg_bits mcda_reg; |
| 9712 | + struct mlx5_ifc_mirc_reg_bits mirc_reg; |
| 9490 | 9713 | u8 reserved_at_0[0x60e0]; |
| 9491 | 9714 | }; |
| 9492 | 9715 | |