我尝试在我的p2020定制板上运行srio接口。我将带有srio固件的FPGA板插入SRIO1,并将SRIO配置为主机。
在uboot_config中
#define CONFIG_SRIO1 /* SRIO port 1 */
#define CONFIG_SYS_SRIO1_MEM_VIRT 0xC0000000
#define CONFIG_SYS_SRIO1_MEM_BUS 0xC0000000
#define CONFIG_SYS_SRIO1_MEM_PHYS CONFIG_SYS_SRIO1_MEM_BUS
#define CONFIG_SYS_SRIO1_MEM_SIZE 0x10000000 /* 256M */在tlb.c中
SET_TLB_ENTRY(1, CONFIG_SYS_SRIO1_MEM_VIRT, CONFIG_SYS_SRIO1_MEM_PHYS,
MAS3_SX | MAS3_SW | MAS3_SR,
MAS2_I | MAS2_G,
0, 3, BOOKE_PAGESZ_256M, 1),尝试从u-boot读取srio内存
=> md.l 0xc0000000
c0000000:
p2020被卡住了。
我可以在FPGA板上观察读请求和读响应。为什么我无法读取srio内存?
发布于 2018-07-09 16:47:30
我在start.S中为每个中断向量设置了一个gpio‘mark’。当我尝试读取Srio内存时,uboot被堆叠。不会发生中断。我无法确定错误的原因。
发布于 2018-07-11 00:25:06
我试着从linux中读取SRIO1内存。
# devmem 0xc0000000 32
Disabling lock debugging due to kernel taint
Machine check in kernel mode.
Caused by (from MCSR=10008): Bus - Read Data Bus Error
Oops: Machine check, sig: 7 [#1]
SMP NR_CPUS=2 P2020 DS
Modules linked in:
CPU: 1 PID: 1578 Comm: devmem Tainted: G M 4.9.34 #28
task: eb161a80 task.stack: ef0ca000
NIP: 1000b5fc LR: 1000b510 CTR: c02e1108
MSR: 0202d000 <VEC,CE,EE,PR,ME> CR: 40000242 XER: 20000000
DEAR: b7e79000 ESR: 00000000
GPR00: 40000242 bfab4250 b7e81470 b7e79000 1000b510 40000242 b7e79000 b7d88444
GPR08: 0202d000 00000000 b7e79000 bfab4250 ef0ca000 100c8126 00000000 00000000
GPR16: 00000000 00000000 100a3560 100c0000 100c3fc5 00000000 100c0000 00000003
GPR24: 100c225c 100c0000 00000000 00001000 bfab4554 00000000 b7e79000 00000020
NIP [1000b5fc] 0x1000b5fc
LR [1000b510] 0x1000b510
Oops: Machine check, sig: 7 [#1]
arch/powerpc/kernel/traps.c +731机器检查异常通常意味着硬件问题。我将SRIO1端口连接到我的p2020的SRIO2 (SRIO2地址从0xd0000000开始)
# devmem 0xc0000000
0x00710002
# devmem 0xd0000000
0x00710002这是工作!我想,问题出在FPGA板上。
https://stackoverflow.com/questions/51187536
复制相似问题