Commit Graph

3815 Commits

Author SHA1 Message Date
7b2eba9fbd firmware: misoc_registers -> misoc_cfg 2017-01-27 23:28:00 +08:00
11994d1900 satman: unbreak build 2017-01-27 23:26:40 +08:00
6acb8021e1 satman: remove stale reference to main.c 2017-01-27 23:24:07 +08:00
whitequark
6891b5fcfd firmware: accept sessions even when startup kernel is running.
Fixes #625.
Fixes #649.
2017-01-27 13:46:32 +00:00
whitequark
24ce9a057b firmware: add missing try!. 2017-01-27 13:46:32 +00:00
whitequark
74b910e97d In case of a load error, pass the reason to host interpreter.
Fixes #654.
2017-01-27 12:49:48 +00:00
whitequark
609fd3d902 test: skip test_clock_generator_loopback as well.
Both tests pass locally, which means there's some conda screwup
that prevents them from working on CI.
2017-01-27 11:47:26 +00:00
whitequark
c529cefc89 conda: bump llvmlite-artiq dependency. 2017-01-27 11:14:53 +00:00
c659c2e551 Relicense ARTIQ as LGPLv3+ (closes #570)
Kelly Stevens: 1481043941095.63542@gtri.gatech.edu
David Nadlinger: E7C03799-5D45-4C03-9DF9-029FE2B4F12B@klickverbot.at
whitequark: 69d1ca29d5ab03fbcfb446d65cbe1150@mail.whitequark.org
Felix Held: 9145cc19-2319-3516-b2a9-dde60aef11f7@felixheld.de
Robert Jordens: CANb+zoFgXVYgCji_vXPauK-fnnYKpm_QioMnvmh=hvLFWQONWA@mail.gmail.com
Daniel Slichter: BL2PR09MB1010FE3D3A325E889AD70A2591820@BL2PR09MB1010.namprd09.prod.outlook.com
Joe Britton: CAE2_b1V60_6PJ3VYx_s-p5XVfKJUx8kbQA7VwD3MdcmHdzROGw@mail.gmail.com
Florent Kermarrec: CA+96J6JHM8yZM=RYaporU36NdyOTL3BeSuO9oM8TTtdnXiJ5jw@mail.gmail.com
Zach Smith: CAAJ=EH+OzDs_rBJ_zTjbOZmumEZWONX2MSFUasJwf8josJGdkw@mail.gmail.com
David Leibrandt: CY1PR09MB0921C628EC76CDFC4CC7F64F95820@CY1PR09MB0921.namprd09.prod.outlook.com
Raghavendra Srinivas: DM5PR09MB1531C49EEE1774DF2BA80616F8850@DM5PR09MB1531.namprd09.prod.outlook.com
Yann Sionneau: CACi+aWbdY48D9CgKtXdtVsdX4NS1JwVN4v-PCC17F_rPKSt4XQ@mail.gmail.com
Sébastien Bourdeauducq: c3f235dc-e9c5-7f7a-10f2-bb4e4f85e7f5@m-labs.hk
2017-01-27 11:19:46 +01:00
whitequark
50f234bea4 firmware: update smoltcp to take advantage of TCP MSS option. 2017-01-27 03:47:57 +00:00
whitequark
477664f931 test: temporarily skip pulse_rate_dds. 2017-01-26 20:53:30 +00:00
143f784291 artiq_flash: fix scripts_path 2017-01-26 21:52:59 +01:00
whitequark
b7f6bfffeb firmware: fix embedding of software version during build. 2017-01-26 17:40:29 +00:00
whitequark
31e5f9a810 firmware: read MAC/IP address configuration from flash. 2017-01-26 17:40:29 +00:00
653eee071d artiq_flash: make scripts_path a function (for doc generating) 2017-01-26 17:53:33 +01:00
f7dec72f02 firmware: give satman whole RAM in linker script 2017-01-26 15:58:42 +08:00
whitequark
0b67396630 test: convert test_pulse_rate_dds to use mu.
Before this commit, this test was actually measuring soft-FP
performance.
2017-01-25 11:26:30 +00:00
whitequark
57f54dbd12 llvm_ir_generator: recognize inline and forceinline flags. 2017-01-25 10:25:00 +00:00
whitequark
7b6de36d1d firmware: cap loglevel at DEBUG to increase RPC throughput ~3x. 2017-01-25 06:50:56 +00:00
whitequark
3c177c6d71 firmware: update smoltcp, to fix analyzer dump extraction. 2017-01-25 06:36:26 +00:00
whitequark
6721c1e82f firmware: update smoltcp. 2017-01-25 04:08:06 +00:00
whitequark
82cd9e27f7 ksupport: fix I2C function signatures. 2017-01-25 02:11:32 +00:00
whitequark
58a0e4c97f Fix 2de3770. 2017-01-25 01:24:03 +00:00
whitequark
de17908b38 Revert "Globally update UART baudrate to 921600."
This reverts commit b29e2d5bfe.

This broke flterm firmware upload, which was the entire point
of the whole exercise.
2017-01-25 00:31:28 +00:00
whitequark
6414e40deb firmware: fix race condition between TCP listen and accept. 2017-01-25 00:17:46 +00:00
whitequark
2de3770c06 firmware: rewrite cache flushing code in Rust. 2017-01-24 23:07:28 +00:00
whitequark
209be73204 firmware: simplify ksupport build script. 2017-01-24 23:07:28 +00:00
whitequark
b29e2d5bfe Globally update UART baudrate to 921600. 2017-01-24 22:25:58 +00:00
whitequark
3633671656 firmware: factor out console and logging from runtime/satman. 2017-01-24 21:58:58 +00:00
whitequark
5604d9bb55 firmware: factor out build scripts from runtime/satman. 2017-01-24 21:15:41 +00:00
whitequark
4d05c70dfa firmware: update smoltcp. 2017-01-23 22:37:33 +00:00
whitequark
15ba6f36ba runtime: reduce the amount of noise during build. 2017-01-23 13:59:34 +00:00
whitequark
527b1e986c firmware: integrate smoltcp instead of lwip. 2017-01-23 13:59:34 +00:00
whitequark
0253e0a89d firmware: remove false dependency from runtime to ksupport.
This significantly speeds up no-change builds.
2017-01-23 13:57:08 +00:00
whitequark
971e4c3026 firmware: increase post-boot UART speed to 921600. 2017-01-23 13:57:08 +00:00
whitequark
13a544e13f artiq_devtool: add boot+log action; avoid forwarder crashes. 2017-01-23 13:57:08 +00:00
28a41a2f60 gateware: fix aeb1ba847 2017-01-18 17:11:02 -06:00
5c0d402ef3 firmware: runtime.ld formatting 2017-01-18 17:09:49 -06:00
2a7a8f91ca gateware: fix import 2017-01-18 16:51:30 -06:00
ce31ffddb0 firmware: add satellite manager
The code duplication with the runtime should be cleaned up later.
2017-01-18 16:50:32 -06:00
b40953800a gateware: soc -> amp.soc 2017-01-18 15:28:14 -06:00
aeb1ba8471 gateware: use default MiSoC timer 2017-01-18 15:22:33 -06:00
043780d603 drtio: fix DRTIOSatellite invokation in test 2017-01-15 17:30:02 -06:00
b8d89d56b1 drtio: add GenericRXSynchronizer 2017-01-15 13:44:43 -06:00
0edffb54c2 drtio: fix packet truncation detection in RTPacketSatellite 2017-01-13 09:29:22 -06:00
6805feb494 drtio: report truncated packets 2017-01-12 23:44:45 -06:00
394ffd827e phaser/demo_2tone: add ttl and led pulse 2017-01-11 21:45:34 +01:00
7c699e2f80 drtio: add FIFO space request count debug API 2017-01-11 13:48:14 -06:00
c25186fae1 drtio: print packet error descriptions in log 2017-01-10 18:03:01 -06:00
7af152ed22 firmware: pass spawner around instead of scheduler 2017-01-10 16:15:39 -06:00
d3d23d0d3b drtio: report get FIFO space timeouts to log 2017-01-10 16:12:46 -06:00
98598df78e rtio: keep retrying on get FIFO space timeout 2017-01-10 16:12:32 -06:00
e624f45369 drtio: remove FIFO empty local detection optimization
It optimizes a marginal case, it is difficult to get right
(need to know the size of the FIFO for each channel), and
it adds complexity and potential bug sources.
2017-01-10 14:31:46 -06:00
f75fffcf96 drtio: fix satellite RX data corruption 2017-01-10 14:29:30 -06:00
fdfaa377db drtio: add debug syscalls 2017-01-08 15:06:14 -06:00
1b49affd18 typo 2017-01-08 13:04:10 -06:00
780d6d152c worker: fix handling of archive parameter during dataset get in examine 2017-01-07 16:20:17 +01:00
fe53bab953 targets: kc705 -> kc705_dds 2017-01-05 18:40:56 +01:00
8be9a827ba test: move dsp tests into their own folder 2017-01-05 18:25:38 +01:00
4f97d00e79 firmware: make i2c busno u8 2017-01-05 14:54:48 +01:00
13c45c8766 firmware: add si5324 programming functions 2017-01-05 14:50:00 +01:00
6c685205ce firmware: support i2c restart 2017-01-05 14:49:24 +01:00
082fdaf450 move i2c to libboard, do bit-banging on comms CPU 2017-01-04 21:04:38 +01:00
3dd9d54b22 firmware: fix compilation warning without moninj/analyzer 2017-01-04 21:04:08 +01:00
86f6b391b7 ad9xxx -> ad9_dds 2017-01-04 11:34:52 +01:00
c08fc8aae9 firmware: support moninj without DDS. Closes #650 2017-01-04 11:26:02 +01:00
455250b3f9 remove DDS_AD9914 and DDS_ONEHOT_SEL 2017-01-03 22:04:25 +01:00
whitequark
c2ba718efa firmware: remove unnecessary --cfg injection. 2017-01-03 20:56:56 +00:00
9b4c1ddc8e libboard: use --cfg 2017-01-03 21:39:40 +01:00
fbf5a4d4a2 Merge branch 'phaser2-rust-init' 2017-01-03 21:31:21 +01:00
318dbb699b fix phaser device_db SAWG channel numbers 2017-01-03 21:22:16 +01:00
whitequark
c2d86c4f67 firmware: apply build flags globally, move --cfg handling to build.rs. 2017-01-03 20:12:56 +00:00
8e9be41c73 reset core device in phaser examples 2017-01-03 20:05:22 +01:00
d29ec22497 remove stale phaser startup kernel 2017-01-03 20:03:55 +01:00
9a80b8d533 spi: fix xfers with full data_width (closes #615)
misoc 15000af43611bbe8be13cb2b016e408f043202cd
2017-01-03 19:51:14 +01:00
7ff77bceac move AD9616 and AD9154 initialization to firmware 2017-01-03 16:11:38 +01:00
6b7e6a53f7 firmware: ad9154 timeouts and logging 2017-01-03 15:19:51 +01:00
417708af90 phaser: add note about DDS defines (#650) 2017-01-02 22:15:21 +01:00
eef3f50016 firmware: fix compilation problems in ad9154 and ad9516 2017-01-02 22:14:20 +01:00
26e7f68b5d firmware: move clock to libboard 2017-01-01 18:23:27 +01:00
bb056c1d2c firmware: load *_reg correctly 2017-01-01 18:21:12 +01:00
whitequark
74f46cb965 firmware: fix merge screwup. 2016-12-31 14:03:39 +00:00
whitequark
58a95c1f40 firmware: libboard: extract irq.rs, csr.rs. 2016-12-31 14:00:43 +00:00
6c1fc2987a libbsp: add ad9154 and ad9516 init code (untested) 2016-12-31 14:48:43 +01:00
62596a733d libbsp: add ad9154 and ad9516 register maps 2016-12-31 14:48:43 +01:00
fb35336389 typo 2016-12-31 14:48:43 +01:00
whitequark
4bb7132848 firmware: prune stabilized and unused features. 2016-12-31 13:41:32 +00:00
whitequark
4480a1c2ff firmware: libbsp::board → libboard. 2016-12-31 13:41:32 +00:00
whitequark
bd33dca203 firmware: extract liballoc_none into its own crate. 2016-12-31 13:41:32 +00:00
Joe Britton
2dd72fb94c work around firmware bug in KA3005P that impacts get_i() 2016-12-30 12:19:19 +01:00
whitequark
010ce019b3 firmware: remove spurious build-dependency on winapi. 2016-12-29 13:06:40 +00:00
whitequark
aed91292e2 firmware: remove cargo profiles.
These are specified per-workspace, and anyhow are mostly overridden
by our Makefile, so specify everything in it.
2016-12-29 13:06:40 +00:00
whitequark
9df7932169 firmware: add a Cargo workspace.
The Rust editor plugin for Sublime Text tries to invoke cargo,
which disregards our Makefile and places junk all around the source
tree. This calms it down, and now it only does that where our
.gitignore already handles it.
2016-12-26 17:20:29 +00:00
whitequark
c45a170bb4 firmware: update for Rust 1.16.0. 2016-12-26 17:20:29 +00:00
f5f662200b fir: streamline, optimize DSP extraction, left-align inputs 2016-12-20 21:39:51 +01:00
cfb66117af fir: size hint for pre-adder 2016-12-20 17:58:06 +01:00
f310274e39 fir: cleanup halfgen4 2016-12-20 17:58:06 +01:00
whitequark
5f3033b518 firmware: remove max_level_debug.
Tracing to the core log isn't particularly slow, and is handy
when debugging.
2016-12-19 13:24:29 +00:00
whitequark
739da9f1b3 runtime: print trace level log messages to UART during startup.
There's no way to retrieve them otherwise if the startup kernel
hangs.

This commit was mistakenly removed in 88ad054.
2016-12-19 13:21:21 +00:00
whitequark
b9588ddf03 firmware: don't crash on artiq_compile'd kernels (fixes #641). 2016-12-19 13:01:18 +00:00
68b2373b9a korad_ka3005p: fix simulation mode 2016-12-19 09:49:44 +01:00
161025e7df korad_ka3005p: use ProactorEventLoop on windows 2016-12-19 09:33:20 +01:00
d55f2bda86 korad_ka3005p: cleanup 2016-12-19 09:32:21 +01:00
jboulder
baac555f96 add device for Korad KA3005P programmable DC power supply 2016-12-19 09:31:21 +01:00
db5957a7e7 firmware: use bsp crate in ad9154 2016-12-17 11:43:29 +08:00
9a564e07c0 firmware: make libbsp a crate 2016-12-16 21:28:25 +08:00
c99388f80f firmware: use M-Labs as author in Cargo.toml files 2016-12-16 20:14:11 +08:00
9967dfc5ca runtime: reorganize to support DRTIO satellite firmware 2016-12-16 19:11:19 +08:00
6b998581cc rtio: use same reset for counter_rtio whatever the interface delay is 2016-12-15 09:28:13 +08:00
15b48be6e4 test/sawg: adapt to new latency spec 2016-12-14 19:43:30 +01:00
115ea67860 fir: automatically use transposed topology 2016-12-14 19:16:07 +01:00
a451b675c9 Revert "fir: different adder layout"
This reverts commit 6f50e77b409c293c1905f28e69d79403a0803866.
2016-12-14 19:16:07 +01:00
93076b8efa fir: different adder layout 2016-12-14 19:16:07 +01:00
61abd994e9 Revert "fir: force dsp48"
This reverts commit 0ad433832d1b6dcd803ffa086ae73b2ee0568326.
2016-12-14 19:16:07 +01:00
641d109786 fir: force dsp48 2016-12-14 19:16:07 +01:00
8381db279f sawg: wire up all HBF outputs, latency compensation in phys, simplify 2016-12-14 19:16:07 +01:00
6cdb96c5e0 rtio: add support for latency compensation in phy
* if multiple RTIO channels influence the same data stream and physical
output channel (see SAWG) differential latency needs to be compensated
* this is a NOP for phys with zero delay (default)
* if delay==1, it adds one timestamp-wide register
* if delay >1, it adds one adder and one register
* latency compensation using (~10-50 deep) delay lines is about as
expensive as a single adder+register but very tedious to implement
2016-12-14 19:16:07 +01:00
7be27d7116 fir: add upsample transfer function test 2016-12-14 19:16:07 +01:00
4c27029be0 sawg: fix limit regs 2016-12-14 19:16:07 +01:00
708c25b83a phaser: don't init rtio in startup_kernel 2016-12-14 19:16:07 +01:00
e9592105ce drtio: fix aux controller clock domain mistakes 2016-12-14 10:16:45 +08:00
527757b471 kc705_drtio: use ad9154_fmc_ebz 2016-12-13 14:30:26 +08:00
3b5abae935 drtio: fix clock domain conflict 2016-12-13 14:19:49 +08:00
03d13d3811 phaser: dma/drtio changes 2016-12-12 17:46:36 +01:00
c63fa46430 Merge branch 'phaser2'
* phaser2: (157 commits)
  sawg/hbf: tweak pipeline for timing
  fir: register multiplier output
  conda/phaser: build-depend on numpy
  sawg: reduce coefficient width
  sawg: fix latency
  test/fir: needs mpl. don't run by default
  test/sawg: patch spline
  sawg: use ParallelHBFCascade to AA [WIP]
  fir: add ParallelHBFCascade
  fir: add ParallelFIR and test
  gateware/dsp: add FIR and test
  README_PHASER: update
  sawg: documentation
  sawg: extract spline
  sawg: document
  sawg: demo_2tone
  sawg: round to int64
  gateware/phaser -> gateware/ad9154_fmc_ebz
  phaser: fix typo
  sawg: merge set/set64
  ...
2016-12-12 17:31:39 +01:00
4b61020b27 drtio: reset more local state 2016-12-12 18:48:10 +08:00
d99e64effd drtio: clear any stale FIFO space reply 2016-12-12 18:02:56 +08:00
4c59c0fecf Revert "drtio: order resets wrt writes"
This reverts commit 9a048c2b3a.
2016-12-12 17:49:07 +08:00
6a60afcba0 runtime: clear all DRTIO FIFOs first, reset remote PHYs on link init 2016-12-12 17:48:25 +08:00
8f747fa209 drtio: clear underflow and sequence error on reset 2016-12-12 17:39:14 +08:00
7196bc21c1 rtio: simplify error reset logic
Channel is always selected when reset is issued.
2016-12-12 17:35:10 +08:00
1c74249638 runtime: reset local DRTIO state 2016-12-12 17:30:41 +08:00
9a048c2b3a drtio: order resets wrt writes 2016-12-12 17:18:07 +08:00
cbc49ea91d set asyncio loop earlier in controllers (#627) 2016-12-12 11:38:02 +08:00
3743633b04 Revert "pc_rpc: use ProactorEventLoop on Windows (#627)"
This reverts commit 7d4297b9bb.
2016-12-12 11:33:56 +08:00
09fb4869f3 runtime: centralize (D)RTIO management 2016-12-09 19:24:00 +08:00
0a9f69a3ed kc705_drtio_master: add missing rtio_core CSRs 2016-12-09 19:23:36 +08:00
4422b6902a runtime: silence unused variable warnings 2016-12-09 19:23:06 +08:00
bc36bda94a perform RTIO init on comms CPU side 2016-12-09 14:16:55 +08:00
f6071a5812 sawg/hbf: tweak pipeline for timing 2016-12-08 17:00:53 +01:00
b7a308d33d fir: register multiplier output 2016-12-08 17:00:39 +01:00
18e3f58c22 sawg: reduce coefficient width 2016-12-08 16:14:32 +01:00
598da09a93 sawg: fix latency 2016-12-08 15:53:35 +01:00
f4ceace253 test/fir: needs mpl. don't run by default 2016-12-08 15:49:50 +01:00
efc95043c4 test/sawg: patch spline 2016-12-08 15:49:23 +01:00
3eef6229cc sawg: use ParallelHBFCascade to AA [WIP] 2016-12-08 15:32:57 +01:00
a629eb1665 fir: add ParallelHBFCascade 2016-12-08 15:30:26 +01:00
d303225249 fir: add ParallelFIR and test 2016-12-08 15:21:04 +01:00
7e0f3edca5 gateware/dsp: add FIR and test 2016-12-07 19:14:23 +01:00
4c3717932e drtio: link layer debugging CSRs 2016-12-07 23:03:14 +08:00
5efd0fcea5 sawg: documentation 2016-12-06 19:25:40 +01:00
b311830fc4 kc705: fix drtio_aux address conflict 2016-12-06 18:28:48 +08:00
4669d3f02f kc705_drtio_satellite: add MiSoC system, hook up auxiliary controller 2016-12-06 14:56:42 +08:00
f4b7d39a69 kc705_drtio_master: hook up auxiliary controller 2016-12-06 14:56:15 +08:00
f3c50a37ca rtio: always read full DMA sequence 2016-12-06 01:05:47 +08:00
c413d95b49 rtio: fix DMA get_csrs 2016-12-05 18:12:09 +08:00
eb8d630148 rtio: test DMA RTIO wait state 2016-12-05 18:01:48 +08:00
b677c69faf rtio: fix handling of o_status in DMA 2016-12-05 18:01:48 +08:00
75ea13748a rtio: fix DMA data MSB and stop signaling, self-checking unittest 2016-12-05 18:01:48 +08:00
43a5455058 rtio: DMA unittest WIP 2016-12-05 18:01:48 +08:00
a5834765d0 rtio: more DMA fixes, better stopping mechanism 2016-12-05 18:01:48 +08:00
30bce5ad35 rtio: DMA fixes 2016-12-05 18:01:48 +08:00
74fe5c3ef0 test: make gateware simulations discoverable 2016-12-05 18:01:48 +08:00
whitequark
668928a16c runtime: fix a lifetime issue in lwip::Pbuf.
This would have allowed a use-after-move (or -free) to typecheck.
2016-12-05 05:24:27 +00:00
whitequark
f68e4ae519 compiler: rein in overzealous cast monomorphization. 2016-12-05 05:08:57 +00:00
whitequark
218720cfa7 Revert "compiler: rein in overzealous cast monomorphization."
This reverts commit 4305903dde.

This broke the monomorphizer/round.py test.
2016-12-05 05:04:26 +00:00
whitequark
4305903dde compiler: rein in overzealous cast monomorphization.
This caused failures on e.g. "int32(var64a >> var64b)", where
the type of the argument is already fully known, but was unified
with the result of the cast anyway.
2016-12-05 04:38:25 +00:00
whitequark
4c94873560 runtime: upgrade lwip to release 2.0.0. 2016-12-05 04:35:02 +00:00
whitequark
b5a684830d compiler: fix parsing of TList annotations (fixes #632). 2016-12-05 03:18:56 +00:00
695eb705b3 sawg: extract spline 2016-12-04 16:52:08 +01:00
39becd0b4e sawg: document 2016-12-04 16:50:49 +01:00
88ad054ab6 Merge branch 'drtio' 2016-12-03 23:25:17 +08:00
5d145ff912 drtio: add false paths between sys and transceiver clocks 2016-12-03 23:03:01 +08:00
4b97b9f8ce drtio: add clock constraints 2016-12-03 22:17:29 +08:00
617f6897a4 runtime: more concise message 2016-12-03 11:17:47 +08:00
d6f6ebf066 sawg: demo_2tone 2016-12-02 18:18:47 +01:00
a324f4faa1 Merge remote-tracking branch 'm-labs/master' into phaser2
* m-labs/master:
  compiler: monomorphize int64(round(x)) to not lose precision.
2016-12-02 18:11:29 +01:00
87bd2072e8 sawg: round to int64 2016-12-02 18:07:01 +01:00
whitequark
68de724554 compiler: monomorphize int64(round(x)) to not lose precision.
This applies to any expression with an indeterminate integer type
cast to int64(), not just round().
2016-12-02 15:02:44 +00:00
3d4723353e Merge branch 'master' into phaser2
* master:
  dashboard: mention disable in CCB policies
  runtime: clear async RPC queue when kernel stops (fixes #631).
  artiq_devtool: fix incorrect use of nargs in argparse.
2016-12-02 14:12:04 +01:00
e747696aaa Merge remote-tracking branch 'm-labs/phaser2' into phaser2
* m-labs/phaser2:
  phaser: fix typo
2016-12-02 14:11:56 +01:00
cbf1004df3 gateware/phaser -> gateware/ad9154_fmc_ebz 2016-12-02 14:11:41 +01:00
6353f6d590 drtio: support different configurations and speeds 2016-12-02 17:22:22 +08:00
3cee269afe phaser: fix typo 2016-12-02 11:06:45 +08:00
6e9bc7c05d sawg: merge set/set64 2016-12-01 16:45:54 +01:00
93a853a0e0 test/sawg: non trivial coarse_ref_period 2016-12-01 16:00:06 +01:00
3931d8097b rtio: fix DMA TimeOffset stream.connect 2016-12-01 16:43:46 +08:00
d4cb1eb998 kc705: integrate DMA 2016-12-01 16:31:00 +08:00
7c59688a12 rtio: simple DMA fixes 2016-12-01 16:30:48 +08:00
46dbc44c8f rtio: export DMA and CRIInterconnectShared 2016-12-01 16:30:29 +08:00
6c97a97d8c rtio: support single-master CRI arbiter 2016-12-01 16:30:11 +08:00
a318243083 rtio: CRI arbiter (untested) 2016-12-01 15:41:43 +08:00
696db32603 dashboard: mention disable in CCB policies 2016-12-01 11:47:04 +08:00
cd3f68ba76 rtio: DMA core (untested) 2016-11-30 18:43:19 +08:00
01057dfb6d test/sawg: check 48 bit frequency 2016-11-30 11:21:25 +01:00
ea04fb2704 test/sawg: skip 2tone demo test 2016-11-30 11:02:41 +01:00
ed6d1e73cc sawg: cleanup 2016-11-30 10:52:35 +01:00
fb58f31c9d Revert "sawg: test w/o discrete_compensate"
This reverts commit b736dd0df7.
2016-11-29 20:56:04 +01:00
dbf72f5fde sawg: extend unittests 2016-11-29 20:52:51 +01:00
b736dd0df7 sawg: test w/o discrete_compensate 2016-11-29 20:52:02 +01:00
d8b5eac856 sawg: style 2016-11-29 20:51:40 +01:00
4f813c4977 test/sawg: rtio_output_wide fixes 2016-11-29 18:11:38 +01:00
d9dd79fb1a sawg: int32 artiq python 2016-11-29 17:36:03 +01:00
4a03e3fce0 sawg: rtio_output_wide 2016-11-29 17:23:06 +01:00
f6fc7f9216 rtio: rtio_output_{list->wide} 2016-11-29 17:22:55 +01:00
313aa32779 sawg: artiq-python list scoping 2016-11-29 17:20:02 +01:00
c53040e1e4 sawg: work around #632 2016-11-29 17:01:39 +01:00
a3d9e21b8c sawg: artiq-python changes 2016-11-29 16:58:26 +01:00
82c651c17a phaser: remove trivial sawg demo 2016-11-29 15:40:23 +01:00
27160f5912 phaser: make sysref input only for timing 2016-11-29 15:28:10 +01:00
7816078d6b phaser/demo: update 2016-11-29 15:11:18 +01:00
whitequark
5b7e068157 runtime: clear async RPC queue when kernel stops (fixes #631). 2016-11-29 14:00:43 +00:00
d5d17aca9e Merge remote-tracking branch 'm-labs/master' into phaser2
* m-labs/master:
  applets: compatibility with older Qt. Closes #629
  doc: update LLVM configure command (fixes #628).
  runtime: match argument signedness between ARTIQ Python and ksupport.
  runtime: refactor rtio_output_list.
  runtime: use correct ABI when accepting ARTIQ lists.
2016-11-29 14:49:30 +01:00
23fd225947 sawg: spline knot packing/conversion, unittest 2016-11-29 14:49:07 +01:00
whitequark
852598c491 artiq_devtool: fix incorrect use of nargs in argparse. 2016-11-29 13:09:26 +00:00
c5b55c1dfe applets: compatibility with older Qt. Closes #629 2016-11-29 10:45:07 +08:00
cf342eca6e kc705_drtio_master: fix number of fine RTIO timestamp bits 2016-11-29 10:44:27 +08:00
f4c6d6eb69 kc705_drtio_master: fix number of fine RTIO timestamp bits 2016-11-28 15:18:54 +08:00
85f2467e2c rtio: fix RTIO/DRTIO timestamp resolution discrepancy 2016-11-28 15:01:46 +08:00
9fdd29ddae drtio: connect KernelInitiator correctly 2016-11-28 14:36:18 +08:00
5460202220 drtio: typo 2016-11-28 14:35:21 +08:00
4e1b497742 drtio: typo 2016-11-28 14:34:58 +08:00
c419c422fa drtio: support for local RTIO core 2016-11-28 14:33:26 +08:00
d37b73fd31 drtio: FIFO timeout is handled in gateware + give remote side more time 2016-11-28 14:33:06 +08:00
046b8bfd33 drtio: fix transmit datapath with transceiver width > max packet width 2016-11-27 13:19:12 +08:00
b2450c7c56 drtio: test large data 2016-11-27 12:57:12 +08:00
0903964488 drtio: large data fixes 2016-11-27 02:12:50 +08:00
whitequark
ea25856d92 runtime: match argument signedness between ARTIQ Python and ksupport.
This is only required when reading the ABI very strictly, but better
be conservative here than spend time debugging silly stuff.
2016-11-26 07:25:22 +00:00
whitequark
cf12a888e7 runtime: refactor rtio_output_list. 2016-11-26 07:25:22 +00:00
whitequark
79e70fa465 runtime: use correct ABI when accepting ARTIQ lists. 2016-11-26 07:25:22 +00:00
d381dd5384 drtio: remove stale signal from test 2016-11-25 18:33:55 +08:00
8090abef5d drtio: large data support 2016-11-25 17:04:09 +08:00
55e37b41ec phaser: use ttl_simple.Input for sync 2016-11-24 15:55:26 +01:00
6fa2a6ebd8 phaser: move ad9154 spi/jesd api to rust 2016-11-24 15:53:14 +01:00
8060652913 phaser: use Inout_8X 2016-11-24 15:21:03 +01:00
617650f3b2 phaser: extract target 2016-11-24 15:20:51 +01:00
1c84d1ee59 Merge branch 'master' into phaser2
* master:
  rtio: support differential ttl
  RELEASE_NOTES: int(a, width=b) removal, use int32/64
  pc_rpc: use ProactorEventLoop on Windows (#627)
2016-11-24 15:05:49 +01:00
95c885b580 rtio: support differential ttl 2016-11-24 15:04:12 +01:00
7d4297b9bb pc_rpc: use ProactorEventLoop on Windows (#627) 2016-11-24 10:19:13 +08:00
8b736ddbc9 drtio: update test 2016-11-24 00:37:53 +08:00
7cd27abaa6 drtio: do not reset remote TSC on reset command 2016-11-24 00:09:53 +08:00
dab19d23cc runtime: support rtio data wider than 64 bit 2016-11-23 16:40:52 +01:00
fbf60108a8 moninj.rs: force u32 dds_ftws 2016-11-23 16:39:08 +01:00
0d5f962d0c runtime.rs/rtio.rs: style 2016-11-23 23:27:59 +08:00
eab18d8e34 runtime.rs: wide rtio data 2016-11-23 23:27:46 +08:00
2d62a89143 rtio: use large data register 2016-11-23 23:23:27 +08:00
07f2d84275 drtio: remote resets 2016-11-23 23:19:31 +08:00
9941f3557d rtio: use only CRI commands for rio/rio_phy resets 2016-11-23 23:19:14 +08:00
a964cf24f2 runtime.rs/rtio.rs: style 2016-11-23 15:03:36 +01:00
8cce5d2fcd runtime.rs: wide rtio data 2016-11-23 15:03:36 +01:00
347609d765 rtio: auto clear output event data and address
This is to support channels where variable length
event data is well-defined through zero-padding.
E.g. in the case of `Spline` zero-padding of events naturally
corresponds to low-order knots.

Use timestamp change as trigger. This assumes that writes to the
timestamp register always precede address and data writes.
It does not break support for ganged writes of the same event
timestamp and data/address to multiple channels or
channel-addresses.
2016-11-23 15:03:36 +01:00
32fdacd95a Merge remote-tracking branch 'm-labs/master' into phaser2
* m-labs/master:
  runtime: don't attempt to perform writeback if disabled in kernel.
  runtime: print trace level log messages to UART during startup.
  runtime: support for targets without RTIO log channel
  runtime: support for targets without I2C
  kc705: remove stale DDS definition
  runtime: show a prompt to erase startup/idle kernels.
2016-11-23 14:56:29 +01:00
fec34d605e runtime.rs/rtio.rs: style 2016-11-23 14:56:20 +01:00
whitequark
4df7941a97 runtime: don't attempt to perform writeback if disabled in kernel.
Otherwise, the startup kernel session hangs.
2016-11-23 13:53:40 +00:00
whitequark
cd7527b701 runtime: print trace level log messages to UART during startup.
There's no way to retrieve them otherwise if the startup kernel
hangs.
2016-11-23 13:53:40 +00:00
d400c81cb2 rtio: remove debug print 2016-11-23 13:37:14 +08:00
4e931c7dd2 rtio: fix timestamp shift 2016-11-23 13:36:30 +08:00
5a2edef422 drtio: adapt example to new mu/second API 2016-11-23 12:43:17 +08:00
cd334c0ecf Merge branch 'master' into drtio 2016-11-23 12:40:18 +08:00
e532261a9b drtio: fix FullMemoryWE usage 2016-11-23 12:25:43 +08:00
0443f83d5e runtime: support for targets without RTIO log channel 2016-11-23 10:50:55 +08:00
cd40d5b107 runtime: support for targets without I2C 2016-11-23 10:50:55 +08:00
0c49679984 runtime: support for targets without RTIO log channel 2016-11-23 10:48:26 +08:00
3c5a62243d runtime: support for targets without I2C 2016-11-23 10:43:33 +08:00
ffefdb9269 rtio: fix counter readback 2016-11-23 00:54:47 +08:00
aa00627c0e rtio: fix CRI CSRs 2016-11-22 22:57:04 +08:00
fbd83cf9ee kc705: remove stale DDS definition 2016-11-22 22:48:22 +08:00
9acc7d135e gateware: common RTIO interface 2016-11-22 22:46:50 +08:00
0aaf120ca7 kc705: remove stale DDS definition 2016-11-22 22:46:19 +08:00
whitequark
965fdd35e5 runtime: show a prompt to erase startup/idle kernels. 2016-11-22 14:45:40 +00:00
6799bb097a sawg: adapt to int32/int64 change 2016-11-22 11:57:34 +01:00
7498c8bba0 Merge branch 'master' into drtio 2016-11-22 16:07:30 +08:00
3459793586 Merge branch 'master' into drtio 2016-11-22 15:15:22 +08:00
5e900cf42a runtime.rs: wide rtio data 2016-11-21 23:12:16 +01:00
4cd2b36995 Merge branch 'phaser' into phaser2
* phaser:
  runtime: replace a (deliberate) memory leak with an interner.
  compiler: disable remarks.
  runtime: rewrite i2c support code in Rust.
  runtime: rewrite rtio support code in Rust.
2016-11-21 23:11:52 +01:00
feb95bf3cf Merge branch 'master' into phaser
* master:
  runtime: replace a (deliberate) memory leak with an interner.
  compiler: disable remarks.
  runtime: rewrite i2c support code in Rust.
  runtime: rewrite rtio support code in Rust.
2016-11-21 22:26:52 +01:00
whitequark
1d1e821a74 runtime: replace a (deliberate) memory leak with an interner. 2016-11-21 19:47:56 +00:00
whitequark
ac997daf95 compiler: disable remarks. 2016-11-21 19:12:11 +00:00
whitequark
18b7ccea4e runtime: rewrite i2c support code in Rust. 2016-11-21 18:25:43 +00:00
whitequark
a825584ac0 runtime: rewrite rtio support code in Rust. 2016-11-21 17:13:09 +00:00
4160490e0a Merge branch 'phaser' into phaser2
* phaser: (23 commits)
  RELEASE_NOTES: update
  pipistrello: add some inputs
  Remove last vestiges of nist_qc1.
  Fully drop AD9858 and kc705-nist_qc1 support (closes #576).
  coredevice.dds: reimplement fully in ARTIQ Python.
  compiler: unbreak casts to int32/int64.
  analyses.constness: fix false positive on x[...].
  inferencer: significantly improve the op-assignment diagnostic.
  Fix tests.
  Move mu_to_seconds, seconds_to_mu to Core.
  artiq_devtool: don't crash on invalid utf-8.
  artiq_devtool: detect a race condition during connect.
  llvm_ir_generator: handle no-op coercions.
  conda: use development version of migen/misoc
  Revert accidentally committed code.
  Revert "gateware: increase RTIO FIFO sizes for NIST_CLOCK. Closes #623"
  analyses.invariant_detection: implement (#622).
  Fix whitespace.
  coredevice.dds: work around the round(numpy.float64()) snafu.
  coredevice.dds: update from obsolete int(width=) syntax (fixes #621).
  ...
2016-11-21 17:29:46 +01:00
f7e8961ab0 Merge branch 'master' into phaser
* master: (23 commits)
  RELEASE_NOTES: update
  pipistrello: add some inputs
  Remove last vestiges of nist_qc1.
  Fully drop AD9858 and kc705-nist_qc1 support (closes #576).
  coredevice.dds: reimplement fully in ARTIQ Python.
  compiler: unbreak casts to int32/int64.
  analyses.constness: fix false positive on x[...].
  inferencer: significantly improve the op-assignment diagnostic.
  Fix tests.
  Move mu_to_seconds, seconds_to_mu to Core.
  artiq_devtool: don't crash on invalid utf-8.
  artiq_devtool: detect a race condition during connect.
  llvm_ir_generator: handle no-op coercions.
  conda: use development version of migen/misoc
  Revert accidentally committed code.
  Revert "gateware: increase RTIO FIFO sizes for NIST_CLOCK. Closes #623"
  analyses.invariant_detection: implement (#622).
  Fix whitespace.
  coredevice.dds: work around the round(numpy.float64()) snafu.
  coredevice.dds: update from obsolete int(width=) syntax (fixes #621).
  ...
2016-11-21 17:29:39 +01:00
ad264ac070 phaser: 300 MHz sample rate clock/dac 2016-11-21 16:58:07 +01:00
93c310dfa5 pipistrello: add some inputs 2016-11-21 23:43:41 +08:00
whitequark
6aa5d9f6c6 Remove last vestiges of nist_qc1. 2016-11-21 15:36:22 +00:00
whitequark
5e8888d5f3 Fully drop AD9858 and kc705-nist_qc1 support (closes #576). 2016-11-21 15:14:17 +00:00
whitequark
f4b7666768 coredevice.dds: reimplement fully in ARTIQ Python.
This commit also drops AD9858 support from software.
2016-11-21 15:13:26 +00:00
whitequark
55ea68da7f compiler: unbreak casts to int32/int64. 2016-11-21 14:20:28 +00:00
whitequark
53b7d59b6a analyses.constness: fix false positive on x[...]. 2016-11-21 14:20:26 +00:00
whitequark
35f4449ef2 inferencer: significantly improve the op-assignment diagnostic.
Before this commit, it displayed incorrect output if an error
appeared on 2nd run and beyond, and displayed messages for trying
to do "num32 -= num64" that made very little sense.
2016-11-21 14:20:24 +00:00
b3e4a1df03 sawg: adapt basic example 2016-11-21 13:17:01 +01:00
c73b1af7ab coredevice/sawg: missing comma 2016-11-21 13:16:44 +01:00
b226dbd257 sawg: unittest data format 2016-11-21 12:35:57 +01:00
2f838e3512 rtio: fix i_data/o_data csr endianess 2016-11-21 12:15:26 +01:00
174c4be218 phaser: false paths sys<->{jesd,phy.tx} 2016-11-21 09:57:33 +01:00
whitequark
3485c83429 Fix tests. 2016-11-21 06:40:47 +00:00
whitequark
009d396740 Move mu_to_seconds, seconds_to_mu to Core. 2016-11-21 05:37:30 +00:00
whitequark
06ea76336d artiq_devtool: don't crash on invalid utf-8. 2016-11-21 05:37:27 +00:00
whitequark
b562b0fbc4 artiq_devtool: detect a race condition during connect. 2016-11-21 03:10:41 +00:00
whitequark
7af41bd29c llvm_ir_generator: handle no-op coercions. 2016-11-21 02:25:34 +00:00
9221a275cb sawg: kernel support (wip) 2016-11-20 16:39:53 +01:00
74e5013fe5 sawg: fix b delay width 2016-11-20 16:39:22 +01:00
whitequark
cdb29f9caa Revert accidentally committed code. 2016-11-20 14:32:59 +00:00
ad1049d59a Revert "gateware: increase RTIO FIFO sizes for NIST_CLOCK. Closes #623"
This reverts commit 4a62e09bd4.
2016-11-20 21:35:07 +08:00
whitequark
f5cca6b09e analyses.invariant_detection: implement (#622). 2016-11-20 12:48:26 +00:00
whitequark
30598720f4 Fix whitespace. 2016-11-20 09:50:00 +00:00
whitequark
abf2b32b20 coredevice.dds: work around the round(numpy.float64()) snafu. 2016-11-20 09:49:58 +00:00
whitequark
d7f4397924 coredevice.dds: update from obsolete int(width=) syntax (fixes #621). 2016-11-20 09:49:39 +00:00
David Leibrandt
4a62e09bd4 gateware: increase RTIO FIFO sizes for NIST_CLOCK. Closes #623 2016-11-20 15:22:32 +08:00
12e39a64cf sawg: reduce f0 oscillator width to 32 2016-11-19 17:07:07 +01:00
04813ea29b sawg: wir up limiting, saturating addition 2016-11-19 16:12:27 +01:00
e53d0bcd5b dsp: add limits support to SatAddMixin 2016-11-19 16:12:27 +01:00
97a54046e8 rtio: auto clear output event data and address
This is to support channels where variable length
event data is well-defined through zero-padding.
E.g. in the case of `Spline` zero-padding of events naturally
corresponds to low-order knots.

Use timestamp change as trigger. This assumes that writes to the
timestamp register always precede address and data writes.
It does not break support for ganged writes of the same event
timestamp and data/address to multiple channels or
channel-addresses.
2016-11-19 16:12:27 +01:00
b714137f76 phaser: 150 MHz rtio/jesd clock 2016-11-19 13:16:30 +01:00
02adae7397 drtio: fix link shutdown 2016-11-19 11:01:33 +08:00
abd1b2a94e drtio: wait longer for remote (bruteforce clock aligner can be slow) 2016-11-19 11:01:09 +08:00
381e58434f drtio: handle link restarts at transceiver level 2016-11-19 10:46:56 +08:00
0ee47e77ae phaser: fix widths 2016-11-18 17:24:11 +01:00
bcde26f990 Revert "phaser: cap phy data width to 64 temporarily"
This reverts commit 342b9e977e.
2016-11-18 17:08:44 +01:00
641f07119f runtime: support rtio data wider than 64 bit 2016-11-18 17:08:33 +01:00
ba94ed8f4b drtio: check for absence of disparity errors before claiming RX ready 2016-11-19 00:05:59 +08:00
342b9e977e phaser: cap phy data width to 64 temporarily 2016-11-18 15:46:59 +01:00
14ddcd2e30 Revert "dsp/Delay: reset_less"
for now

This reverts commit 98193d6fa1.
2016-11-18 15:25:42 +01:00
d678bb3fb6 phaser: update sawg tests 2016-11-18 15:23:56 +01:00
4d07974a34 drtio: reset link from CPU 2016-11-18 17:45:33 +08:00
f040e27041 drtio: add timeout on FIFO get space request 2016-11-18 17:44:48 +08:00
whitequark
c7844d5223 runtime: use proper format for git commit.
Fixes #620.
2016-11-17 15:20:21 +00:00
bb047aabe9 drtio: simpler link layer 2016-11-17 22:32:39 +08:00
51f23feeac dsp: implement sawg features 2016-11-17 03:20:37 +01:00
98193d6fa1 dsp/Delay: reset_less 2016-11-17 02:36:29 +01:00
424a1f8f4e dsp: move test tools 2016-11-16 13:39:19 +01:00
09363e1da8 drtio: aux controller unittest 2016-11-16 19:45:28 +08:00
140bb0ecee drtio: aux controller fixes 2016-11-16 19:44:03 +08:00
7fa9a4efc3 drtio: aux controller unittest WIP 2016-11-15 12:02:53 +08:00
6c9965b444 drtio: aux controller fixes 2016-11-15 12:02:41 +08:00
e1394db861 drtio: aux controller minor fixes 2016-11-14 17:26:30 +08:00
84bd962ed5 drtio: integrate aux controller 2016-11-14 17:20:47 +08:00
a4d92716da drtio: fix aux receiver, add aux transmitter 2016-11-14 17:18:54 +08:00
b9ce2bb1f0 Merge branch 'phaser' into phaser2
* phaser: (127 commits)
  phaser: use misoc cordic
  phaser: fix DDS dummy cfg
  runtime: disable the Nagle algorithm entirely.
  runtime: buffer RPC send packets.
  runtime: don't print debug messages to the UART.
  runtime: print microsecond timestamps in debug messages.
  artiq_devtool: abort if build failed.
  conda: bump llvmlite-artiq dep.
  conda: bump llvmlite-artiq dep.
  llvm_ir_generator: use !{→unconditionally.}invariant.load metadata.
  artiq_devtool: more robust port forwarding.
  setup: remove paramiko dependency (optional and developer-only)
  artiq_devtool: implement.
  artiq_compile: actually disable attribute writeback.
  conda: use pythonparser 1.0.
  conda: tighten pythonparser dependency (fixes #600).
  doc: clarify kernel_invariant doc (fixes #609).
  compiler: Emit all-kernel_invariant objects as LLVM constants
  conda: update for LLVM 3.9.
  add has_dds, use config flags
  ...
2016-11-13 17:30:37 +01:00
70a70320bd phaser: use misoc cordic 2016-11-13 17:29:38 +01:00
2e482505c6 phaser: fix DDS dummy cfg 2016-11-13 17:08:59 +01:00
f2f131e0fb drtio: add aux receiver (untested) 2016-11-14 00:04:53 +08:00
aedb6747f2 Merge branch 'master' into phaser
* master: (47 commits)
  runtime: disable the Nagle algorithm entirely.
  runtime: buffer RPC send packets.
  runtime: don't print debug messages to the UART.
  runtime: print microsecond timestamps in debug messages.
  artiq_devtool: abort if build failed.
  conda: bump llvmlite-artiq dep.
  conda: bump llvmlite-artiq dep.
  llvm_ir_generator: use !{→unconditionally.}invariant.load metadata.
  artiq_devtool: more robust port forwarding.
  setup: remove paramiko dependency (optional and developer-only)
  artiq_devtool: implement.
  artiq_compile: actually disable attribute writeback.
  conda: use pythonparser 1.0.
  conda: tighten pythonparser dependency (fixes #600).
  doc: clarify kernel_invariant doc (fixes #609).
  compiler: Emit all-kernel_invariant objects as LLVM constants
  conda: update for LLVM 3.9.
  add has_dds, use config flags
  Revert "Revert "Revert "Revert "Update for LLVM 3.9.""""
  Revert "Revert "Revert "Update for LLVM 3.9."""
  ...
2016-11-13 16:54:28 +01:00
whitequark
18c394976e runtime: disable the Nagle algorithm entirely.
See also commit feed91d; that commit fixed the test_rpc_timing test,
but caused frequent hangs elsewhere, which were also caused by buggy
Nagle implementation. Just disable this entirely, as with our
explicit buffering it provides no benefit anyway.
2016-11-13 00:33:24 +00:00
whitequark
feed91d8b2 runtime: buffer RPC send packets.
This brings mean RPC time from ~45ms to ~2ms.

The cause of the slowness without buffering is, primarily, that lwip
is severely pessimized by small writes, whether with Nagle on or off.
(In fact, disabling Nagle makes it function *better* on many small
writes, which begs the question of what's the point of having Nagle
there in the first place.) In practical terms, the slowness appears
only when writing a 4-byte buffer (the synchronization segment);
writing buffers of other sizes does not trigger the problem.

This all is extremely confusing and the fix is partly palliative,
but since it seems to work reliably and we're migrating off lwip
I think it is unwise to spend any more time debugging this.
2016-11-12 23:06:33 +00:00
whitequark
3ce1826891 runtime: don't print debug messages to the UART.
It takes ~4ms to print an empty log line because of how slow
the UART is. This makes the log timestamps useless for debugging
performance problems.

After this commit, it takes ~75us to print an empty log line instead,
which pessimizes test_rpc_timing by less than 2ms with tracing
enabled.
2016-11-12 20:26:32 +00:00
whitequark
acc5e53b32 runtime: print microsecond timestamps in debug messages. 2016-11-12 20:26:32 +00:00
whitequark
dca3fb5c96 artiq_devtool: abort if build failed. 2016-11-12 20:26:32 +00:00
whitequark
d3ee858d16 llvm_ir_generator: use !{→unconditionally.}invariant.load metadata.
This helps LICM, among other things.
2016-11-12 04:08:58 +00:00
whitequark
8b6418c604 artiq_devtool: more robust port forwarding. 2016-11-11 15:22:07 +00:00
whitequark
3b6cbb1f06 artiq_devtool: implement. 2016-11-10 20:25:15 +00:00
whitequark
0e76cbc414 artiq_compile: actually disable attribute writeback.
I wrote both halves of this condition but forgot to hook
them together.

Fixes #586.
2016-11-10 01:04:36 +00:00
David Nadlinger
bfbdba9205 compiler: Emit all-kernel_invariant objects as LLVM constants
This enables constant propagation optimisations, as verified by
the included test case. This is only a first stop-gap measure, though;
we should support optimisation based on kernel invariants on a more
fine-grained level.
2016-11-09 14:50:48 +00:00
8a48d6d66e drtio: fix typo 2016-11-09 22:15:42 +08:00
863934c4fa drtio: more reliable link layer init 2016-11-09 22:03:47 +08:00
c92ccd3b5b drtio: add pulse rate example 2016-11-09 15:29:15 +08:00
60e748eabe drtio: better LED demo 2016-11-09 14:53:45 +08:00
d547c5d922 drtio: fix example ref_period 2016-11-09 14:44:01 +08:00
99ad9b5917 add has_dds, use config flags 2016-11-08 23:33:03 +08:00
whitequark
ec8fe6f8bd Revert "Revert "Revert "Revert "Update for LLVM 3.9.""""
This reverts commit 7b81ed1d18.
2016-11-08 14:22:47 +00:00
whitequark
7b81ed1d18 Revert "Revert "Revert "Update for LLVM 3.9."""
This reverts commit 0d7688017b.
2016-11-08 12:58:20 +00:00
whitequark
a8fd697d41 runtime: unbreak 453e8b7.
Running
  rustc --cfg 'foo="1"'
does not result in a statement of the form
  do_thing()
to be compilex in.
2016-11-08 12:57:06 +00:00
whitequark
e0297039c9 artiq_run: fix bitrot in .ll/.bc runners. 2016-11-08 12:08:20 +00:00
whitequark
0d7688017b Revert "Revert "Update for LLVM 3.9.""
This reverts commit 5f5975844a.
2016-11-08 11:59:16 +00:00
whitequark
798a5f70df Revert "runtime: remove some redundant libm functions copied inline."
This reverts commit fee75bd50f.

LLVM does not have lround as a libcall and this inhibits LICM.
2016-11-08 11:54:17 +00:00
95acc9b9d4 drtio: allow specifying 7series RXSynchronizer initial phase 2016-11-08 16:52:40 +08:00
bcb5053fb6 drtio: fix master TSC KCSR readout 2016-11-08 16:40:50 +08:00
651d538217 Merge branch 'master' into drtio 2016-11-08 16:11:18 +08:00
8c86920364 drtio: add examples 2016-11-08 16:11:10 +08:00
David Nadlinger
6e77f65d50 compiler: Clarify recv_rpc value names and documentation [nfc]
Previously, the phi emitted for the pointer parameter to recv_rpc was –
rather confusingly – called "size", and the pseudo-code in the comment
had bit-rotted.

Signed-off-by: David Nadlinger <code@klickverbot.at>
2016-11-07 14:38:21 +00:00
78f18a12eb runtime: basic DRTIO init code 2016-11-07 19:34:34 +08:00
453e8b7eb3 runtime: support configurations without moninj, log or dds 2016-11-06 23:53:10 +08:00
266ae292d9 runtime: support configurations without moninj, log or dds 2016-11-06 23:52:27 +08:00
c4cd269afc Merge branch 'master' into drtio 2016-11-06 00:13:32 +08:00
d158c69be0 phaser: fix frequency comment 2016-11-05 16:54:23 +01:00
47b9868c68 kc705_drtio_master: pretend drtio is rtio 2016-11-05 23:48:29 +08:00
de065b7578 kc705_drtio_satellite: set output dir 2016-11-05 23:48:15 +08:00
David Nadlinger
7dcc987dd7 compiler: Fix break/continue targets in loop else blocks
Previously, they would still target the respective labels in the
just-exited loop.

Signed-off-by: David Nadlinger <code@klickverbot.at>
2016-11-05 02:35:01 +00:00
de47123737 drtio: connect RST and LOCKED on 7series RXSynchronizer MMCM 2016-11-05 00:24:49 +08:00
5019b03f10 drtio: add echo and packet count test 2016-11-04 22:24:35 +08:00
df7294792c drtio: break some RT features into manager, add echo request CSR 2016-11-04 19:38:24 +08:00
1145a193dd drtio: fix ack of echo and set_time requests 2016-11-04 18:36:43 +08:00
3da1cce783 drtio: add packet counters 2016-11-04 17:53:42 +08:00
8ec73cb9ec dashboard: pack moninj widgets (#603) 2016-11-04 16:20:46 +08:00
747da3da15 drtio: differentiate local and remote unknown packet type errors 2016-11-04 15:17:19 +08:00
f76aa249ce drtio: squelch 7series RXSynchronizer outputs when MMCM is unlocked 2016-11-04 15:16:48 +08:00
6a75837261 drtio: fix link_layer remote RX ready detection 2016-11-03 20:15:04 +08:00
1d027ffa95 drtio: fix gtx_7series comma alignment 2016-11-03 20:14:11 +08:00
a4ba34bb2c drtio: cleanup test_full_stack 2016-11-03 20:13:31 +08:00
ba58a8affd drtio/gtx_7series: paranoid reset deglitching 2016-11-02 18:30:22 +08:00
whitequark
00100148f1 Si5324: actually write value of N32 into registers. 2016-11-02 07:09:04 +00:00
bee9774bd5 drtio: add link layer status CSR 2016-11-02 13:09:13 +08:00
1ed3278783 remove stale TODO 2016-11-02 10:53:54 +08:00
whitequark
a6ae254796 Si5324: update to free run from XA/XB, with CKIN1 having priority. 2016-11-01 16:01:24 +00:00
whitequark
b30734a105 runtime: fix a race condition with async RPCs.
session.rs has code like:

    while !rpc_queue::empty() {
        try!(process_kern_queued_rpc(stream, &mut session))
    }

    // A

    if mailbox::receive() != 0 {
        try!(process_kern_message(waiter, Some(stream), &mut session));
    }

If both an async and a mailbox RPC (async or large sync) are posted
at point A then they will be processed out of order.
This commit fixes the issue by flushing the async RPC queue before
posting any RPC to the mailbox.
2016-11-01 13:22:22 +00:00
whitequark
6fcd57a41a runtime: fix remaining async RPC bugs. 2016-11-01 10:33:57 +00:00
whitequark
2095d01b84 runtime: dirty hacks to remove allocations in ksupport. 2016-11-01 08:55:49 +00:00
whitequark
c1e6d4b67c runtime: fix multiple async RPC bugs. 2016-11-01 06:51:44 +00:00
whitequark
636d4efe81 gateware: rewrite mailbox to use bits_for. 2016-11-01 06:28:43 +00:00
43cd970100 make set_dataset and mutate_dataset async RPCs 2016-11-01 11:11:41 +08:00
whitequark
18ae8d54a3 gateware: fix mailbox. 2016-11-01 02:33:00 +00:00
whitequark
898a716b91 runtime: work around mor1kx ignoring low bits of reset address.
Fixes #599.
2016-10-31 18:13:15 +00:00
0c1a76d668 unify rtio/drtio kernel interface 2016-11-01 00:30:16 +08:00
whitequark
617e345d16 gateware: fix kernel CPU exec address. 2016-10-31 15:16:35 +00:00
07ad00c1ca drtio: split kernel/system CSRs 2016-10-31 18:09:36 +08:00
9aa94e1a2d adapt to migen/misoc changes 2016-10-31 00:53:01 +08:00
2392113bb6 kc705: use misoc clock for false path 2016-10-30 11:16:04 +08:00
whitequark
cd68577dbc compiler: add support for async RPCs. 2016-10-30 00:57:31 +00:00
whitequark
2ac85cd40f runtime: implement prototype background RPCs. 2016-10-29 21:34:25 +00:00
c656a53532 kc705: clean up clock constraints 2016-10-29 21:28:01 +08:00
ed4d57c638 use new Migen signal attribute API 2016-10-29 21:19:58 +08:00
da5208e160 drtio: add master gateware target 2016-10-29 17:31:15 +08:00
7c05dccf65 drtio: add support for 125MHz clock on GTX_1000BASE_BX10 2016-10-29 17:30:29 +08:00
95def81c03 drtio: squelch frame signals until link layer ready 2016-10-29 17:05:30 +08:00
4f6241283c drtio: always use NoRetiming on MultiReg inputs 2016-10-29 16:37:53 +08:00
b14fcd41e4 ksupport: add ad9154* 2016-10-28 02:39:24 +02:00
2a1e529dcf phaser: DDS config dummies 2016-10-28 01:58:08 +02:00
8eff8586bb moninj.rs: force u32 dds_ftws 2016-10-28 01:57:55 +02:00
6d07a16c62 Merge branch 'master' into phaser
* master: (72 commits)
  gateware: extend mailbox to 3 entries.
  master/worker_db: set default value for archive
  master: keep dataset manager consistent when set_dataset is called with contradictory attributes
  master: archive input datasets. Closes #587
  master: ensure same dataset is in broadcast and local when mutating
  scheduler: default submission arguments, closes #577
  pdq2: sync with pdq2
  doc: clarify usage of pause/check_pause, closes #571
  dashboard/datasets: use scientific spinbox and increase number of decimals, closes #572
  gateware/spi: fix import
  runtime: fix use of $(realpath) in Makefile.
  test: fix printf specifier.
  llvm_ir_generator: make sure RPC allocations are not underaligned.
  runtime: use i64 for watchdog timeout, not i32.
  runtime: port ksupport to Rust.
  runtime: remove some redundant libm functions copied inline.
  language: Add "A" (ampere) as well-known unit for arguments
  conda: misoc 0.4 (csr)
  runtime: cap log level at debug.
  runtime: discard unnecessary sections.
  ...
2016-10-28 01:40:11 +02:00
c428800caf phaser: spi, sma_gpio: 2.5 V 2016-10-27 15:53:49 +02:00
65b2e4464c phaser: sysref/sync diff term 2016-10-27 14:14:56 +02:00
ea0c304a0c phaser2: wip 2016-10-27 01:00:42 +02:00
9bbc6eb0ef drtio: more full stack testing 2016-10-26 22:04:32 +08:00
929a7650a8 drtio: fixes 2016-10-26 22:03:44 +08:00
45621934fd drtio: forward errors to CSR 2016-10-26 22:03:05 +08:00
7f8e53aa5c drtio: more fixes and tests 2016-10-26 11:48:47 +08:00
22173b8c70 drtio: full stack unittest 2016-10-26 00:35:22 +08:00
f763b519f4 drtio: fix channel selection 2016-10-26 00:33:21 +08:00
ad042de954 drtio: fixes, basic TTL working in simulation 2016-10-25 12:41:16 +08:00
e981b23548 phaser: use misoc cordic 2016-10-24 19:33:23 +02:00
d2f776b0d0 phaser: add more tools 2016-10-24 17:39:14 +02:00
94e68dbae4 drtio: test_full_stack (WIP) 2016-10-24 23:36:33 +08:00
a4e85081aa drtio: more simple fixes 2016-10-24 23:32:49 +08:00
029e0d95b7 drtio: simple fixes 2016-10-24 23:10:15 +08:00
c39987b617 drtio: handle underflow/sequence error CSRs 2016-10-24 20:46:55 +08:00
7dd6eb2f5e drtio: add RT write controller 2016-10-24 19:50:13 +08:00
83bec06226 drtio: fifo level -> fifo space 2016-10-24 15:59:12 +08:00
aa8e211735 drtio/rt_packets: fix 2016-10-22 13:03:35 +08:00
449d1c4dc6 rtio: export CDC modules 2016-10-22 13:03:10 +08:00
67c19ab178 drtio: RTPacketMaster RX, untested 2016-10-22 01:04:14 +08:00
3b4a40401a drtio: RTPacketMaster TX (WIP) 2016-10-21 22:46:14 +08:00
1e313afe64 drtio: CrossDomainNotification 2016-10-21 22:45:45 +08:00
c71c4c89e0 drtio: change data direction in _CrossDomainRequest 2016-10-21 22:44:47 +08:00
whitequark
6872017449 gateware: extend mailbox to 3 entries. 2016-10-21 12:09:14 +00:00
6a88229e6a drtio: CrossDomainRequest 2016-10-20 23:37:59 +08:00
6aa13fbf25 master/worker_db: set default value for archive 2016-10-19 20:12:16 +08:00
9790c5d9ed drtio/iot: FIFO level 2016-10-19 18:04:03 +08:00
bf942fc228 ksupport: adapt to dyld_load() 2016-10-18 11:37:27 +02:00
71480c4d15 drtio: fix mmcm_mult 2016-10-18 17:28:03 +08:00
5d184f8061 master: keep dataset manager consistent when set_dataset is called with contradictory attributes 2016-10-18 17:11:07 +08:00
69d96b0158 master: archive input datasets. Closes #587 2016-10-18 17:11:07 +08:00
ed2624545f master: ensure same dataset is in broadcast and local when mutating 2016-10-18 17:11:07 +08:00
1908339d4e scheduler: default submission arguments, closes #577 2016-10-18 17:11:06 +08:00
54f05b6fc1 ksupport: kernel_run lookup with dyld (closes #590)
adapt to misoc change
2016-10-18 10:07:07 +02:00
78700a67bc sawg: fast-math 2016-10-18 10:05:51 +02:00
b2327cf808 sawg: core is kernel_invariant 2016-10-18 10:05:51 +02:00
0e41725e2d pdq2: sync with pdq2 2016-10-18 09:43:46 +02:00
69099691f7 doc: clarify usage of pause/check_pause, closes #571 2016-10-17 20:08:15 +08:00
02adccf4a2 dashboard/datasets: use scientific spinbox and increase number of decimals, closes #572 2016-10-17 19:57:59 +08:00
e7dbed3b02 gateware: KC705 satellite target 2016-10-17 19:23:45 +08:00
9752ffe3d1 drtio: various fixes 2016-10-17 19:23:08 +08:00
cce29e8b83 gateware/spi: fix import 2016-10-17 14:47:19 +08:00
b6002529cf gateware/spi: fix import 2016-10-17 14:07:11 +08:00
85834976d9 gateware/spi: fix import 2016-10-17 14:06:35 +08:00
whitequark
6da1f39670 runtime: fix use of $(realpath) in Makefile. 2016-10-17 00:11:02 +00:00
whitequark
f10a4498c7 test: fix printf specifier. 2016-10-16 23:54:29 +00:00
whitequark
2a9e370840 llvm_ir_generator: make sure RPC allocations are not underaligned. 2016-10-16 16:43:03 +00:00
whitequark
7618907cad runtime: use i64 for watchdog timeout, not i32. 2016-10-16 16:32:43 +00:00
whitequark
a8c017bfcc runtime: port ksupport to Rust. 2016-10-16 16:32:43 +00:00
whitequark
fee75bd50f runtime: remove some redundant libm functions copied inline. 2016-10-16 16:25:29 +00:00
6a683c712b phaser: work around for unreliable transciever init 2016-10-16 16:01:23 +02:00
d3b274fc4d drtio: synchronizer MMCM 2016-10-16 17:40:58 +08:00
03d3a85e75 drtio: RX clock alignment and ready 2016-10-15 18:36:27 +08:00
Florent Kermarrec
0259c80015 phaser/kc705: remove transceiver initialization workaround 2016-10-14 19:06:43 +02:00
9ba6be8796 phaser: speed up ad9154_test_status 2016-10-14 13:23:14 +02:00
4b4fd32e3d phaser: add another sawg demo 2016-10-14 13:21:42 +02:00
d16068dd9b sawg: absolute phase updates 2016-10-14 12:42:08 +02:00
9b43f09c1d phaser: cleanup prbs 2016-10-14 11:56:10 +02:00
b41b9de905 phaser: tag jesd as clock net 2016-10-14 10:46:33 +02:00
4ea3dea217 phaser: broad spectrum antibiotics with xilinx false paths 2016-10-14 10:22:03 +02:00
e400f8d672 phaser: add two more registers before jesd 2016-10-14 09:54:56 +02:00
3c9c42c779 phaser: drive rtio from jesd-bufg 2016-10-14 02:26:19 +02:00
b9de621557 phaser: fix comment 2016-10-14 02:18:58 +02:00
2b5a69a80c phaser: rm idle_kernel 2016-10-14 02:18:15 +02:00
808874a523 phaser: drive cd_jesd with BUFG 2016-10-14 01:57:48 +02:00
342d6d756e phaser: bypass gtx phalign 2016-10-14 00:59:53 +02:00
89150c9817 phaser: 10G line rate 2016-10-14 00:53:38 +02:00
08e4aa3e3f drtio: GTX WIP 2016-10-14 00:36:13 +08:00
c548a65ec3 drtio: clock domains 2016-10-14 00:34:59 +08:00
42c6658ffe phaser: add some more blinking leds 2016-10-13 15:21:27 +02:00
6a456bd7d4 phaser: feed correct sink (crucial) 2016-10-13 15:17:38 +02:00
b1137563b3 phaser: cleanup dac_setup 2016-10-13 15:02:42 +02:00
4c7c479c94 ad9154: add mirrored bits 2016-10-13 15:02:18 +02:00
c8e45ae3f6 phaser: cleanup jesd phy instantiation a bit 2016-10-13 14:43:24 +02:00
01bfe54dde phaser: actually enable stpl 2016-10-13 14:09:29 +02:00
78a41eec8f phaser: kc705: syntax 2016-10-13 12:38:32 +02:00
Florent Kermarrec
af0e8582a2 phaser: use new jesd clocking 2016-10-13 11:51:06 +02:00
David Nadlinger
e037d167f4 language: Add "A" (ampere) as well-known unit for arguments
Signed-off-by: David Nadlinger <code@klickverbot.at>
2016-10-13 12:22:01 +08:00
9c8b21b3f4 phaser: let link settle a bit longer before starting 2016-10-12 16:13:34 +02:00
0d1ed247e2 phaser: tweak sawg example 2016-10-12 16:01:07 +02:00
2d14864c6d Revert "phaser: 500 MHz dacclock"
This reverts commit 5f737bef76.
2016-10-12 16:01:07 +02:00
Florent Kermarrec
12b8598b84 stpl: fix byte ordering 2016-10-12 15:59:27 +02:00
9644a3a362 ad9154: mix mode addr, digital gain must be on 2016-10-12 15:00:53 +02:00
4376ef5615 phaser: slow down spi a bit 2016-10-12 14:37:43 +02:00
3f1d96b68d phaser: tweak dac_setup 2016-10-12 14:22:57 +02:00
466d1e8304 phaser: update stpl 2016-10-12 14:22:21 +02:00
5f737bef76 phaser: 500 MHz dacclock 2016-10-12 14:03:08 +02:00
3b1d5d7eb6 phaser: verify flags in dac_setup 2016-10-12 12:19:08 +02:00
1117fe191b phaser: support core stpl 2016-10-12 12:03:29 +02:00
f515c11f26 phaser: fix refclk period spec 2016-10-11 20:13:34 +02:00
bae5b73155 phaser: comment out stpl test 2016-10-11 19:50:19 +02:00
2b1cca2e7e phaser: stpl 2016-10-11 19:29:27 +02:00
018f6d1b52 drtio: implement basic IOT 2016-10-11 17:59:22 +08:00
18d18b6685 phaser: add sync ttl input for monitoring 2016-10-10 17:13:23 +02:00
f5f7acc1f8 ttl_simple: add pure Input
(no Tristate for internal signals)
2016-10-10 17:13:23 +02:00
e27228fdd5 ad9516: duty cycle correction 2016-10-10 17:13:23 +02:00
a40b39e9a2 drtio: structure 2016-10-10 23:12:12 +08:00
Florent Kermarrec
c08caae171 phaser: use qpll 2016-10-10 17:05:42 +02:00
5f7229ef92 ad9154: tweak jesd prbs test 2016-10-09 20:34:15 +02:00
87ec333f55 drtio: implement basic writes, errors, fifo levels on satellite 2016-10-10 00:13:41 +08:00
1f93658724 phaser/dac_setup: clear sticky bits, use syncmode=9 2016-10-07 18:54:21 +02:00
89a30b6f7c phaser: error on startup kernel 2016-10-08 00:02:38 +08:00
4e60a6ac71 phaser: tweak sawg example 2016-10-08 00:02:24 +08:00
whitequark
9c3394794e runtime: cap log level at debug. 2016-10-07 14:24:12 +00:00
1157a3a54b ad9514_status: more info 2016-10-07 15:42:46 +02:00
72932fccec phaser: fix sysref for 250 MHz sample rate 2016-10-07 15:40:00 +02:00
cfd2fe8627 phaser: fix fpga deviceclock divider 2016-10-07 13:40:45 +02:00
23b3302200 drtio: implement TSC load in satellite 2016-10-07 19:30:53 +08:00
9b860b26e8 phaser: fix rtio pll inputs 2016-10-07 13:00:42 +02:00
c846e758f1 phaser: fix startup_kernel/ceil 2016-10-07 12:57:38 +02:00
09434ec054 phaser: also adapt rtio_crg 2016-10-07 12:44:22 +02:00
43caffc168 drtio: self-checking echo test 2016-10-07 17:31:51 +08:00
whitequark
4d790b452c runtime: discard unnecessary sections. 2016-10-07 08:30:14 +00:00
0574e882d2 drtio: basic RT packet echo test 2016-10-07 15:36:32 +08:00
cb0d1549c6 drtio: add rt_packets TX datapath, fixes 2016-10-07 15:35:29 +08:00
Florent Kermarrec
e998a980b3 phaser/startup: use get_configuration_checksum() 2016-10-07 09:00:01 +02:00
Florent Kermarrec
b02a7234f6 phaser: use 125MHz refclk for jesd 2016-10-07 08:59:34 +02:00
whitequark
ef10344b3e runtime: rewrite isr() in Rust. 2016-10-07 06:27:10 +00:00
whitequark
8be60cc223 runtime: fix KERNELCPU_LAST_ADDRESS after layout change. 2016-10-07 05:53:55 +00:00
whitequark
4f11b071a5 runtime: remove useless handshaking in analyzer. 2016-10-07 05:53:16 +00:00
whitequark
b52ecda1d5 runtime: make memory map saner. 2016-10-06 18:05:38 +00:00
whitequark
b4bbf44a0a runtime: buffer writes of RPC data.
This improves upload speed ~166×.
2016-10-06 17:32:26 +00:00
whitequark
557bc4bb56 runtime: remove unnecessary buffering. 2016-10-06 17:25:43 +00:00
whitequark
edafb08b43 test: fix d6193365. 2016-10-06 16:27:12 +00:00
whitequark
d619336503 test: update libartiq_support for changed personality ABI. 2016-10-06 15:44:55 +00:00
whitequark
bcdbd00e7b runtime: remove unnecessary null bytes from session protocol. 2016-10-06 15:39:00 +00:00
whitequark
5428a866b3 runtime: the Rust runtime is now just the runtime. 2016-10-06 15:38:45 +00:00
4390fea437 phaser status: add statusmode stuff for serdes pll 2016-10-06 17:36:54 +02:00
01bc7faacc dac_setup: cleanup, add doc 2016-10-06 17:27:50 +02:00
fee7831573 phaser: split setup 2016-10-06 16:48:03 +02:00