<?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: Cannot allocate a DMA buffer in kernel module</title>
    <link>https://community.nxp.com/t5/i-MX-Processors/Cannot-allocate-a-DMA-buffer-in-kernel-module/m-p/518129#M84124</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi quentin&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;please post this on kernel.org mail list&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best regards&lt;/P&gt;&lt;P&gt;igor&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 13 Jun 2016 03:57:11 GMT</pubDate>
    <dc:creator>igorpadykov</dc:creator>
    <dc:date>2016-06-13T03:57:11Z</dc:date>
    <item>
      <title>Cannot allocate a DMA buffer in kernel module</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Cannot-allocate-a-DMA-buffer-in-kernel-module/m-p/518126#M84121</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Sir,&lt;/P&gt;&lt;P&gt;I try to allocate a buffer in my kernel module but it failed.&lt;/P&gt;&lt;P&gt;Below is my testing kernel module codes.&lt;/P&gt;&lt;P&gt;---------------------------------------------------------&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; void&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; __iomem *dma_vbase = NULL;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned long&amp;nbsp; dma_pbase = 0, size = 0x2000000;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned long&amp;nbsp; pbase = 0;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pbase = isa_virt_to_bus(high_memory);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; dma_pbase = pbase;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; dma_vbase = ioremap_nocache(dma_pbase, size);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (dma_vbase != NULL) {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pr_info("dma_vbase: %p\n", dma_vbase);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; iounmap(dma_vbase);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pr_info("--&amp;gt; dma_vbase: %p, dma_pbase: %lx, allocated size: %lx\n", dma_vbase, dma_pbase, (unsigned long)size);&lt;/P&gt;&lt;P&gt;---------------------------------------------------------&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Output:&lt;/P&gt;&lt;P&gt;------------[ cut here ]------------&lt;/P&gt;&lt;P&gt;WARNING: CPU: 0 PID: 638 at arch/arm/mm/ioremap.c:301 __arm_ioremap_pfn_caller+0x184/0x1a8()&lt;/P&gt;&lt;P&gt;Modules linked in: linux_kernel_bde(PO+)&lt;/P&gt;&lt;P&gt;CPU: 0 PID: 638 Comm: insmod Tainted: P&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; O 3.14.52-1.1.0_ga #4&lt;/P&gt;&lt;P&gt;[&amp;lt;80015788&amp;gt;] (unwind_backtrace) from [&amp;lt;80011858&amp;gt;] (show_stack+0x10/0x14)&lt;/P&gt;&lt;P&gt;[&amp;lt;80011858&amp;gt;] (show_stack) from [&amp;lt;80765d38&amp;gt;] (dump_stack+0x7c/0xbc)&lt;/P&gt;&lt;P&gt;[&amp;lt;80765d38&amp;gt;] (dump_stack) from [&amp;lt;80032f60&amp;gt;] (warn_slowpath_common+0x70/0x8c)&lt;/P&gt;&lt;P&gt;[&amp;lt;80032f60&amp;gt;] (warn_slowpath_common) from [&amp;lt;80033018&amp;gt;] (warn_slowpath_null+0x1c/0x24)&lt;/P&gt;&lt;P&gt;[&amp;lt;80033018&amp;gt;] (warn_slowpath_null) from [&amp;lt;8001b504&amp;gt;] (__arm_ioremap_pfn_caller+0x184/0x1a8)&lt;/P&gt;&lt;P&gt;[&amp;lt;8001b504&amp;gt;] (__arm_ioremap_pfn_caller) from [&amp;lt;8001b574&amp;gt;] (__arm_ioremap_caller+0x4c/0x54)&lt;/P&gt;&lt;P&gt;[&amp;lt;8001b574&amp;gt;] (__arm_ioremap_caller) from [&amp;lt;7f001b60&amp;gt;] (_alloc_mpool+0x50/0x11c [linux_kernel_bde])&lt;/P&gt;&lt;P&gt;unwind: Index not found 7f001b60&lt;/P&gt;&lt;P&gt;---[ end trace 11aa9be18d33025f ]---&lt;/P&gt;&lt;P&gt;--&amp;gt; dma_vbase:&amp;nbsp;&amp;nbsp; (null), dma_pbase: 7f800000, allocated size: 2000000&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The function __arm_ioremap_pfn_caller() returns NULL.&lt;/P&gt;&lt;P&gt;I am not familiar to i.MX6 CPU.&lt;/P&gt;&lt;P&gt;Does any one can provide a way to allocate a DMA buffer in kernel module ?&lt;/P&gt;&lt;P&gt;Thank you very much!&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 10 Jun 2016 07:12:32 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Cannot-allocate-a-DMA-buffer-in-kernel-module/m-p/518126#M84121</guid>
      <dc:creator>quentinchang</dc:creator>
      <dc:date>2016-06-10T07:12:32Z</dc:date>
    </item>
    <item>
      <title>Re: Cannot allocate a DMA buffer in kernel module</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Cannot-allocate-a-DMA-buffer-in-kernel-module/m-p/518127#M84122</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi quentin&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;one can try to set sufficient memory in cma (defined in imx_v7_defconfig),&lt;/P&gt;&lt;P&gt;also is board have sufficient free memory (&amp;gt;32MB as requests your code)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best regards&lt;/P&gt;&lt;P&gt;igor&lt;/P&gt;&lt;P&gt;-----------------------------------------------------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;Note: If this post answers your question, please click the Correct Answer button. Thank you!&lt;/P&gt;&lt;P&gt;-----------------------------------------------------------------------------------------------------------------------&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 13 Jun 2016 00:22:36 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Cannot-allocate-a-DMA-buffer-in-kernel-module/m-p/518127#M84122</guid>
      <dc:creator>igorpadykov</dc:creator>
      <dc:date>2016-06-13T00:22:36Z</dc:date>
    </item>
    <item>
      <title>Re: Cannot allocate a DMA buffer in kernel module</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Cannot-allocate-a-DMA-buffer-in-kernel-module/m-p/518128#M84123</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Igor,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks for your reply.&lt;/P&gt;&lt;P&gt;I think cma is configured in kernel defconfig.&lt;/P&gt;&lt;P&gt;---------------------------------------------------------&lt;/P&gt;&lt;P&gt;CONFIG_CMA_SIZE_MBYTES=320&lt;/P&gt;&lt;P&gt;CONFIG_CMA_SIZE_SEL_MBYTES=y&lt;/P&gt;&lt;P&gt;----------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I found the function __arm_ioremap_pfn_caller() return NULL in below code block.&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;/*&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt; * Don't allow RAM to be mapped - this causes problems with ARMv6+&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt; */&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;if (WARN_ON(pfn_valid(pfn)))&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;return NULL;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Do you have any suggestion to this problem ?&lt;/P&gt;&lt;P&gt;Thank you very much.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best regards,&lt;/P&gt;&lt;P&gt;Quentin&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 13 Jun 2016 03:14:01 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Cannot-allocate-a-DMA-buffer-in-kernel-module/m-p/518128#M84123</guid>
      <dc:creator>quentinchang</dc:creator>
      <dc:date>2016-06-13T03:14:01Z</dc:date>
    </item>
    <item>
      <title>Re: Cannot allocate a DMA buffer in kernel module</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Cannot-allocate-a-DMA-buffer-in-kernel-module/m-p/518129#M84124</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi quentin&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;please post this on kernel.org mail list&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best regards&lt;/P&gt;&lt;P&gt;igor&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 13 Jun 2016 03:57:11 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Cannot-allocate-a-DMA-buffer-in-kernel-module/m-p/518129#M84124</guid>
      <dc:creator>igorpadykov</dc:creator>
      <dc:date>2016-06-13T03:57:11Z</dc:date>
    </item>
    <item>
      <title>Re: Cannot allocate a DMA buffer in kernel module</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Cannot-allocate-a-DMA-buffer-in-kernel-module/m-p/518130#M84125</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Igor,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Got it. Thank you!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best regards,&lt;/P&gt;&lt;P&gt;Quentin&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 13 Jun 2016 14:55:55 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Cannot-allocate-a-DMA-buffer-in-kernel-module/m-p/518130#M84125</guid>
      <dc:creator>quentinchang</dc:creator>
      <dc:date>2016-06-13T14:55:55Z</dc:date>
    </item>
  </channel>
</rss>

