FPGA----zynq 7000与zynqMP内存区域保留方法

1、问题的由来:

我们在使用SoC时,不可避免的使用了AXI-HP通道以完成FPGA和ARM的交互,这个交互如果定义在内存区域,那么就需要将这一片内存区域保护起来,防止linux调用。

2、zynq与zynqMP的内存管理方式不同

3、对于zynq 7000系列的设备只需要写设备树的保护即可

bash 复制代码
/include/ "system-conf.dtsi"

/ {
    reserved-memory {
        #address-cells = <1>;
        #size-cells = <1>;
        ranges;

        pl_buffer: buffer@2000000 {
            reg = <0x02000000 0x00000100>;
            no-map;
            compatible = "shared-dma-pool";
        };

        ps_buffer: buffer@2010000 {
            reg = <0x02010000 0x00000100>;
            no-map;
            compatible = "shared-dma-pool";
        };
    };
};

4、对于zynqMP系列,需要配置内核+设备数的原则

(1)配置内核,使得ddr可以通过 /dev/mem/ 被读写

bash 复制代码
#配置内核
petalinux-config -c kernel


#输入"/"进入搜索界面
#搜索:DEVMEM,并配置下述两个选项
DEVMEM=y
STRICT_DEVMEM=n

(2)编写设备树

bash 复制代码
/include/ "system-conf.dtsi"

/ {
    #address-cells = <2>;
    #size-cells = <2>;

    reserved-memory {
        #address-cells = <2>;
        #size-cells = <2>;
        ranges;

        pl_buffer: buffer@02000000 {
            reg = <0x0 0x02000000 0x0 0x00000100>;
            no-map;
            compatible = "shared-dma-pool";
        };

        ps_buffer: buffer@02010000 {
            reg = <0x0 0x02010000 0x0 0x00000100>;
            no-map;
            compatible = "shared-dma-pool";
        };
    };
};

注意:必须是<2>,ARM64 内核需要这样才能正确解析 64-bit 地址,否则就报 unsupported node format

相关推荐
szxinmai主板定制专家16 小时前
电力边缘 AI 落地难点剖析:RK 系列 + FPGA 异构平台在储能监控终端的 EMC 与算力优化
人工智能·fpga开发·arm+fpga·rk3588+fpga
szxinmai主板定制专家16 小时前
基于RK3588+FPGA+AI的储能电站边缘网关,实现电力数据采集与智能预警
arm开发·人工智能·fpga开发·rk3576·半导体设备
XMAIPC_Robot17 小时前
储能控制器产品化:ARM+FPGA整机高低温、EMC可靠性测试实战总结
arm开发·人工智能·fpga开发·arm+fpga·rk3588+fpga
szxinmai主板定制专家18 小时前
面向虚拟电厂协调控制:RK3588+FPGA+AI边缘控制器设计思路与算力评估
人工智能·嵌入式硬件·fpga开发·机器人·jetson·zynq·振动采集
XMAIPC_Robot20 小时前
国产FPGA替代Xilinx在储能电力采集场景可行性评估与移植经验
人工智能·算法·机器学习·fpga开发·rk3588+fpga
星夜离尘5621 小时前
Testbench不只看波形:用scoreboard抓住丢包、重复和乱序
fpga开发·verilog·testbench·scoreboard
狂奔蜗牛(bradley)21 小时前
EtherCAT 主站拓扑判定的三级防护:从去抖到振荡检测
人工智能·嵌入式硬件·fpga开发·架构
XMAIPC_Robot21 小时前
工商业储能EMS边缘计算:本地AI负荷预测,彻底摆脱云端依赖
人工智能·fpga开发·机器人·边缘计算·arm+fpga·rk3588+fpga
XMAIPC_Robot21 小时前
FPGA+ARM联合调试避坑:储能电力采样数据同步、丢包问题定位与根治方案,应用于储能EMS、微网控制器中
arm开发·人工智能·fpga开发·rk3588+fpga·rk3576+fpga