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主板定制专家13 小时前
基于ZYNQ MPSOC图像采集与压缩系统总体设计方案
linux·arm开发·人工智能·嵌入式硬件·fpga开发
hhb_61815 小时前
VHDL设计难点与实战案例精解
fpga开发
阳排18 小时前
FT2232芯片通过JTAG连接Xilinx FPGA
fpga开发
szxinmai主板定制专家19 小时前
基于ZYNQ MPSOC ARM+FPGA的超高清实时图像采集与压缩系统设计
linux·运维·服务器·arm开发·人工智能·嵌入式硬件·fpga开发
GateWorld20 小时前
LCD显示技术完全指南:原理·制造·驱动·FPGA实现之驱动三
fpga开发·lcd显示·fpga点亮屏幕·minilvds
FPGA的花路2 天前
基于脚本的ModelSim自动化仿真(Xilinx FPGA篇)
fpga开发·xilinx·自动化脚本·modelsim仿真
汽车仪器仪表相关领域2 天前
Kvaser Hybrid Pro 2xCAN/LIN 双通道可编程CAN/LIN通讯接口:一机双模可编程,汽车车身混合总线测试专用设备
人工智能·功能测试·安全·fpga开发·汽车·压力测试
szxinmai主板定制专家2 天前
电力设备RK3568/RK3576+FPGA,多系统混合部署Linux+RTOS RT-THREAD,强实时性
linux·运维·服务器·人工智能·嵌入式硬件·fpga开发
ALINX技术博客3 天前
【黑金云课堂】FPGA技术教程Vitis开发:PS端DP接口解析
fpga开发·fpga
FakeOccupational3 天前
fpga系列 HDL:跨时钟域同步 shift register同步(CDC)毛刺滤除&解码前去抖动滤波模块
fpga开发