0

I am following a confluence page written by Xilinx to create a reserved memory region for DMA access. Confluence is here https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18841683/Linux+Reserved+Memory

I declared it in the device tree as

reserved-memory {
      #address-cells = <2>;
      #size-cells = <2>;
      ranges;
  
      reserved: buffer@0 {
         compatible = "shared-dma-pool";
         no-map;
         reg = <0x0 0xa0000000 0x0 0x10000000>;
      };
   };
  
   reserved-driver@0 {
      compatible = "xlnx,reserved-memory";
      memory-region = <&reserved>;
   };

In the dmesg however, I do not see it having created this device at this address. I thought cat /proc/iomem would show it, but it does not.

Is there another way to create a reserved region of memory for DMA access? I also tried the CMA region already used by the kernel bootargs, but accessing that caused the processor to crash.

Processor is a microblaze.

sawdust
  • 16,103
  • 3
  • 40
  • 50
  • You can check out some successful reserved memory configurations for PetaLinux 2018.1 and PetaLinux 2022.1 here: https://stackoverflow.com/questions/66908883/cannot-reserve-memory-on-petalinux2020-2/67060652#67060652 – thelummox Aug 18 '23 at 14:30
  • You seem to taken that documentation too literally. The example you copied is for "*generating a DMA memory pool reserved for a particular device driver.*" That "*particular device driver*" is specified by the `compatible` property. Do you have a driver in your kernel that matches `compatible = "xlnx,reserved-memory"`? – sawdust Aug 18 '23 at 22:31
  • I am not entirely sure if I do. I'm a newbie so I use the petalinux kernel configuration options – Makuta Arguilleres Aug 19 '23 at 12:38

0 Answers0