Skip to content

CRITICAL: AXI4 writes to PB often fail

This took me a while to debug, I have a failing i2c-ocores driver at many levels but currently my only conclusion is that it's failing now due to broken AXI writes, from an SBv4 to an FCPBv1 over Aurora with c2c.

Would be best if you could reproduce this yourself with any rw register, currently your FCPB design only has ro registers I believe with buildinfo. Currently I'm seeing the same behaviour with data that passes the axi4-lite to wishbone bridge (using https://gitlab.com/ohwr/project/general-cores/-/tree/master/modules/axi/axi4lite_i2c_master) BUT also with a 'plain' AXI4-Lite core (not cheby generated). In addition these are designs that work on the FASEC Zynq7000 SoC so the issue is not at the level of the AXI4-Lite slave/subordinate I reckon. The FCPB project used, including these cores, is at https://gitlab.cern.ch/abt-projects/gateware/diot/fmc-carrier-fids/-/tree/dkfc_fids_fmc_pts?ref_type=heads

A few examples of failing writes, reproducible from the driver and also busybox devmem so the issue is not with the tool. Often (always?) the first write fails, successive writes seem to go

-- testing axi4lite_i2c_master (8 bit register)
root@cfd-865-dkfc01:/nfs/cs-ccr-nfshome/user/pvantrap/dev-arm64# busybox devmem 0x4a00000100
0x000000FF
root@cfd-865-dkfc01:/nfs/cs-ccr-nfshome/user/pvantrap/dev-arm64# busybox devmem 0x4a00000100 32 0x0
root@cfd-865-dkfc01:/nfs/cs-ccr-nfshome/user/pvantrap/dev-arm64# busybox devmem 0x4a00000100
0x000000FF
root@cfd-865-dkfc01:/nfs/cs-ccr-nfshome/user/pvantrap/dev-arm64# busybox devmem 0x4a00000100 32 0x0
root@cfd-865-dkfc01:/nfs/cs-ccr-nfshome/user/pvantrap/dev-arm64# busybox devmem 0x4a00000100
0x00000000

-- testing fids-pts-core (32 bit register)
root@cfd-865-dkfc01:/nfs/cs-ccr-nfshome/user/pvantrap/dev-arm64# busybox devmem 0x4a00001028
0x00000000
root@cfd-865-dkfc01:/nfs/cs-ccr-nfshome/user/pvantrap/dev-arm64# busybox devmem 0x4a00001028 32 0xdeadbeef
root@cfd-865-dkfc01:/nfs/cs-ccr-nfshome/user/pvantrap/dev-arm64# busybox devmem 0x4a00001028
0x00000000
root@cfd-865-dkfc01:/nfs/cs-ccr-nfshome/user/pvantrap/dev-arm64# busybox devmem 0x4a00001028 32 0xdeadbeef
root@cfd-865-dkfc01:/nfs/cs-ccr-nfshome/user/pvantrap/dev-arm64# busybox devmem 0x4a00001028
0xDEADBEEF
root@cfd-865-dkfc01:/nfs/cs-ccr-nfshome/user/pvantrap/dev-arm64# busybox devmem 0x4a00001028 32 0xcafecafe
root@cfd-865-dkfc01:/nfs/cs-ccr-nfshome/user/pvantrap/dev-arm64# busybox devmem 0x4a00001028
0xCAFECAFE

Please have a look, I'm hoping I'm simply overseeing something here and there's an easy resolution. Nothing in dmesg BTW regarding failed bus transactions.

Edited by Pieter Van Trappen