
thanks for you answer. I have got too much.
On 2011-06-22 13:25:34, Aaron Williams wrote:
We have dealt with this in our release of U-Boot since we only support 64-bit Linux. We use the n32 ABI with U-Boot and set it up to use a TLB entry to map U-Boot into a 32-bit addressable area.
in the U-boot _shell_. I use md command. I found md 0x100000 and mx0x800100000 are the same. is that says:the virtual address 0x0 - 0xfffffff(256M, can I called this _kusg_ segment ?) are mapped to the _physical_ memory address 0x0 - 0xfffffff(256M) with the _TLB_. and the virtual address 0x80000000 - 0x8fffffff(like that, _kseg0_ ?) is mapped to the _physical_ memory address 0x0 - 0xfffffff(256M) according to the mips arch feature. do I understand correctly?
We have some special memcpy type routines that can handle the 64-bit addressing.
All of our I/O registers require 64-bit addressing so we use assembly wrappers to do the actual read/writes to those addresses.
-Aaron Williams
On 06/21/2011 07:07 PM, hacklu wrote:
I have a 64bit cnMips borad.In the mail list archives,it says "uboot is 32bit,even in the 64bit cpu." but how to understand that? I have a guess,is the 64bit cpu support a 32bit-mode,then when does it switch to 64bit-mode to load 64-bit linux?
btw,I have an other question,according to <see mips run linux>,linux run in the _xkseg_ segment. so the first two bit >>virtual address in kernel space must be 11, like 11xx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx (64bit). but when I printf a variable' address in a foo driver,is say 0xa80000041c2ea180. not start of _11_. the memory mapping mode has feazed me for _long_ _long_time.
I hope you can answer this question for me. I really really want to know this. thans for your attention.
Dear Wolfgang(or someone else who can anwser me),thanks
hacklu 2011-06-22
_______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
------------------ hacklu 2011-06-22