|
Dear Jhon Thanks for your guidance, I understood that XMD can not understand virtual addresses, however i could not find out how I should solve the problem. you have wirtten that i should do a subtraction to reach to physical address from virtual one. however my problem is that, XMD dow command simply can not load the kernel. It generates errors, it can not understand what ix 0xc0000000 address. how should i solve this one? i mean how should i tell XMD that 0xc0000000 is a virtual address? my problem for now is not the relationship between these two addresses, but it is how to load the kernel into memory using XMD at all? Thanks Date: Tue, 27 Oct 2009 22:02:29 +1000 Subject: Re: [microblaze-uclinux] Kernel boot problem ( Michael Simek Wiki ) From: john.williams@xxxxxxxxxxxxx To: microblaze-uclinux@xxxxxxxxxxxxxx Hi Mohammad, On Tue, Oct 27, 2009 at 9:38 PM, Mohammad Sadegh Sadri <mamsadegh@xxxxxxxxxxx> wrote: --
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!
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.
Overlaid / overlapping physical and virtual address spaces is almost certainly the cause. Regards, John John Williams, PhD, B.Eng, B.IT PetaLogix - Linux Solutions for a Reconfigurable World w: www.petalogix.com p: +61-7-30090663 f: +61-7-30090663 Ready for a deal-of-a-lifetime? Find fantastic offers on Windows 7, in one convenient place. |