mempool: introduce helpers for populate and required size
[dpdk.git] / drivers / net / qede / base / ecore_hsi_init_tool.h
index d07549c..4f878d0 100644 (file)
@@ -1,9 +1,7 @@
-/*
- * Copyright (c) 2016 QLogic Corporation.
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright (c) 2016 - 2018 Cavium Inc.
  * All rights reserved.
- * www.qlogic.com
- *
- * See LICENSE.qede_pmd for copyright and licensing details.
+ * www.cavium.com
  */
 
 #ifndef __ECORE_HSI_INIT_TOOL__
 /* Max size in dwords of a zipped array */
 #define MAX_ZIPPED_SIZE                        8192
 
-enum init_modes {
-       MODE_BB_A0_DEPRECATED,
-       MODE_BB_B0,
-       MODE_K2,
-       MODE_ASIC,
-       MODE_EMUL_REDUCED,
-       MODE_EMUL_FULL,
-       MODE_FPGA,
-       MODE_CHIPSIM,
-       MODE_SF,
-       MODE_MF_SD,
-       MODE_MF_SI,
-       MODE_PORTS_PER_ENG_1,
-       MODE_PORTS_PER_ENG_2,
-       MODE_PORTS_PER_ENG_4,
-       MODE_100G,
-       MODE_E5,
-       MAX_INIT_MODES
+enum chip_ids {
+       CHIP_BB,
+       CHIP_K2,
+       MAX_CHIP_IDS
 };
 
-enum init_phases {
-       PHASE_ENGINE,
-       PHASE_PORT,
-       PHASE_PF,
-       PHASE_VF,
-       PHASE_QM_PF,
-       MAX_INIT_PHASES
-};
-
-enum init_split_types {
-       SPLIT_TYPE_NONE,
-       SPLIT_TYPE_PORT,
-       SPLIT_TYPE_PF,
-       SPLIT_TYPE_PORT_PF,
-       SPLIT_TYPE_VF,
-       MAX_INIT_SPLIT_TYPES
-};
-
-struct fw_asserts_ram_section {
-/* The offset of the section in the RAM in RAM lines (64-bit units) */
-       __le16 section_ram_line_offset;
-/* The size of the section in RAM lines (64-bit units) */
-       __le16 section_ram_line_size;
-/* The offset of the asserts list within the section in dwords */
-       u8 list_dword_offset;
-/* The size of an assert list element in dwords */
-       u8 list_element_dword_size;
-       u8 list_num_elements /* The number of elements in the asserts list */;
-/* The offset of the next list index field within the section in dwords */
-       u8 list_next_index_dword_offset;
-};
-
-
-struct fw_ver_num {
-       u8 major /* Firmware major version number */;
-       u8 minor /* Firmware minor version number */;
-       u8 rev /* Firmware revision version number */;
-/* Firmware engineering version number (for bootleg versions) */
-       u8 eng;
-};
-
-struct fw_ver_info {
-       __le16 tools_ver /* Tools version number */;
-       u8 image_id /* FW image ID (e.g. main, l2b, kuku) */;
-       u8 reserved1;
-       struct fw_ver_num num /* FW version number */;
-       __le32 timestamp /* FW Timestamp in unix time  (sec. since 1970) */;
-       __le32 reserved2;
-};
-
-struct fw_info {
-       struct fw_ver_info ver /* FW version information */;
-/* Info regarding the FW asserts section in the Storm RAM */
-       struct fw_asserts_ram_section fw_asserts_section;
-};
-
-
-struct fw_info_location {
-/* GRC address where the fw_info struct is located. */
-       __le32 grc_addr;
-/* Size of the fw_info structure (thats located at the grc_addr). */
-       __le32 size;
-};
 
 /*
  * Binary buffer header
  */
 struct bin_buffer_hdr {
 /* buffer offset in bytes from the beginning of the binary file */
-       __le32 offset;
-       __le32 length /* buffer length in bytes */;
+       u32 offset;
+       u32 length /* buffer length in bytes */;
 };
 
 
@@ -125,15 +46,29 @@ enum bin_init_buffer_type {
        BIN_BUF_INIT_VAL /* init data */,
        BIN_BUF_INIT_MODE_TREE /* init modes tree */,
        BIN_BUF_INIT_IRO /* internal RAM offsets */,
+       BIN_BUF_INIT_OVERLAYS /* FW overlays (except overlay 0) */,
        MAX_BIN_INIT_BUFFER_TYPE
 };
 
 
+/*
+ * FW overlay buffer header
+ */
+struct fw_overlay_buf_hdr {
+       u32 data;
+#define FW_OVERLAY_BUF_HDR_STORM_ID_MASK  0xFF /* Storm ID */
+#define FW_OVERLAY_BUF_HDR_STORM_ID_SHIFT 0
+/* Size of Storm FW overlay buffer in dwords */
+#define FW_OVERLAY_BUF_HDR_BUF_SIZE_MASK  0xFFFFFF
+#define FW_OVERLAY_BUF_HDR_BUF_SIZE_SHIFT 8
+};
+
+
 /*
  * init array header: raw
  */
 struct init_array_raw_hdr {
-       __le32 data;
+       u32 data;
 /* Init array type, from init_array_types enum */
 #define INIT_ARRAY_RAW_HDR_TYPE_MASK    0xF
 #define INIT_ARRAY_RAW_HDR_TYPE_SHIFT   0
@@ -146,7 +81,7 @@ struct init_array_raw_hdr {
  * init array header: standard
  */
 struct init_array_standard_hdr {
-       __le32 data;
+       u32 data;
 /* Init array type, from init_array_types enum */
 #define INIT_ARRAY_STANDARD_HDR_TYPE_MASK  0xF
 #define INIT_ARRAY_STANDARD_HDR_TYPE_SHIFT 0
@@ -159,7 +94,7 @@ struct init_array_standard_hdr {
  * init array header: zipped
  */
 struct init_array_zipped_hdr {
-       __le32 data;
+       u32 data;
 /* Init array type, from init_array_types enum */
 #define INIT_ARRAY_ZIPPED_HDR_TYPE_MASK         0xF
 #define INIT_ARRAY_ZIPPED_HDR_TYPE_SHIFT        0
@@ -172,7 +107,7 @@ struct init_array_zipped_hdr {
  * init array header: pattern
  */
 struct init_array_pattern_hdr {
-       __le32 data;
+       u32 data;
 /* Init array type, from init_array_types enum */
 #define INIT_ARRAY_PATTERN_HDR_TYPE_MASK          0xF
 #define INIT_ARRAY_PATTERN_HDR_TYPE_SHIFT         0
@@ -196,7 +131,70 @@ union init_array_hdr {
 };
 
 
+enum dbg_bus_clients {
+       DBG_BUS_CLIENT_RBCN,
+       DBG_BUS_CLIENT_RBCP,
+       DBG_BUS_CLIENT_RBCR,
+       DBG_BUS_CLIENT_RBCT,
+       DBG_BUS_CLIENT_RBCU,
+       DBG_BUS_CLIENT_RBCF,
+       DBG_BUS_CLIENT_RBCX,
+       DBG_BUS_CLIENT_RBCS,
+       DBG_BUS_CLIENT_RBCH,
+       DBG_BUS_CLIENT_RBCZ,
+       DBG_BUS_CLIENT_OTHER_ENGINE,
+       DBG_BUS_CLIENT_TIMESTAMP,
+       DBG_BUS_CLIENT_CPU,
+       DBG_BUS_CLIENT_RBCY,
+       DBG_BUS_CLIENT_RBCQ,
+       DBG_BUS_CLIENT_RBCM,
+       DBG_BUS_CLIENT_RBCB,
+       DBG_BUS_CLIENT_RBCW,
+       DBG_BUS_CLIENT_RBCV,
+       MAX_DBG_BUS_CLIENTS
+};
+
 
+enum init_modes {
+       MODE_BB_A0_DEPRECATED,
+       MODE_BB,
+       MODE_K2,
+       MODE_ASIC,
+       MODE_EMUL_REDUCED,
+       MODE_EMUL_FULL,
+       MODE_FPGA,
+       MODE_CHIPSIM,
+       MODE_SF,
+       MODE_MF_SD,
+       MODE_MF_SI,
+       MODE_PORTS_PER_ENG_1,
+       MODE_PORTS_PER_ENG_2,
+       MODE_PORTS_PER_ENG_4,
+       MODE_100G,
+       MODE_SKIP_PRAM_INIT,
+       MODE_EMUL_MAC,
+       MAX_INIT_MODES
+};
+
+
+enum init_phases {
+       PHASE_ENGINE,
+       PHASE_PORT,
+       PHASE_PF,
+       PHASE_VF,
+       PHASE_QM_PF,
+       MAX_INIT_PHASES
+};
+
+
+enum init_split_types {
+       SPLIT_TYPE_NONE,
+       SPLIT_TYPE_PORT,
+       SPLIT_TYPE_PF,
+       SPLIT_TYPE_PORT_PF,
+       SPLIT_TYPE_VF,
+       MAX_INIT_SPLIT_TYPES
+};
 
 
 /*
@@ -215,14 +213,14 @@ enum init_array_types {
  * init operation: callback
  */
 struct init_callback_op {
-       __le32 op_data;
+       u32 op_data;
 /* Init operation, from init_op_types enum */
 #define INIT_CALLBACK_OP_OP_MASK        0xF
 #define INIT_CALLBACK_OP_OP_SHIFT       0
 #define INIT_CALLBACK_OP_RESERVED_MASK  0xFFFFFFF
 #define INIT_CALLBACK_OP_RESERVED_SHIFT 4
-       __le16 callback_id /* Callback ID */;
-       __le16 block_id /* Blocks ID */;
+       u16 callback_id /* Callback ID */;
+       u16 block_id /* Blocks ID */;
 };
 
 
@@ -230,7 +228,7 @@ struct init_callback_op {
  * init operation: delay
  */
 struct init_delay_op {
-       __le32 op_data;
+       u32 op_data;
 /* Init operation, from init_op_types enum */
 #define INIT_DELAY_OP_OP_MASK        0xF
 #define INIT_DELAY_OP_OP_SHIFT       0
@@ -244,7 +242,7 @@ struct init_delay_op {
  * init operation: if_mode
  */
 struct init_if_mode_op {
-       __le32 op_data;
+       u32 op_data;
 /* Init operation, from init_op_types enum */
 #define INIT_IF_MODE_OP_OP_MASK          0xF
 #define INIT_IF_MODE_OP_OP_SHIFT         0
@@ -253,9 +251,8 @@ struct init_if_mode_op {
 /* Commands to skip if the modes dont match */
 #define INIT_IF_MODE_OP_CMD_OFFSET_MASK  0xFFFF
 #define INIT_IF_MODE_OP_CMD_OFFSET_SHIFT 16
-       __le16 reserved2;
-/* offset (in bytes) in modes expression buffer */
-       __le16 modes_buf_offset;
+       u16 reserved2;
+       u16 modes_buf_offset /* offset (in bytes) in modes expression buffer */;
 };
 
 
@@ -263,7 +260,7 @@ struct init_if_mode_op {
  * init operation: if_phase
  */
 struct init_if_phase_op {
-       __le32 op_data;
+       u32 op_data;
 /* Init operation, from init_op_types enum */
 #define INIT_IF_PHASE_OP_OP_MASK           0xF
 #define INIT_IF_PHASE_OP_OP_SHIFT          0
@@ -275,7 +272,7 @@ struct init_if_phase_op {
 /* Commands to skip if the phases dont match */
 #define INIT_IF_PHASE_OP_CMD_OFFSET_MASK   0xFFFF
 #define INIT_IF_PHASE_OP_CMD_OFFSET_SHIFT  16
-       __le32 phase_data;
+       u32 phase_data;
 #define INIT_IF_PHASE_OP_PHASE_MASK        0xFF /* Init phase */
 #define INIT_IF_PHASE_OP_PHASE_SHIFT       0
 #define INIT_IF_PHASE_OP_RESERVED2_MASK    0xFF
@@ -300,21 +297,21 @@ enum init_mode_ops {
  * init operation: raw
  */
 struct init_raw_op {
-       __le32 op_data;
+       u32 op_data;
 /* Init operation, from init_op_types enum */
 #define INIT_RAW_OP_OP_MASK      0xF
 #define INIT_RAW_OP_OP_SHIFT     0
 #define INIT_RAW_OP_PARAM1_MASK  0xFFFFFFF /* init param 1 */
 #define INIT_RAW_OP_PARAM1_SHIFT 4
-       __le32 param2 /* Init param 2 */;
+       u32 param2 /* Init param 2 */;
 };
 
 /*
  * init array params
  */
 struct init_op_array_params {
-       __le16 size /* array size in dwords */;
-       __le16 offset /* array start offset in dwords */;
+       u16 size /* array size in dwords */;
+       u16 offset /* array start offset in dwords */;
 };
 
 /*
@@ -322,11 +319,11 @@ struct init_op_array_params {
  */
 union init_write_args {
 /* value to write, used when init source is INIT_SRC_INLINE */
-       __le32 inline_val;
+       u32 inline_val;
 /* number of zeros to write, used when init source is INIT_SRC_ZEROS */
-       __le32 zeros_count;
+       u32 zeros_count;
 /* array offset to write, used when init source is INIT_SRC_ARRAY */
-       __le32 array_offset;
+       u32 array_offset;
 /* runtime array params to write, used when init source is INIT_SRC_RUNTIME */
        struct init_op_array_params runtime;
 };
@@ -335,7 +332,7 @@ union init_write_args {
  * init operation: write
  */
 struct init_write_op {
-       __le32 data;
+       u32 data;
 /* init operation, from init_op_types enum */
 #define INIT_WRITE_OP_OP_MASK        0xF
 #define INIT_WRITE_OP_OP_SHIFT       0
@@ -357,7 +354,7 @@ struct init_write_op {
  * init operation: read
  */
 struct init_read_op {
-       __le32 op_data;
+       u32 op_data;
 /* init operation, from init_op_types enum */
 #define INIT_READ_OP_OP_MASK         0xF
 #define INIT_READ_OP_OP_SHIFT        0
@@ -370,7 +367,7 @@ struct init_read_op {
 #define INIT_READ_OP_ADDRESS_MASK    0x7FFFFF
 #define INIT_READ_OP_ADDRESS_SHIFT   9
 /* expected polling value, used only when polling is done */
-       __le32 expected_val;
+       u32 expected_val;
 };
 
 /*
@@ -436,11 +433,11 @@ enum init_source_types {
  * Internal RAM Offsets macro data
  */
 struct iro {
-       __le32 base /* RAM field offset */;
-       __le16 m1 /* multiplier 1 */;
-       __le16 m2 /* multiplier 2 */;
-       __le16 m3 /* multiplier 3 */;
-       __le16 size /* RAM field size */;
+       u32 base /* RAM field offset */;
+       u16 m1 /* multiplier 1 */;
+       u16 m2 /* multiplier 2 */;
+       u16 m3 /* multiplier 3 */;
+       u16 size /* RAM field size */;
 };
 
 #endif /* __ECORE_HSI_INIT_TOOL__ */