On Mon, Sep 27, 2010 at 11:44 PM, Dave Hylands <[email protected]> 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 [email protected]
Please read the FAQ at http://kernelnewbies.org/FAQ