Интерфейс SRIO u-boot. Не могу прочитать память ввода-вывода - PullRequest
0 голосов
/ 05 июля 2018

Я пытаюсь запустить интерфейс srio на моей p2020 пользовательской плате. Я подключаю плату FPGA с прошивкой srio к SRIO1 и настраиваю SRIO в качестве хоста.

In 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),

Попробуйте прочитать srio-память из u-boot

=> MDL 0xc0000000

C0000000:

p2020 застрял.

Я могу посмотреть запрос на чтение и ответ на чтение на плате ПЛИС. Почему я не могу прочитать память Срио?

Ответы [ 2 ]

0 голосов
/ 10 июля 2018

Я пытался прочитать память SRIO1 из Linux

# 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 к SRIO2 моего p2020 (адрес SRIO2 начинается с 0xd0000000)

# devmem 0xc0000000
0x00710002
# devmem 0xd0000000
0x00710002

Это работа! Я думаю, проблема в плате FPGA.

0 голосов
/ 09 июля 2018

Я установил gpio «отметки» для каждого вектора прерывания в start.S. Когда я пытаюсь прочитать память Srio, uboot складывается. Прерывание не происходит. Я не могу определить причину ошибки.

...