@@ -4302,3 +4302,130 @@ const struct efx_nic_type efx_hunt_a0_nic_type = {
4302
4302
.sensor_event = efx_mcdi_sensor_event ,
4303
4303
.rx_recycle_ring_size = efx_ef10_recycle_ring_size ,
4304
4304
};
4305
+
4306
+ const struct efx_nic_type efx_x4_nic_type = {
4307
+ .is_vf = false,
4308
+ .mem_bar = efx_ef10_pf_mem_bar ,
4309
+ .mem_map_size = efx_ef10_mem_map_size ,
4310
+ .probe = efx_ef10_probe_pf ,
4311
+ .remove = efx_ef10_remove ,
4312
+ .dimension_resources = efx_ef10_dimension_resources ,
4313
+ .init = efx_ef10_init_nic ,
4314
+ .fini = efx_ef10_fini_nic ,
4315
+ .map_reset_reason = efx_ef10_map_reset_reason ,
4316
+ .map_reset_flags = efx_ef10_map_reset_flags ,
4317
+ .reset = efx_ef10_reset ,
4318
+ .probe_port = efx_mcdi_port_probe ,
4319
+ .remove_port = efx_mcdi_port_remove ,
4320
+ .fini_dmaq = efx_fini_dmaq ,
4321
+ .prepare_flr = efx_ef10_prepare_flr ,
4322
+ .finish_flr = efx_port_dummy_op_void ,
4323
+ .describe_stats = efx_ef10_describe_stats ,
4324
+ .update_stats = efx_ef10_update_stats_pf ,
4325
+ .start_stats = efx_mcdi_mac_start_stats ,
4326
+ .pull_stats = efx_mcdi_mac_pull_stats ,
4327
+ .stop_stats = efx_mcdi_mac_stop_stats ,
4328
+ .push_irq_moderation = efx_ef10_push_irq_moderation ,
4329
+ .reconfigure_mac = efx_ef10_mac_reconfigure ,
4330
+ .check_mac_fault = efx_mcdi_mac_check_fault ,
4331
+ .reconfigure_port = efx_mcdi_port_reconfigure ,
4332
+ .get_wol = efx_ef10_get_wol ,
4333
+ .set_wol = efx_ef10_set_wol ,
4334
+ .resume_wol = efx_port_dummy_op_void ,
4335
+ .get_fec_stats = efx_ef10_get_fec_stats ,
4336
+ .test_chip = efx_ef10_test_chip ,
4337
+ .test_nvram = efx_mcdi_nvram_test_all ,
4338
+ .mcdi_request = efx_ef10_mcdi_request ,
4339
+ .mcdi_poll_response = efx_ef10_mcdi_poll_response ,
4340
+ .mcdi_read_response = efx_ef10_mcdi_read_response ,
4341
+ .mcdi_poll_reboot = efx_ef10_mcdi_poll_reboot ,
4342
+ .mcdi_reboot_detected = efx_ef10_mcdi_reboot_detected ,
4343
+ .irq_enable_master = efx_port_dummy_op_void ,
4344
+ .irq_test_generate = efx_ef10_irq_test_generate ,
4345
+ .irq_disable_non_ev = efx_port_dummy_op_void ,
4346
+ .irq_handle_msi = efx_ef10_msi_interrupt ,
4347
+ .tx_probe = efx_ef10_tx_probe ,
4348
+ .tx_init = efx_ef10_tx_init ,
4349
+ .tx_write = efx_ef10_tx_write ,
4350
+ .tx_limit_len = efx_ef10_tx_limit_len ,
4351
+ .tx_enqueue = __efx_enqueue_skb ,
4352
+ .rx_push_rss_config = efx_mcdi_pf_rx_push_rss_config ,
4353
+ .rx_pull_rss_config = efx_mcdi_rx_pull_rss_config ,
4354
+ .rx_push_rss_context_config = efx_mcdi_rx_push_rss_context_config ,
4355
+ .rx_pull_rss_context_config = efx_mcdi_rx_pull_rss_context_config ,
4356
+ .rx_restore_rss_contexts = efx_mcdi_rx_restore_rss_contexts ,
4357
+ .rx_probe = efx_mcdi_rx_probe ,
4358
+ .rx_init = efx_mcdi_rx_init ,
4359
+ .rx_remove = efx_mcdi_rx_remove ,
4360
+ .rx_write = efx_ef10_rx_write ,
4361
+ .rx_defer_refill = efx_ef10_rx_defer_refill ,
4362
+ .rx_packet = __efx_rx_packet ,
4363
+ .ev_probe = efx_mcdi_ev_probe ,
4364
+ .ev_init = efx_ef10_ev_init ,
4365
+ .ev_fini = efx_mcdi_ev_fini ,
4366
+ .ev_remove = efx_mcdi_ev_remove ,
4367
+ .ev_process = efx_ef10_ev_process ,
4368
+ .ev_read_ack = efx_ef10_ev_read_ack ,
4369
+ .ev_test_generate = efx_ef10_ev_test_generate ,
4370
+ .filter_table_probe = efx_ef10_filter_table_probe ,
4371
+ .filter_table_restore = efx_mcdi_filter_table_restore ,
4372
+ .filter_table_remove = efx_ef10_filter_table_remove ,
4373
+ .filter_insert = efx_mcdi_filter_insert ,
4374
+ .filter_remove_safe = efx_mcdi_filter_remove_safe ,
4375
+ .filter_get_safe = efx_mcdi_filter_get_safe ,
4376
+ .filter_clear_rx = efx_mcdi_filter_clear_rx ,
4377
+ .filter_count_rx_used = efx_mcdi_filter_count_rx_used ,
4378
+ .filter_get_rx_id_limit = efx_mcdi_filter_get_rx_id_limit ,
4379
+ .filter_get_rx_ids = efx_mcdi_filter_get_rx_ids ,
4380
+ #ifdef CONFIG_RFS_ACCEL
4381
+ .filter_rfs_expire_one = efx_mcdi_filter_rfs_expire_one ,
4382
+ #endif
4383
+ #ifdef CONFIG_SFC_MTD
4384
+ .mtd_probe = efx_ef10_mtd_probe ,
4385
+ .mtd_rename = efx_mcdi_mtd_rename ,
4386
+ .mtd_read = efx_mcdi_mtd_read ,
4387
+ .mtd_erase = efx_mcdi_mtd_erase ,
4388
+ .mtd_write = efx_mcdi_mtd_write ,
4389
+ .mtd_sync = efx_mcdi_mtd_sync ,
4390
+ #endif
4391
+ .ptp_write_host_time = efx_ef10_ptp_write_host_time ,
4392
+ .ptp_set_ts_sync_events = efx_ef10_ptp_set_ts_sync_events ,
4393
+ .ptp_set_ts_config = efx_ef10_ptp_set_ts_config ,
4394
+ .vlan_rx_add_vid = efx_ef10_vlan_rx_add_vid ,
4395
+ .vlan_rx_kill_vid = efx_ef10_vlan_rx_kill_vid ,
4396
+ .udp_tnl_push_ports = efx_ef10_udp_tnl_push_ports ,
4397
+ .udp_tnl_has_port = efx_ef10_udp_tnl_has_port ,
4398
+ #ifdef CONFIG_SFC_SRIOV
4399
+ /* currently set to the VF versions of these functions
4400
+ * because SRIOV will be reimplemented later.
4401
+ */
4402
+ .vswitching_probe = efx_ef10_vswitching_probe_vf ,
4403
+ .vswitching_restore = efx_ef10_vswitching_restore_vf ,
4404
+ .vswitching_remove = efx_ef10_vswitching_remove_vf ,
4405
+ #endif
4406
+ .get_mac_address = efx_ef10_get_mac_address_pf ,
4407
+ .set_mac_address = efx_ef10_set_mac_address ,
4408
+ .tso_versions = efx_ef10_tso_versions ,
4409
+
4410
+ .get_phys_port_id = efx_ef10_get_phys_port_id ,
4411
+ .revision = EFX_REV_X4 ,
4412
+ .max_dma_mask = DMA_BIT_MASK (ESF_DZ_TX_KER_BUF_ADDR_WIDTH ),
4413
+ .rx_prefix_size = ES_DZ_RX_PREFIX_SIZE ,
4414
+ .rx_hash_offset = ES_DZ_RX_PREFIX_HASH_OFST ,
4415
+ .rx_ts_offset = ES_DZ_RX_PREFIX_TSTAMP_OFST ,
4416
+ .can_rx_scatter = true,
4417
+ .always_rx_scatter = true,
4418
+ .option_descriptors = true,
4419
+ .min_interrupt_mode = EFX_INT_MODE_MSIX ,
4420
+ .timer_period_max = 1 << ERF_DD_EVQ_IND_TIMER_VAL_WIDTH ,
4421
+ .offload_features = EF10_OFFLOAD_FEATURES ,
4422
+ .mcdi_max_ver = 2 ,
4423
+ .max_rx_ip_filters = EFX_MCDI_FILTER_TBL_ROWS ,
4424
+ .hwtstamp_filters = 1 << HWTSTAMP_FILTER_NONE |
4425
+ 1 << HWTSTAMP_FILTER_ALL ,
4426
+ .check_caps = ef10_check_caps ,
4427
+ .print_additional_fwver = efx_ef10_print_additional_fwver ,
4428
+ .sensor_event = efx_mcdi_sensor_event ,
4429
+ .rx_recycle_ring_size = efx_ef10_recycle_ring_size ,
4430
+ };
4431
+
0 commit comments