i40e_base_wrapper.h 4.15 KB
Newer Older
1
2
/* SPDX-License-Identifier: BSD-3-Clause
 * Copyright(c) 2001-2020 Intel Corporation
Antoine Kaufmann's avatar
Antoine Kaufmann committed
3
4
 */

Antoine Kaufmann's avatar
Antoine Kaufmann committed
5
6
7
#ifndef I40E_BASE_WRAPPER_H_
#define I40E_BASE_WRAPPER_H_

Antoine Kaufmann's avatar
Antoine Kaufmann committed
8
9
10
11
12
13
14
15
16
17
#include <stdint.h>

#define PF_DRIVER
#define I40E_MASK(mask, shift) (mask << shift)

typedef uint8_t u8;
typedef uint16_t u16;
typedef uint32_t u32;
typedef uint16_t __le16;
typedef uint32_t __le32;
18
typedef uint64_t __le64;
Antoine Kaufmann's avatar
Antoine Kaufmann committed
19

Antoine Kaufmann's avatar
Antoine Kaufmann committed
20
21
22
23
#include "sims/nic/i40e_bm/base/i40e_devids.h"
#include "sims/nic/i40e_bm/base/i40e_register.h"
#include "sims/nic/i40e_bm/base/i40e_adminq_cmd.h"
#include "sims/nic/i40e_bm/base/i40e_rxtxq.h"
Antoine Kaufmann's avatar
Antoine Kaufmann committed
24
25
26
27

/* from i40e_types.h */

/* Checksum and Shadow RAM pointers */
Antoine Kaufmann's avatar
Antoine Kaufmann committed
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
#define I40E_SR_NVM_CONTROL_WORD                0x00
#define I40E_SR_PCIE_ANALOG_CONFIG_PTR          0x03
#define I40E_SR_PHY_ANALOG_CONFIG_PTR           0x04
#define I40E_SR_OPTION_ROM_PTR                  0x05
#define I40E_SR_RO_PCIR_REGS_AUTO_LOAD_PTR      0x06
#define I40E_SR_AUTO_GENERATED_POINTERS_PTR     0x07
#define I40E_SR_PCIR_REGS_AUTO_LOAD_PTR         0x08
#define I40E_SR_EMP_GLOBAL_MODULE_PTR           0x09
#define I40E_SR_RO_PCIE_LCB_PTR                 0x0A
#define I40E_SR_EMP_IMAGE_PTR                   0x0B
#define I40E_SR_PE_IMAGE_PTR                    0x0C
#define I40E_SR_CSR_PROTECTED_LIST_PTR          0x0D
#define I40E_SR_MNG_CONFIG_PTR                  0x0E
#define I40E_EMP_MODULE_PTR                     0x0F
#define I40E_SR_EMP_MODULE_PTR                  0x48
#define I40E_SR_PBA_FLAGS                       0x15
#define I40E_SR_PBA_BLOCK_PTR                   0x16
#define I40E_SR_BOOT_CONFIG_PTR                 0x17
#define I40E_NVM_OEM_VER_OFF                    0x83
#define I40E_SR_NVM_DEV_STARTER_VERSION         0x18
#define I40E_SR_NVM_WAKE_ON_LAN                 0x19
#define I40E_SR_ALTERNATE_SAN_MAC_ADDRESS_PTR   0x27
#define I40E_SR_PERMANENT_SAN_MAC_ADDRESS_PTR   0x28
#define I40E_SR_NVM_MAP_VERSION                 0x29
#define I40E_SR_NVM_IMAGE_VERSION               0x2A
#define I40E_SR_NVM_STRUCTURE_VERSION           0x2B
#define I40E_SR_NVM_EETRACK_LO                  0x2D
#define I40E_SR_NVM_EETRACK_HI                  0x2E
#define I40E_SR_VPD_PTR                         0x2F
#define I40E_SR_PXE_SETUP_PTR                   0x30
#define I40E_SR_PXE_CONFIG_CUST_OPTIONS_PTR     0x31
#define I40E_SR_NVM_ORIGINAL_EETRACK_LO         0x34
#define I40E_SR_NVM_ORIGINAL_EETRACK_HI         0x35
#define I40E_SR_SW_ETHERNET_MAC_ADDRESS_PTR     0x37
#define I40E_SR_POR_REGS_AUTO_LOAD_PTR          0x38
#define I40E_SR_EMPR_REGS_AUTO_LOAD_PTR         0x3A
#define I40E_SR_GLOBR_REGS_AUTO_LOAD_PTR        0x3B
#define I40E_SR_CORER_REGS_AUTO_LOAD_PTR        0x3C
#define I40E_SR_PHY_ACTIVITY_LIST_PTR           0x3D
#define I40E_SR_PCIE_ALT_AUTO_LOAD_PTR          0x3E
#define I40E_SR_SW_CHECKSUM_WORD                0x3F
#define I40E_SR_1ST_FREE_PROVISION_AREA_PTR     0x40
#define I40E_SR_4TH_FREE_PROVISION_AREA_PTR     0x42
#define I40E_SR_3RD_FREE_PROVISION_AREA_PTR     0x44
#define I40E_SR_2ND_FREE_PROVISION_AREA_PTR     0x46
#define I40E_SR_EMP_SR_SETTINGS_PTR             0x48
#define I40E_SR_FEATURE_CONFIGURATION_PTR       0x49
#define I40E_SR_CONFIGURATION_METADATA_PTR      0x4D
#define I40E_SR_IMMEDIATE_VALUES_PTR            0x4E
Antoine Kaufmann's avatar
Antoine Kaufmann committed
77
78

