一、平台信息
平台:触觉智能IDO-EVB3588-V1
WIFI模组:欧飞信O7851PM
Kernel版本:GNU/Linux 5.10.110 aarch64
系统版本:Ubuntu 20.04.6 LTS
搭载RK3588高性能SOC,集成了四核Cortex-A76和四核Cortex-A55 CPU,主频高达2.4G
O7851PM与开发板连接实物图如下,模块通过M.2转接板插在开发板的M.2接口
上电后查询识别模块正常如下:
root@Industio:~# lspci
0000:01:00.0 Network controller: Qualcomm Device 1107 (rev 01)
二、平台kernel配置
1、设置DMA预留内存大小
通过内核.config设置DMA预留内存大小:
CONFIG_CMA_SIZE_MBYTES=512
也可以通过dts设备树修改预留内存的大小
我这里dts文件是kernel/arch/arm64/boot/dts/rockchip/ido-evb3588-v1b.dtsi
请根据实际情况找到对应的dts文件,修改reserved-memory节点如下:
reserved-memory {
#address-cells = <2>;
#size-cells = <2>;
ranges;
/* Reserve 128MB memory for hdmirx-controller@fdee0000 */
cma {
compatible = "shared-dma-pool";
reusable;
reg = <0x0 (256 * 0x100000) 0x0 (512 * 0x100000)>;
linux,cma-default;
};
};
修改完后重新编译内核并烧录到开发板,可使用cat /proc/meminfo查看修改是否成功,如下所示:
CmaTotal: 524288 kB //总大小512M左右
CmaAllocated: 4672 kB
CmaReleased: 518238 kB
CmaFree: 518338 kB //空闲内存
三、O7851PM驱动的交叉编译及加载
解压驱动
wcn7850-lea-1-0_qca_standard_oem-r00005.2-4c2b60cd7a47607ddd98faf8