<div dir="ltr"><div style><span class="" style="white-space:pre"><span style="font-family:arial,sans-serif;font-size:13.333333969116211px;white-space:normal">&gt;please give your detail calling example, it is weired that you did not get</span><br style="font-family:arial,sans-serif;font-size:13.333333969116211px;white-space:normal">

<span style="font-family:arial,sans-serif;font-size:13.333333969116211px;white-space:normal">&gt;0x0 returned.</span><br></span></div><div style><span class="" style="white-space:pre"><br></span></div><div style><span class="" style="white-space:pre">I have the following code like below. In my case it is not returning NULL.        </span></div>

<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;/*</div><div><span class="" style="white-space:pre">        </span> * Don&#39;t allow RAM to be mapped - this causes problems with ARMv6+</div><div><span class="" style="white-space:pre">        </span> */</div><div><span class="" style="white-space:pre">        </span>if (pfn_valid(pfn)) {</div>

<div><span class="" style="white-space:pre">                </span>printk(KERN_WARNING &quot;BUG: Your driver calls ioremap() on system memory. &nbsp;This leads\n&quot;</div><div><span class="" style="white-space:pre">                </span> &nbsp; &nbsp; &nbsp; KERN_WARNING &quot;to architecturally unpredictable behaviour on ARMv6+, and ioremap()\n&quot;</div>

<div><span class="" style="white-space:pre">                </span> &nbsp; &nbsp; &nbsp; KERN_WARNING &quot;will fail in the next kernel release. &nbsp;Please fix your driver.\n&quot;);</div><div><span class="" style="white-space:pre">                </span>WARN_ON(1);</div>

<div><span class="" style="white-space:pre">        </span>}</div><div><br></div><div style>Thanks</div><div style>Sandeep</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Mon, Mar 4, 2013 at 1:32 PM, buyitian <span dir="ltr">&lt;<a href="mailto:buyit@live.cn" target="_blank">buyit@live.cn</a>&gt;</span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">________________________________<br>
&gt; From: <a href="mailto:coolsandyforyou@gmail.com">coolsandyforyou@gmail.com</a><br>
&gt; Date: Sat, 2 Mar 2013 22:48:34 +0530<br>
&gt; Subject: Re: [ARM_LINUX] ioremap() allowing to map system memory...<br>
&gt; To: <a href="mailto:gprabhunath@gmail.com">gprabhunath@gmail.com</a><br>
&gt; CC: <a href="mailto:kernelnewbies@kernelnewbies.org">kernelnewbies@kernelnewbies.org</a><br>
<div class="im">&gt;<br>
&gt; &gt;I passed a physical address 0x63ACD000. As expected it returned<br>
&gt; 0x00000000. I am running linux version 3.5.1.<br>
&gt; Mine is ARM, i donno about x86. In my case ioremap is successfule and<br>
&gt; giving an address in ioremap() range of virtual memory map as<br>
&gt; in <a href="http://www.arm.linux.org.uk/developer/memory.txt" target="_blank">http://www.arm.linux.org.uk/developer/memory.txt</a>.<br>
<br>
</div>please give your detail calling example, it is weired that you did not get<br>
0x0 returned.<br>
<br>
maybe your platform overwirte the arch_ioremap_caller? please double check this.<br>
the default implementation for arch_ioremap_caller is as below:<br>
void __iomem * (*arch_ioremap_caller)(unsigned long, size_t,<br>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; unsigned int, void *) = __arm_ioremap_caller;<br>
<br>
in \arch\arm\mm\ioremap.c, in function __arm_ioremap_pfn_caller:<br>
<br>
/*<br>
&nbsp;* Don&#39;t allow RAM to be mapped - this causes problems with ARMv6+<br>
&nbsp;*/<br>
&nbsp;if (WARN_ON(pfn_valid(pfn)))<br>
&nbsp; &nbsp;return NULL;<br>
<br>
you should get NULL if you are asking convert a valid memory.<br>
<div class="im"><br>
&gt;<br>
&gt;<br>
&gt; On Sat, Mar 2, 2013 at 4:52 PM, Prabhu nath<br>
</div><div class="im">&gt; &lt;<a href="mailto:gprabhunath@gmail.com">gprabhunath@gmail.com</a>&lt;mailto:<a href="mailto:gprabhunath@gmail.com">gprabhunath@gmail.com</a>&gt;&gt; wrote:<br>
&gt; In principle, ioremap() will return 0x00000000 if the physical address<br>
&gt; passed is of memory.<br>
&gt; I just want you to double check the address you have passed to ioremap().<br>
&gt; In my experiment on x86 Desktop machine with 2GB RAM. I passed a<br>
&gt; physical address 0x63ACD000. As expected it returned 0x00000000. I am<br>
&gt; running linux version 3.5.1.<br>
&gt;<br>
&gt;<br>
&gt; Regards,<br>
&gt; Prabhunath G<br>
&gt; Linux Trainer<br>
&gt; Bangalore<br>
&gt;<br>
&gt;<br>
&gt; On Fri, Mar 1, 2013 at 5:57 PM, sandeep kumar<br>
</div><div class="im">&gt; &lt;<a href="mailto:coolsandyforyou@gmail.com">coolsandyforyou@gmail.com</a>&lt;mailto:<a href="mailto:coolsandyforyou@gmail.com">coolsandyforyou@gmail.com</a>&gt;&gt; wrote:<br>
&gt; &gt;Looks like you are trying to pass the address of physical memory to<br>
&gt; this function as a parameter and it is screwing up.<br>
&gt; Yes, i intentionally gave some physical address which is part of system<br>
&gt; memory.<br>
&gt; My problem infact is, it is not screwing up. It is allowing me to do<br>
&gt; that. Its not &#39;panic&#39;ing<br>
&gt;<br>
&gt;<br>
&gt; On Fri, Mar 1, 2013 at 4:58 PM, Prabhu nath<br>
</div><div class="im">&gt; &lt;<a href="mailto:gprabhunath@gmail.com">gprabhunath@gmail.com</a>&lt;mailto:<a href="mailto:gprabhunath@gmail.com">gprabhunath@gmail.com</a>&gt;&gt; wrote:<br>
&gt;<br>
&gt;<br>
&gt; On Fri, Mar 1, 2013 at 4:48 PM, sandeep kumar<br>
</div><div><div class="h5">&gt; &lt;<a href="mailto:coolsandyforyou@gmail.com">coolsandyforyou@gmail.com</a>&lt;mailto:<a href="mailto:coolsandyforyou@gmail.com">coolsandyforyou@gmail.com</a>&gt;&gt; wrote:<br>
&gt; Hi All<br>
&gt; I am using ARM based board.<br>
&gt; In mine,<br>
&gt; i did the following...<br>
&gt;<br>
&gt; void __iomem *tcpm_base = ioremap_nocache(0x03B00000, 10*SZ_3MB);<br>
&gt;<br>
&gt; Actually i didnt reserve the 30MB memory @ 0x3B00000. But still the<br>
&gt; call is succesful and i am able to read the memory.<br>
&gt;<br>
&gt; In the logs it is just showing a warning, to fix my driver as i am<br>
&gt; calling ioremap() on system memory.<br>
&gt;<br>
&gt; However if i try to write something on that memory, then only it is<br>
&gt; calling panic()..<br>
&gt;<br>
&gt; Don&#39;t you think it should throw panic()while calling the ioremap()<br>
&gt; itself. Because this sounds like a serious violation...<br>
&gt;<br>
&gt; What say?<br>
&gt;<br>
&gt; To my knowledge, ioremap is used only to map the device related<br>
&gt; physical address to kernel virtual address. i.e. this function will<br>
&gt; only map either device registers or device memory to kernel virtual<br>
&gt; address.<br>
&gt;<br>
&gt; Looks like you are trying to pass the address of physical memory to<br>
&gt; this function as a parameter and it is screwing up.<br>
&gt;<br>
&gt; Please verify.<br>
&gt;<br>
&gt; Regards,<br>
&gt; Prabhu<br>
&gt;<br>
&gt; --<br>
&gt; With regards,<br>
&gt; Sandeep Kumar Anantapalli,<br>
&gt;<br>
&gt; _______________________________________________<br>
&gt; Kernelnewbies mailing list<br>
</div></div>&gt; <a href="mailto:Kernelnewbies@kernelnewbies.org">Kernelnewbies@kernelnewbies.org</a>&lt;mailto:<a href="mailto:Kernelnewbies@kernelnewbies.org">Kernelnewbies@kernelnewbies.org</a>&gt;<br>
<div class="HOEnZb"><div class="h5">&gt; <a href="http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies" target="_blank">http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies</a><br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; --<br>
&gt; With regards,<br>
&gt; Sandeep Kumar Anantapalli,<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; --<br>
&gt; With regards,<br>
&gt; Sandeep Kumar Anantapalli,<br>
&gt;<br>
&gt; _______________________________________________ Kernelnewbies mailing<br>
&gt; list <a href="mailto:Kernelnewbies@kernelnewbies.org">Kernelnewbies@kernelnewbies.org</a><br>
&gt; <a href="http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies" target="_blank">http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies</a> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </div></div></blockquote>

</div><br><br clear="all"><div><br></div>-- <br>With regards,<br>Sandeep Kumar Anantapalli,<br>
</div>