<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>i.MX ProcessorsのトピックRe: iMX6ULL DCP + MMU</title>
    <link>https://community.nxp.com/t5/i-MX-Processors/iMX6ULL-DCP-MMU/m-p/781222#M121355</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;To whom it concerns,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I found it works as long as the source buffer, destination buffer, and command are all mmap'ed such that&lt;/P&gt;&lt;P&gt;1) both addr and offset are the same (1st and last parameter)&lt;/P&gt;&lt;P&gt;2) prot =&amp;nbsp;PROT_NOCACHE | PROT_READ | PROT_WRITE&lt;/P&gt;&lt;P&gt;3) flags =&amp;nbsp;MAP_SHARED | MAP_PHYS | MAP_FIXED | MAP_NOSYNCFILE&lt;/P&gt;&lt;P&gt;4) fileds = NOFD&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;example:&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 13px;"&gt;#define MMAP_PROT (PROT_NOCACHE | PROT_READ | PROT_WRITE)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px;"&gt;#define MMAP_FLAGS (MAP_SHARED | MAP_PHYS | MAP_FIXED | MAP_NOSYNCFILE) &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px;"&gt;#define MMAP_FILE_DES NOFD&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 13px;"&gt;srcBuf = (volatile uint32_t*) mmap((void* const)OCRAM_SRC_BUF_ADDR, OCRAM_BUF_SIZE, MMAP_PROT, MMAP_FLAGS, MMAP_FILE_DES, OCRAM_SRC_BUF_ADDR);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px;"&gt; dstBuf = (volatile uint32_t*) mmap((void* const)OCRAM_DST_BUF_ADDR, OCRAM_BUF_SIZE, MMAP_PROT, MMAP_FLAGS, MMAP_FILE_DES, OCRAM_DST_BUF_ADDR);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px;"&gt; cmd = (volatile DcpWorkPacket*) mmap((void* const)OCRAM_CMD_ADDR, sizeof(DcpWorkPacket), MMAP_PROT, MMAP_FLAGS, MMAP_FILE_DES, OCRAM_CMD_ADDR);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This forces the mapped addresses to be the same as the physical addresses being mapped, and removes all buffering.&amp;nbsp;&amp;nbsp;It appears as though the DCP is incapable of IO unless the mapped addresses are the same as the physical addresses.&amp;nbsp; When I remove MAP_FIXED, it fails.&amp;nbsp; This may be unfortunate because not all OSs support MAP_FIXED.&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 11 Dec 2018 21:46:42 GMT</pubDate>
    <dc:creator>stephenbialkows</dc:creator>
    <dc:date>2018-12-11T21:46:42Z</dc:date>
    <item>
      <title>iMX6ULL DCP + MMU</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/iMX6ULL-DCP-MMU/m-p/781221#M121354</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;I have a custom i.MX6ULL board.&amp;nbsp; I tested a set of DCP routines on a bare metal board (no OS, just asm initialization and main).&amp;nbsp; Now I am trying to test these same routines after an OS has enabled the MMU.&amp;nbsp; No combination of logical mmap() options seems to allow the DCP direct access to OCRAM.&amp;nbsp; Is it physically possible for the DCP to operate on OCRAM when the MMU is enabled?&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks!&lt;/P&gt;&lt;P&gt;Stephen&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 11 Dec 2018 01:10:08 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/iMX6ULL-DCP-MMU/m-p/781221#M121354</guid>
      <dc:creator>stephenbialkows</dc:creator>
      <dc:date>2018-12-11T01:10:08Z</dc:date>
    </item>
    <item>
      <title>Re: iMX6ULL DCP + MMU</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/iMX6ULL-DCP-MMU/m-p/781222#M121355</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;To whom it concerns,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I found it works as long as the source buffer, destination buffer, and command are all mmap'ed such that&lt;/P&gt;&lt;P&gt;1) both addr and offset are the same (1st and last parameter)&lt;/P&gt;&lt;P&gt;2) prot =&amp;nbsp;PROT_NOCACHE | PROT_READ | PROT_WRITE&lt;/P&gt;&lt;P&gt;3) flags =&amp;nbsp;MAP_SHARED | MAP_PHYS | MAP_FIXED | MAP_NOSYNCFILE&lt;/P&gt;&lt;P&gt;4) fileds = NOFD&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;example:&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 13px;"&gt;#define MMAP_PROT (PROT_NOCACHE | PROT_READ | PROT_WRITE)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px;"&gt;#define MMAP_FLAGS (MAP_SHARED | MAP_PHYS | MAP_FIXED | MAP_NOSYNCFILE) &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px;"&gt;#define MMAP_FILE_DES NOFD&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 13px;"&gt;srcBuf = (volatile uint32_t*) mmap((void* const)OCRAM_SRC_BUF_ADDR, OCRAM_BUF_SIZE, MMAP_PROT, MMAP_FLAGS, MMAP_FILE_DES, OCRAM_SRC_BUF_ADDR);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px;"&gt; dstBuf = (volatile uint32_t*) mmap((void* const)OCRAM_DST_BUF_ADDR, OCRAM_BUF_SIZE, MMAP_PROT, MMAP_FLAGS, MMAP_FILE_DES, OCRAM_DST_BUF_ADDR);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px;"&gt; cmd = (volatile DcpWorkPacket*) mmap((void* const)OCRAM_CMD_ADDR, sizeof(DcpWorkPacket), MMAP_PROT, MMAP_FLAGS, MMAP_FILE_DES, OCRAM_CMD_ADDR);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This forces the mapped addresses to be the same as the physical addresses being mapped, and removes all buffering.&amp;nbsp;&amp;nbsp;It appears as though the DCP is incapable of IO unless the mapped addresses are the same as the physical addresses.&amp;nbsp; When I remove MAP_FIXED, it fails.&amp;nbsp; This may be unfortunate because not all OSs support MAP_FIXED.&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 11 Dec 2018 21:46:42 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/iMX6ULL-DCP-MMU/m-p/781222#M121355</guid>
      <dc:creator>stephenbialkows</dc:creator>
      <dc:date>2018-12-11T21:46:42Z</dc:date>
    </item>
  </channel>
</rss>

