er_cmdmem.h (2978B)
1 /* 2 * 3 * This license is set out in https://raw.githubusercontent.com/Broadcom-Network-Switching-Software/OpenBCM/master/Legal/LICENSE file. 4 * 5 * Copyright 2007-2019 Broadcom Inc. All rights reserved. 6 * 7 * File: er_cmdmem.h 8 */ 9 10 #ifndef _SOC_ER_CMDMEM_H_ 11 #define _SOC_ER_CMDMEM_H_ 12 13 #define SOC_MEM_CMD_BASE_TO_OFFSET 24 14 #define SOC_MEM_CMD_TARGET_MASK 0xff 15 #define SOC_MEM_CMD_DATA_WORDS 17 16 #define SOC_MEM_CMD_NEWCMD 0x80000000 17 #define SOC_MEM_CMD_TAB_FULL 0x40000000 18 #define SOC_MEM_CMD_NOT_FOUND 0x20000000 19 #define SOC_MEM_CMD_PARITY_ERR 0x10000000 20 #define SOC_MEM_CMD_INVALID_ADDR 0x08000000 21 #define SOC_MEM_CMD_L2_MOD_FIFO_FULL 0x04000000 22 #define SOC_MEM_CMD_INVALID_CMD 0x02000000 23 24 25 typedef struct soc_mem_cmd_s { 26 uint32 command; /* Operation */ 27 uint32 sub_command; /* Additional operation info */ 28 uint32 addr0; /* Entry number or lower bound */ 29 uint32 addr1; 30 void *entry_data; 31 uint32 output_data[SOC_MEM_CMD_DATA_WORDS]; 32 } soc_mem_cmd_t; 33 34 #define SOC_MEM_CMD_READ 0 35 #define SOC_MEM_CMD_WRITE 1 36 #define SOC_MEM_CMD_SEARCH 2 37 #define SOC_MEM_CMD_LEARN 3 38 #define SOC_MEM_CMD_DELETE 4 39 #define SOC_MEM_CMD_PASS_WRITE 5 40 #define SOC_MEM_CMD_PASS_READ 6 41 #define SOC_MEM_CMD_SHIFT_DOWN 7 42 #define SOC_MEM_CMD_SHIFT_UP 8 43 #define SOC_MEM_CMD_CLEAR_L3_HIT 9 44 #define SOC_MEM_CMD_SET_L3_HIT 10 45 #define SOC_MEM_CMD_SWAP_L3_HIT 11 46 #define SOC_MEM_CMD_READ_ONE 12 47 #define SOC_MEM_CMD_SEARCH_72 13 48 #define SOC_MEM_CMD_INSERT_LPM 14 49 #define SOC_MEM_CMD_REMOVE_LPM 15 50 #define SOC_MEM_CMD_PER_PORT_AGING 16 51 52 /* DEFIP table entry type markers */ 53 #define SOC_ER_DEFIP_NOT_V6_FF 0xff 54 #define SOC_ER_DEFIP_KEY_TYPE_IPV4 4 55 #define SOC_ER_DEFIP_KEY_TYPE_MPLS_1L 6 56 #define SOC_ER_DEFIP_KEY_TYPE_MPLS_2L 7 57 58 #define SOC_MEM_CMD_SUB_V4 0 59 #define SOC_MEM_CMD_SUB_V6 1 60 #define SOC_MEM_CMD_SUB_MPLS1 2 61 #define SOC_MEM_CMD_SUB_MPLS2 3 62 63 #define SOC_MEM_CMD_HASH_ADDR_MASK 0xfffff 64 #define SOC_MEM_CMD_EXT_L2_ADDR_MASK_HI 0xffff8 65 #define SOC_MEM_CMD_EXT_L2_ADDR_MASK_LO 0x00003 66 #define SOC_MEM_CMD_EXT_L2_ADDR_SHIFT_HI 1 67 #define SOC_MEM_CMD_HASH_TABLE_SHIFT 20 68 #define SOC_MEM_CMD_HASH_TABLE_MASK 0x3 69 70 #define SOC_MEM_CMD_HASH_TABLE_L2EXT 0x0 71 #define SOC_MEM_CMD_HASH_TABLE_DFLT 0x1 72 #define SOC_MEM_CMD_HASH_TABLE_L2OVR 0x2 73 74 extern int soc_mem_cmd_op(int unit, soc_mem_t mem, 75 soc_mem_cmd_t *cmd_info, int intr); 76 77 #define SOC_MEM_CMD_TCAM_ADDR_MAX 6 78 79 extern int soc_mem_tcam_op(int unit, uint32 *addr, uint32 *data, 80 int num_addr, int write); 81 82 83 #endif /* !_SOC_ER_CMDMEM_H_ */