SRIO接口u-boot。无法读取IO内存

时间:2018-07-05 09:14:24

标签: interface io u-boot

我尝试在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内存?

2 个答案:

答案 0 :(得分:0)

我为start.S中的每个中断向量设置了一个gpio'标记'。当我尝试读取Srio内存时,uboot被堆叠了。不会发生中断。我无法确定错误原因。

答案 1 :(得分:0)

我试图从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板中的问题。