________________________________ > 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 _______________________________________________ Kernelnewbies mailing list Kernelnewbies@xxxxxxxxxxxxxxxxx http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies