本文共 2015 字,大约阅读时间需要 6 分钟。
1.那么这个硬件地址是否有所限制?是任意物理地址都可以映射么?
2.错误信息如下:
DBE exception at 0x4009ac
ccfg:ef0766e0e1, toea:ff1fe000
Cpu 0
$ 0 : 00000000 10040400 2aac4000 00000000
$ 4 : 00400c64 0000000e 0000000e 00400c60
$ 8 : 00000000 803a1d60 00000002 72646461
$12 : 7fcd7340 ffffffff 00000000 00000115
$16 : 00400a80 7fcd7ad4 004009e0 00000001
$20 : 00400850 10013a08 ffffffff 00000000
$24 : 00000003 2ab7f600
$28 : 10008030 7fcd7a40 7fcd7a40 00400988
Hi : 00000000
Lo : 00000000
epc : 004009ac 0x4009ac
Not tainted
ra : 00400988 0x400988
Status: 00040413 USER EXL IE
Cause : 1000001c
PrId : 00002d40 (R49XX)
Modules linked in:
Process a.out (pid: 121, threadinfo=83a3c000, task=839ec8b8, tls=00000000)
Stack : 10008030 2aac4000 00000003 00000000 00000003 ff1fe000 10008030 00000000
00000000 7fcd7ad4 10008030 00000000 2ab18b50 7fcd7ad4 2ab0ad40 2aab84d0
00000000 00000000 2acd8a90 00000000 2ab0ad40 00400650 10013a08 10021c28
10021de8 2acd8a90 004006ac 10013a08 ffffffff 2ab0ad40 2aaa8bec 2aaa8b60
00400a80 2aab8600 7fcd7ab0 00000000 00000001 7fcd7edd 00000000 7fcd7ee5
...
Call Trace:
Code: 00000000 24840c64 8c460000 <8c470004> 8f998044 00000000 0320f809 00000000 8fdc0018
Kernel panic - not syncing: BusError!
c4000
3.这是一个64位的mips,内存空间范围是64G。所有硬件寄存器都在0xF_FF1F_0000
然后cpu把这个地址又映射到0xFF1F_0000以便32位访问。
我在bootloader中读0xff1fe008这个地址是正确的值。
TX4939 internal registers are to be accessed through 64 K bytes address space that is based on physical address
0xF_FF1F_0000 or pointed address by RAMP register. Figure 6-7 shows how to generate internal register address.
Physical address 1 and physical address 2 shown Figure 6-7 access the same register.
In TX49/H4 Core, the physical address from 0xF_FF00_0000 to 0xF_FF3F_FFFF are uncached mapped to the virtual
address from 0xFF00_0000 to 0xFF3F_FFFF (32 bit mode) /from 0xFFFF_FFFF_FF00_0000 to
0xFFFF_FFFF_FF3F_FFFF (64 bit mode).
【 在 xukey (xukey) 的大作中提到: 】
: 1. 用户进程通过mmap把硬件地址映射到虚拟地址空间访问寄存器 , 是可以的 .
: 2. 你的程序会出现 kernel panic?!
: 3. 我认为 mmap()那段写的应该没错 , 可能是地址访问部分的问题 . CPU是什么架构? 为什么要用 64bit的指针 ?
转载地址:http://yeudv.baihongyu.com/