Home | History | Annotate | Download | only in include
      1 /******************************************************************************
      2  *
      3  *  Copyright (C) 1999-2012 Broadcom Corporation
      4  *
      5  *  Licensed under the Apache License, Version 2.0 (the "License");
      6  *  you may not use this file except in compliance with the License.
      7  *  You may obtain a copy of the License at:
      8  *
      9  *  http://www.apache.org/licenses/LICENSE-2.0
     10  *
     11  *  Unless required by applicable law or agreed to in writing, software
     12  *  distributed under the License is distributed on an "AS IS" BASIS,
     13  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     14  *  See the License for the specific language governing permissions and
     15  *  limitations under the License.
     16  *
     17  ******************************************************************************/
     18 #ifndef GKI_TARGET_H
     19 #define GKI_TARGET_H
     20 
     21 #ifdef BUILDCFG
     22 #include "buildcfg.h"
     23 #endif
     24 
     25 #include "data_types.h"
     26 
     27 /******************************************************************************
     28 **
     29 ** Task configuration
     30 **
     31 ******************************************************************************/
     32 
     33 /* Definitions of task IDs for inter-task messaging */
     34 #ifndef MMI_TASK
     35 #define MMI_TASK 0
     36 #endif
     37 
     38 #ifndef HCISU_TASK
     39 #define HCISU_TASK 1
     40 #endif
     41 
     42 #ifndef NCIT_TASK
     43 #define NCIT_TASK 2
     44 #endif
     45 
     46 #ifndef NFC_TASK
     47 #define NFC_TASK 3
     48 #endif
     49 
     50 #ifndef BTU_TASK
     51 #define BTU_TASK 4
     52 #endif
     53 
     54 /* BTE Application, Sample Apps, or Serial port Demo based on JP3 and JP4
     55  * setting) */
     56 #ifndef BTE_APPL_TASK
     57 #define BTE_APPL_TASK 5
     58 #endif
     59 
     60 #ifndef DEV_MGR_TASK
     61 #define DEV_MGR_TASK 6
     62 #endif
     63 
     64 #ifndef ISE_SCR_TASK
     65 #define ISE_SCR_TASK 7
     66 #endif
     67 
     68 #ifndef UCODEC_TASK
     69 #define UCODEC_TASK 8
     70 #endif
     71 
     72 #ifndef RPCT_TASK
     73 #define RPCT_TASK 9
     74 #endif
     75 
     76 #ifndef UNV_TASK
     77 #define UNV_TASK 10
     78 #endif
     79 
     80 #ifndef BTE_IDLE_TASK
     81 #define BTE_IDLE_TASK 11
     82 #endif
     83 
     84 #ifndef UIPC_TASK
     85 #define UIPC_TASK 12
     86 #endif
     87 
     88 #ifndef HCISU_AMP_TASK
     89 #define HCISU_AMP_TASK 13
     90 #endif
     91 
     92 /* The number of GKI tasks in the software system. */
     93 #ifndef GKI_MAX_TASKS
     94 #define GKI_MAX_TASKS 14
     95 #endif
     96 
     97 /******************************************************************************
     98 **
     99 ** Timer configuration
    100 **
    101 ******************************************************************************/
    102 
    103 /* The number of GKI timers in the software system. */
    104 #ifndef GKI_NUM_TIMERS
    105 #define GKI_NUM_TIMERS 3
    106 #endif
    107 
    108 /* A conversion value for translating ticks to calculate GKI timer.  */
    109 #ifndef TICKS_PER_SEC
    110 #define TICKS_PER_SEC 100
    111 #endif
    112 
    113 /* delay in ticks before stopping system tick. */
    114 #ifndef GKI_DELAY_STOP_SYS_TICK
    115 #define GKI_DELAY_STOP_SYS_TICK 10
    116 #endif
    117 
    118 /******************************************************************************
    119 **
    120 ** Buffer configuration
    121 **
    122 ******************************************************************************/
    123 
    124 /* The size of the buffers in pool 0. */
    125 #ifndef GKI_BUF0_SIZE
    126 #define GKI_BUF0_SIZE 64
    127 #endif
    128 
    129 /* The number of buffers in buffer pool 0. */
    130 #ifndef GKI_BUF0_MAX
    131 #define GKI_BUF0_MAX 48
    132 #endif
    133 
    134 /* The ID of buffer pool 0. */
    135 #ifndef GKI_POOL_ID_0
    136 #define GKI_POOL_ID_0 0
    137 #endif
    138 
    139 /* The size of the buffers in pool 1. */
    140 #ifndef GKI_BUF1_SIZE
    141 #define GKI_BUF1_SIZE 128
    142 #endif
    143 
    144 /* The number of buffers in buffer pool 1. */
    145 #ifndef GKI_BUF1_MAX
    146 #define GKI_BUF1_MAX 26
    147 #endif
    148 
    149 /* The ID of buffer pool 1. */
    150 #ifndef GKI_POOL_ID_1
    151 #define GKI_POOL_ID_1 1
    152 #endif
    153 
    154 /* The size of the buffers in pool 2. */
    155 #ifndef GKI_BUF2_SIZE
    156 #define GKI_BUF2_SIZE 660
    157 #endif
    158 
    159 /* The number of buffers in buffer pool 2. */
    160 #ifndef GKI_BUF2_MAX
    161 #define GKI_BUF2_MAX 45
    162 #endif
    163 
    164 /* The ID of buffer pool 2. */
    165 #ifndef GKI_POOL_ID_2
    166 #define GKI_POOL_ID_2 2
    167 #endif
    168 
    169 /* The size of the buffers in pool 3. */
    170 #ifndef GKI_BUF3_SIZE
    171 #define GKI_BUF3_SIZE (0xFFB0)
    172 #endif
    173 
    174 /* The number of buffers in buffer pool 3. */
    175 #ifndef GKI_BUF3_MAX
    176 #define GKI_BUF3_MAX 30
    177 #endif
    178 
    179 /* The ID of buffer pool 3. */
    180 #ifndef GKI_POOL_ID_3
    181 #define GKI_POOL_ID_3 3
    182 #endif
    183 
    184 /* The size of the largest PUBLIC fixed buffer in system. */
    185 #ifndef GKI_MAX_BUF_SIZE
    186 #define GKI_MAX_BUF_SIZE GKI_BUF3_SIZE
    187 #endif
    188 
    189 /* The pool ID of the largest PUBLIC fixed buffer in system. */
    190 #ifndef GKI_MAX_BUF_SIZE_POOL_ID
    191 #define GKI_MAX_BUF_SIZE_POOL_ID GKI_POOL_ID_3
    192 #endif
    193 
    194 /* RESERVED buffer pool for OBX */
    195 /* Ideally there should be 1 buffer for each instance for RX data, and some
    196 number
    197 of TX buffers based on active instances. OBX will only use these if packet size
    198 requires it. In most cases the large packets are used in only one direction so
    199 the other direction will use smaller buffers.
    200 Devices with small amount of RAM should limit the number of active obex objects.
    201 */
    202 /* The size of the buffers in pool 4. */
    203 #ifndef GKI_BUF4_SIZE
    204 #define GKI_BUF4_SIZE 0x2000
    205 #endif
    206 
    207 /* The number of buffers in buffer pool 4. */
    208 #ifndef GKI_BUF4_MAX
    209 /* (OBX_NUM_SERVERS + OBX_NUM_CLIENTS) */
    210 #define GKI_BUF4_MAX 96
    211 #endif
    212 
    213 /* The ID of buffer pool 4. */
    214 #ifndef GKI_POOL_ID_4
    215 #define GKI_POOL_ID_4 4
    216 #endif
    217 
    218 /* The number of fixed GKI buffer pools.
    219 If L2CAP_FCR_INCLUDED is FALSE, Pool ID 5 is unnecessary
    220 If BTM_SCO_HCI_INCLUDED is FALSE, Pool ID 6 is unnecessary, otherwise set to 7
    221 If BTA_HL_INCLUDED is FALSE then Pool ID 7 is uncessary and set the following to
    222 7, otherwise set to 8
    223 If GATT_SERVER_ENABLED is FALSE then Pool ID 8 is uncessary and set the
    224 following to 8, otherwise set to 9
    225 */
    226 #ifndef GKI_NUM_FIXED_BUF_POOLS
    227 #define GKI_NUM_FIXED_BUF_POOLS 9
    228 #endif
    229 
    230 /* The buffer pool usage mask. */
    231 #ifndef GKI_DEF_BUFPOOL_PERM_MASK
    232 #define GKI_DEF_BUFPOOL_PERM_MASK 0xfff0
    233 #endif
    234 
    235 /* The number of fixed and dynamic buffer pools.
    236 If L2CAP_FCR_INCLUDED is FALSE, Pool ID 4 is unnecessary */
    237 #ifndef GKI_NUM_TOTAL_BUF_POOLS
    238 #define GKI_NUM_TOTAL_BUF_POOLS 10
    239 #endif
    240 
    241 /* The following is intended to be a reserved pool for L2CAP
    242 Flow control and retransmissions and intentionally kept out
    243 of order */
    244 
    245 /* The number of buffers in buffer pool 5. */
    246 #ifndef GKI_BUF5_MAX
    247 #define GKI_BUF5_MAX 64
    248 #endif
    249 
    250 /* The ID of buffer pool 5. */
    251 #ifndef GKI_POOL_ID_5
    252 #define GKI_POOL_ID_5 5
    253 #endif
    254 
    255 /* The size of the buffers in pool 5
    256 ** Special pool used by l2cap retransmissions only. This size based on segment
    257 ** that will fit into both DH5 and 2-DH3 packet types after accounting for GKI
    258 ** header. 13 bytes of max headers allows us a 339 payload max.
    259 ** (in btui_app.txt)
    260 ** Note: 748 used for insight scriptwrapper with CAT-2 scripts.
    261 */
    262 #ifndef GKI_BUF5_SIZE
    263 #define GKI_BUF5_SIZE 748
    264 #endif
    265 
    266 /* The buffer corruption check flag. */
    267 #ifndef GKI_ENABLE_BUF_CORRUPTION_CHECK
    268 #define GKI_ENABLE_BUF_CORRUPTION_CHECK TRUE
    269 #endif
    270 
    271 /* The GKI severe error macro. */
    272 #ifndef GKI_SEVERE
    273 #define GKI_SEVERE(code)
    274 #endif
    275 
    276 /* Maximum number of exceptions logged. */
    277 #ifndef GKI_MAX_EXCEPTION
    278 #define GKI_MAX_EXCEPTION 8
    279 #endif
    280 
    281 /* Maximum number of chars stored for each exception message. */
    282 #ifndef GKI_MAX_EXCEPTION_MSGLEN
    283 #define GKI_MAX_EXCEPTION_MSGLEN 64
    284 #endif
    285 
    286 #ifndef GKI_SEND_MSG_FROM_ISR
    287 #define GKI_SEND_MSG_FROM_ISR FALSE
    288 #endif
    289 
    290 /* The following is intended to be a reserved pool for SCO
    291 over HCI data and intentionally kept out of order */
    292 
    293 /* The ID of buffer pool 6. */
    294 #ifndef GKI_POOL_ID_6
    295 #define GKI_POOL_ID_6 6
    296 #endif
    297 
    298 /* The size of the buffers in pool 6,
    299   BUF_SIZE = max SCO data 255 + sizeof(NFC_HDR) = 8 + SCO packet header 3 +
    300   padding 2 = 268 */
    301 #ifndef GKI_BUF6_SIZE
    302 #define GKI_BUF6_SIZE 268
    303 #endif
    304 
    305 /* The number of buffers in buffer pool 6. */
    306 #ifndef GKI_BUF6_MAX
    307 #define GKI_BUF6_MAX 60
    308 #endif
    309 
    310 /* The following pool is a dedicated pool for HDP
    311    If a shared pool is more desirable then
    312    1. set BTA_HL_LRG_DATA_POOL_ID to the desired Gki Pool ID
    313    2. make sure that the shared pool size is larger than 9472
    314    3. adjust GKI_NUM_FIXED_BUF_POOLS accordingly since
    315       POOL ID 7 is not needed
    316 */
    317 
    318 /* The ID of buffer pool 7. */
    319 #ifndef GKI_POOL_ID_7
    320 #define GKI_POOL_ID_7 7
    321 #endif
    322 
    323 /* The size of the buffers in pool 7 */
    324 #ifndef GKI_BUF7_SIZE
    325 #define GKI_BUF7_SIZE 9472
    326 #endif
    327 
    328 /* The number of buffers in buffer pool 7. */
    329 #ifndef GKI_BUF7_MAX
    330 #define GKI_BUF7_MAX 2
    331 #endif
    332 
    333 /* The following pool is a dedicated pool for GATT
    334    If a shared pool is more desirable then
    335    1. set GATT_DB_POOL_ID to the desired Gki Pool ID
    336    2. make sure that the shared pool size fit a common GATT database needs
    337    3. adjust GKI_NUM_FIXED_BUF_POOLS accordingly since
    338       POOL ID 8 is not needed
    339 */
    340 
    341 /* The ID of buffer pool 8. */
    342 #ifndef GKI_POOL_ID_8
    343 #define GKI_POOL_ID_8 8
    344 #endif
    345 
    346 /* The size of the buffers in pool 8 */
    347 #ifndef GKI_BUF8_SIZE
    348 #define GKI_BUF8_SIZE 128
    349 #endif
    350 
    351 /* The number of buffers in buffer pool 8. */
    352 #ifndef GKI_BUF8_MAX
    353 #define GKI_BUF8_MAX 30
    354 #endif
    355 
    356 #endif /* GKI_TARGET_H */
    357