On Mon, Sep 27, 2010 at 11:44 PM, Dave Hylands <dhylands@xxxxxxxxx> wrote: > Hi guys, > > On Mon, Sep 27, 2010 at 1:47 AM, luca ellero wrote: > ...snip... >> IIRC ARM architecture doesn't map RAM at physical address 0 (like x86 does). >> It maps it at address 0x80000000, 0xC0000000 or some other address, leaving >> 0 for flash, ROM or something else. It depends on arch. >> So maybe the problem here is that the cycle have to start from a well >> defined page frame number and not at 0. The code has to be modified at some >> points. >> Take this like a hint, at the moment I have no ARM boards at hand so I can't >> help you further. > > I can definitely confirm that not all ARM processors start their RAM > at physical address zero. > > If you have a kernel module (or you can rebuild your kernel to add a > printk), you can have it print out the 4 bytes at virtual address > 0xC0004000. The top 3 nibbles of this first word will be the top 3 > nibbles of the physical address of your first page of memory. > > So, something like: > > printk( "0x%08x\n", *(uint32_t *)0xc0004000 ); I tried printing, printk( "0x%08x\n", *(uint32_t *)0xc0004000 ); printk("0x%08x\n", virt_to_phys(0xc0004000)); Output: 0x00000000 0x13004000 So I initialized the variable "i" in the kernel module to 0x13004000. But still it is not entering the while loop. Makefile.boot is saying zreladdr-y := 0x13008000 params_phys-y := 0x13000100 initrd_phys-y := 0x14000000 Arun > > -- > Dave Hylands > Shuswap, BC, Canada > http://www.DaveHylands.com/ > -- To unsubscribe from this list: send an email with "unsubscribe kernelnewbies" to ecartis@xxxxxxxxxxxx Please read the FAQ at http://kernelnewbies.org/FAQ