As per post title I'm trying to set up DRTIO with a zc706 master and kasli v1.1 satellite: initially I had problems with the link even establishing, but a random sequence of restarts and plugging/unplugging transceivers seemed to fix this to the point where a link came up in the core log. However, no communication is possible because of aux packet error (packet CRC failed)
, and self.core.get_rtio_destination_status(1)
never returns True. Any clues as to what is going wrong?
System:
zc706, using https://nixbld.m-labs.hk/build/111251 on SD card
kasli v1.1, gateware built with artiq 7 @71e8b492
Transceivers are https://www.fs.com/uk/products/36351.html (zc706) and https://www.fs.com/uk/products/36353.html (kasli) as used by Oxford
If I restart the kasli (via artiq_flash), I get the following logs - something is clearly going wrong already.
zc706:
[ 1297.689771s] INFO(runtime::rtio_mgt::drtio): [LINK#0] link is down
[ 1297.696028s] INFO(runtime::rtio_mgt::drtio): [DEST#1] destination is down
[ 1303.732755s] INFO(runtime::rtio_mgt::drtio): [LINK#0] link RX became up, pinging
[ 1307.740745s] INFO(runtime::rtio_mgt::drtio): [LINK#0] remote replied after 20 packets
[ 1307.777481s] INFO(runtime::rtio_mgt::drtio): [LINK#0] link initialization completed
[ 1307.785263s] INFO(runtime::rtio_mgt::drtio): [DEST#1] destination is up
[ 1307.791953s] INFO(runtime::rtio_mgt::drtio): [DEST#1] buffer space is 128
[ 1307.999747s] ERROR(runtime::rtio_mgt::drtio): [LINK#0] error(s) found (0x01):
[ 1308.006869s] ERROR(runtime::rtio_mgt::drtio): [LINK#0] received packet of an unknown type
kasli:
Booting from flash...
Starting firmware.
[ 0.000006s] INFO(satman): ARTIQ satellite manager starting...
[ 0.005897s] INFO(satman): software ident 7.0.beta;magtrap-satellite-test
[ 0.012782s] INFO(satman): gateware ident magtrap-satellite-test-1
[ 0.288643s] INFO(board_artiq::si5324): waiting for Si5324 lock...
[ 2.241485s] INFO(board_artiq::si5324): ...locked
[ 2.293956s] INFO(satman): uplink is up, switching to recovered clock
[ 2.326912s] INFO(board_artiq::si5324): waiting for Si5324 lock...
[ 4.095377s] INFO(board_artiq::si5324): ...locked
[ 8.070664s] INFO(board_artiq::si5324::siphaser): calibration successful, lead: 314, width: 435 (349deg)
[ 8.428832s] INFO(satman): TSC loaded from uplink
[ 8.448118s] INFO(satman): rank: 1
[ 8.450225s] INFO(satman): routing table: RoutingTable { 0: 0; 1: 1 0; 2: 2 0; }
Trying to run a simple experiment (essentially just calling self.core.get_rtio_destination_status(1)
repeatedly for several seconds) never leads to a True return value. Within the logs I see multiple lines of
zc706:
[ 1322.198181s] INFO(runtime::kernel::core1): kernel starting
[ 1322.686711s] ERROR(runtime::rtio_mgt::drtio): [DEST#1] communication failed (timed out)
_above repeats several times_
[ 1326.205391s] INFO(runtime::kernel::core1): kernel finished
[ 1326.211632s] INFO(runtime::comms): peer closed connection
kasli:
[ 23.203548s] WARN(satman): aux packet error (packet CRC failed)
_repeats_
Somewhat concerningly, I am unable to write a routing table to the zc706 and so it reverts to the default routing table. Not a problem in this instance, but could be an issue later on.
>artiq_coremgmt config write -f routing_table rt.bin
Traceback (most recent call last):
File "C:\Users\rabi\Anaconda3\envs\artiq-drtio-test\Scripts\artiq_coremgmt-script.py", line 9, in <module>
sys.exit(main())
File "C:\Users\rabi\Anaconda3\envs\artiq-drtio-test\lib\site-packages\artiq\frontend\artiq_coremgmt.py", line 134, in main
mgmt.config_write(key, fi.read())
File "C:\Users\rabi\Anaconda3\envs\artiq-drtio-test\lib\site-packages\artiq\coredevice\comm_mgmt.py", line 172, in config_write
raise IOError("Flash storage is full")
OSError: Flash storage is full
Corresponding core log:
[ 2686.528972s] INFO(runtime::mgmt): received connection
[ 2686.534558s] WARN(runtime::mgmt): write key: routing_table
[ 2686.591604s] ERROR(runtime::mgmt): failed to write: Err(IoError(Custom { kind: NotFound, error: "No such file or directory" }))