Commit Graph

5024 Commits

Author SHA1 Message Date
19a14b68b1 runtime: program DRTIO routing table into gateware 2018-09-10 22:48:56 +08:00
264078baba style 2018-09-10 22:29:35 +08:00
e01efbcb8a runtime: merge sync_tsc and wait_tsc_ack 2018-09-10 22:17:00 +08:00
4d889c0c4e firmware: improve DRTIO log messages 2018-09-10 21:40:02 +08:00
663432adbd satman: load TSCs of downstream devices 2018-09-10 20:34:33 +08:00
bc1d3fda6a satman: ping repeater links
Tested OK on hardware.
2018-09-10 20:17:13 +08:00
31bef9918e firmware: fix drtio_routing compatibility with master and satellite 2018-09-10 20:16:42 +08:00
7ec45efdcf kasli: add missing cri_con to Satellite 2018-09-10 20:16:09 +08:00
014cfd8dbd firmware: add drtioaux routing packets 2018-09-09 22:44:25 +08:00
7ae44f3417 firmware: add routing table (WIP) 2018-09-09 21:49:28 +08:00
496d1b08fd kasli: enable routing in Master 2018-09-09 21:48:12 +08:00
ec302747e0 kasli: add DRTIO repeaters 2018-09-09 16:27:39 +08:00
d5577ec0d0 cri: add routing table support 2018-09-09 16:26:48 +08:00
df61b85988 drtio: fix imports 2018-09-09 14:11:32 +08:00
87e0384e97 drtio: separate aux controller
This helps with managing CSR groups and heterogeneous (satellite/repeaters) DRTIO cores.
2018-09-05 17:56:58 +08:00
92be9324df add missing files 2018-09-05 16:09:02 +08:00
2884d595b3 drtio: add rt_controller_repeater 2018-09-05 16:08:40 +08:00
839f748a1d drtio: add external TSC to repeater 2018-09-05 15:55:20 +08:00
5f20d79408 drtio: add timeout on satellite internal CRI buffer space request 2018-09-05 14:12:11 +08:00
1450e17a73 sayma: adapt to TSC and DRTIOSatellite changes 2018-09-05 12:10:41 +08:00
19ae9ac1b1 kc705: adapt to TSC changes 2018-09-05 12:07:28 +08:00
3d531cc923 kasli: adapt to TSC and DRTIOSatellite changes 2018-09-05 12:06:47 +08:00
4e4398afa6 analyzer: adapt to TSC changes 2018-09-05 12:06:20 +08:00
15b16695c6 frontend: add artiq_route 2018-09-04 19:04:27 +08:00
778f1de121 drtio: add TSC sync and missed command detection to rt_packet_repeater 2018-09-03 18:26:13 +08:00
00fabee1ca drtio: fix rt_packet_repeater timeout 2018-09-03 09:57:15 +08:00
f3fe818049 rtio: refactor TSC to allow sharing between cores 2018-09-03 09:48:12 +08:00
0fe2a6801e drtio: forward destination with channel 2018-09-02 15:50:23 +08:00
6768dbab6c drtio: add buffer space support to rt_packet_repeater 2018-09-02 14:38:37 +08:00
88b7529d09 drtio: share CDC 2018-09-02 14:37:29 +08:00
078c862618 drtio: add repeater (WIP, write only) 2018-09-01 21:07:55 +08:00
6057cb797c drtio: reorganize tests 2018-08-31 16:28:33 +08:00
4f963e1e11 drtio: minor cleanup 2018-08-30 15:15:32 +08:00
ce6e390d5f drtio: expose internal satellite CRI 2018-08-30 12:41:09 +08:00
aa64e6c1c6 cri: add buffer space request protocol 2018-08-29 15:16:43 +08:00
ba6094c3e5 test: relax network transfer rates
Due to lower Kasli system clock frequency.
2018-08-27 16:47:48 +08:00
whitequark
0e7419450e firmware: update smoltcp.
This adds TCP window scaling support.
2018-08-20 00:26:40 +00:00
9b6ea47b7a kasli: use SFP LEDs to show DRTIO link status. Closes #1073 2018-08-19 13:04:41 +08:00
d1d26e2aa3 hmc7043: add explanation about HMC_SYSREF_DIV 2018-08-18 11:43:40 +08:00
f75a317446 hmc7043: automatically determine output groups 2018-08-18 11:43:23 +08:00
c498b28f88 hmc7043: disable FPGA_ADC_SYSREF 2018-08-18 11:42:57 +08:00
a7810502f6 artiq_coremgmt: add option to specify core device address directly 2018-08-18 10:58:40 +08:00
fc09144baa artiq_coremgmt: remove unnecessary DeviceManager 2018-08-18 10:46:08 +08:00
167e97efd2 sayma: support external RTM clocking 2018-08-17 22:57:54 +08:00
041dc0f64a jesd204: update core to v0.10
Closes #727
Closes #1127
2018-08-17 22:50:07 +08:00
5c3e834c4d ad9154: retry DAC initialization on STPL or PRBS failure
Works around #1127
2018-08-17 20:52:55 +08:00
66e33a66d6 test: enable TTL loopback tests on Kasli 2018-08-17 13:35:55 +08:00
d707d2f4fe test: relax TTL timing requirements to support DIO EEM 2018-08-17 13:35:16 +08:00
1ba12e1cdb gui/log: print messages in tooltips
This helps reading long messages in small log windows.
2018-08-17 13:21:38 +08:00
David Nadlinger
2463e5667d compiler: Fix attribute writeback with skipped fields
offset wasn't advanced for skipped fields previously,
leading to memory corruption/unaligned accesses at runtime.
2018-08-14 13:34:32 +01:00
c172ec6de9 artiq_flash: target Kasli by default 2018-08-13 12:13:21 +08:00
David Nadlinger
0e32a165c2 satman: Fix build with Rust 1.28
The build was broken in 2648b1b7a1.
2018-08-13 00:12:27 +01:00
whitequark
e285fe0d56 test: tighten required TransferTest timings.
smoltcp performs significantly better with LTO.
2018-08-12 20:17:37 +00:00
whitequark
46bd96abd1 artiq_devtool: make kasli-tester the default configuration. 2018-08-12 19:17:45 +00:00
whitequark
38d60100ff firmware: optimize dma_record_output.
This removes a number of bounds checks and adds a fast path for
outputting exactly one word to DMA, which is the most common
operation.
2018-08-12 19:17:45 +00:00
whitequark
bdd18de2c1 firmware: globally enable LTO.
This used to crash with earlier rustc versions, but doesn't anymore,
and gives significant speedup (e.g. 2x on test_dma_record_time).
2018-08-12 19:17:45 +00:00
whitequark
2648b1b7a1 firmware: migrate to Rust 1.28.0.
This also updates / is a prerequisite for updating smoltcp.

Rationale for changes made:
  * compiler_builtins is now shipped in the rust prefix.
  * rustc's libpanic_unwind no longer works for us because it
    has a hard dependency on Box (and it's a horrible hack);
    fortunately, we only ever needed a personality function
    from it.
  * panic and oom handlers are now set in a completely different
    way.
  * allocators are quite different (and finally stable).
  * NLL caused internal compiler errors in runtime, so code using
    NLL was rewritten to not rely on it and it was turned off.
2018-08-12 19:17:45 +00:00
738d2c6bcb hmc7043: REFSYNCIN → RFSYNCIN 2018-08-11 12:07:17 +08:00
bc3e715a8f examples: fix kasli_tester 2018-08-11 10:51:42 +08:00
whitequark
fab6e5cdff compiler: skip functional values in attribute writeback.
Fixes #1088.
2018-08-10 12:02:49 +00:00
052e400f12 test: skip test_dma_playback_time on Kasli (#946) 2018-08-09 18:08:21 +08:00
957645a7e7 examples: move kasli tester out of kasli_basic 2018-08-09 18:07:44 +08:00
bbc98410e4 test: dds → ad9914dds
Prevent confusion with Urukul.
2018-08-09 16:55:09 +08:00
bf78e0c7d2 test: fix handling of missing devices 2018-08-09 16:51:12 +08:00
a061ba2505 grabber/kasli_basic: add grabber test
close #1121
2018-08-08 12:43:44 +02:00
f7678cc24a grabber: refactor state machine 2018-08-07 18:07:46 +02:00
6cd2432e30 grabber: log all resolution changes
close #1120
2018-08-07 16:21:21 +02:00
99a15ca0c6 grabber: rationalize derived traits 2018-08-07 16:21:21 +02:00
49f7a1610f sayma: use GTP_CLK1 only for all variants (#1080) 2018-08-07 20:53:14 +08:00
e2a49ce368 drtio: support external IBUFDS_GTE3 2018-08-07 20:52:45 +08:00
8b8e1844f0 kasli_sawgmaster: roughly match Urukul and Sayma amplitudes 2018-08-07 20:07:21 +08:00
9ce6233926 kasli: fix SYSU TTL directions 2018-08-07 19:29:28 +08:00
8aa88cfe70 kasli_sawgmaster: add Urukul-Sayma example 2018-08-07 19:29:28 +08:00
474bc7b65b browser: handle windows file urls for feeding h5py
close #1014
2018-08-07 12:57:01 +02:00
whitequark
93af5d2a03 compiler: handle async RPC as last statement in try block.
Fixes #1107.
2018-08-07 07:06:53 +00:00
whitequark
7bd7b6592a rpc_proto: serialize keywords correctly.
Fixes #1109.
2018-08-07 06:47:09 +00:00
whitequark
259f1576c3 Fix tests after a74958f0. 2018-08-07 06:06:49 +00:00
whitequark
a74958f01f ksupport: raise RuntimeError on reraise with no inflight exception.
Fixes #1123.
2018-08-07 05:53:13 +00:00
2008d02f4d runtime: use different default IP and MAC for different kinds of boards
This helps reduce conflicts when having many boards on a development network.
2018-08-07 10:30:50 +08:00
bbe36b94f7 ad9154: enable sync in init 2018-08-06 19:02:27 +08:00
7f0b2ff594 jesd204sync: work around HMC7043 poor behavior with combined delays
The HMC7043 outputs poorly controlled signals when adjusting
two delays at once. This commit puts the DAC in one-shot SYSREF mode,
and only triggers synchronizations when SYSREF is stable.
2018-08-06 17:43:17 +08:00
f32f0126e2 Revert "ad9154: use continuous sync mode"
The HMC7043 is not really glitchless.

This reverts commit bd968211de.
2018-08-06 16:59:53 +08:00
65f198bdee kasli: use tester EEMs for DRTIO, add Urukul-Sayma sync example 2018-08-06 16:53:13 +08:00
bd968211de ad9154: use continuous sync mode 2018-08-06 00:27:10 +08:00
b023865b42 sayma: instantiate dummy IBUFDS_GTE3 on unused but driven Si5324 clock pins
Solve same problem as e83ee3a0 but channels cannot be independently disabled.
2018-08-05 23:02:41 +08:00
e83ee3a07a hmc7043: disable GTP_CLK1 when not in use
Termination and biasing are not active at the FPGA when IBUFDS_GTE3 is
not instantiated, and driving a clock then leads to overvoltage.
2018-08-03 10:03:52 +08:00
6fc8439399 tweak moninj to allow old dashboard with new firmware 2018-08-02 19:34:14 +08:00
04cbc3237b test_moninj: test injection monitoring 2018-08-02 19:34:14 +08:00
47740c8930 share moninj injection state between dashboards
Previously if one dashboard overrode a channel this was not visible on
any other dashboard - the channel appeared to operate normally.
2018-08-02 19:34:14 +08:00
7d6a1b528d ad9912: add ftw_to_frequency 2018-08-02 11:19:12 +00:00
e518a1f1d0 ad53xx: also increase slack after control readback 2018-08-02 11:19:12 +00:00
whitequark
5871d13da8 firmware: actually compact in config::compact().
Fixes #1116.
2018-08-01 16:27:48 +00:00
David Nadlinger
829fca6112 pyon: Correctly deserialize bare NaNs
This also fixes (non-numpy) lists containing NaNs.

Previously, accidentally storing a NaN in a dataset would
bring down large parts of the system.
2018-07-30 11:08:56 +01:00
David Nadlinger
08ee91beb2 ad9910: Clarify chip_select range [nfc]
`assert 3 <= chip_select <= 7` is rather opaque without looking
at the CPLD source code otherwise.
2018-07-30 11:08:17 +01:00
David Nadlinger
6b89106578 ad53xx: Avoid sporadic RTIOUnderflow in init()
I observed sporadic RTIO underflows on Kasli before, by ~2.5 µs,
so 5 µs extra slack should be plenty. No underflows since.
2018-07-28 23:45:48 +01:00
e4d48a78eb drtio: wait for remote to ack TSC synchronization
Sayma takes a long time after TSC sync to align SYSREF, and this caused two issues:
1. Aux packets getting lost and causing error reports
2. DRTIO links reported up and kernels proceeding despite the DACs not being properly synced.
2018-07-26 20:28:17 +08:00
83de8b2ba2 drtio: add ping timeout during link init 2018-07-26 20:27:53 +08:00
446f791180 firmware: simplify SYSREF DRTIO alignment 2018-07-26 19:37:59 +08:00
f8c17528e7 satman: use new SYSREF code 2018-07-26 16:26:57 +08:00
32c95ac034 sayma: automated DAC SYSREF phase calibration 2018-07-26 16:23:55 +08:00