doesn't ioremap() retrun contigious addressess...?
sandeep kumar
coolsandyforyou at gmail.com
Thu Feb 28 05:36:53 EST 2013
Hi All
Please find a piece of code that i wrote in my driver,
void __iomem *tcpm_base = ioremap_nocache(0x03900000, SZ_16KB);
printk("Virtual addresss %x\n",tcpm_base);
if(tcpm_base!=NULL)
{
printk("Jiffies %x %ld\n\n\n\n", jiffies, jiffies);
for(i=0;i<(SZ_16KB-1);i++)
src = readl(tcpm_base+i);
printk("%d\n",src);
printk("Jiffies %x %ld\n\n\n\n", jiffies, jiffies);
}
else
printk("unable to map \n");
When i execute this code, i am seeing a kernel panic telling
----- LOG --------
"Virtual addresss ea880000"
"Unable to handle kernel paging request at virtual address ea890000"
-----LOG-----
If you observe,
virtual address of tcpm_base is ea880000.
if ioremap() returns all contigious memory, There should be no
dereferencing of "ea890000"(the max address should be ea88fffe)
But in kernel logs show, it is dereferencing that address.
My question now is...
doesn't ioremap() returns contigious address space?
With regards,
Sandeep Kumar Anantapalli,
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.kernelnewbies.org/pipermail/kernelnewbies/attachments/20130228/9a467c8e/attachment.html
More information about the Kernelnewbies
mailing list