Re: [ARM_LINUX] ioremap() allowing to map system memory...

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



>please give your detail calling example, it is weired that you did not get
>0x0 returned.

I have the following code like below. In my case it is not returning NULL.
         /*
* Don't allow RAM to be mapped - this causes problems with ARMv6+
*/
if (pfn_valid(pfn)) {
printk(KERN_WARNING "BUG: Your driver calls ioremap() on system memory.  This leads\n"
      KERN_WARNING "to architecturally unpredictable behaviour on ARMv6+, and ioremap()\n"
      KERN_WARNING "will fail in the next kernel release.  Please fix your driver.\n");
WARN_ON(1);
}

Thanks
Sandeep


On Mon, Mar 4, 2013 at 1:32 PM, buyitian <buyit@xxxxxxx> wrote:
________________________________
> From: coolsandyforyou@xxxxxxxxx
> Date: Sat, 2 Mar 2013 22:48:34 +0530
> Subject: Re: [ARM_LINUX] ioremap() allowing to map system memory...
> To: gprabhunath@xxxxxxxxx
> CC: kernelnewbies@xxxxxxxxxxxxxxxxx
>
> >I passed a physical address 0x63ACD000. As expected it returned
> 0x00000000. I am running linux version 3.5.1.
> Mine is ARM, i donno about x86. In my case ioremap is successfule and
> giving an address in ioremap() range of virtual memory map as
> in http://www.arm.linux.org.uk/developer/memory.txt.

please give your detail calling example, it is weired that you did not get
0x0 returned.

maybe your platform overwirte the arch_ioremap_caller? please double check this.
the default implementation for arch_ioremap_caller is as below:
void __iomem * (*arch_ioremap_caller)(unsigned long, size_t,
          unsigned int, void *) = __arm_ioremap_caller;

in \arch\arm\mm\ioremap.c, in function __arm_ioremap_pfn_caller:

/*
 * Don't allow RAM to be mapped - this causes problems with ARMv6+
 */
 if (WARN_ON(pfn_valid(pfn)))
   return NULL;

you should get NULL if you are asking convert a valid memory.

>
>
> On Sat, Mar 2, 2013 at 4:52 PM, Prabhu nath
> <gprabhunath@xxxxxxxxx<mailto:gprabhunath@xxxxxxxxx>> wrote:
> In principle, ioremap() will return 0x00000000 if the physical address
> passed is of memory.
> I just want you to double check the address you have passed to ioremap().
> In my experiment on x86 Desktop machine with 2GB RAM. I passed a
> physical address 0x63ACD000. As expected it returned 0x00000000. I am
> running linux version 3.5.1.
>
>
> Regards,
> Prabhunath G
> Linux Trainer
> Bangalore
>
>
> On Fri, Mar 1, 2013 at 5:57 PM, sandeep kumar
> <coolsandyforyou@xxxxxxxxx<mailto:coolsandyforyou@xxxxxxxxx>> wrote:
> >Looks like you are trying to pass the address of physical memory to
> this function as a parameter and it is screwing up.
> Yes, i intentionally gave some physical address which is part of system
> memory.
> My problem infact is, it is not screwing up. It is allowing me to do
> that. Its not 'panic'ing
>
>
> On Fri, Mar 1, 2013 at 4:58 PM, Prabhu nath
> <gprabhunath@xxxxxxxxx<mailto:gprabhunath@xxxxxxxxx>> wrote:
>
>
> On Fri, Mar 1, 2013 at 4:48 PM, sandeep kumar
> <coolsandyforyou@xxxxxxxxx<mailto:coolsandyforyou@xxxxxxxxx>> wrote:
> Hi All
> I am using ARM based board.
> In mine,
> i did the following...
>
> void __iomem *tcpm_base = ioremap_nocache(0x03B00000, 10*SZ_3MB);
>
> Actually i didnt reserve the 30MB memory @ 0x3B00000. But still the
> call is succesful and i am able to read the memory.
>
> In the logs it is just showing a warning, to fix my driver as i am
> calling ioremap() on system memory.
>
> However if i try to write something on that memory, then only it is
> calling panic()..
>
> Don't you think it should throw panic()while calling the ioremap()
> itself. Because this sounds like a serious violation...
>
> What say?
>
> To my knowledge, ioremap is used only to map the device related
> physical address to kernel virtual address. i.e. this function will
> only map either device registers or device memory to kernel virtual
> address.
>
> Looks like you are trying to pass the address of physical memory to
> this function as a parameter and it is screwing up.
>
> Please verify.
>
> Regards,
> Prabhu
>
> --
> With regards,
> Sandeep Kumar Anantapalli,
>
> _______________________________________________
> Kernelnewbies mailing list
> Kernelnewbies@xxxxxxxxxxxxxxxxx<mailto:Kernelnewbies@xxxxxxxxxxxxxxxxx>
> http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
>
>
>
>
>
> --
> With regards,
> Sandeep Kumar Anantapalli,
>
>
>
>
> --
> With regards,
> Sandeep Kumar Anantapalli,
>
> _______________________________________________ Kernelnewbies mailing
> list Kernelnewbies@xxxxxxxxxxxxxxxxx
> http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies                                          



--
With regards,
Sandeep Kumar Anantapalli,
_______________________________________________
Kernelnewbies mailing list
Kernelnewbies@xxxxxxxxxxxxxxxxx
http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies

[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux