bnx2x_init.h revision 94a78b79cb5f14c09a42522738d6694c6a1cdd20
1a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir/* bnx2x_init.h: Broadcom Everest network driver. 294a78b79cb5f14c09a42522738d6694c6a1cdd20Vladislav Zolotarov * Structures and macroes needed during the initialization. 3a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir * 42b1440230abc8fae0271b012711ecaf64eb38f86Eilon Greenstein * Copyright (c) 2007-2009 Broadcom Corporation 5a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir * 6a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir * This program is free software; you can redistribute it and/or modify 7a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir * it under the terms of the GNU General Public License as published by 8a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir * the Free Software Foundation. 9a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir * 1024e3fcefb9cc61acce59ed54c00c4e4c32537de7Eilon Greenstein * Maintained by: Eilon Greenstein <eilong@broadcom.com> 1124e3fcefb9cc61acce59ed54c00c4e4c32537de7Eilon Greenstein * Written by: Eliezer Tamir 1294a78b79cb5f14c09a42522738d6694c6a1cdd20Vladislav Zolotarov * Modified by: Vladislav Zolotarov <vladz@broadcom.com> 13a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir */ 14a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir 15a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir#ifndef BNX2X_INIT_H 16a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir#define BNX2X_INIT_H 17a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir 18a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir#define COMMON 0x1 19a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir#define PORT0 0x2 20a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir#define PORT1 0x4 21a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir 22a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir#define INIT_EMULATION 0x1 23a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir#define INIT_FPGA 0x2 24a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir#define INIT_ASIC 0x4 25a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir#define INIT_HARDWARE 0x7 26a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir 27490c3c9bf986545bdd99dcd4b0045c747564be39Eilon Greenstein#define TSTORM_INTMEM_ADDR TSEM_REG_FAST_MEMORY 28490c3c9bf986545bdd99dcd4b0045c747564be39Eilon Greenstein#define CSTORM_INTMEM_ADDR CSEM_REG_FAST_MEMORY 29490c3c9bf986545bdd99dcd4b0045c747564be39Eilon Greenstein#define XSTORM_INTMEM_ADDR XSEM_REG_FAST_MEMORY 30490c3c9bf986545bdd99dcd4b0045c747564be39Eilon Greenstein#define USTORM_INTMEM_ADDR USEM_REG_FAST_MEMORY 31490c3c9bf986545bdd99dcd4b0045c747564be39Eilon Greenstein/* RAM0 size in bytes */ 32490c3c9bf986545bdd99dcd4b0045c747564be39Eilon Greenstein#define STORM_INTMEM_SIZE_E1 0x5800 33490c3c9bf986545bdd99dcd4b0045c747564be39Eilon Greenstein#define STORM_INTMEM_SIZE_E1H 0x10000 34490c3c9bf986545bdd99dcd4b0045c747564be39Eilon Greenstein#define STORM_INTMEM_SIZE(bp) ((CHIP_IS_E1H(bp) ? STORM_INTMEM_SIZE_E1H : \ 35490c3c9bf986545bdd99dcd4b0045c747564be39Eilon Greenstein STORM_INTMEM_SIZE_E1) / 4) 36a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir 37a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir 38a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir/* Init operation types and structures */ 39ad8d394804b355bc623decc50748cd01dbc0783bEilon Greenstein/* Common for both E1 and E1H */ 40a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir#define OP_RD 0x1 /* read single register */ 41a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir#define OP_WR 0x2 /* write single register */ 42a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir#define OP_IW 0x3 /* write single register using mailbox */ 43a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir#define OP_SW 0x4 /* copy a string to the device */ 44a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir#define OP_SI 0x5 /* copy a string using mailbox */ 45a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir#define OP_ZR 0x6 /* clear memory */ 46a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir#define OP_ZP 0x7 /* unzip then copy with DMAE */ 47ad8d394804b355bc623decc50748cd01dbc0783bEilon Greenstein#define OP_WR_64 0x8 /* write 64 bit pattern */ 48ad8d394804b355bc623decc50748cd01dbc0783bEilon Greenstein#define OP_WB 0x9 /* copy a string using DMAE */ 49ad8d394804b355bc623decc50748cd01dbc0783bEilon Greenstein 50ad8d394804b355bc623decc50748cd01dbc0783bEilon Greenstein/* FPGA and EMUL specific operations */ 5194a78b79cb5f14c09a42522738d6694c6a1cdd20Vladislav Zolotarov#define OP_WR_EMUL 0xa /* write single register on Emulation */ 5294a78b79cb5f14c09a42522738d6694c6a1cdd20Vladislav Zolotarov#define OP_WR_FPGA 0xb /* write single register on FPGA */ 5394a78b79cb5f14c09a42522738d6694c6a1cdd20Vladislav Zolotarov#define OP_WR_ASIC 0xc /* write single register on ASIC */ 5494a78b79cb5f14c09a42522738d6694c6a1cdd20Vladislav Zolotarov 5594a78b79cb5f14c09a42522738d6694c6a1cdd20Vladislav Zolotarov/* Init stages */ 5694a78b79cb5f14c09a42522738d6694c6a1cdd20Vladislav Zolotarov#define COMMON_STAGE 0 5794a78b79cb5f14c09a42522738d6694c6a1cdd20Vladislav Zolotarov#define PORT0_STAGE 1 5894a78b79cb5f14c09a42522738d6694c6a1cdd20Vladislav Zolotarov#define PORT1_STAGE 2 5994a78b79cb5f14c09a42522738d6694c6a1cdd20Vladislav Zolotarov/* Never reorder FUNCx stages !!! */ 6094a78b79cb5f14c09a42522738d6694c6a1cdd20Vladislav Zolotarov#define FUNC0_STAGE 3 6194a78b79cb5f14c09a42522738d6694c6a1cdd20Vladislav Zolotarov#define FUNC1_STAGE 4 6294a78b79cb5f14c09a42522738d6694c6a1cdd20Vladislav Zolotarov#define FUNC2_STAGE 5 6394a78b79cb5f14c09a42522738d6694c6a1cdd20Vladislav Zolotarov#define FUNC3_STAGE 6 6494a78b79cb5f14c09a42522738d6694c6a1cdd20Vladislav Zolotarov#define FUNC4_STAGE 7 6594a78b79cb5f14c09a42522738d6694c6a1cdd20Vladislav Zolotarov#define FUNC5_STAGE 8 6694a78b79cb5f14c09a42522738d6694c6a1cdd20Vladislav Zolotarov#define FUNC6_STAGE 9 6794a78b79cb5f14c09a42522738d6694c6a1cdd20Vladislav Zolotarov#define FUNC7_STAGE 10 6894a78b79cb5f14c09a42522738d6694c6a1cdd20Vladislav Zolotarov#define STAGE_IDX_MAX 11 6994a78b79cb5f14c09a42522738d6694c6a1cdd20Vladislav Zolotarov 7094a78b79cb5f14c09a42522738d6694c6a1cdd20Vladislav Zolotarov#define STAGE_START 0 7194a78b79cb5f14c09a42522738d6694c6a1cdd20Vladislav Zolotarov#define STAGE_END 1 7294a78b79cb5f14c09a42522738d6694c6a1cdd20Vladislav Zolotarov 7394a78b79cb5f14c09a42522738d6694c6a1cdd20Vladislav Zolotarov 7494a78b79cb5f14c09a42522738d6694c6a1cdd20Vladislav Zolotarov/* Indices of blocks */ 7594a78b79cb5f14c09a42522738d6694c6a1cdd20Vladislav Zolotarov#define PRS_BLOCK 0 7694a78b79cb5f14c09a42522738d6694c6a1cdd20Vladislav Zolotarov#define SRCH_BLOCK 1 7794a78b79cb5f14c09a42522738d6694c6a1cdd20Vladislav Zolotarov#define TSDM_BLOCK 2 7894a78b79cb5f14c09a42522738d6694c6a1cdd20Vladislav Zolotarov#define TCM_BLOCK 3 7994a78b79cb5f14c09a42522738d6694c6a1cdd20Vladislav Zolotarov#define BRB1_BLOCK 4 8094a78b79cb5f14c09a42522738d6694c6a1cdd20Vladislav Zolotarov#define TSEM_BLOCK 5 8194a78b79cb5f14c09a42522738d6694c6a1cdd20Vladislav Zolotarov#define PXPCS_BLOCK 6 8294a78b79cb5f14c09a42522738d6694c6a1cdd20Vladislav Zolotarov#define EMAC0_BLOCK 7 8394a78b79cb5f14c09a42522738d6694c6a1cdd20Vladislav Zolotarov#define EMAC1_BLOCK 8 8494a78b79cb5f14c09a42522738d6694c6a1cdd20Vladislav Zolotarov#define DBU_BLOCK 9 8594a78b79cb5f14c09a42522738d6694c6a1cdd20Vladislav Zolotarov#define MISC_BLOCK 10 8694a78b79cb5f14c09a42522738d6694c6a1cdd20Vladislav Zolotarov#define DBG_BLOCK 11 8794a78b79cb5f14c09a42522738d6694c6a1cdd20Vladislav Zolotarov#define NIG_BLOCK 12 8894a78b79cb5f14c09a42522738d6694c6a1cdd20Vladislav Zolotarov#define MCP_BLOCK 13 8994a78b79cb5f14c09a42522738d6694c6a1cdd20Vladislav Zolotarov#define UPB_BLOCK 14 9094a78b79cb5f14c09a42522738d6694c6a1cdd20Vladislav Zolotarov#define CSDM_BLOCK 15 9194a78b79cb5f14c09a42522738d6694c6a1cdd20Vladislav Zolotarov#define USDM_BLOCK 16 9294a78b79cb5f14c09a42522738d6694c6a1cdd20Vladislav Zolotarov#define CCM_BLOCK 17 9394a78b79cb5f14c09a42522738d6694c6a1cdd20Vladislav Zolotarov#define UCM_BLOCK 18 9494a78b79cb5f14c09a42522738d6694c6a1cdd20Vladislav Zolotarov#define USEM_BLOCK 19 9594a78b79cb5f14c09a42522738d6694c6a1cdd20Vladislav Zolotarov#define CSEM_BLOCK 20 9694a78b79cb5f14c09a42522738d6694c6a1cdd20Vladislav Zolotarov#define XPB_BLOCK 21 9794a78b79cb5f14c09a42522738d6694c6a1cdd20Vladislav Zolotarov#define DQ_BLOCK 22 9894a78b79cb5f14c09a42522738d6694c6a1cdd20Vladislav Zolotarov#define TIMERS_BLOCK 23 9994a78b79cb5f14c09a42522738d6694c6a1cdd20Vladislav Zolotarov#define XSDM_BLOCK 24 10094a78b79cb5f14c09a42522738d6694c6a1cdd20Vladislav Zolotarov#define QM_BLOCK 25 10194a78b79cb5f14c09a42522738d6694c6a1cdd20Vladislav Zolotarov#define PBF_BLOCK 26 10294a78b79cb5f14c09a42522738d6694c6a1cdd20Vladislav Zolotarov#define XCM_BLOCK 27 10394a78b79cb5f14c09a42522738d6694c6a1cdd20Vladislav Zolotarov#define XSEM_BLOCK 28 10494a78b79cb5f14c09a42522738d6694c6a1cdd20Vladislav Zolotarov#define CDU_BLOCK 29 10594a78b79cb5f14c09a42522738d6694c6a1cdd20Vladislav Zolotarov#define DMAE_BLOCK 30 10694a78b79cb5f14c09a42522738d6694c6a1cdd20Vladislav Zolotarov#define PXP_BLOCK 31 10794a78b79cb5f14c09a42522738d6694c6a1cdd20Vladislav Zolotarov#define CFC_BLOCK 32 10894a78b79cb5f14c09a42522738d6694c6a1cdd20Vladislav Zolotarov#define HC_BLOCK 33 10994a78b79cb5f14c09a42522738d6694c6a1cdd20Vladislav Zolotarov#define PXP2_BLOCK 34 11094a78b79cb5f14c09a42522738d6694c6a1cdd20Vladislav Zolotarov#define MISC_AEU_BLOCK 35 11194a78b79cb5f14c09a42522738d6694c6a1cdd20Vladislav Zolotarov 11294a78b79cb5f14c09a42522738d6694c6a1cdd20Vladislav Zolotarov/* Returns the index of start or end of a specific block stage in ops array*/ 11394a78b79cb5f14c09a42522738d6694c6a1cdd20Vladislav Zolotarov#define BLOCK_OPS_IDX(block, stage, end) \ 11494a78b79cb5f14c09a42522738d6694c6a1cdd20Vladislav Zolotarov (2*(((block)*STAGE_IDX_MAX) + (stage)) + (end)) 115ad8d394804b355bc623decc50748cd01dbc0783bEilon Greenstein 116a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir 117a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamirstruct raw_op { 1186378c0253175e400525ac0efac9dd29f4e573cbfEilon Greenstein u32 op:8; 1196378c0253175e400525ac0efac9dd29f4e573cbfEilon Greenstein u32 offset:24; 120a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir u32 raw_data; 121a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir}; 122a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir 123a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamirstruct op_read { 1246378c0253175e400525ac0efac9dd29f4e573cbfEilon Greenstein u32 op:8; 1256378c0253175e400525ac0efac9dd29f4e573cbfEilon Greenstein u32 offset:24; 126a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir u32 pad; 127a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir}; 128a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir 129a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamirstruct op_write { 1306378c0253175e400525ac0efac9dd29f4e573cbfEilon Greenstein u32 op:8; 1316378c0253175e400525ac0efac9dd29f4e573cbfEilon Greenstein u32 offset:24; 132a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir u32 val; 133a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir}; 134a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir 135a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamirstruct op_string_write { 1366378c0253175e400525ac0efac9dd29f4e573cbfEilon Greenstein u32 op:8; 1376378c0253175e400525ac0efac9dd29f4e573cbfEilon Greenstein u32 offset:24; 138a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir#ifdef __LITTLE_ENDIAN 139a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir u16 data_off; 140a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir u16 data_len; 141a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir#else /* __BIG_ENDIAN */ 142a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir u16 data_len; 143a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir u16 data_off; 144a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir#endif 145a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir}; 146a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir 147a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamirstruct op_zero { 1486378c0253175e400525ac0efac9dd29f4e573cbfEilon Greenstein u32 op:8; 1496378c0253175e400525ac0efac9dd29f4e573cbfEilon Greenstein u32 offset:24; 150a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir u32 len; 151a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir}; 152a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir 153a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamirunion init_op { 154a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir struct op_read read; 155a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir struct op_write write; 156a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir struct op_string_write str_wr; 157a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir struct op_zero zero; 158a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir struct raw_op raw; 159a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir}; 160a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir 161a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir/**************************************************************************** 162a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir* PXP 163a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir****************************************************************************/ 164a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir/* 165a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir * This code configures the PCI read/write arbiter 166ad8d394804b355bc623decc50748cd01dbc0783bEilon Greenstein * which implements a weighted round robin 167a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir * between the virtual queues in the chip. 168a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir * 169a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir * The values were derived for each PCI max payload and max request size. 170a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir * since max payload and max request size are only known at run time, 171a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir * this is done as a separate init stage. 172a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir */ 173a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir 174a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir#define NUM_WR_Q 13 175a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir#define NUM_RD_Q 29 176a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir#define MAX_RD_ORD 3 177a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir#define MAX_WR_ORD 2 178a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir 179a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir/* configuration for one arbiter queue */ 180a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamirstruct arb_line { 181a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir int l; 182a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir int add; 183a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir int ubound; 184a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir}; 185a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir 186a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir/* derived configuration for each read queue for each max request size */ 187a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamirstatic const struct arb_line read_arb_data[NUM_RD_Q][MAX_RD_ORD + 1] = { 188f53722514242da8346cbed2223bcea9eed744ebdEilon Greenstein/* 1 */ { {8, 64, 25}, {16, 64, 25}, {32, 64, 25}, {64, 64, 41} }, 189f53722514242da8346cbed2223bcea9eed744ebdEilon Greenstein { {4, 8, 4}, {4, 8, 4}, {4, 8, 4}, {4, 8, 4} }, 190f53722514242da8346cbed2223bcea9eed744ebdEilon Greenstein { {4, 3, 3}, {4, 3, 3}, {4, 3, 3}, {4, 3, 3} }, 191f53722514242da8346cbed2223bcea9eed744ebdEilon Greenstein { {8, 3, 6}, {16, 3, 11}, {16, 3, 11}, {16, 3, 11} }, 192f53722514242da8346cbed2223bcea9eed744ebdEilon Greenstein { {8, 64, 25}, {16, 64, 25}, {32, 64, 25}, {64, 64, 41} }, 193f53722514242da8346cbed2223bcea9eed744ebdEilon Greenstein { {8, 3, 6}, {16, 3, 11}, {32, 3, 21}, {64, 3, 41} }, 194f53722514242da8346cbed2223bcea9eed744ebdEilon Greenstein { {8, 3, 6}, {16, 3, 11}, {32, 3, 21}, {64, 3, 41} }, 195f53722514242da8346cbed2223bcea9eed744ebdEilon Greenstein { {8, 3, 6}, {16, 3, 11}, {32, 3, 21}, {64, 3, 41} }, 196f53722514242da8346cbed2223bcea9eed744ebdEilon Greenstein { {8, 3, 6}, {16, 3, 11}, {32, 3, 21}, {64, 3, 41} }, 197f53722514242da8346cbed2223bcea9eed744ebdEilon Greenstein/* 10 */{ {8, 3, 6}, {16, 3, 11}, {32, 3, 21}, {32, 3, 21} }, 198f53722514242da8346cbed2223bcea9eed744ebdEilon Greenstein { {8, 3, 6}, {16, 3, 11}, {32, 3, 21}, {32, 3, 21} }, 199f53722514242da8346cbed2223bcea9eed744ebdEilon Greenstein { {8, 3, 6}, {16, 3, 11}, {32, 3, 21}, {32, 3, 21} }, 200f53722514242da8346cbed2223bcea9eed744ebdEilon Greenstein { {8, 3, 6}, {16, 3, 11}, {32, 3, 21}, {32, 3, 21} }, 201f53722514242da8346cbed2223bcea9eed744ebdEilon Greenstein { {8, 3, 6}, {16, 3, 11}, {32, 3, 21}, {32, 3, 21} }, 202f53722514242da8346cbed2223bcea9eed744ebdEilon Greenstein { {8, 3, 6}, {16, 3, 11}, {32, 3, 21}, {32, 3, 21} }, 203f53722514242da8346cbed2223bcea9eed744ebdEilon Greenstein { {8, 3, 6}, {16, 3, 11}, {32, 3, 21}, {32, 3, 21} }, 204f53722514242da8346cbed2223bcea9eed744ebdEilon Greenstein { {8, 3, 6}, {16, 3, 11}, {32, 3, 21}, {32, 3, 21} }, 205f53722514242da8346cbed2223bcea9eed744ebdEilon Greenstein { {8, 3, 6}, {16, 3, 11}, {32, 3, 21}, {32, 3, 21} }, 206f53722514242da8346cbed2223bcea9eed744ebdEilon Greenstein { {8, 3, 6}, {16, 3, 11}, {32, 3, 21}, {32, 3, 21} }, 207f53722514242da8346cbed2223bcea9eed744ebdEilon Greenstein/* 20 */{ {8, 3, 6}, {16, 3, 11}, {32, 3, 21}, {32, 3, 21} }, 208f53722514242da8346cbed2223bcea9eed744ebdEilon Greenstein { {8, 3, 6}, {16, 3, 11}, {32, 3, 21}, {32, 3, 21} }, 209f53722514242da8346cbed2223bcea9eed744ebdEilon Greenstein { {8, 3, 6}, {16, 3, 11}, {32, 3, 21}, {32, 3, 21} }, 210f53722514242da8346cbed2223bcea9eed744ebdEilon Greenstein { {8, 3, 6}, {16, 3, 11}, {32, 3, 21}, {32, 3, 21} }, 211f53722514242da8346cbed2223bcea9eed744ebdEilon Greenstein { {8, 3, 6}, {16, 3, 11}, {32, 3, 21}, {32, 3, 21} }, 212f53722514242da8346cbed2223bcea9eed744ebdEilon Greenstein { {8, 3, 6}, {16, 3, 11}, {32, 3, 21}, {32, 3, 21} }, 213f53722514242da8346cbed2223bcea9eed744ebdEilon Greenstein { {8, 3, 6}, {16, 3, 11}, {32, 3, 21}, {32, 3, 21} }, 214f53722514242da8346cbed2223bcea9eed744ebdEilon Greenstein { {8, 3, 6}, {16, 3, 11}, {32, 3, 21}, {32, 3, 21} }, 215f53722514242da8346cbed2223bcea9eed744ebdEilon Greenstein { {8, 3, 6}, {16, 3, 11}, {32, 3, 21}, {32, 3, 21} }, 216f53722514242da8346cbed2223bcea9eed744ebdEilon Greenstein { {8, 64, 25}, {16, 64, 41}, {32, 64, 81}, {64, 64, 120} } 217a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir}; 218a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir 219a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir/* derived configuration for each write queue for each max request size */ 220a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamirstatic const struct arb_line write_arb_data[NUM_WR_Q][MAX_WR_ORD + 1] = { 221f53722514242da8346cbed2223bcea9eed744ebdEilon Greenstein/* 1 */ { {4, 6, 3}, {4, 6, 3}, {4, 6, 3} }, 222f53722514242da8346cbed2223bcea9eed744ebdEilon Greenstein { {4, 2, 3}, {4, 2, 3}, {4, 2, 3} }, 223f53722514242da8346cbed2223bcea9eed744ebdEilon Greenstein { {8, 2, 6}, {16, 2, 11}, {16, 2, 11} }, 224f53722514242da8346cbed2223bcea9eed744ebdEilon Greenstein { {8, 2, 6}, {16, 2, 11}, {32, 2, 21} }, 225f53722514242da8346cbed2223bcea9eed744ebdEilon Greenstein { {8, 2, 6}, {16, 2, 11}, {32, 2, 21} }, 226f53722514242da8346cbed2223bcea9eed744ebdEilon Greenstein { {8, 2, 6}, {16, 2, 11}, {32, 2, 21} }, 227f53722514242da8346cbed2223bcea9eed744ebdEilon Greenstein { {8, 64, 25}, {16, 64, 25}, {32, 64, 25} }, 228f53722514242da8346cbed2223bcea9eed744ebdEilon Greenstein { {8, 2, 6}, {16, 2, 11}, {16, 2, 11} }, 229f53722514242da8346cbed2223bcea9eed744ebdEilon Greenstein { {8, 2, 6}, {16, 2, 11}, {16, 2, 11} }, 230f53722514242da8346cbed2223bcea9eed744ebdEilon Greenstein/* 10 */{ {8, 9, 6}, {16, 9, 11}, {32, 9, 21} }, 231f53722514242da8346cbed2223bcea9eed744ebdEilon Greenstein { {8, 47, 19}, {16, 47, 19}, {32, 47, 21} }, 232f53722514242da8346cbed2223bcea9eed744ebdEilon Greenstein { {8, 9, 6}, {16, 9, 11}, {16, 9, 11} }, 233f53722514242da8346cbed2223bcea9eed744ebdEilon Greenstein { {8, 64, 25}, {16, 64, 41}, {32, 64, 81} } 234a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir}; 235a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir 236ad8d394804b355bc623decc50748cd01dbc0783bEilon Greenstein/* register addresses for read queues */ 237a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamirstatic const struct arb_line read_arb_addr[NUM_RD_Q-1] = { 238f53722514242da8346cbed2223bcea9eed744ebdEilon Greenstein/* 1 */ {PXP2_REG_RQ_BW_RD_L0, PXP2_REG_RQ_BW_RD_ADD0, 239a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir PXP2_REG_RQ_BW_RD_UBOUND0}, 240a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir {PXP2_REG_PSWRQ_BW_L1, PXP2_REG_PSWRQ_BW_ADD1, 241a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir PXP2_REG_PSWRQ_BW_UB1}, 242a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir {PXP2_REG_PSWRQ_BW_L2, PXP2_REG_PSWRQ_BW_ADD2, 243a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir PXP2_REG_PSWRQ_BW_UB2}, 244a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir {PXP2_REG_PSWRQ_BW_L3, PXP2_REG_PSWRQ_BW_ADD3, 245a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir PXP2_REG_PSWRQ_BW_UB3}, 246a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir {PXP2_REG_RQ_BW_RD_L4, PXP2_REG_RQ_BW_RD_ADD4, 247a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir PXP2_REG_RQ_BW_RD_UBOUND4}, 248a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir {PXP2_REG_RQ_BW_RD_L5, PXP2_REG_RQ_BW_RD_ADD5, 249a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir PXP2_REG_RQ_BW_RD_UBOUND5}, 250a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir {PXP2_REG_PSWRQ_BW_L6, PXP2_REG_PSWRQ_BW_ADD6, 251a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir PXP2_REG_PSWRQ_BW_UB6}, 252a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir {PXP2_REG_PSWRQ_BW_L7, PXP2_REG_PSWRQ_BW_ADD7, 253a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir PXP2_REG_PSWRQ_BW_UB7}, 254a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir {PXP2_REG_PSWRQ_BW_L8, PXP2_REG_PSWRQ_BW_ADD8, 255a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir PXP2_REG_PSWRQ_BW_UB8}, 256f53722514242da8346cbed2223bcea9eed744ebdEilon Greenstein/* 10 */{PXP2_REG_PSWRQ_BW_L9, PXP2_REG_PSWRQ_BW_ADD9, 257a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir PXP2_REG_PSWRQ_BW_UB9}, 258a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir {PXP2_REG_PSWRQ_BW_L10, PXP2_REG_PSWRQ_BW_ADD10, 259a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir PXP2_REG_PSWRQ_BW_UB10}, 260a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir {PXP2_REG_PSWRQ_BW_L11, PXP2_REG_PSWRQ_BW_ADD11, 261a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir PXP2_REG_PSWRQ_BW_UB11}, 262a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir {PXP2_REG_RQ_BW_RD_L12, PXP2_REG_RQ_BW_RD_ADD12, 263a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir PXP2_REG_RQ_BW_RD_UBOUND12}, 264a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir {PXP2_REG_RQ_BW_RD_L13, PXP2_REG_RQ_BW_RD_ADD13, 265a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir PXP2_REG_RQ_BW_RD_UBOUND13}, 266a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir {PXP2_REG_RQ_BW_RD_L14, PXP2_REG_RQ_BW_RD_ADD14, 267a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir PXP2_REG_RQ_BW_RD_UBOUND14}, 268a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir {PXP2_REG_RQ_BW_RD_L15, PXP2_REG_RQ_BW_RD_ADD15, 269a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir PXP2_REG_RQ_BW_RD_UBOUND15}, 270a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir {PXP2_REG_RQ_BW_RD_L16, PXP2_REG_RQ_BW_RD_ADD16, 271a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir PXP2_REG_RQ_BW_RD_UBOUND16}, 272a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir {PXP2_REG_RQ_BW_RD_L17, PXP2_REG_RQ_BW_RD_ADD17, 273a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir PXP2_REG_RQ_BW_RD_UBOUND17}, 274a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir {PXP2_REG_RQ_BW_RD_L18, PXP2_REG_RQ_BW_RD_ADD18, 275a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir PXP2_REG_RQ_BW_RD_UBOUND18}, 276f53722514242da8346cbed2223bcea9eed744ebdEilon Greenstein/* 20 */{PXP2_REG_RQ_BW_RD_L19, PXP2_REG_RQ_BW_RD_ADD19, 277a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir PXP2_REG_RQ_BW_RD_UBOUND19}, 278a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir {PXP2_REG_RQ_BW_RD_L20, PXP2_REG_RQ_BW_RD_ADD20, 279a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir PXP2_REG_RQ_BW_RD_UBOUND20}, 280a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir {PXP2_REG_RQ_BW_RD_L22, PXP2_REG_RQ_BW_RD_ADD22, 281a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir PXP2_REG_RQ_BW_RD_UBOUND22}, 282a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir {PXP2_REG_RQ_BW_RD_L23, PXP2_REG_RQ_BW_RD_ADD23, 283a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir PXP2_REG_RQ_BW_RD_UBOUND23}, 284a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir {PXP2_REG_RQ_BW_RD_L24, PXP2_REG_RQ_BW_RD_ADD24, 285a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir PXP2_REG_RQ_BW_RD_UBOUND24}, 286a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir {PXP2_REG_RQ_BW_RD_L25, PXP2_REG_RQ_BW_RD_ADD25, 287a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir PXP2_REG_RQ_BW_RD_UBOUND25}, 288a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir {PXP2_REG_RQ_BW_RD_L26, PXP2_REG_RQ_BW_RD_ADD26, 289a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir PXP2_REG_RQ_BW_RD_UBOUND26}, 290a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir {PXP2_REG_RQ_BW_RD_L27, PXP2_REG_RQ_BW_RD_ADD27, 291a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir PXP2_REG_RQ_BW_RD_UBOUND27}, 292a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir {PXP2_REG_PSWRQ_BW_L28, PXP2_REG_PSWRQ_BW_ADD28, 293a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir PXP2_REG_PSWRQ_BW_UB28} 294a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir}; 295a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir 296ad8d394804b355bc623decc50748cd01dbc0783bEilon Greenstein/* register addresses for write queues */ 297a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamirstatic const struct arb_line write_arb_addr[NUM_WR_Q-1] = { 298f53722514242da8346cbed2223bcea9eed744ebdEilon Greenstein/* 1 */ {PXP2_REG_PSWRQ_BW_L1, PXP2_REG_PSWRQ_BW_ADD1, 299a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir PXP2_REG_PSWRQ_BW_UB1}, 300a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir {PXP2_REG_PSWRQ_BW_L2, PXP2_REG_PSWRQ_BW_ADD2, 301a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir PXP2_REG_PSWRQ_BW_UB2}, 302a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir {PXP2_REG_PSWRQ_BW_L3, PXP2_REG_PSWRQ_BW_ADD3, 303a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir PXP2_REG_PSWRQ_BW_UB3}, 304a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir {PXP2_REG_PSWRQ_BW_L6, PXP2_REG_PSWRQ_BW_ADD6, 305a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir PXP2_REG_PSWRQ_BW_UB6}, 306a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir {PXP2_REG_PSWRQ_BW_L7, PXP2_REG_PSWRQ_BW_ADD7, 307a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir PXP2_REG_PSWRQ_BW_UB7}, 308a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir {PXP2_REG_PSWRQ_BW_L8, PXP2_REG_PSWRQ_BW_ADD8, 309a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir PXP2_REG_PSWRQ_BW_UB8}, 310a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir {PXP2_REG_PSWRQ_BW_L9, PXP2_REG_PSWRQ_BW_ADD9, 311a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir PXP2_REG_PSWRQ_BW_UB9}, 312a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir {PXP2_REG_PSWRQ_BW_L10, PXP2_REG_PSWRQ_BW_ADD10, 313a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir PXP2_REG_PSWRQ_BW_UB10}, 314a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir {PXP2_REG_PSWRQ_BW_L11, PXP2_REG_PSWRQ_BW_ADD11, 315a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir PXP2_REG_PSWRQ_BW_UB11}, 316f53722514242da8346cbed2223bcea9eed744ebdEilon Greenstein/* 10 */{PXP2_REG_PSWRQ_BW_L28, PXP2_REG_PSWRQ_BW_ADD28, 317a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir PXP2_REG_PSWRQ_BW_UB28}, 318a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir {PXP2_REG_RQ_BW_WR_L29, PXP2_REG_RQ_BW_WR_ADD29, 319a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir PXP2_REG_RQ_BW_WR_UBOUND29}, 320a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir {PXP2_REG_RQ_BW_WR_L30, PXP2_REG_RQ_BW_WR_ADD30, 321a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir PXP2_REG_RQ_BW_WR_UBOUND30} 322a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir}; 323a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir 324a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir 325a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir/**************************************************************************** 326a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir* CDU 327a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir****************************************************************************/ 328a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir 329a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir#define CDU_REGION_NUMBER_XCM_AG 2 330a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir#define CDU_REGION_NUMBER_UCM_AG 4 331a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir 332a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir/** 333a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir * String-to-compress [31:8] = CID (all 24 bits) 334a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir * String-to-compress [7:4] = Region 335a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir * String-to-compress [3:0] = Type 336a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir */ 337a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir#define CDU_VALID_DATA(_cid, _region, _type) \ 338a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir (((_cid) << 8) | (((_region) & 0xf) << 4) | (((_type) & 0xf))) 339a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir#define CDU_CRC8(_cid, _region, _type) \ 340a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir calc_crc8(CDU_VALID_DATA(_cid, _region, _type), 0xff) 341a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir#define CDU_RSRVD_VALUE_TYPE_A(_cid, _region, _type) \ 342a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir (0x80 | (CDU_CRC8(_cid, _region, _type) & 0x7f)) 343a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir#define CDU_RSRVD_VALUE_TYPE_B(_crc, _type) \ 344a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir (0x80 | ((_type) & 0xf << 3) | (CDU_CRC8(_cid, _region, _type) & 0x7)) 345a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir#define CDU_RSRVD_INVALIDATE_CONTEXT_VALUE(_val) ((_val) & ~0x80) 346a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir 347a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir 3483347162995d23bc13f6f99c02ae89814babcaec2Eilon Greenstein/* registers addresses are not in order 349ad8d394804b355bc623decc50748cd01dbc0783bEilon Greenstein so these arrays help simplify the code */ 35094a78b79cb5f14c09a42522738d6694c6a1cdd20Vladislav Zolotarovstatic const int cm_blocks[9] = { 35194a78b79cb5f14c09a42522738d6694c6a1cdd20Vladislav Zolotarov MISC_BLOCK, TCM_BLOCK, UCM_BLOCK, CCM_BLOCK, XCM_BLOCK, 35294a78b79cb5f14c09a42522738d6694c6a1cdd20Vladislav Zolotarov TSEM_BLOCK, USEM_BLOCK, CSEM_BLOCK, XSEM_BLOCK 353ad8d394804b355bc623decc50748cd01dbc0783bEilon Greenstein}; 354a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir 355a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir#endif /* BNX2X_INIT_H */ 356a2fbb9ea235467b0be6db3cec0132b6c83c0b9fbEliezer Tamir 357