/* Auxiliary field, mask and shift definition for Shadow RAM and NVM Flash */
Antoine Kaufmann's avatar
Antoine Kaufmann committed
79
80
81
82
83
84
85
86
87
#define I40E_SR_VPD_MODULE_MAX_SIZE             1024
#define I40E_SR_PCIE_ALT_MODULE_MAX_SIZE        1024
#define I40E_SR_CONTROL_WORD_1_SHIFT            0x06
#define I40E_SR_CONTROL_WORD_1_MASK     (0x03 << I40E_SR_CONTROL_WORD_1_SHIFT)
#define I40E_SR_CONTROL_WORD_1_NVM_BANK_VALID   BIT(5)
#define I40E_SR_NVM_MAP_STRUCTURE_TYPE          BIT(12)
#define I40E_PTR_TYPE                           BIT(15)
#define I40E_SR_OCP_CFG_WORD0                   0x2B
#define I40E_SR_OCP_ENABLED                     BIT(15)
Antoine Kaufmann's avatar
Antoine Kaufmann committed
88
89

/* Shadow RAM related */
Antoine Kaufmann's avatar
Antoine Kaufmann committed
90
91
92
#define I40E_SR_SECTOR_SIZE_IN_WORDS    0x800
#define I40E_SR_BUF_ALIGNMENT           4096
#define I40E_SR_WORDS_IN_1KB            512
Antoine Kaufmann's avatar
Antoine Kaufmann committed
93
94
95
/* Checksum should be calculated such that after adding all the words,
 * including the checksum word itself, the sum should be 0xBABA.
 */
Antoine Kaufmann's avatar
Antoine Kaufmann committed
96
#define I40E_SR_SW_CHECKSUM_BASE        0xBABA
Antoine Kaufmann's avatar
Antoine Kaufmann committed
97

Antoine Kaufmann's avatar
Antoine Kaufmann committed
98
#define I40E_SRRD_SRCTL_ATTEMPTS        100000
Antoine Kaufmann's avatar
Antoine Kaufmann committed
99

Antoine Kaufmann's avatar
Antoine Kaufmann committed
100
#endif  // I40E_BASE_WRAPPER_H_