The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/contrib/dev/iwlwifi/cfg/8000.c

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 // SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
    2 /*
    3  * Copyright (C) 2014, 2018-2020 Intel Corporation
    4  * Copyright (C) 2014-2015 Intel Mobile Communications GmbH
    5  * Copyright (C) 2016 Intel Deutschland GmbH
    6  */
    7 #include <linux/module.h>
    8 #include <linux/stringify.h>
    9 #include "iwl-config.h"
   10 
   11 /* Highest firmware API version supported */
   12 #define IWL8000_UCODE_API_MAX   36
   13 #define IWL8265_UCODE_API_MAX   36
   14 
   15 /* Lowest firmware API version supported */
   16 #define IWL8000_UCODE_API_MIN   22
   17 #define IWL8265_UCODE_API_MIN   22
   18 
   19 /* NVM versions */
   20 #define IWL8000_NVM_VERSION             0x0a1d
   21 
   22 /* Memory offsets and lengths */
   23 #define IWL8260_DCCM_OFFSET             0x800000
   24 #define IWL8260_DCCM_LEN                0x18000
   25 #define IWL8260_DCCM2_OFFSET            0x880000
   26 #define IWL8260_DCCM2_LEN               0x8000
   27 #define IWL8260_SMEM_OFFSET             0x400000
   28 #define IWL8260_SMEM_LEN                0x68000
   29 
   30 #define IWL8000_FW_PRE "iwlwifi-8000C-"
   31 #define IWL8000_MODULE_FIRMWARE(api) \
   32         IWL8000_FW_PRE __stringify(api) ".ucode"
   33 
   34 #define IWL8265_FW_PRE "iwlwifi-8265-"
   35 #define IWL8265_MODULE_FIRMWARE(api) \
   36         IWL8265_FW_PRE __stringify(api) ".ucode"
   37 
   38 #define DEFAULT_NVM_FILE_FAMILY_8000C           "nvmData-8000C"
   39 
   40 static const struct iwl_base_params iwl8000_base_params = {
   41         .eeprom_size = OTP_LOW_IMAGE_SIZE_32K,
   42         .num_of_queues = 31,
   43         .max_tfd_queue_size = 256,
   44         .shadow_ram_support = true,
   45         .led_compensation = 57,
   46         .wd_timeout = IWL_LONG_WD_TIMEOUT,
   47         .max_event_log_size = 512,
   48         .shadow_reg_enable = true,
   49         .pcie_l1_allowed = true,
   50 };
   51 
   52 static const struct iwl_ht_params iwl8000_ht_params = {
   53         .stbc = true,
   54         .ldpc = true,
   55         .ht40_bands = BIT(NL80211_BAND_2GHZ) | BIT(NL80211_BAND_5GHZ),
   56 };
   57 
   58 static const struct iwl_tt_params iwl8000_tt_params = {
   59         .ct_kill_entry = 115,
   60         .ct_kill_exit = 93,
   61         .ct_kill_duration = 5,
   62         .dynamic_smps_entry = 111,
   63         .dynamic_smps_exit = 107,
   64         .tx_protection_entry = 112,
   65         .tx_protection_exit = 105,
   66         .tx_backoff = {
   67                 {.temperature = 110, .backoff = 200},
   68                 {.temperature = 111, .backoff = 600},
   69                 {.temperature = 112, .backoff = 1200},
   70                 {.temperature = 113, .backoff = 2000},
   71                 {.temperature = 114, .backoff = 4000},
   72         },
   73         .support_ct_kill = true,
   74         .support_dynamic_smps = true,
   75         .support_tx_protection = true,
   76         .support_tx_backoff = true,
   77 };
   78 
   79 #define IWL_DEVICE_8000_COMMON                                          \
   80         .trans.device_family = IWL_DEVICE_FAMILY_8000,                  \
   81         .trans.base_params = &iwl8000_base_params,                      \
   82         .led_mode = IWL_LED_RF_STATE,                                   \
   83         .nvm_hw_section_num = 10,                                       \
   84         .features = NETIF_F_RXCSUM,                                     \
   85         .non_shared_ant = ANT_A,                                        \
   86         .dccm_offset = IWL8260_DCCM_OFFSET,                             \
   87         .dccm_len = IWL8260_DCCM_LEN,                                   \
   88         .dccm2_offset = IWL8260_DCCM2_OFFSET,                           \
   89         .dccm2_len = IWL8260_DCCM2_LEN,                                 \
   90         .smem_offset = IWL8260_SMEM_OFFSET,                             \
   91         .smem_len = IWL8260_SMEM_LEN,                                   \
   92         .default_nvm_file_C_step = DEFAULT_NVM_FILE_FAMILY_8000C,       \
   93         .thermal_params = &iwl8000_tt_params,                           \
   94         .apmg_not_supported = true,                                     \
   95         .nvm_type = IWL_NVM_EXT,                                        \
   96         .dbgc_supported = true,                                         \
   97         .min_umac_error_event_table = 0x800000
   98 
   99 #define IWL_DEVICE_8000                                                 \
  100         IWL_DEVICE_8000_COMMON,                                         \
  101         .ucode_api_max = IWL8000_UCODE_API_MAX,                         \
  102         .ucode_api_min = IWL8000_UCODE_API_MIN                          \
  103 
  104 #define IWL_DEVICE_8260                                                 \
  105         IWL_DEVICE_8000_COMMON,                                         \
  106         .ucode_api_max = IWL8000_UCODE_API_MAX,                         \
  107         .ucode_api_min = IWL8000_UCODE_API_MIN                          \
  108 
  109 #define IWL_DEVICE_8265                                                 \
  110         IWL_DEVICE_8000_COMMON,                                         \
  111         .ucode_api_max = IWL8265_UCODE_API_MAX,                         \
  112         .ucode_api_min = IWL8265_UCODE_API_MIN                          \
  113 
  114 const struct iwl_cfg iwl8260_2n_cfg = {
  115         .name = "Intel(R) Dual Band Wireless N 8260",
  116         .fw_name_pre = IWL8000_FW_PRE,
  117         IWL_DEVICE_8260,
  118         .ht_params = &iwl8000_ht_params,
  119         .nvm_ver = IWL8000_NVM_VERSION,
  120 };
  121 
  122 const struct iwl_cfg iwl8260_2ac_cfg = {
  123         .name = "Intel(R) Dual Band Wireless AC 8260",
  124         .fw_name_pre = IWL8000_FW_PRE,
  125         IWL_DEVICE_8260,
  126         .ht_params = &iwl8000_ht_params,
  127         .nvm_ver = IWL8000_NVM_VERSION,
  128 };
  129 
  130 const struct iwl_cfg iwl8265_2ac_cfg = {
  131         .name = "Intel(R) Dual Band Wireless AC 8265",
  132         .fw_name_pre = IWL8265_FW_PRE,
  133         IWL_DEVICE_8265,
  134         .ht_params = &iwl8000_ht_params,
  135         .nvm_ver = IWL8000_NVM_VERSION,
  136         .vht_mu_mimo_supported = true,
  137 };
  138 
  139 const struct iwl_cfg iwl8275_2ac_cfg = {
  140         .name = "Intel(R) Dual Band Wireless AC 8275",
  141         .fw_name_pre = IWL8265_FW_PRE,
  142         IWL_DEVICE_8265,
  143         .ht_params = &iwl8000_ht_params,
  144         .nvm_ver = IWL8000_NVM_VERSION,
  145         .vht_mu_mimo_supported = true,
  146 };
  147 
  148 const struct iwl_cfg iwl4165_2ac_cfg = {
  149         .name = "Intel(R) Dual Band Wireless AC 4165",
  150         .fw_name_pre = IWL8000_FW_PRE,
  151         IWL_DEVICE_8000,
  152         .ht_params = &iwl8000_ht_params,
  153         .nvm_ver = IWL8000_NVM_VERSION,
  154 };
  155 
  156 MODULE_FIRMWARE(IWL8000_MODULE_FIRMWARE(IWL8000_UCODE_API_MAX));
  157 MODULE_FIRMWARE(IWL8265_MODULE_FIRMWARE(IWL8265_UCODE_API_MAX));

Cache object: 2c97d714cb4756ed342baefcb0a52a7a


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.