210 lines
7.3 KiB
C
210 lines
7.3 KiB
C
|
/* Copyright (c) 2012-2013, The Linux Foundation. All rights reserved.
|
||
|
*
|
||
|
* This program is free software; you can redistribute it and/or modify
|
||
|
* it under the terms of the GNU General Public License version 2 and
|
||
|
* only version 2 as published by the Free Software Foundation.
|
||
|
*
|
||
|
* This program is distributed in the hope that it will be useful,
|
||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||
|
* GNU General Public License for more details.
|
||
|
*/
|
||
|
|
||
|
#ifndef __IPA_REG_H__
|
||
|
#define __IPA_REG_H__
|
||
|
|
||
|
/*
|
||
|
* IPA's BAM specific registers
|
||
|
* Used for IPA HW 1.0 only
|
||
|
*/
|
||
|
|
||
|
#define IPA_BAM_REG_BASE_OFST 0x00004000
|
||
|
#define IPA_BAM_CNFG_BITS_OFST 0x7c
|
||
|
#define IPA_BAM_REMAP_SIZE (0x1000)
|
||
|
|
||
|
#define IPA_FILTER_FILTER_EN_BMSK 0x1
|
||
|
#define IPA_FILTER_FILTER_EN_SHFT 0x0
|
||
|
#define IPA_AGGREGATION_SPARE_REG_2_OFST 0x00002094
|
||
|
#define IPA_AGGREGATION_QCNCM_SIG0_SHFT 16
|
||
|
#define IPA_AGGREGATION_QCNCM_SIG1_SHFT 8
|
||
|
|
||
|
#define IPA_AGGREGATION_SPARE_REG_1_OFST 0x00002090
|
||
|
#define IPA_AGGREGATION_SPARE_REG_2_OFST 0x00002094
|
||
|
|
||
|
#define IPA_AGGREGATION_SINGLE_NDP_MSK 0x1
|
||
|
#define IPA_AGGREGATION_SINGLE_NDP_BMSK 0xfffffffe
|
||
|
|
||
|
#define IPA_AGGREGATION_MODE_MSK 0x1
|
||
|
#define IPA_AGGREGATION_MODE_SHFT 31
|
||
|
#define IPA_AGGREGATION_MODE_BMSK 0x7fffffff
|
||
|
|
||
|
#define IPA_AGGREGATION_QCNCM_SIG_BMSK 0xff000000
|
||
|
|
||
|
#define IPA_FILTER_FILTER_EN_BMSK 0x1
|
||
|
#define IPA_FILTER_FILTER_EN_SHFT 0x0
|
||
|
|
||
|
#define IPA_AGGREGATION_HW_TIMER_FIX_MBIM_AGGR_SHFT 2
|
||
|
#define IPA_AGGREGATION_HW_TIMER_FIX_MBIM_AGGR_BMSK 0x4
|
||
|
|
||
|
#define IPA_HEAD_OF_LINE_BLOCK_EN_OFST 0x00000044
|
||
|
|
||
|
/*
|
||
|
* End of IPA 1.0 Registers
|
||
|
*/
|
||
|
|
||
|
|
||
|
/*
|
||
|
Common Registers
|
||
|
*/
|
||
|
#define IPA_REG_BASE_OFST 0x00020000
|
||
|
#define IPA_COMP_SW_RESET_OFST 0x0000003c
|
||
|
|
||
|
#define IPA_SHARED_MEM_SIZE_OFST_v1 0x00000058
|
||
|
#define IPA_SHARED_MEM_SIZE_OFST_v2 0x00000050
|
||
|
|
||
|
#define IPA_VERSION_OFST 0x00000034
|
||
|
#define IPA_COMP_HW_VERSION_OFST 0x00000030
|
||
|
|
||
|
#define IPA_ROUTE_OFST_v1 0x0000004c
|
||
|
#define IPA_ROUTE_OFST_v2 0x00000044
|
||
|
|
||
|
#define IPA_FILTER_OFST_v1 0x00000050
|
||
|
#define IPA_FILTER_OFST_v2 0x00000048
|
||
|
|
||
|
#define IPA_SHARED_MEM_SIZE_OFST_v1 0x00000058
|
||
|
#define IPA_SHARED_MEM_SIZE_OFST_v2 0x00000050
|
||
|
|
||
|
#define IPA_ENDP_INIT_NAT_n_OFST_v1(n) (0x00000080 + 0x4 * (n))
|
||
|
#define IPA_ENDP_INIT_NAT_n_OFST_v2(n) (0x000000c0 + 0x4 * (n))
|
||
|
|
||
|
#define IPA_ENDP_INIT_HDR_n_OFST_v1(n) (0x000000e0 + 0x4 * (n))
|
||
|
#define IPA_ENDP_INIT_HDR_n_OFST_v2(n) (0x00000120 + 0x4 * (n))
|
||
|
|
||
|
#define IPA_ENDP_INIT_MODE_n_OFST_v1(n) (0x00000140 + 0x4 * (n))
|
||
|
#define IPA_ENDP_INIT_MODE_n_OFST_v2(n) (0x00000170 + 0x4 * (n))
|
||
|
|
||
|
#define IPA_ENDP_INIT_AGGR_n_OFST_v1(n) (0x000001a0 + 0x4 * (n))
|
||
|
#define IPA_ENDP_INIT_AGGR_n_OFST_v2(n) (0x000001c0 + 0x4 * (n))
|
||
|
|
||
|
#define IPA_ENDP_INIT_ROUTE_n_OFST_v1(n) (0x00000200 + 0x4 * (n))
|
||
|
#define IPA_ENDP_INIT_ROUTE_n_OFST_v2(n) (0x00000220 + 0x4 * (n))
|
||
|
#define IPA_ENDP_INIT_ROUTE_n_ROUTE_TABLE_INDEX_BMSK 0x1f
|
||
|
#define IPA_ENDP_INIT_ROUTE_n_ROUTE_TABLE_INDEX_SHFT 0x0
|
||
|
|
||
|
#define IPA_ROUTE_OFST_v1 0x0000004c
|
||
|
#define IPA_ROUTE_OFST_v2 0x00000044
|
||
|
|
||
|
#define IPA_ROUTE_ROUTE_DIS_SHFT 0x0
|
||
|
#define IPA_ROUTE_ROUTE_DIS_BMSK 0x1
|
||
|
#define IPA_ROUTE_ROUTE_DEF_PIPE_SHFT 0x1
|
||
|
#define IPA_ROUTE_ROUTE_DEF_PIPE_BMSK 0x3e
|
||
|
#define IPA_ROUTE_ROUTE_DEF_HDR_TABLE_SHFT 0x6
|
||
|
#define IPA_ROUTE_ROUTE_DEF_HDR_OFST_SHFT 0x7
|
||
|
#define IPA_ROUTE_ROUTE_DEF_HDR_OFST_BMSK 0x1ff80
|
||
|
|
||
|
|
||
|
#define IPA_FILTER_OFST_v1 0x00000050
|
||
|
#define IPA_FILTER_OFST_v2 0x00000048
|
||
|
|
||
|
#define IPA_SRAM_DIRECT_ACCESS_n_OFST(n) (0x00004000 + 0x4 * (n))
|
||
|
#define IPA_ROUTE_ROUTE_DEF_HDR_TABLE_BMSK 0x40
|
||
|
#define IPA_ENDP_INIT_NAT_n_NAT_EN_SHFT 0x0
|
||
|
#define IPA_COMP_CFG_OFST 0x00000038
|
||
|
|
||
|
#define IPA_ENDP_INIT_AGGR_n_AGGR_TIME_LIMIT_BMSK 0x7c00
|
||
|
#define IPA_ENDP_INIT_AGGR_n_AGGR_TIME_LIMIT_SHFT 0xa
|
||
|
#define IPA_ENDP_INIT_AGGR_n_AGGR_BYTE_LIMIT_BMSK 0x3e0
|
||
|
#define IPA_ENDP_INIT_AGGR_n_AGGR_BYTE_LIMIT_SHFT 0x5
|
||
|
#define IPA_ENDP_INIT_AGGR_n_AGGR_TYPE_BMSK 0x1c
|
||
|
#define IPA_ENDP_INIT_AGGR_n_AGGR_TYPE_SHFT 0x2
|
||
|
#define IPA_ENDP_INIT_AGGR_n_AGGR_EN_BMSK 0x3
|
||
|
#define IPA_ENDP_INIT_AGGR_n_AGGR_EN_SHFT 0x0
|
||
|
|
||
|
#define IPA_ENDP_INIT_MODE_n_OFST_v1(n) (0x00000140 + 0x4 * (n))
|
||
|
#define IPA_ENDP_INIT_MODE_n_OFST_v2(n) (0x00000170 + 0x4 * (n))
|
||
|
#define IPA_ENDP_INIT_MODE_n_RMSK 0x7f
|
||
|
#define IPA_ENDP_INIT_MODE_n_MAXn 19
|
||
|
#define IPA_ENDP_INIT_MODE_n_DEST_PIPE_INDEX_BMSK 0x7c
|
||
|
#define IPA_ENDP_INIT_MODE_n_DEST_PIPE_INDEX_SHFT 0x2
|
||
|
#define IPA_ENDP_INIT_MODE_n_MODE_BMSK 0x3
|
||
|
#define IPA_ENDP_INIT_MODE_n_MODE_SHFT 0x0
|
||
|
|
||
|
#define IPA_ENDP_INIT_HDR_n_OFST_v1(n) (0x000000e0 + 0x4 * (n))
|
||
|
#define IPA_ENDP_INIT_HDR_n_OFST_v2(n) (0x00000120 + 0x4 * (n))
|
||
|
#define IPA_ENDP_INIT_HDR_n_HDR_LEN_BMSK 0x3f
|
||
|
#define IPA_ENDP_INIT_HDR_n_HDR_LEN_SHFT 0x0
|
||
|
#define IPA_ENDP_INIT_HDR_n_HDR_ADDITIONAL_CONST_LEN_BMSK 0x7e000
|
||
|
#define IPA_ENDP_INIT_HDR_n_HDR_ADDITIONAL_CONST_LEN_SHFT 0xd
|
||
|
#define IPA_ENDP_INIT_HDR_n_HDR_OFST_PKT_SIZE_BMSK 0x3f00000
|
||
|
#define IPA_ENDP_INIT_HDR_n_HDR_OFST_PKT_SIZE_SHFT 0x14
|
||
|
#define IPA_ENDP_INIT_HDR_n_HDR_OFST_PKT_SIZE_VALID_BMSK 0x80000
|
||
|
#define IPA_ENDP_INIT_HDR_n_HDR_OFST_PKT_SIZE_VALID_SHFT 0x13
|
||
|
#define IPA_ENDP_INIT_HDR_n_HDR_A5_MUX_BMSK 0x4000000
|
||
|
#define IPA_ENDP_INIT_HDR_n_HDR_A5_MUX_SHFT 0x1a
|
||
|
|
||
|
#define IPA_ENDP_INIT_HDR_n_HDR_OFST_METADATA_VALID_BMSK 0x40
|
||
|
#define IPA_ENDP_INIT_HDR_n_HDR_OFST_METADATA_VALID_SHFT 0x6
|
||
|
#define IPA_ENDP_INIT_HDR_n_HDR_OFST_METADATA_BMSK 0x1f80
|
||
|
#define IPA_ENDP_INIT_HDR_n_HDR_OFST_METADATA_SHFT 0x7
|
||
|
|
||
|
#define IPA_ENDP_INIT_NAT_n_OFST_v1(n) (0x00000080 + 0x4 * (n))
|
||
|
#define IPA_ENDP_INIT_NAT_n_OFST_v2(n) (0x000000c0 + 0x4 * (n))
|
||
|
#define IPA_ENDP_INIT_NAT_n_NAT_EN_BMSK 0x3
|
||
|
#define IPA_ENDP_INIT_NAT_n_NAT_EN_SHFT 0x0
|
||
|
|
||
|
|
||
|
|
||
|
/*
|
||
|
IPA HW 1.1 specific Registers
|
||
|
*/
|
||
|
|
||
|
#define IPA_FILTER_FILTER_DIS_BMSK 0x1
|
||
|
#define IPA_FILTER_FILTER_DIS_SHFT 0x0
|
||
|
#define IPA_SINGLE_NDP_MODE_OFST 0x00000064
|
||
|
#define IPA_QCNCM_OFST 0x00000060
|
||
|
|
||
|
#define IPA_SPARE_REG_1_OFST 0x00002090
|
||
|
|
||
|
#define IPA_ENDP_INIT_CTRL_n_OFST(n) (0x00000070 + 0x4 * (n))
|
||
|
#define IPA_ENDP_INIT_CTRL_n_RMSK 0x1
|
||
|
#define IPA_ENDP_INIT_CTRL_n_MAXn 19
|
||
|
#define IPA_ENDP_INIT_CTRL_n_ENDP_SUSPEND_BMSK 0x1
|
||
|
#define IPA_ENDP_INIT_CTRL_n_ENDP_SUSPEND_SHFT 0x0
|
||
|
|
||
|
#define IPA_ENDP_INIT_HOL_BLOCK_EN_n_OFST(n) (0x00000270 + 0x4 * (n))
|
||
|
#define IPA_ENDP_INIT_HOL_BLOCK_EN_n_RMSK 0x1
|
||
|
#define IPA_ENDP_INIT_HOL_BLOCK_EN_n_MAXn 19
|
||
|
#define IPA_ENDP_INIT_HOL_BLOCK_EN_n_EN_BMSK 0x1
|
||
|
#define IPA_ENDP_INIT_HOL_BLOCK_EN_n_EN_SHFT 0x0
|
||
|
|
||
|
#define IPA_ENDP_INIT_HOL_BLOCK_TIMER_n_OFST(n) (0x000002c0 + 0x4 * (n))
|
||
|
#define IPA_ENDP_INIT_HOL_BLOCK_TIMER_n_RMSK 0x1ff
|
||
|
#define IPA_ENDP_INIT_HOL_BLOCK_TIMER_n_MAXn 19
|
||
|
#define IPA_ENDP_INIT_HOL_BLOCK_TIMER_n_TIMER_BMSK 0x1ff
|
||
|
#define IPA_ENDP_INIT_HOL_BLOCK_TIMER_n_TIMER_SHFT 0x0
|
||
|
|
||
|
#define IPA_DEBUG_CNT_REG_n_OFST(n) (0x00000340 + 0x4 * (n))
|
||
|
#define IPA_DEBUG_CNT_REG_n_RMSK 0xffffffff
|
||
|
#define IPA_DEBUG_CNT_REG_n_MAXn 15
|
||
|
#define IPA_DEBUG_CNT_REG_n_DBG_CNT_REG_BMSK 0xffffffff
|
||
|
#define IPA_DEBUG_CNT_REG_n_DBG_CNT_REG_SHFT 0x0
|
||
|
|
||
|
#define IPA_DEBUG_CNT_CTRL_n_OFST(n) (0x00000380 + 0x4 * (n))
|
||
|
#define IPA_DEBUG_CNT_CTRL_n_RMSK 0x1ff1f171
|
||
|
#define IPA_DEBUG_CNT_CTRL_n_MAXn 15
|
||
|
#define IPA_DEBUG_CNT_CTRL_n_DBG_CNT_RULE_INDEX_BMSK 0x1ff00000
|
||
|
#define IPA_DEBUG_CNT_CTRL_n_DBG_CNT_RULE_INDEX_SHFT 0x14
|
||
|
#define IPA_DEBUG_CNT_CTRL_n_DBG_CNT_SOURCE_PIPE_BMSK 0x1f000
|
||
|
#define IPA_DEBUG_CNT_CTRL_n_DBG_CNT_SOURCE_PIPE_SHFT 0xc
|
||
|
#define IPA_DEBUG_CNT_CTRL_n_DBG_CNT_PRODUCT_BMSK 0x100
|
||
|
#define IPA_DEBUG_CNT_CTRL_n_DBG_CNT_PRODUCT_SHFT 0x8
|
||
|
#define IPA_DEBUG_CNT_CTRL_n_DBG_CNT_TYPE_BMSK 0x70
|
||
|
#define IPA_DEBUG_CNT_CTRL_n_DBG_CNT_TYPE_SHFT 0x4
|
||
|
#define IPA_DEBUG_CNT_CTRL_n_DBG_CNT_EN_BMSK 0x1
|
||
|
#define IPA_DEBUG_CNT_CTRL_n_DBG_CNT_EN_SHFT 0x0
|
||
|
|
||
|
|
||
|
#endif
|
||
|
|
||
|
|