On Tue, Oct 27, 2009 at 9:38 PM, Mohammad Sadegh Sadri
<mamsadegh@xxxxxxxxxxx> wrote:
Dear Michal ( and others )
You were correct,
I added the following change into kernel configuration:
- Platform Options ---> Physical Address where Linux kernel is : 0x44800000
Again we have problem with XMD, when running dow command, it persist on there is no 0xc0000000 address
XMD does not understand virtual addresses, only physical. You must convert virtual addresses to physical when using XMD. A simple example
PHYS_base 0x50000000
VIRT_base 0xc0000000
To convert a virtual address to physical, for inspecting with XMD, you must subtract (0xc0000000-0x50000000 = 0x70000000) from each virtual address.
It's too late for me to do anything other than trivial hex arithmetic in my head so I didn't choose your physical address, but you get the idea!
I added the following changes into kernel configuration to solve the problem:
- In "Advanced Setup" I enabled "Prompt for advance kernel configuration options"
- In "Advanced setup" I enable "Set custom kernel base address"
- I set the custom kernel address to 0x44800000
You cannot do this - this is the virtual address of the kernel, it must not be the same as the physical address. You should not change this from the default - 0xc0000000.
Now, in XMD , dow can run successfully, and I can run the kernel,
here is the outcome:
early_printk_console is enabled at 0x84000000
Ramdisk addr 0x00000003, Compiled-in FDT at 0x44a2d49c
and kernel stops working completely!
Overlaid / overlapping physical and virtual address spaces is almost certainly the cause.
Regards,
John
--