Path: blob/main/sys/contrib/dev/iwlwifi/cfg/9000.c
48372 views
// SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause1/*2* Copyright (C) 2015-2017 Intel Deutschland GmbH3* Copyright (C) 2018-2021, 2023, 2025 Intel Corporation4*/5#include <linux/module.h>6#include <linux/stringify.h>7#include "iwl-config.h"8#include "fw/file.h"9#include "iwl-prph.h"1011/* Highest firmware API version supported */12#define IWL9000_UCODE_API_MAX 461314/* Lowest firmware API version supported */15#define IWL9000_UCODE_API_MIN 301617/* Memory offsets and lengths */18#define IWL9000_SMEM_OFFSET 0x40000019#define IWL9000_SMEM_LEN 0x680002021#define IWL9000_FW_PRE "iwlwifi-9000-pu-b0-jf-b0"22#define IWL9260_FW_PRE "iwlwifi-9260-th-b0-jf-b0"23#define IWL9000_MODULE_FIRMWARE(api) \24IWL9000_FW_PRE "-" __stringify(api) ".ucode"25#define IWL9260_MODULE_FIRMWARE(api) \26IWL9260_FW_PRE "-" __stringify(api) ".ucode"2728static const struct iwl_family_base_params iwl9000_base = {29.eeprom_size = OTP_LOW_IMAGE_SIZE_32K,30.num_of_queues = 31,31.max_tfd_queue_size = 256,32.shadow_ram_support = true,33.led_compensation = 57,34.wd_timeout = IWL_LONG_WD_TIMEOUT,35.max_event_log_size = 512,36.shadow_reg_enable = true,37.pcie_l1_allowed = true,38.smem_offset = IWL9000_SMEM_OFFSET,39.smem_len = IWL9000_SMEM_LEN,40.features = IWL_TX_CSUM_NETIF_FLAGS | NETIF_F_RXCSUM,41.apmg_not_supported = true,42.mac_addr_from_csr = 0x380,43.min_umac_error_event_table = 0x800000,44.d3_debug_data_base_addr = 0x401000,45.d3_debug_data_length = 92 * 1024,46.nvm_hw_section_num = 10,47.mon_smem_regs = {48.write_ptr = {49.addr = LDBG_M2S_BUF_WPTR,50.mask = LDBG_M2S_BUF_WPTR_VAL_MSK,51},52.cycle_cnt = {53.addr = LDBG_M2S_BUF_WRAP_CNT,54.mask = LDBG_M2S_BUF_WRAP_CNT_VAL_MSK,55},56},57.mon_dram_regs = {58.write_ptr = {59.addr = MON_BUFF_WRPTR_VER2,60.mask = 0xffffffff,61},62.cycle_cnt = {63.addr = MON_BUFF_CYCLE_CNT_VER2,64.mask = 0xffffffff,65},66},67.ucode_api_max = IWL9000_UCODE_API_MAX,68.ucode_api_min = IWL9000_UCODE_API_MIN,69};7071const struct iwl_mac_cfg iwl9000_mac_cfg = {72.device_family = IWL_DEVICE_FAMILY_9000,73.base = &iwl9000_base,74.mq_rx_supported = true,75};7677const struct iwl_mac_cfg iwl9560_mac_cfg = {78.device_family = IWL_DEVICE_FAMILY_9000,79.base = &iwl9000_base,80.mq_rx_supported = true,81.integrated = true,82.xtal_latency = 650,83};8485const struct iwl_mac_cfg iwl9560_long_latency_mac_cfg = {86.device_family = IWL_DEVICE_FAMILY_9000,87.base = &iwl9000_base,88.mq_rx_supported = true,89.integrated = true,90.xtal_latency = 2820,91};9293const struct iwl_mac_cfg iwl9560_shared_clk_mac_cfg = {94.device_family = IWL_DEVICE_FAMILY_9000,95.base = &iwl9000_base,96.mq_rx_supported = true,97.integrated = true,98.xtal_latency = 670,99.extra_phy_cfg_flags = FW_PHY_CFG_SHARED_CLK100};101102MODULE_FIRMWARE(IWL9000_MODULE_FIRMWARE(IWL9000_UCODE_API_MAX));103MODULE_FIRMWARE(IWL9260_MODULE_FIRMWARE(IWL9000_UCODE_API_MAX));104105106