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