• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2020 HiSilicon (Shanghai) Technologies CO., LIMITED.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  * Description: memory config
15  * Create: 2021-11-22
16  */
17 #ifndef __OAL_MEM_POOL_H__
18 #define __OAL_MEM_POOL_H__
19 #ifdef BUILD_UT
20 #include "wifi_ut_stub.h"
21 #endif
22 
23 #ifdef BUILD_UT
24 #else
25 extern unsigned int __wifi_pkt_ram_begin__;
26 extern unsigned int __wifi_pkt_ram_end__;
27 #define OAL_PKTRAM_ADDR_END ((unsigned int)&__wifi_pkt_ram_end__) /* 48K */
28 #define OAL_PKTRAM_ADDR_BEGIN ((unsigned int)&__wifi_pkt_ram_begin__)
29 #define OAL_ALWAYS_PKTRAM_ADDR_END (72 * 1024) /* 72K */
30 #define OAL_ALWAYS_PKTRAM_ADDR_BEGIN 0
31 #endif
32 
33 #define OAL_PKTRAM_ALLOWED_ADDR_END 0x00A97FFF
34 #define OAL_PKTRAM_ALLOWED_ADDR_BEGIN 0x00A00000
35 #define OAL_PKTRAM_CALI_RSV             (0 * 1024) // do not rsv ram
36 
37 /* 预先申请全局变量长度, 73本地内存使用osal接口申请 */
38 #define USE_OAL_MEM_TOTAL_ADDR          1
39 /* 各池起始地址 */
40 #define OAL_MEM_ADDR_TXBFEB_PKT         ((uintptr_t)NULL)
41 #define OAL_MEM_ADDR_TXBFEE_BUFF        (OAL_PKTRAM_ADDR_BEGIN + 4)  /* pktram + 4字节,避免为NULL */
42 #define OAL_MEM_ADDR_PROTECT            (OAL_MEM_ADDR_TXBFEE_BUFF + WLAN_TXBFEE_BUFF_SIZE)
43 #define OAL_MEM_ADDR_COEX               (OAL_MEM_ADDR_PROTECT + WLAN_PROTECT_MAX_LEN)
44 #define OAL_MEM_ADDR_BEACON_PKT         (OAL_MEM_ADDR_COEX + WLAN_COEX_PKT_LEN)
45 #define OAL_MEM_ADDR_NETBUF             (OAL_MEM_ADDR_BEACON_PKT + WLAN_BEACON_PKT_LEN)
46 #define OAL_MEM_ADDR_LOCAL              ((uintptr_t)NULL) /* 全局变量 */
47 
48 #define OAL_NETBUF_HIGH_PRIORITY_COUNT  5
49 
50 /* 描述符个数的宏定义: (SMALL + NORMAL + HI RX-Q) <= WLAN_MEM_RX_DSCR_CNT */
51 #define WLAN_MEM_RX_DSCR_SIZE           64           /* 等于接收描述符结构体,13 * 4 + 12 = 64 */
52 #define WLAN_MEM_TX_DSCR_SIZE           92           /* 等于发送描述符结构体 19 * 4 + 16 = 92 */
53 
54 #define WLAN_MEM_SMALL_RX_MAX_CNT       4
55 #define WLAN_MEM_NORMAL_RX_MAX_CNT      8
56 #define WLAN_MEM_HIGH_RX_MAX_CNT        4
57 
58 /* 本地变量内存池配置信息70k */
59 #define WLAN_MEM_LOCAL_SIZE1            12
60 #define WLAN_MEM_LOCAL_CNT1             128             /* TID 和HAL VAP */
61 
62 #define WLAN_MEM_LOCAL_SIZE2            64
63 #define WLAN_MEM_LOCAL_CNT2             176             /* 200(杂用) */
64 
65 #define WLAN_MEM_LOCAL_SIZE3            264
66 #define WLAN_MEM_LOCAL_CNT3             25
67 
68 #define WLAN_MEM_LOCAL_SIZE4            512             /* 长度为128的事件队列用 */
69 #define WLAN_MEM_LOCAL_CNT4             4
70 
71 #define WLAN_MEM_LOCAL_SIZE5            608             /* PNO扫描使用  hash桶初始化使用1 */
72 #define WLAN_MEM_LOCAL_CNT5             8               /* wps ie 增加1片, 实测SoftAp场景又有6次申请该内存,共8 */
73 
74 #define WLAN_MEM_LOCAL_SIZE6            1024
75 #define WLAN_MEM_LOCAL_CNT6             0               /* dmac_reset_lut_init 使用1 */
76 
77 #define WLAN_MEM_LOCAL_SIZE7            1528            /* dmac_user_stru 使用 */
78 #define WLAN_MEM_LOCAL_CNT7             ((WLAN_DTCM_RAM_ASSOC_USER_MAX_NUM) + (WLAN_MULTI_USER_MAX_NUM_LIMIT))
79 
80 #define WLAN_MEM_LOCAL_SIZE8            4100          /* alg 使用、 msg初始化分配内存使用,msg id rom化由3260--->3800 */
81 #define WLAN_MEM_LOCAL_CNT8             WLAN_DTCM_RAM_ASSOC_USER_MAX_NUM
82 
83 /* MIB内存池 */
84 #define WLAN_MEM_MIB_SIZE1              512             /* mib结构体大小 */
85 #define WLAN_MEM_MIB_CNT1               0               /* 配置VAP没有MIB WLAN_SERVICE_VAP_SUPPORT_MAX_NUM_LIMIT */
86 
87 /* pktram不足时可从系统内存申请的大小 */
88 #ifdef WIFI_TCM_OPTIMIZE
89 #define WLAN_RAM_NETBUF_MAX_SIZE        (48 * 1024)
90 #else
91 #define WLAN_RAM_NETBUF_MAX_SIZE        (27 * 1024)    /* app版本需要限制总动态内存使用 */
92 #endif
93 
94 /* netbuf内存池 */
95 #define WLAN_SHORT_NETBUF_SIZE          180             /* 短帧长度 payload:180 */
96 #define WLAN_SMGMT_NETBUF_SIZE          400             /* 短管理帧长度 payload:400 */
97 #define WLAN_MGMT_NETBUF_SIZE           768             /* 管理帧长度 payload:768 */
98 #define WLAN_LARGE_NETBUF_SIZE          1600            /* 长帧长度 payload:1600 */
99 #define WLAN_SHORT_NETBUF_CNT           9              /* 短帧netbufpayload个数 */
100 #define WLAN_SMGMT_NETBUF_CNT           0              /* 短管理帧netbufpayload个数 */
101 #define WLAN_MGMT_NETBUF_CNT            10             /* 管理帧netbufpayload个数 */
102 #define WLAN_LARGE_NETBUF_CNT           16             /* 长帧netbufpayload个数 */
103 #define WLAN_ALWAYS_SHORT_NETBUF_CNT    12              /* 长发长收短帧netbufpayload个数 */
104 #define WLAN_ALWAYS_SMGMT_NETBUF_CNT    0               /* 长发长收短管理帧netbufpayload个数 */
105 #define WLAN_ALWAYS_MGMT_NETBUF_CNT     9               /* 长发长收管理帧netbufpayload个数 */
106 #define WLAN_ALWAYS_NETBUF_CNT          9               /* 长发长收netbufpayload个数 */
107 
108 #define ZERO_COPY_PBUF_HDR_LEN      40
109 #define ZERO_COPY_SKB_HDR_LEN       120
110 #define LWIP_ZERO_COPY_HDR    (ZERO_COPY_PBUF_HDR_LEN + ZERO_COPY_SKB_HDR_LEN)
111 
112 #endif /* end of oal_mem_pool.h */
113