使用 devmem2 透過 lwsoc2fpga 橋接器存取FPGA部分的收銀機時,您可能會看到上述錯誤。devmem2 是在 EL0 Linux 的使用者空間中運作。預設情況下,所有 HPS 周邊裝置都將假設為特權。在此案例中,您需要將從屬變更為非特權,以供 devmem2 存取。日誌僅如下所示:
root@stratix10swvp:~# devmem2 0xf9001080 w 1
/dev/mem 開啟。
[ 143.622724] CPU2 上偵測到的錯誤處理器中的不良模式,代碼0xbf000000 -- SError
記憶體對應位址0xffffa02b8000。
閱讀位址0xF9001080(0xffffa02b8080):0x0000000000000007
[ 143.631637] 內部錯誤:Oops - 不良模式:0 [#2] PREEMPT SMP
[ 143.646851] 模組連結在:leds_gpio ip_tables x_tables ipv6
[ 143.652846] CPU:2 PGA:1780 Comm:devmem2 污染:G D 4.12.0 #1
[ 143.660032] 硬體名稱:SoCFPGA Stratix 10 SoCDK (DT)
[ 143.665319] 任務:ffff80003bec0000 任務.stack:ff80003b4a0000
[ 143.671214] 電腦處於0xffffa01b62d0
[ 143.674685] LR 位於0xffffa01aa3d4
[ 143.678157] 電腦:[] lr:[] pstate:6000000000
[143.685516] sp:0000fff4c1e710
[ 143.688814] x29:0000fff4c1e710 x28:000000000000
[ 143.694103] x27:0000000000000007 x26:0000000000000001
[ 143.699391] x25:0000ffa02b8080 x24:0000000000000003
[ 143.704679] x23:0000000000000001 x22:0000ffff4c1e9e0
[ 143.709967] x21:0000fff4c1e9e0 x20:0000fff4c1e890
[ 143.715256] x19:0000fff4c1e790 x18:0000000000000001
[ 143.720544] x17:0000ffa0191ce0 x16:0000000000411250
[ 143.725832] x15:0000ffa02bd030 x14:0000ffa0147c8c
[ 143.731121] x13:0000ffa02bc000 x12:ffffffff
[ 143.736409] x11:0000fff4c1e980 x10:0000fff4c1e980
[ 143.741698] x9:ffff80ffffd0 x8:0000fff4c1e950
[ 143.746986] x7:0000000000000001 x6:0000ffa0136040
[ 143.752274] x5:0000ffa02ad6f0 x4:0000fffa0289808
[ 143.757562] x3:0000fff4c1e9e0 x2:ffffffff
[ 143.762850] x1:0000fff4c1e9e0 x0:0000fff4c1e790
[ 143.768140] 處理器 devmem2 (df:1780,堆疊限制 = 0xffff80003b4a0000)
[ 143.774980] ---[ 末端跡線 530aa55983d4a86d ]---
分割錯誤
來自 Systemd-journald@stratix10swvp 的廣播訊息 (Sun 2017-09-24 07:20:59 UTC):
kernel[1711]:[143.631637] 內部錯誤:Oops - 不良模式:0 [#2] PREEMPT SMP
您可以使用以下命令變更 U-Boot 中的許可權以解決此問題。
mw 0xffd248000x60000000