forked from M-Labs/artiq
1
0
Fork 0
Commit Graph

4411 Commits

Author SHA1 Message Date
Sebastien Bourdeauducq f39ee7ad62 rtio/sed: fix seqn_width 2017-09-16 10:52:37 +08:00
Sebastien Bourdeauducq 064503f224 rtio/sed/LaneDistributor: support specifying existing CRI 2017-09-16 10:52:13 +08:00
Sebastien Bourdeauducq 1cb05f3ed5 rtio/sed/LaneDistributor: persist underflow/sequence error until next write 2017-09-16 10:51:44 +08:00
Sebastien Bourdeauducq 3c922463a0 style 2017-09-15 15:36:46 +08:00
Sebastien Bourdeauducq 8e5ab90129 rtio/sed: add FIFO wrapper 2017-09-15 15:36:34 +08:00
Sebastien Bourdeauducq 490c9815a2 rtio/sed: add TSC/gate (untested) 2017-09-14 19:53:21 +08:00
Sebastien Bourdeauducq 181cb42ba8 rtio/sed: centralize all layouts in one file 2017-09-14 19:52:31 +08:00
Sebastien Bourdeauducq 1b61442bc3 rtio/sed: fix lane spreading and enable by default 2017-09-13 22:48:10 +08:00
Sebastien Bourdeauducq 8cfe2ec53a rtio/sed: fix sequence number width computation 2017-09-13 22:11:41 +08:00
Sebastien Bourdeauducq a92a955d1e rtio/sed: use __all__ 2017-09-13 18:17:22 +08:00
Sebastien Bourdeauducq feec6298a5 rtio/sed: add lane distributor simulation unittest 2017-09-13 18:00:16 +08:00
Sebastien Bourdeauducq c74abccfd5 rtio/sed: lane distributor fixes 2017-09-13 17:50:06 +08:00
Sebastien Bourdeauducq bdd96084c5 rtio/sed: add lane distributor (untested) 2017-09-13 00:07:26 +08:00
Sebastien Bourdeauducq faf54127ac rtio/sed: remove VCD fine in unittest 2017-09-11 23:07:09 +08:00
Sebastien Bourdeauducq a2b7894134 rtio/sed: add output driver simulation unittest 2017-09-11 23:05:10 +08:00
Sebastien Bourdeauducq 00ff3f5b0d rtio/sed: fix output driver busy output 2017-09-11 23:04:52 +08:00
Sebastien Bourdeauducq 64d9381c36 rtio/sed: remove uneeded yield in test_sed_output_network 2017-09-11 23:02:56 +08:00
Sebastien Bourdeauducq 666bc600a2 rtio/sed: add output driver (untested) 2017-09-11 11:10:28 +08:00
Sebastien Bourdeauducq 1d2ebbe60f rtio/sed: make ON payload layout configurable, add latency function 2017-09-11 09:06:40 +08:00
Sebastien Bourdeauducq 527b403bb1 rtio/sed: add output network simulation unittest 2017-09-10 23:41:20 +08:00
Sebastien Bourdeauducq c5d6a2ba1a rtio/sed: more output network fixes 2017-09-10 23:41:04 +08:00
Sebastien Bourdeauducq 96505a1cd9 rtio/sed: output network fixes 2017-09-10 23:23:10 +08:00
Sebastien Bourdeauducq 5646e19dc3 rtio/sed: add output network (untested) 2017-09-10 14:38:43 +08:00
Sebastien Bourdeauducq 928cffb09b firmware: export floor() in ksupport. Closes #828 2017-09-10 12:07:06 +08:00
Sebastien Bourdeauducq 264d5fde83 runtime: fix Rust types in RTIO
Previous code assumed all RTIO registers were u32, but this was changed
by misoc c5edcd08.
2017-09-06 19:21:39 +08:00
Florent Kermarrec 2091c7696a artiq/gateware/targets/sayma_amc_standalone: fix serwb_pll vco_div and serwb_phy mode 2017-09-06 09:18:12 +02:00
Sebastien Bourdeauducq 2b2b345eb9 firmware: wait for serwb to be ready before proceeding further 2017-09-06 11:07:07 +08:00
Sebastien Bourdeauducq 33f053cff8 libboard: complete but undebugged support for HMC830/7043 programming 2017-09-06 10:46:02 +08:00
Sebastien Bourdeauducq 4baf17cebe libboard: generate HMC7043 register write list 2017-09-05 21:46:03 +08:00
Sebastien Bourdeauducq 091bb28043 libboard: use libbuild_artiq 2017-09-05 21:13:04 +08:00
whitequark 74b7010d67 runtime: allow safely pulling logs even on TRACE log level.
Before this commit, this resulted in a packet flood, because
sending a TRACE log message to the host caused more TRACE log
messages to be emitted.
2017-08-31 14:13:51 +00:00
whitequark c9e2a085ec logging, aqctl_corelog: recognize log level TRACE. 2017-08-31 13:12:22 +00:00
Sebastien Bourdeauducq b609366c6f runtime: fix Rust types in RTIO
Previous code assumed all RTIO registers were u32, but this was changed
by misoc c5edcd08.
2017-08-31 13:42:32 +08:00
Sebastien Bourdeauducq 44edba0c65 firmware: add placeholder code for HMC830/7043 initialization 2017-08-31 13:35:47 +08:00
Sebastien Bourdeauducq 9edff2c520 remote_csr: interpret length as CSR size, not number of bus words 2017-08-31 13:34:48 +08:00
Sebastien Bourdeauducq 0a5904bbaa firmware: support for multiple JESD DACs 2017-08-31 13:05:48 +08:00
Sebastien Bourdeauducq a4144a07c4 sayma_amc: add converter SPI config defines 2017-08-31 13:04:38 +08:00
Sebastien Bourdeauducq bacf8a1614 style 2017-08-31 12:52:09 +08:00
Sebastien Bourdeauducq d92cca9712 artiq_flash: fix target_file handling 2017-08-31 12:16:52 +08:00
Sebastien Bourdeauducq ad0a940e2d sayma_rtm: hook up DAC SPI 2017-08-31 11:48:54 +08:00
Sebastien Bourdeauducq f765dc50de sayma_rtm: do not keep DACs in reset 2017-08-31 11:44:33 +08:00
Sebastien Bourdeauducq a67659338d sayma: clean up serwb comments 2017-08-31 11:42:01 +08:00
whitequark 4883eea252 libproto: simplify (NFC). 2017-08-31 02:48:59 +00:00
whitequark 20f43d5792 firmware: fix ethmac MTU value.
1500 is the maximum payload size, not maximum frame size.
2017-08-31 00:57:35 +00:00
whitequark 737c1044a4 firmware: update smoltcp. 2017-08-31 00:45:56 +00:00
Florent Kermarrec 660f9856ec gateware/serwb: add test for phy initialization 2017-08-30 17:59:10 +02:00
whitequark f26e698f31 Revert "firmware: reduce ethmac maximum burst size by one."
This reverts commit 2231b16e0a.

Only made a difference with TRACE log level to UART, i.e. only
because UART was the bottleneck.
2017-08-30 15:22:20 +00:00
whitequark 39ecbc0d68 firmware: update smoltcp. 2017-08-30 14:35:45 +00:00
whitequark 2231b16e0a firmware: reduce ethmac maximum burst size by one.
Empirically, this much reduces packet loss. I'm not really sure why,
but it seems safe to do the change.
2017-08-30 14:35:25 +00:00
Florent Kermarrec 9650233007 gateware/serwb: change serdes clock domain to serwb_serdes 2017-08-30 15:44:44 +02:00
Florent Kermarrec 32ca51faee gateware/targets/sayma_amc_standalone/rtm: use new serwb modules 2017-08-30 15:25:20 +02:00
Florent Kermarrec 41d57d64f6 gateware/serwb: SERWBPLL, SERWBPHY, SERWBCore and add checks in delay finding to verify the sampling window 2017-08-30 14:40:11 +02:00
Florent Kermarrec 9ba50098a8 gateware/test/serwb: use unittest for in test_etherbone 2017-08-29 17:31:01 +02:00
Florent Kermarrec 7d7f6be7ce gateware/serwb: generate wishbone error if link loose ready in the middle of a transaction 2017-08-29 16:41:29 +02:00
Florent Kermarrec 60ad36e7d6 gateware/serwb: generate wishbone error on wishbone slave when access while link is not ready 2017-08-29 13:43:26 +02:00
Florent Kermarrec 89558e2653 gateware/serwb: for the initial version set delay in the center of the valid sampling window and don't use phase detectors
we'll use phase detectors later when it will be working reliably for both artix7 and kintex ultrascale
2017-08-29 13:38:52 +02:00
mntng d19e70595a test_rpctool: always create new asyncio event loop 2017-08-29 04:00:09 -04:00
mntng 3952954c12 add unitttest for artiq_rpctool 2017-08-28 10:39:32 -04:00
Sebastien Bourdeauducq 26a11a296c sayma_rtm: drive DAC control signals 2017-08-26 16:57:02 -07:00
Sebastien Bourdeauducq d609c67cbd sayma_rtm: set clock mux pins 2017-08-26 16:48:10 -07:00
Sebastien Bourdeauducq 9194402ea5 sayma_rtm: expose HMC SPI bus 2017-08-26 16:31:31 -07:00
Sebastien Bourdeauducq dbc12540da sayma_amc: register RTM CSR regions from CSV 2017-08-26 14:48:11 -07:00
whitequark e6e176fa14 Revert "firmware: update smoltcp."
This reverts commit 7c340f6b48.
2017-08-25 12:03:01 +00:00
whitequark 7c340f6b48 firmware: update smoltcp. 2017-08-25 07:20:38 +00:00
whitequark f5e1d9568d firmware: update smoltcp. 2017-08-24 05:50:59 +00:00
Sebastien Bourdeauducq 54c75d3274 sayma_rtm: use CSR infrastructure, generate CSR CSV 2017-08-23 17:19:53 -04:00
whitequark 3823193060 artiq_devtool: forward multiple connections.
In particular this is useful for running concurrent arqctl_corelog
and anything else using the management channel, such as
artiq_coreboot.
2017-08-23 09:33:07 +00:00
Sebastien Bourdeauducq 668450db26 sayma_amc: add serwb 2017-08-21 18:11:29 -04:00
Sebastien Bourdeauducq 0459a70cf6 sayma_amc: cleanup, fix RTM UART forwarding 2017-08-21 16:49:42 -04:00
Sebastien Bourdeauducq 1f2b373d09 sayma_rtm: remove unnecessary serwb_control 2017-08-21 16:37:13 -04:00
Sebastien Bourdeauducq bfea297279 targets: add Sayma RTM 2017-08-21 15:58:01 -04:00
Sebastien Bourdeauducq 53c7f92fdc serwb: add __init__.py and expose submodules 2017-08-21 15:57:43 -04:00
Sebastien Bourdeauducq dac3a78b75 serwb: style, use migen, fix imports 2017-08-21 12:35:59 -04:00
Florent Kermarrec da90a0fa12 Add test for Etherbone
Files copied directly from https://github.com/enjoy-digital/sayma_test @ 9ec62242659910ad1726beb00ff15b3f0a406615
2017-08-21 12:31:49 -04:00
Florent Kermarrec 44dc76e42e Add serial Wishbone bridge
Files copied directly from https://github.com/enjoy-digital/sayma_test @ 9ce2cba87896d056819dc2edc54f0453a86162c3
2017-08-21 12:22:05 -04:00
Sebastien Bourdeauducq d6b624dfbe sayma_amc: connect RTM serial and second serial 2017-08-20 19:01:55 -04:00
Sebastien Bourdeauducq e94d0803e1 artiq_flash: fix Sayma load addresses 2017-08-20 18:21:36 -04:00
Sebastien Bourdeauducq 261b6fb42e artiq_flash: fix AMC_DR_LEN 2017-08-20 18:20:51 -04:00
Sebastien Bourdeauducq 9f4c9fc14b artiq_flash: Sayma support 2017-08-20 17:23:56 -04:00
Sebastien Bourdeauducq bee4902323 add Sayma AMC standalone target 2017-08-20 11:47:45 -04:00
Sebastien Bourdeauducq ac83bfbd8e runtime: add support for targets without SPI flash 2017-08-20 11:28:57 -04:00
Sebastien Bourdeauducq 1dab7df846 kc705_sma_spi: fix permissions 2017-08-20 10:54:24 -04:00
Sebastien Bourdeauducq 8459cfe8db firmware: remove unnecessary git_describe rust-cfg 2017-08-15 08:14:17 -06:00
mntng ea135f9d06 add unittest for artiq_compile and ELF artiq_run (#455) 2017-08-15 08:13:11 -06:00
Sebastien Bourdeauducq cf1de4b26a test_spi: convert to Unix EOL 2017-08-04 11:48:20 +08:00
Robert Jördens dd6c48fed2 Merge branch 'master' into epoch_time 2017-08-03 12:55:01 +02:00
Chris Ballance cc289dd3a0 master: store run_time and start_time as doubles 2017-08-03 10:41:57 +01:00
Chris Ballance 223501f811 master: use epoch time for timestamps (closes #726) 2017-08-03 10:30:31 +01:00
Chris Ballance eabca1f311 master: correct example datestring in help 2017-08-03 10:12:52 +01:00
Chris Ballance 810bb69989 master: rotate logs at midnight, rather than on log size 2017-08-03 00:31:04 +01:00
Sebastien Bourdeauducq 2998372d08 browser,dashboard: delete MDI subwindows when they are closed 2017-07-29 20:36:38 +08:00
mntng 692dc0803b test: add test for SPI core using SD card 2017-07-28 19:10:44 +08:00
Sebastien Bourdeauducq df4f38a1e4 kc705: add pullup on SD card MISO 2017-07-24 22:26:16 +08:00
Sebastien Bourdeauducq 189020344c spi: fix typo in doc 2017-07-20 22:18:21 +08:00
Sebastien Bourdeauducq d0b21a8e85 manual: add short description of drivers, with replace support information. Closes #777 2017-07-20 12:01:29 +08:00
Robert Jördens 471605ec1e pdq: move to https://github.com/m-labs/pdq 2017-07-19 17:35:28 +02:00
Sebastien Bourdeauducq 377c776ec8 examples/dma_blink: replay → playback 2017-07-18 14:01:08 +08:00
Sebastien Bourdeauducq 9898681a38 aqctl_corelog: only set logging.DEBUG after the server is set up
Otherwise asyncio pollutes the log.
2017-07-18 14:00:06 +08:00
whitequark dd87508a7f Implement forwarding of logs from core device to master.
Fixes #691.
2017-07-18 05:31:59 +00:00
whitequark 819440f839 runtime: split log timestamp into secs.micros. 2017-07-18 05:31:59 +00:00
whitequark 9e38132c0a artiq_devtool: don't drop data in unpredictable ways (sigh). 2017-07-18 05:31:59 +00:00
Sebastien Bourdeauducq a201a9abd9 drtio: multilink transceiver interface 2017-07-18 13:27:33 +08:00
Robert Jördens d96c2abe44 pdq: read/write_reg -> get/set_reg
see also m-labs/pdq#14
2017-07-17 21:45:46 +02:00
Sebastien Bourdeauducq 9045b4cc19 drtio: initial firmware support for multi-link 2017-07-18 00:40:21 +08:00
whitequark d06d53b00d firmware: don't bail out if building not from a git checkout (#783). 2017-07-15 03:16:21 +00:00
Sebastien Bourdeauducq 4deb5f6a45 gateware: use new MiSoC Wishbone address system 2017-07-13 19:16:49 +08:00
mntng 40ca951750 kc705: add SPI bus for memory card
This will be useful for SPI unit tests using a SD card as victim.
2017-07-12 00:27:44 +08:00
Robert Jördens f0841f5489 spline: be really verbose
closes #773
2017-07-07 11:43:58 +02:00
Robert Jördens 7b130a2c32 sawg: confirm smooth(order=3) 2017-07-07 11:36:03 +02:00
Robert Jördens 3bc0e32dc0 sawg: advance the timeline on Config access
c.f. #773 #765
2017-07-07 11:33:58 +02:00
Robert Jördens 3222f5036f sawg: describe latency matching in detail 2017-07-06 10:06:21 +02:00
whitequark 1e2603572a runtime: fix a bug causing sockets to get stuck in CLOSE-WAIT. 2017-07-05 16:27:36 +00:00
whitequark 86c027e9c5 artiq_flash: don't require binaries to merely restart FPGA. 2017-07-04 18:55:38 +00:00
whitequark ee1d5dbccb runtime: allow a much larger log buffer and avoid hacks. 2017-07-04 18:18:31 +00:00
whitequark 7a5fbc1622 devtool: forward port 1383 (moninj). 2017-07-04 17:54:18 +00:00
whitequark 4e5ea1bbaf dashboard: fix a crash touching moninj without a connection. 2017-07-04 17:53:48 +00:00
Robert Jördens 2f1029c292 Revert "sawg: advance dds 1/2 by one sample group"
This reverts commit 8e0a1cbdc8.

c.f. #772

The underlying issue is still the same. You will always find something that does not match when trying to compare the DDS with the parallelized DUC. They are just different. I could correct it for phase but then it will fail for amplitude. Or you'll compare the offset channel to phase1 or amplitude1. Let's state that equal things are well synchronized but unequal things may have a deterministic latency difference of strictly less than one coarse RTIO cycle.
2017-07-04 17:55:19 +02:00
Robert Jördens 8e0a1cbdc8 sawg: advance dds 1/2 by one sample group
closes #772
2017-07-04 16:51:58 +02:00
Robert Jördens 91ca9fbcad sawg: also give offset some headroom
closes #771
2017-07-04 16:50:06 +02:00
Robert Jördens 78d1f0fdf6 sawg: fix PhasedAccu resets 2017-07-04 11:56:21 +02:00
Florent Kermarrec 2910b1be5e artiq/gateware/rtio/dma: replace leave_out with omit in Record.connect 2017-07-04 10:48:06 +02:00
Sebastien Bourdeauducq 838127d914 rtio: break DMA timing path 2017-07-02 10:24:01 +08:00
whitequark ea7549cfa4 compiler: coerce `while` condition to bool.
Fixes #768.
2017-07-01 18:59:07 +00:00
Robert Jördens 911ee4a959 rtio: make pipelined logic reset_less
* latency-corrected counters
* registered error logic
2017-06-29 12:55:32 +02:00
Robert Jördens 600a48ac61 dsp.fir: cleanup 2017-06-29 12:18:48 +02:00
Robert Jördens dca662a743 dsp.fir: pipeline final systolic adder 2017-06-29 11:33:19 +02:00
Robert Jördens 32a33500c8 dsp.fir: actively cull zero delays 2017-06-29 11:24:56 +02:00
Robert Jördens f520d4a768 rtio: undo _RelaxedAsyncResetSynchronizer 2017-06-28 22:08:15 +02:00
Robert Jördens 3cbbcdfe96 sawg: don't enable_replace for Config
closes #762
2017-06-28 20:31:40 +02:00
Robert Jördens f2632e0fd1 sawg: adapt latency to fir changes
closes #748
2017-06-28 20:12:30 +02:00
Robert Jördens e7db2c6578 dsp.accu: reset_less outputs 2017-06-28 20:04:58 +02:00
Robert Jördens 6bb994228f dsp.fir: drop x shift 2017-06-28 19:55:15 +02:00
Robert Jördens 01847271c5 rtio: use reset_less signal for reset fanout 2017-06-28 19:43:55 +02:00
Robert Jördens b9859cc0c3 dsp.fir: remove old/wrong comment 2017-06-28 19:21:57 +02:00
Robert Jördens 55b5b87490 fir: simplify latency compensation
Don't try to tweak out the last bit of latency by feeding the HBF input
early. Instead feed it late so the interpolated samples are early and
the latency is an even multiple of the super-sample cycle.
2017-06-28 19:13:43 +02:00
Robert Jördens d1e5dd334f sawg: use pipeline reset 2017-06-28 19:09:39 +02:00
Robert Jördens 6418205906 dsp.fir: use pipelin-reset 2017-06-28 19:09:21 +02:00
whitequark 6a49c114c8 runtime: update smoltcp. 2017-06-28 00:27:22 +00:00
whitequark 370f22541c runtime: update smoltcp. 2017-06-27 21:06:45 +00:00
whitequark f36f00a83d artiq_devtool: do not chop up the TCP stream into 1024 byte chunks.
This makes the smoltcp behavior quite different than without
the TCP forwarding (and can mask smoltcp issues).
2017-06-26 08:39:16 +00:00
whitequark 282f4256e0 artiq_pcap: atomically replace pcap file.
Otherwise this segfaults Wireshark (?!).
2017-06-26 03:22:14 +00:00
whitequark d6f4f1f3bc artiq_devtool, artiq_pcap: better option naming. 2017-06-26 00:00:05 +00:00
whitequark 6061393bd0 tools: lazily import paramiko. 2017-06-25 07:17:03 +00:00
whitequark 816ec6c52f artiq_pcap: implement. 2017-06-25 07:04:29 +00:00
whitequark 69fa9b38e0 test: actually run test_embedding.AsyncTest. 2017-06-25 05:28:32 +00:00
whitequark 31b52ff1b3 coredevice: do not desync kernel TCP stream on RPCReturnValueError.
And propagate the error upwards instead of trying to squeeze it
through the core device in futility.
2017-06-25 04:47:32 +00:00
whitequark fdb24ef139 coredevice: truncate overlong exception messages.
If we have a really long one (megabytes) then this may exhaust
the heap of the core device and crash it.
2017-06-25 04:39:08 +00:00
whitequark 1fa8be3835 artiq_devtool: don't loop forever if core device dies. 2017-06-25 04:18:45 +00:00
whitequark f17a6616b2 runtime: ensure management interface buffer can hold log buffer.
Otherwise we get weird edge cases where the network stack could try
to append to log buffer while management interface is holding
the log buffer and trying to push it out, and it's just no good.

The serialized log buffer at its maximum length is slightly longer
than 32 KiB, so we just allocate the largest possible TCP buffer
to the management interface to keep it simple.
2017-06-24 17:09:28 +00:00
whitequark d0f72632e1 language: export TBytes and TByteArray. 2017-06-24 17:03:35 +00:00
whitequark 12357d884e runtime: update smoltcp. 2017-06-24 16:55:59 +00:00
Robert Jördens 07f5e99140 dsp/sat_add: works after previous changes 2017-06-22 18:24:22 +02:00
Robert Jördens f78d5a87e9 dsp/test: skip and fix sat_add 2017-06-22 18:01:31 +02:00
Robert Jördens 47928a2c0d sawg: disable limiter
temporary workaround to permit testing other aspects
2017-06-22 17:31:04 +02:00
Robert Jördens cd2ac53bc5 dsp/sat_add: make width mandatory 2017-06-22 17:28:39 +02:00
Robert Jördens 9b940aa876 dsp/sat_add: spell out logic more 2017-06-22 16:55:13 +02:00
Robert Jördens d0cf0f2b87 sawg/limiter: make signed signals explicitly 2017-06-22 13:44:36 +02:00
Robert Jördens 53be34a25f sawg: clear phase accu in reset 2017-06-22 13:27:49 +02:00
Robert Jördens 694f8d784c dsp/tools: unittest sat_add 2017-06-22 11:29:56 +02:00
Robert Jördens bd1438d28e sawg: wrap limits init values 2017-06-22 10:26:29 +02:00
Robert Jördens cccd01e81e sawg: cleanup sat_add logic 2017-06-22 10:26:29 +02:00
Robert Jördens 5f6e665158 test/sawg: patch delay_mu 2017-06-22 10:26:29 +02:00
Robert Jördens 570f2cc1ff dsp/tools/SatAdd: fix reuse of clipped signal 2017-06-22 10:26:29 +02:00
Robert Jördens 4b3aad2563 sawg: clean up Config
* unify I and Q data limiters. there is no conceivable way why they
would be different.
* reorder clr bits to be like consistent
* move the sat add limiter to before the hbf again
2017-06-22 10:26:29 +02:00
Robert Jördens f4c6879c76 sawg: special case Config RTIO address 2017-06-22 10:26:29 +02:00
Robert Jördens ff0da2c9fc sawg: stage code for y-data exchange on channels 2017-06-22 10:26:29 +02:00
Robert Jördens b6569df02f dsp/tools: clean up SatAddMixin logic 2017-06-22 10:26:29 +02:00
Robert Jördens f369cb97f7 sawg/examples: add a bit more slack 2017-06-22 10:26:29 +02:00
Chris Ballance 05b57f5110 protocols: increase another asyncio line limit (#671) 2017-06-22 09:43:52 +08:00
Sebastien Bourdeauducq c2cc29142d drtio: remove misleading comment from device_db 2017-06-21 18:34:53 +08:00
Sebastien Bourdeauducq 6262969d46 test: relax test_dma_record_time 2017-06-21 18:33:58 +08:00
Sebastien Bourdeauducq 64ce85445c drtio: add remote converter SPI example (#740) 2017-06-21 17:08:12 +08:00
Sebastien Bourdeauducq 74cf074538 drtio: remove sawg_3g from example targets, add converter SPI bus from FMC-EBZ at all times 2017-06-21 17:01:52 +08:00
Sebastien Bourdeauducq 66dee9d1ad drtio: send/process I2C and SPI aux packets (#740) 2017-06-21 16:50:51 +08:00
Sebastien Bourdeauducq f58f16ccd4 drtioaux: add default timeout 2017-06-21 16:23:11 +08:00
Sebastien Bourdeauducq 7675dd063b drtioaux: add I2C and SPI packets (#740) 2017-06-21 14:07:16 +08:00
Sebastien Bourdeauducq c74de6ae96 phaser: reintroduce test_ad9154_status 2017-06-20 00:49:57 +08:00
Sebastien Bourdeauducq 8c56a95fa2 spi: add default busno 2017-06-20 00:49:38 +08:00
Sebastien Bourdeauducq 39ddb66f0f phaser: add AD9154 SPI access driver to example ddb 2017-06-20 00:49:21 +08:00
Sebastien Bourdeauducq 470bce6214 coredevice: add AD9154 SPI access driver 2017-06-20 00:48:50 +08:00
Sebastien Bourdeauducq a6d06824e7 fix indentation 2017-06-20 00:12:11 +08:00
Sebastien Bourdeauducq 8f2d85fc5b add back ad9154_reg.py 2017-06-19 23:45:32 +08:00
Sebastien Bourdeauducq c86029bca2 i2c: expose restart as syscall, add structure for I2C-over-DRTIO 2017-06-19 23:44:51 +08:00
Sebastien Bourdeauducq 268b7d8aaf typo 2017-06-19 15:42:10 +08:00
Sebastien Bourdeauducq 09d198c7a1 test: add test for exception on non-existent I2C bus 2017-06-19 15:32:09 +08:00
Sebastien Bourdeauducq d08bd58dff versioneer: cut git hashes consistently (#753) 2017-06-19 15:31:48 +08:00
Sebastien Bourdeauducq 6c6bb67618 libboard: fix compiler warning on not(has_i2c) 2017-06-19 14:57:15 +08:00
Sebastien Bourdeauducq 5d63489080 i2c,spi: add busno error detection 2017-06-19 14:27:30 +08:00
Robert Jördens 0d8067256b rtio: refactor RelaxedAsyncResetSynchronizer 2017-06-18 14:37:08 +02:00
Sebastien Bourdeauducq 8399f8893d add kernel access to non-realtime SPI buses (#740) 2017-06-18 12:45:07 +08:00
Robert Jördens 424b2bfbd8 rtio: describe rio and rio_phy domains a bit more 2017-06-17 12:21:07 +02:00
Robert Jördens 219dfd8984 rtio: add one register level for rio and rio_phy resets
* This should give Vivado some wiggle room during PnR.
* It needs three new clock domains which is ugly. But since
AsyncResetSynchronizer can only drive clock domains resets directly
there seems to be no other way to add one register level currently.
2017-06-17 12:17:48 +02:00
Sebastien Bourdeauducq 8fea361412 firmware: always use 8 characters to abbreviate git commit hashes 2017-06-17 14:43:50 +08:00
Robert Jördens e19bfd4781 test_sawg_fe: add ref_multiplier to simulated core 2017-06-16 19:45:24 +02:00
Robert Jördens b5772f478a sawg: add channel reset (closes #751) 2017-06-16 19:31:57 +02:00
Robert Jördens 2a76034fbc cri: add note about clearing of o_data 2017-06-16 19:06:00 +02:00
Robert Jördens fecc42fd0c sawg/phaser: expand documentation (closes #750) 2017-06-14 11:49:52 +02:00
Robert Jördens 858c1be381 sawg: expand documentation 2017-06-13 18:51:48 +02:00
Robert Jördens 3f37870e25 sawg: register pre-hbf adder 2017-06-13 18:15:44 +02:00
Robert Jördens e229edd5d5 sawg: add register after hbf for timing 2017-06-12 23:08:27 +02:00
Robert Jördens 315338fca9 test/sawg: test HBF overshoot, fix sim patching 2017-06-12 20:35:47 +02:00
Robert Jördens 9a8a7b9102 sawg: handle clipping interpolator
* give 1 bit headroom to interpolator to handle overshoot
* fix Config limiter widths (NFC)
* move clipper to behind the HBF to correctly shield DUC

This leaves a factor of two headroom for the sum of the following
effects:

  * HBF overshoot (~15 % of the step)
  * A1/A2 DDS sum

While this is technically not sufficient and can still lead to
overflows, it is unlikely that one would trigger those. It would require
doing large amplitude A1, large amplitude A2 and additionally doing
amplitude/phase jumps that would overshoot the HBF. No sane person would
try that, right?

closes #743
2017-06-12 20:33:54 +02:00
Robert Jördens 1fb3995ffc Revert "fir/ParallelHBFUpsampler: add headroom (gain=2)"
This reverts commit 6ac9d0c41e.

Overshooting behavior must to be handled outside the FIR.
2017-06-12 20:07:25 +02:00
Robert Jördens 332bcc7f3b fir: check widths 2017-06-12 20:07:23 +02:00
Robert Jördens 39a1dcbb3d test/fir: look at overshoot behavior 2017-06-12 20:06:07 +02:00
Robert Jördens 6ac9d0c41e fir/ParallelHBFUpsampler: add headroom (gain=2)
This addresses part of #743
2017-06-12 18:59:45 +02:00
Robert Jördens 566ff73dff pdq: unify spi-PDQ and usb-PDQ protocols 2017-06-10 15:03:25 +02:00
Robert Jördens 6c54c0f834 sawg: update example 2017-06-10 11:52:48 +02:00
Robert Jördens d8aee931ba sawg: extend phase mode docs 2017-06-09 12:26:49 +02:00
whitequark f7254dd3ce compiler.validators.constness: take AugAssign into account. 2017-06-09 07:31:08 +00:00
whitequark ad2ee714c2 compiler: do not permit iterating str values.
This currently breaks badly on UTF-8, and doesn't even return
a value of a correct type.
2017-06-09 07:29:31 +00:00
whitequark 4e7493843a compiler: Constness is a validator, not analysis. 2017-06-09 07:29:31 +00:00
whitequark 5d841d08e9 compiler: do not permit mutation of bytes values (#714). 2017-06-09 07:29:28 +00:00
whitequark 284382b1f5 compiler: add support for bytearray values in RPC (#714). 2017-06-09 07:15:25 +00:00
whitequark 9ed4e9c1cd compiler: add support for printing of bytearray values (#714). 2017-06-09 07:15:25 +00:00
whitequark e9564b15c8 compiler: add support for bytearray type (#714). 2017-06-09 07:15:24 +00:00
whitequark 5b4fde30a8 compiler: unbreak subscripts for bytes values (#714). 2017-06-09 07:10:48 +00:00
whitequark 66a683f583 compiler: add support for bytes values in RPC (#714). 2017-06-09 07:10:48 +00:00
whitequark 778e7dc2ab compiler: add support for concatenating bytes values (#714). 2017-06-09 07:10:48 +00:00
whitequark 7b2da5294f compiler: add support for printing of bytes values (#714). 2017-06-09 07:10:48 +00:00
whitequark dba4e1a28b compiler: add support for bytes type and b"x" literals (#714). 2017-06-09 07:10:48 +00:00
whitequark d0e92067c3 ksupport: fix UB. 2017-06-09 06:18:20 +00:00
Robert Jördens 91ad2bc600 sawg: add note about disabled q-exchange 2017-06-07 09:13:01 +02:00
Robert Jördens 94273e9455 sawg: add non-mu methods for limiter 2017-06-07 09:12:36 +02:00
Sebastien Bourdeauducq ebb4660207 coredevice: compare software and gateware versions strictly 2017-06-07 02:11:54 +08:00
Sebastien Bourdeauducq f3c7a7de3b phaser: remove non-functional SPI examples
Those will be reimplemented after we have converter SPI access, but this will not be part of the 3.0 release.
2017-06-06 17:37:13 +08:00
Sebastien Bourdeauducq ab493a860d coredevice: fix socket resource leak 2017-06-05 15:45:40 +08:00
Sebastien Bourdeauducq bea7a47349 coredevice: compare gateware and software versions on release numbers only. Closes #738 2017-06-05 13:52:24 +08:00
Sebastien Bourdeauducq 9c973793df update versioneer 2017-06-05 13:27:26 +08:00
Sebastien Bourdeauducq 92307d1f9c fix some missing pdq2→pdq renames 2017-06-03 18:35:36 +08:00
Robert Jördens 2458da1ade pdq: get new host driver, adapt 2017-05-31 00:20:10 +02:00
Robert Jördens 2895448477 sawg: link Spline in docs 2017-05-23 10:33:04 +02:00
Robert Jördens 52625d57f0 sawg: explain DUC 2017-05-23 10:28:23 +02:00
Robert Jördens bfc224d4ba phaser: adjust to new jesd 2017-05-22 19:59:53 +02:00
Robert Jördens 679060af1d phaser: enable dma 2017-05-22 19:32:34 +02:00
Robert Jördens 06721c19c4 sawg: work around bool->int 2017-05-22 18:50:58 +02:00
Robert Jördens 1562f79101 sawg: expose config channel 2017-05-22 18:27:42 +02:00
Robert Jördens 4901cb9a8a sawg: fix clr width 2017-05-22 17:46:55 +02:00
Robert Jördens 253ee950f6 sawg: fix config channel addr 2017-05-22 17:45:14 +02:00
Sebastien Bourdeauducq e845de2ff2 remove aqcli_pdq2 2017-05-22 19:17:23 +08:00
Sebastien Bourdeauducq e4a631a3d7 scheduler: consider the pipeline flushed if everything has a lower priority than us. Closes #640 2017-05-22 18:43:59 +08:00
Sebastien Bourdeauducq 5fc953119e fix usage of CommMgmt 2017-05-22 17:32:11 +08:00
Sebastien Bourdeauducq 6bdb76e9ea core device logging controller WIP (#691) 2017-05-22 16:48:00 +08:00
Sebastien Bourdeauducq 5ccca74a3f fold comm device into core device 2017-05-22 15:45:45 +08:00
Sebastien Bourdeauducq e7382f4753 fix test_ctlmgr 2017-05-22 15:04:46 +08:00
Sebastien Bourdeauducq 0ae5e6d8b1 test_lda: more thorough and consistent test of simulation mode 2017-05-22 00:26:05 +08:00
Sebastien Bourdeauducq 3ed70afaa1 Use commandline prefix for controllers
This keeps them better organized and consistent with the artiq_* naming scheme.
Tab completion from aqctl_ also lists all the controllers installed on a machine.
2017-05-22 00:22:10 +08:00
Sebastien Bourdeauducq c83e15d040 artiq_corelog: cleanup 2017-05-22 00:06:03 +08:00
Sebastien Bourdeauducq 8cf0628435 fix lit tests 2017-05-18 23:41:01 +08:00
Sebastien Bourdeauducq b7a94d466d fix experiment name conflict in phaser example 2017-05-18 23:14:55 +08:00
Sebastien Bourdeauducq cd757c0f16 generate device database from executable python file 2017-05-18 23:14:55 +08:00
Florent Kermarrec db3e1aef77 examples/phaser: adapt test_ad9154_prbs to new prbs in fabric 2017-05-15 16:12:02 +02:00
Sebastien Bourdeauducq 9ab63920e0 Remove Pipistrello support
Closes #658
Closes #381
2017-05-15 17:17:44 +08:00
Sebastien Bourdeauducq ad85a0cee3 add session manager (#691) 2017-05-15 17:05:22 +08:00
Chris Ballance 0b6fb95deb firmware: fix revision of compiler_builtins for satman 2017-05-13 15:12:53 +01:00
Robert Jördens 170d2886fd Merge branch 'pdq'
* pdq:
  pdq: documentation
  pdq2 -> pdq
  pdq2: use 16 bit data, buffered read_mem()
  spi: style
  pdq2: mem_read
  pdq2: align subsequent writes to end
  sma_spi: undo cri_con
  pdq2: memory write, kernel_invariants
  sma_spi: cri/cd changes
  sma_spi: LVCMOS25
  coredevice.spi: kernel invariants and style
  sma_spi: free up user_sma pins
  sma_spi: add demo target with SPI on four SMA
  pdq2: memory write
  pdq2: crc/frame register accessors
  doc: pdq2 spi backend
  pdq2: config writes
2017-05-12 11:46:45 +02:00
Robert Jördens fed24309b8 pdq: documentation 2017-05-02 18:55:02 +02:00
Robert Jördens 1a1edb13bf pdq2 -> pdq 2017-05-02 18:05:41 +02:00
Florent Kermarrec 79c339d4ac gateware/targets/phaser: jesd core now handles jsync completely 2017-04-26 22:25:08 +02:00
Chris Ballance 8ebb33c05c master: record time run() is called 2017-04-26 23:36:19 +08:00
Florent Kermarrec 0546affd4c gateware/target/phaser: jesd start signal renamed to jsync 2017-04-26 12:27:40 +02:00
whitequark bb64992395 compiler: remove dead code. 2017-04-21 18:38:43 +00:00
whitequark c5d7445973 compiler: reject reachable implicit return if not returning TNone.
Fixes #718.
2017-04-21 18:11:14 +00:00
whitequark ed2b10c5aa compiler: in codegen for delay(), round fp instead of truncating.
Consider delay(8*us). It results in the following computation...
  >>> 8*1e-06/1e-09
  7999.999999999999
with the result promptly getting truncated to 7999.

Fixes #706.
2017-04-21 17:36:44 +00:00
whitequark a820ae98cf ksupport: avoid allocations on I/O error paths.
Fixes #715.
2017-04-21 17:20:50 +00:00
whitequark b913d1d6f2 runtime: make a copy of startup/idle kernel firmware before loading.
Fixes #716.
2017-04-21 16:46:40 +00:00
whitequark 726ee7370a runtime: update smoltcp.
This brings in correct TIME-WAIT handling. Fixes #722.
2017-04-21 16:08:04 +00:00
whitequark 0e68eaa879 runtime: print a heap dump on out-of-memory condition. 2017-04-21 14:48:10 +00:00
whitequark fd994ceef3 DMA: various fixes to bring tests in line. 2017-04-20 20:05:03 +00:00
whitequark db494967c5 firmware use Rust 0.18.0. 2017-04-19 09:38:24 +00:00
Sebastien Bourdeauducq fe05aede78 firmware: DmaPlayback → DMARetrieve 2017-04-19 11:11:42 +08:00
Sebastien Bourdeauducq e8f7f8ef9c DMA: speed up playback
Time reduced from 1.53µs to 1.37µs.
2017-04-19 10:59:12 +08:00
whitequark 41c4de4556 DMA: add API for a much faster replay using handles. 2017-04-18 08:20:12 +00:00
whitequark c6e8d5c901 runtime: allow setting UART log level explicitly.
This is way more convenient than commenting out parts
of session.rs when debugging.
2017-04-15 08:27:18 +00:00
whitequark 0531dc45c3 DMA: erase trace before re-recording it.
Or we could needlessly OOM replacing a large trace.
2017-04-15 07:48:02 +00:00
whitequark 9dfe9c1248 DMA: improve recording performance.
This commit moves DMA serialization code to the kernel CPU
(to cope with the existence of rtio_output_wide) and batches
the resulting sequences. This results in less data being transferred
between kernel and comms CPUs (24 octets with one pointer before,
18 octets with no pointers now, for the common case of rtio_output),
but most importantly reduces cache flushes, which now happen
once per 64k octets.

On average, it now takes about 15us to record a single RTIO event
in a DMA trace.

Fixes #712.
2017-04-15 07:29:52 +00:00
whitequark ea753bed17 runtime: advise to set panic_reboot=1 on panic. 2017-04-15 07:29:36 +00:00
Robert Jördens 534e681d0b pdq2: use 16 bit data, buffered read_mem() 2017-04-13 20:49:46 +02:00
Robert Jördens 90cf11994e spi: style 2017-04-13 13:38:29 +02:00
Robert Jördens 8446cccb4e pdq2: mem_read 2017-04-13 13:38:13 +02:00
whitequark 0b9601f12d artiq_devtool: more robust defaults. 2017-04-13 08:26:48 +00:00
whitequark 3a1fc729cf compiler: refactor type annotations recognizing in kernels.
The new implementation is much more generic, more robust,
and shares code with the same for syscalls as well as RPCs.

Fixes #713.
2017-04-13 08:26:10 +00:00
whitequark 31048f4b6a compiler: fix monomorphization of coerced integer literals.
Fixes #703.
2017-04-12 04:11:47 +00:00
whitequark 296dc3b0c4 artiq_coreboot: allow hot-rebooting the device. 2017-04-11 03:24:24 +00:00
whitequark 1bd4d13391 artiq_compile: make print() write to core log, not an invalid op.
Fixes #710.
2017-04-11 03:16:34 +00:00
Robert Jördens 20652ce128 pdq2: align subsequent writes to end 2017-04-09 13:50:19 +02:00
Robert Jördens ed8edf318d sma_spi: undo cri_con 2017-04-08 17:19:35 +02:00
Robert Jördens 78dd4b8614 pdq2: memory write, kernel_invariants 2017-04-08 17:16:19 +02:00
Robert Jördens 16b7f8f50c sma_spi: cri/cd changes 2017-04-08 17:16:19 +02:00
Robert Jördens 1e6e81a19e sma_spi: LVCMOS25 2017-04-08 17:16:19 +02:00
Robert Jördens 0838981bed coredevice.spi: kernel invariants and style 2017-04-08 17:16:19 +02:00
Robert Jördens 555b3c38c1 sma_spi: free up user_sma pins 2017-04-08 17:16:19 +02:00
Robert Jördens 2c7c6143ab sma_spi: add demo target with SPI on four SMA 2017-04-08 17:16:19 +02:00
Robert Jördens f13f6eb7be pdq2: memory write 2017-04-08 17:16:19 +02:00
Robert Jördens b9c61ae2da pdq2: crc/frame register accessors 2017-04-08 17:16:19 +02:00
Robert Jördens aebbaa339e pdq2: config writes 2017-04-08 17:16:18 +02:00
Sebastien Bourdeauducq f314f8b8f5 relax test_rpc_timing 2017-04-08 22:45:08 +08:00
Sebastien Bourdeauducq c2667debf8 drtio: test replace in RTL simulation 2017-04-06 16:33:59 +08:00
Sebastien Bourdeauducq 729e7b52f0 drtio: collision/replace fixes 2017-04-06 16:33:49 +08:00
Sebastien Bourdeauducq 83d87b5805 drtio: remove outdated comment 2017-04-06 12:45:10 +08:00
Sebastien Bourdeauducq c0100ebc56 rtio: fix indentation 2017-04-06 12:08:13 +08:00
Sebastien Bourdeauducq 207453efcd rtio: add a missing case for collision reporting 2017-04-06 11:28:16 +08:00
whitequark 14ae1cc100 runtime: advance now on DMA replay.
Fixes #700.
2017-04-05 18:34:36 +00:00
Sebastien Bourdeauducq 674bf82f3a gateware: add cri_con CSRs to all DMA-capable targets 2017-04-06 01:14:09 +08:00
Sebastien Bourdeauducq 5e3aef45dc drtio: support collision/replace + detect sequence errors at satellite 2017-04-06 01:06:56 +08:00
whitequark 56918fb375 test: re-enable DMA tests as the feature is now stable. 2017-04-05 16:43:22 +00:00
whitequark 17b5388259 gateware: remove one stray CRI arbiter remnant. 2017-04-05 16:38:56 +00:00
whitequark 464202d0aa gateware: connect CRI switch to kernel CPU. 2017-04-05 16:10:53 +00:00
whitequark 47632f81b1 gateware: CRIArbiter -> CRISwitch. 2017-04-05 16:10:39 +00:00
whitequark 391660e545 gateware: simplify the CRI arbiter to use a plain mux. 2017-04-05 15:09:19 +00:00
Sebastien Bourdeauducq 12249dac57 rtio: do not clear asynchronous error flags on RTIO reset 2017-04-03 00:20:30 +08:00
Sebastien Bourdeauducq db3118b916 drtio: use BlindTransfer for error reporting 2017-04-03 00:18:07 +08:00
Sebastien Bourdeauducq 8c414cebc7 drtio: report busy errors 2017-04-03 00:11:08 +08:00
Sebastien Bourdeauducq 008678b741 drtio: add infrastructure for reporting busy/collision errors 2017-04-02 23:45:55 +08:00
Sebastien Bourdeauducq 0a687b7902 drtio: report satellite errors through firmware 2017-04-01 12:18:00 +08:00
whitequark 8b98e1ea6d test: relax test_rpc_timing: rpc_time_mean <2ms → <3ms. 2017-03-31 20:41:47 +00:00
Sebastien Bourdeauducq 7ec14f26c2 examples: fix after introduction of RangeScan 2017-03-31 16:54:07 +08:00
Chris Ballance 58da76a169 gui: remove unnecessary state test 2017-03-31 16:48:39 +08:00
Chris Ballance bdf1ca25c6 scannable: fix RangeScan randomize seeding 2017-03-31 16:48:39 +08:00
Chris Ballance 07c71bf020 language,gui: combine LinearScan and RandomScan into RangeScan. Closes #679 2017-03-31 16:48:39 +08:00
Sebastien Bourdeauducq 28211e0b32 gateware: reset RTIO DMA core when kernel CPU is reset 2017-03-31 15:35:28 +08:00
Sebastien Bourdeauducq 200c499114 test: change base address in DMA simulation testbench 2017-03-31 13:17:00 +08:00
whitequark 245e186347 Commit missing parts of 948ed6fb. 2017-03-29 18:34:08 +00:00
Chris Ballance 756e8a415e language: fix PYONValue list defaults (fixes #682) 2017-03-29 21:58:34 +08:00
whitequark d04d7ed120 runtime: show a more informative message for interrupted sessions.
Fixes #690.
2017-03-29 03:36:49 +00:00
whitequark 948ed6fb0a Extract core device management interface from session interface (#691). 2017-03-29 03:36:21 +00:00
Sebastien Bourdeauducq 2e2d0be201 skip crashing DMA tests on buildbot 2017-03-29 09:36:51 +08:00
Chris Ballance 452bc6ecac monkey_patches: fix 3af29f7 2017-03-29 01:07:32 +02:00
whitequark b643847da5 Fix a misleading message for non-clean kernel termination. 2017-03-28 14:22:20 +00:00
whitequark 7eb368fd5d test: add DMA test that checks the analyzer trace. 2017-03-28 14:22:20 +00:00
Sebastien Bourdeauducq 6caab4d10b test: verify that RTIO collisions appear in log 2017-03-27 18:08:03 +08:00
Sebastien Bourdeauducq 432c6b99e2 master: still save results when analyze fails. Closes #684 2017-03-27 17:57:02 +08:00
Sebastien Bourdeauducq 70343b244d test: add more RTIO slack in test_clock_generator_loopback 2017-03-27 17:26:23 +08:00
Sebastien Bourdeauducq 58ee09dbdc test: re-enable test_clock_generator_loopback
It passes now for some reason.
2017-03-27 17:26:02 +08:00
Sebastien Bourdeauducq b9ff5afc85 dma: improve/fix documentation 2017-03-27 17:21:39 +08:00
Sebastien Bourdeauducq 2c3f720301 runtime: report asynchronous RTIO errors (collision, busy) in log. Closes #681 2017-03-27 17:14:14 +08:00
Sebastien Bourdeauducq ea3af1e20e drtio: remove obsolete CSR accesses from test 2017-03-27 16:44:22 +08:00
Sebastien Bourdeauducq b74d6fb9ba make collision and busy asynchronous errors, and simplify CPU/gateware handshake for output errors and reads 2017-03-27 16:32:23 +08:00
Sebastien Bourdeauducq 1ee3f96482 test: self.break_realtime → self.core.break_realtime 2017-03-27 16:31:11 +08:00
whitequark ac9e8b8568 test: avoid underflow in DMA replay test. 2017-03-17 12:09:02 +00:00
whitequark dbea679e96 Revert "test: relax test_rpc_timing on Windows."
This reverts commit e9cf451c0b.
2017-03-17 11:34:45 +00:00
whitequark e9cf451c0b test: relax test_rpc_timing on Windows. 2017-03-17 11:20:16 +00:00
whitequark 7dc7dcda2c test: relax test_pulse_rate_dds to only catch catastrophic slowdown. 2017-03-17 11:17:47 +00:00
whitequark 4de336fbe9 gateware: reverse bytes of SDRAM word, not bits. 2017-03-17 11:16:46 +00:00
whitequark 6b63322106 gateware: reverse SDRAM words in RTIO DMA engine. 2017-03-17 07:29:28 +00:00
whitequark 4b14887ddb gateware: work around ISE/Vivado bugs with very wide shifts. 2017-03-17 07:29:28 +00:00
Sebastien Bourdeauducq f5aa73b8fa satman: unbreak after c586035c 2017-03-15 17:26:09 +08:00
whitequark c586035caa runtime: add an option to reboot after a panic. 2017-03-14 09:02:28 +00:00
whitequark 80c75ed505 firmware: fix for unwinder update. 2017-03-14 08:50:32 +00:00
whitequark 4beda73217 firmware: don't build libdyld through misoc. 2017-03-14 08:33:31 +00:00
Sebastien Bourdeauducq a7de58b604 rtio: Inout → InOut 2017-03-14 14:18:55 +08:00
Sebastien Bourdeauducq 13ae1d1a38 drtio: input unittest 2017-03-14 14:14:55 +08:00
Sebastien Bourdeauducq 56fd9b3b4b drtio: input fixes 2017-03-14 14:14:43 +08:00
Sebastien Bourdeauducq 856a64f6d2 drtio: use TTLInOut in device_db 2017-03-14 14:13:52 +08:00
Sebastien Bourdeauducq 95ede18809 drtio: support PHY latency compensation 2017-03-14 00:01:38 +08:00
Sebastien Bourdeauducq 497c795d8c drtio: input support (untested) 2017-03-13 23:54:44 +08:00
Sebastien Bourdeauducq d1b9f9d737 drtio: rt_packets → rt_packet 2017-03-13 00:10:07 +08:00
Sebastien Bourdeauducq 6b7c781ff2 drtio: introduce 'standard request' interface in RT packet layer 2017-03-13 00:08:03 +08:00
Sebastien Bourdeauducq 2b8729f326 drtio: clear any read request on satellite reset 2017-03-13 00:00:38 +08:00
whitequark b391598c87 artiq_devtool: add reset action. 2017-03-07 14:37:08 +00:00
whitequark 5bbb05362b runtime: update smoltcp. 2017-03-07 11:36:28 +00:00
whitequark d52723d5bc runtime: allow setting log level in configuration. 2017-03-07 11:36:28 +00:00
whitequark cce1481fac artiq_devtool: add hotswap action. 2017-03-07 11:36:28 +00:00
whitequark 795a3e24d8 artiq_coreboot: block until hotswap image is actually received. 2017-03-07 11:36:28 +00:00
Chris Ballance 804e69b144 language: add "W" (Watt) to units 2017-03-07 10:03:42 +08:00
Sebastien Bourdeauducq 6895236794 frontend: fix permissions 2017-03-07 00:47:45 +08:00
Sebastien Bourdeauducq 1e47e638bb drtio: implement inputs in RTPacketSatellite, reorganize code 2017-03-07 00:46:59 +08:00
whitequark b0cdef3211 firmware: implement hotswap through artiq_coreboot tool. 2017-03-06 16:01:28 +00:00
whitequark 98454e9bda runtime: remove unnecessary dcache flush.
Data cache is write-through, so sending data to DMA doesn't need
a flush.
2017-03-04 09:46:55 +00:00
whitequark 218046d96c artiq_devtool: fix an infinite loop on network error. 2017-03-04 09:40:22 +00:00
whitequark 924ae73000 firmware: fix DMA trace alignment and flush caches. 2017-03-04 09:40:22 +00:00
whitequark 30ac42de3f ksupport: fix an exception safety issue.
Raising from inside a recv! will never send an acknowledgement.
2017-03-04 09:40:22 +00:00
Sebastien Bourdeauducq f121ca20fe test: relax test_pulse_rate_dds 2017-03-03 18:10:27 +08:00
Sebastien Bourdeauducq 1e6a33b586 rtio: handle input timeout in gateware
The information passed by the runtime will be used by the DRTIO core
to poll the remote side appropriately.
2017-03-03 17:37:47 +08:00
whitequark 4f94709e9f firmware: move packet dumps to the DEBUG log level. 2017-03-03 06:11:35 +00:00
whitequark e8c093deb3 Allow changing runtime log level without recompilation.
This shouldn't affect performance much, as the log crate guards
every log statement with a branch, adding just two instructions.
2017-03-03 06:06:26 +00:00
whitequark fe77fcc45f firmware: fix a warning. 2017-03-03 05:35:28 +00:00
whitequark 3070a2fac1 runtime: fix more bugs in DMA trace encoder. 2017-03-03 05:15:54 +00:00
whitequark 86dea869b3 compiler.types: add missing TTuple.__hash__ implementation. 2017-03-03 03:27:49 +00:00
whitequark 7e886ddc89 transforms.inferencer: do not unnecessarily mutate typedtree.
This caused the hash to change after every iteration of inference,
if the result of any coercion was an integer of indefinite width.
2017-03-02 16:15:37 +00:00
whitequark 8c9f157563 compiler.embedding: fix an overly lax hasher. 2017-03-02 15:28:24 +00:00
whitequark a79c3c2cff compiler.transforms: implement a typedtree printer. 2017-03-02 15:28:04 +00:00
Sebastien Bourdeauducq d2f2415b50 analyzer: use CRI and connect at RTIO core
This causes DMA events to be included in analyzer traces.
2017-03-02 18:47:56 +08:00
Sebastien Bourdeauducq 0b4922e0f4 dma: request RTIO control 2017-03-01 18:59:45 +08:00
Sebastien Bourdeauducq 553b8046ff examples: add DMA LED blinker 2017-03-01 18:37:58 +08:00
whitequark a4ece19614 Implement DMA playback. 2017-02-28 21:28:40 +00:00
whitequark 4107938fd8 compiler.embedding: use attribute count in fixpoint condition.
Before this commit, we had a hack where inferencing would run
one more time, in case we can still infer more attributes even
after all the type information is there. This doesn't work
if *that* round of inferencing brings even more code, e.g.
this is easy to trigger with context managers.
2017-02-28 21:28:40 +00:00
whitequark 252cda6e7f compiler.llvm_ir_generator: fix string quoting. 2017-02-28 21:28:38 +00:00
Robert Jördens 3af29f7a59 monkey_patches: cleanup 2017-02-28 13:20:41 +01:00
Chris Ballance 00ed3909dd monkey-patch Python 3.5.3 asyncio.base_events._ipaddr_info
this fixes #506 for py3.5.3
2017-02-28 10:49:19 +00:00
Sebastien Bourdeauducq 9cfa3e704b fix test_analyzer 2017-02-27 19:19:46 +08:00
Sebastien Bourdeauducq 3b386aa590 fix test_moninj import 2017-02-27 18:44:32 +08:00
Sebastien Bourdeauducq 7d6ebabc1b reorganize core device communication code 2017-02-27 18:37:30 +08:00
Sebastien Bourdeauducq e64d923a67 dashboard: fix moninj display refresh issues after mode changes 2017-02-27 17:56:45 +08:00
Sebastien Bourdeauducq f402b4af3f drtio: fix typo in example device_db 2017-02-27 17:51:55 +08:00
Sebastien Bourdeauducq d16073fcaa test: add moninj unittest 2017-02-27 15:56:58 +08:00
Sebastien Bourdeauducq b8bfcd2d7e moninj: share probe/override numbers and use Enum 2017-02-27 11:54:16 +08:00
Sebastien Bourdeauducq fc0ce310a8 examples: fix dds_test RTIO underflow 2017-02-27 11:45:18 +08:00
Sebastien Bourdeauducq 26654e6a3a moninj: Python-side fixes 2017-02-27 11:45:04 +08:00
Sebastien Bourdeauducq 7481eaff52 moninj: use smaller network buffer 2017-02-27 11:44:29 +08:00
whitequark 88bf7d2233 firmware: specialize protocol read/write functions.
Before this commit, proto::io::{read,write}_* functions were taking
a &mut {Read,Write}. This means a lot of virtual dispatch.
After this commit, all these functions are specialized for
the specific IO trait.

This could be achieved with just changing the signature from
  fn read_x(reader: &mut Read)
to
  fn read_x<R: Read>(reader: &mut R)
but the functions were also grouped into ReadExt and WriteExt
traits as a refactoring.

Initially, it was expected that the generic traits from
the byteorder crate could be used, but they require endianness
to be specified on every call and thus aren't very ergonomic.
They also lack the equivalent to our read_string and read_bytes.

Thus, it seems fine to just define a slightly different extension
trait.

This also optimized the test_rpc_timing test: 1.7ms→1.2ms.
2017-02-26 18:24:37 +00:00
whitequark de015b994d compiler: allow dumping the object file with ARTIQ_DUMP_OBJ. 2017-02-26 17:09:21 +00:00
Sebastien Bourdeauducq dff23293c7 Merge branch 'master' of github.com:m-labs/artiq 2017-02-27 01:05:40 +08:00
Sebastien Bourdeauducq 96bf414257 dashboard: use new moninj protocol 2017-02-27 00:59:31 +08:00
Sebastien Bourdeauducq 990b8152f6 coredevice: add moninj protocol driver 2017-02-27 00:59:17 +08:00
whitequark 5d3b00cf12 Implement recording of DMA traces on the core device. 2017-02-26 02:50:20 +00:00
whitequark 3a1f14c16c compiler: fix overly strict constness analysis.
Before this commit, the following code would fail to compile...
  obj.foo.bar = True
... if foo is marked kernel_invariant in obj, even if bar is not
marked as such in obj.foo.
2017-02-26 01:58:21 +00:00
whitequark a07bd918f0 firmware: use Rust naming conventions for enum variants. 2017-02-25 22:34:11 +00:00
whitequark 2a81819eb0 firmware: restructure to avoid #[path = "..."] mod ...;
Such code is fragile, introduces mess in dependencies, and
inflates compile times.
2017-02-25 17:54:14 +00:00
whitequark d04e611232 firmware, compiler: rename rpc functions to be more consistent. 2017-02-25 14:12:58 +00:00
Sebastien Bourdeauducq e82ce3ea28 coredevice: ignore .dirty in version checks correctly 2017-02-25 20:05:05 +08:00
Sebastien Bourdeauducq 98be556143 drtioaux: fix compiler warnings 2017-02-25 12:18:57 +08:00
Sebastien Bourdeauducq f017d1771f gateware: remove unused configs in targets (not needed with new moninj) 2017-02-25 12:14:56 +08:00
Sebastien Bourdeauducq 5a16660aa2 runtime: new moninj protocol, TCP-based, with DRTIO support 2017-02-25 12:07:00 +08:00
Sebastien Bourdeauducq 7d568b4bac style 2017-02-25 12:06:12 +08:00
whitequark 13c6e96760 firmware: implement dyld::Library::rebind. 2017-02-25 00:10:40 +00:00
whitequark 04ad267055 firmware: rewrite the dynamic linker in Rust. 2017-02-24 18:57:29 +00:00
Sebastien Bourdeauducq 360be0098f drtio: map local RTIO core on lower channels 2017-02-24 18:15:27 +08:00
whitequark 907589fb58 satman: simplify Makefile. 2017-02-23 10:29:25 +00:00
whitequark 623a605d3b satman: refactor type conversions. 2017-02-23 08:59:27 +00:00
Sebastien Bourdeauducq b34c6ba6b9 satman: process moninj packets 2017-02-23 16:24:05 +08:00
Sebastien Bourdeauducq 45ac0dcf57 drtioaux: add moninj packets 2017-02-23 16:23:51 +08:00
Sebastien Bourdeauducq 016743f079 libdrtioaux: do not attempt to access non-existent DRTIO gateware 2017-02-22 16:45:02 +08:00
Sebastien Bourdeauducq 257527629a firmware: use aux ping to determine when DRTIO satellite is ready 2017-02-22 15:26:32 +08:00
Sebastien Bourdeauducq a8ea557406 firmware: add DRTIO aux packet library (WIP) 2017-02-21 21:55:36 +08:00
Sebastien Bourdeauducq b455ea447d gateware: add moninj to drtio targets 2017-02-21 21:54:47 +08:00
whitequark a12876b239 firmware: update Cargo.lock. 2017-02-21 05:28:48 +00:00
whitequark 1dabe05c5a artiq_devtool: add clean command and --config option. 2017-02-21 05:28:19 +00:00
Sebastien Bourdeauducq c66efc0279 moninj: do not require a rsys clock domain 2017-02-20 15:52:48 +08:00
Robert Jördens e323e37829 pcu: refactor into a device 2017-02-19 19:34:55 +01:00
Robert Jördens b05d1bb7e3 coreanalyzer: fix corner case crash 2017-02-19 19:28:13 +01:00
Robert Jördens 1573ff5fc1 coreanalyzer: add WB stb signal 2017-02-18 14:53:10 +01:00
Robert Jördens 039ced6637 coreanalyzer: use VCD scopes for DDS/SPI 2017-02-18 14:25:01 +01:00
Robert Jördens 7519408857 coreanalyzer: add SPIMaster support 2017-02-18 14:13:20 +01:00
Robert Jördens 41e8acf3ad coreanalyzer handle input events without timestamp
Offset the timeline by the first non-zero timestamp.
2017-02-18 14:12:02 +01:00
Robert Jördens bc3fc26e34 coredevice: expose PCU 2017-02-18 14:09:12 +01:00
Robert Jördens 6b5b679659 libboard: PCU regs 2017-02-18 14:09:12 +01:00
Robert Jördens c022b53578 kernel_cpu: enable perf counters 2017-02-18 14:09:12 +01:00
Sebastien Bourdeauducq 9501d37378 firmware: wait longer for Si5324 lock + more monitoring 2017-02-18 17:24:46 +08:00
Sebastien Bourdeauducq 7e8348a73e si5324: fix error handling 2017-02-18 14:12:18 +08:00
Sebastien Bourdeauducq 59e79673f7 satman: program Si5324 BWSEL depending on frequency 2017-02-18 14:12:01 +08:00
Sebastien Bourdeauducq 0bfce37fae satman: do not use Si5324 automatic clock switching
The Si5324 is easily confused by the broken clock generated during link
initialization with BruteforceClockAligner. This commit prevents this problem.
2017-02-18 13:32:40 +08:00
Sebastien Bourdeauducq bd55436668 protocols: increase asyncio line limit. Closes #671 2017-02-17 20:46:23 +08:00
whitequark 52a046d0fd conda: roll cargo back to 0.11.0, then fix revision of compiler_builtins. 2017-02-05 15:25:43 +00:00
whitequark 25c9b8827a firmware: mark __artiq_{re,}raise as #[unwind].
This is required for correctness.
2017-02-05 09:04:22 +00:00
whitequark f94028b8df Fix c39394b. 2017-02-04 16:23:32 +00:00
Sebastien Bourdeauducq 3eef0bcc1a firmware: give si5324 more time to lock 2017-02-04 19:19:25 +08:00
Sebastien Bourdeauducq 935799dfb7 drtio: fix satellite transceiver clocking 2017-02-04 19:18:35 +08:00
whitequark c39394b4d5 firmware: port the exception handling routines to Rust. 2017-02-04 08:21:07 +00:00
whitequark b9cbedceb1 firmware: migrate last vestiges of the old runtime build system. 2017-02-03 12:59:35 +00:00
whitequark cde2054926 firmware: do not link to C code in runtime and satman. 2017-02-03 12:12:41 +00:00
whitequark fd8b11532f compiler, firmware: use Pascal strings everywhere.
This removes a large amount of very ugly code, and also simplifies
the compiler and runtime.
2017-02-03 11:53:27 +00:00
Chris Ballance e13d8919ff Correct tooltip inconsistency between browser and dashboard 2017-02-03 17:53:40 +08:00
Chris Ballance 639066c6d8 Add tooltips to experiment arguments 2017-02-03 17:53:40 +08:00
whitequark f48cf9d9a0 firmware: use libcompiler_builtins to build satman. 2017-02-03 08:11:42 +00:00
whitequark 4164fc880e artiq_devtool: add support for switching targets. 2017-02-03 07:42:06 +00:00
Sebastien Bourdeauducq a8ecbd6041 firmware: do not attempt to build Si5324 code when gateware does not support it 2017-02-03 12:27:13 +08:00
Sebastien Bourdeauducq 6fe1c9ff45 firmware: read back reserved bits from Si5324, use SFOUT2_REG=b001 instead of reserved b000 2017-02-03 12:24:13 +08:00
Sebastien Bourdeauducq f6e9d571c2 satman: use rust liballoc 2017-02-03 12:23:38 +08:00
Sebastien Bourdeauducq d181989de9 drtio: reset Si5324 at each boot 2017-02-03 12:00:58 +08:00
Sebastien Bourdeauducq b3697f951a drtio: forward clocks to SMA connectors for debugging 2017-02-03 12:00:36 +08:00
Sebastien Bourdeauducq aafefee7f5 targets: make number of ethmac slots consistent 2017-02-02 23:02:51 +08:00
Sebastien Bourdeauducq 90ac915dd1 firmware: do not clear si5324 reserved bit 2017-02-02 20:54:50 +08:00
Sebastien Bourdeauducq 6bea253f82 firmware: fix misleading si5324 comment 2017-02-02 20:53:39 +08:00
whitequark 9c93c760fc firmware: do not use PIC in Rust code.
This fixes test_pulse_rate and test_pulse_rate_dds by making
rtio_output slightly faster.
2017-02-02 12:22:55 +00:00
whitequark 259319e456 firmware: use compiler_builtins crate instead of our compiler-rt.
This cannot be done for ksupport yet because compiler_builtins
misses most soft-float operations.
2017-02-02 10:55:35 +00:00
whitequark 44a9a79f96 firmware: port allocator to Rust. 2017-02-02 10:55:35 +00:00
Sebastien Bourdeauducq f512ea42dc drtio: initialize si5324 in firmware 2017-02-02 18:11:24 +08:00
Sebastien Bourdeauducq 3488b4a857 firmware: si5324 cleanups/fixes 2017-02-02 18:11:00 +08:00
whitequark 3b54736c02 firmware: port flash storage management to Rust. 2017-02-02 05:26:06 +00:00
whitequark 0df8a24135 Fix c2cf60e. 2017-02-02 01:08:20 +00:00
whitequark c2cf60e7f6 firmware: use the cslice crate to get rid of unsafe code in ksupport. 2017-02-02 00:51:58 +00:00
whitequark 9a9a3aa7de firmware: remove unnecessary inline assembly in libboard. 2017-02-02 00:21:34 +00:00
whitequark f3b2610ffc Fix bc22d1c. 2017-02-01 01:56:39 +00:00
whitequark 6fd149f048 Show a message when interrupting a running kernel (except idle kernel).
Fixes #625.
2017-01-31 22:53:38 +00:00
whitequark bc22d1c009 firmware: libksupport → ksupport.
The idea is that support libraries are called lib*, and the final
products that linked into an executable are not.
2017-01-31 22:24:37 +00:00
whitequark 7a14cf503b firmware: fix a warning. 2017-01-31 22:19:45 +00:00
whitequark 680a7067a8 firmware: use ? instead of try! everywhere. 2017-01-31 22:18:59 +00:00
whitequark ee1b2fa3ea compiler: swap the order of ptr/len fields in lists.
This is to make them match the Rust slices.
Once the cslice crate becomes #![no_std] we'll also use its (tidier)
conversion functions.
2017-01-31 22:11:13 +00:00
whitequark ab71c9a0ba compiler: the len builtin is not polymorphic, coerce the result.
Fixes #659.
2017-01-31 21:28:20 +00:00
whitequark 6acdcbb82a Fix 2f37b1d. 2017-01-30 10:25:11 +00:00
whitequark 2f37b1d1c0 compiler: support methods defined on singleton instances.
Fixes #638.
2017-01-30 10:10:21 +00:00
whitequark b95db4fa4e Use four ethmac buffers instead of two.
This should address an issue where the host sends a packet burst,
the second packet in a burst gets dropped, the rest also gets
dropped since smoltcp doesn't do reassembly, and the entire dance
is repeated on every retransmit.
2017-01-30 07:42:27 +00:00
whitequark 3a19a9fb77 firmware: minor cleanup in board::si5324. 2017-01-30 07:29:44 +00:00
Sebastien Bourdeauducq 9800acea92 drtio: program Si5324 for 150MHz in 3G config 2017-01-30 14:50:12 +08:00
Sebastien Bourdeauducq 7daab07a29 drtio: fix syntax/import 2017-01-30 13:01:45 +08:00
Sebastien Bourdeauducq d8e9949266 drtio: initialize AD9516 clock chip 2017-01-30 11:06:45 +08:00
Sebastien Bourdeauducq 54295b1699 firmware: use has_ad9154 instead of has_converter_spi for conditional compilation
DRTIO designs do not have a JESD core yet, so we need to support converter SPI buses with only the clock chip.
2017-01-30 11:03:55 +08:00
Sebastien Bourdeauducq f6024b6c9a drtio: fix ad9154 extension registration 2017-01-30 10:59:22 +08:00
Sebastien Bourdeauducq 3aced46b19 dashboard: report lost connection with master. Closes #602 2017-01-30 10:48:27 +08:00
Sebastien Bourdeauducq dcea48a52d protocols/broadcast,sync_struct: add disconnect callback 2017-01-30 10:47:56 +08:00
Sebastien Bourdeauducq 43aad0914e python3.5 -> python3
Many things also work with Python 3.6.
2017-01-30 09:24:43 +08:00
Sebastien Bourdeauducq 657afd770e artiq/test/gateware -> artiq/gateware/test
This allows gateware simulations to be skipped or not considered for coverage when using test discovery.
2017-01-30 09:00:55 +08:00
whitequark be0953d98f firmware: unbreak Io::sleep().
Fixes #663.
2017-01-27 18:18:02 +00:00
Sebastien Bourdeauducq 82c4c61290 fix 7b2eba9f 2017-01-27 23:44:59 +08:00
Sebastien Bourdeauducq 94b0783897 drtio: remove support for transceiver SMAs
Passive SFP cables do not require bitstream rebuilds and do not cause weird transceiver failures.
2017-01-27 23:33:50 +08:00
Sebastien Bourdeauducq 7b2eba9fbd firmware: misoc_registers -> misoc_cfg 2017-01-27 23:28:00 +08:00
Sebastien Bourdeauducq 11994d1900 satman: unbreak build 2017-01-27 23:26:40 +08:00
Sebastien Bourdeauducq 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
Robert Jördens 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
Robert Jördens 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
Robert Jördens 653eee071d artiq_flash: make scripts_path a function (for doc generating) 2017-01-26 17:53:33 +01:00
Sebastien Bourdeauducq 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
Sebastien Bourdeauducq 28a41a2f60 gateware: fix aeb1ba847 2017-01-18 17:11:02 -06:00
Sebastien Bourdeauducq 5c0d402ef3 firmware: runtime.ld formatting 2017-01-18 17:09:49 -06:00
Sebastien Bourdeauducq 2a7a8f91ca gateware: fix import 2017-01-18 16:51:30 -06:00
Sebastien Bourdeauducq ce31ffddb0 firmware: add satellite manager
The code duplication with the runtime should be cleaned up later.
2017-01-18 16:50:32 -06:00
Sebastien Bourdeauducq b40953800a gateware: soc -> amp.soc 2017-01-18 15:28:14 -06:00
Sebastien Bourdeauducq aeb1ba8471 gateware: use default MiSoC timer 2017-01-18 15:22:33 -06:00
Sebastien Bourdeauducq 043780d603 drtio: fix DRTIOSatellite invokation in test 2017-01-15 17:30:02 -06:00
Sebastien Bourdeauducq b8d89d56b1 drtio: add GenericRXSynchronizer 2017-01-15 13:44:43 -06:00
Sebastien Bourdeauducq 0edffb54c2 drtio: fix packet truncation detection in RTPacketSatellite 2017-01-13 09:29:22 -06:00
Sebastien Bourdeauducq 6805feb494 drtio: report truncated packets 2017-01-12 23:44:45 -06:00
Robert Jördens 394ffd827e phaser/demo_2tone: add ttl and led pulse 2017-01-11 21:45:34 +01:00
Sebastien Bourdeauducq 7c699e2f80 drtio: add FIFO space request count debug API 2017-01-11 13:48:14 -06:00
Sebastien Bourdeauducq c25186fae1 drtio: print packet error descriptions in log 2017-01-10 18:03:01 -06:00
Sebastien Bourdeauducq 7af152ed22 firmware: pass spawner around instead of scheduler 2017-01-10 16:15:39 -06:00
Sebastien Bourdeauducq d3d23d0d3b drtio: report get FIFO space timeouts to log 2017-01-10 16:12:46 -06:00
Sebastien Bourdeauducq 98598df78e rtio: keep retrying on get FIFO space timeout 2017-01-10 16:12:32 -06:00
Sebastien Bourdeauducq 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
Sebastien Bourdeauducq f75fffcf96 drtio: fix satellite RX data corruption 2017-01-10 14:29:30 -06:00
Sebastien Bourdeauducq fdfaa377db drtio: add debug syscalls 2017-01-08 15:06:14 -06:00
Sebastien Bourdeauducq 1b49affd18 typo 2017-01-08 13:04:10 -06:00
Sebastien Bourdeauducq 780d6d152c worker: fix handling of archive parameter during dataset get in examine 2017-01-07 16:20:17 +01:00
Sebastien Bourdeauducq fe53bab953 targets: kc705 -> kc705_dds 2017-01-05 18:40:56 +01:00
Sebastien Bourdeauducq 8be9a827ba test: move dsp tests into their own folder 2017-01-05 18:25:38 +01:00
Sebastien Bourdeauducq 4f97d00e79 firmware: make i2c busno u8 2017-01-05 14:54:48 +01:00
Sebastien Bourdeauducq 13c45c8766 firmware: add si5324 programming functions 2017-01-05 14:50:00 +01:00
Sebastien Bourdeauducq 6c685205ce firmware: support i2c restart 2017-01-05 14:49:24 +01:00
Sebastien Bourdeauducq 082fdaf450 move i2c to libboard, do bit-banging on comms CPU 2017-01-04 21:04:38 +01:00
Sebastien Bourdeauducq 3dd9d54b22 firmware: fix compilation warning without moninj/analyzer 2017-01-04 21:04:08 +01:00
Sebastien Bourdeauducq 86f6b391b7 ad9xxx -> ad9_dds 2017-01-04 11:34:52 +01:00
Sebastien Bourdeauducq c08fc8aae9 firmware: support moninj without DDS. Closes #650 2017-01-04 11:26:02 +01:00
Sebastien Bourdeauducq 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
Sebastien Bourdeauducq 9b4c1ddc8e libboard: use --cfg 2017-01-03 21:39:40 +01:00
Sebastien Bourdeauducq fbf5a4d4a2 Merge branch 'phaser2-rust-init' 2017-01-03 21:31:21 +01:00
Sebastien Bourdeauducq 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
Sebastien Bourdeauducq 8e9be41c73 reset core device in phaser examples 2017-01-03 20:05:22 +01:00
Sebastien Bourdeauducq d29ec22497 remove stale phaser startup kernel 2017-01-03 20:03:55 +01:00
Robert Jördens 9a80b8d533 spi: fix xfers with full data_width (closes #615)
misoc 15000af43611bbe8be13cb2b016e408f043202cd
2017-01-03 19:51:14 +01:00
Sebastien Bourdeauducq 7ff77bceac move AD9616 and AD9154 initialization to firmware 2017-01-03 16:11:38 +01:00
Sebastien Bourdeauducq 6b7e6a53f7 firmware: ad9154 timeouts and logging 2017-01-03 15:19:51 +01:00
Sebastien Bourdeauducq 417708af90 phaser: add note about DDS defines (#650) 2017-01-02 22:15:21 +01:00
Sebastien Bourdeauducq eef3f50016 firmware: fix compilation problems in ad9154 and ad9516 2017-01-02 22:14:20 +01:00
Sebastien Bourdeauducq 26e7f68b5d firmware: move clock to libboard 2017-01-01 18:23:27 +01:00
Sebastien Bourdeauducq 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
Sebastien Bourdeauducq 6c1fc2987a libbsp: add ad9154 and ad9516 init code (untested) 2016-12-31 14:48:43 +01:00
Sebastien Bourdeauducq 62596a733d libbsp: add ad9154 and ad9516 register maps 2016-12-31 14:48:43 +01:00
Sebastien Bourdeauducq 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
Robert Jördens f5f662200b fir: streamline, optimize DSP extraction, left-align inputs 2016-12-20 21:39:51 +01:00
Robert Jördens cfb66117af fir: size hint for pre-adder 2016-12-20 17:58:06 +01:00
Robert Jördens 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
Sebastien Bourdeauducq 68b2373b9a korad_ka3005p: fix simulation mode 2016-12-19 09:49:44 +01:00
Sebastien Bourdeauducq 161025e7df korad_ka3005p: use ProactorEventLoop on windows 2016-12-19 09:33:20 +01:00
Sebastien Bourdeauducq 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
Sebastien Bourdeauducq db5957a7e7 firmware: use bsp crate in ad9154 2016-12-17 11:43:29 +08:00
Sebastien Bourdeauducq 9a564e07c0 firmware: make libbsp a crate 2016-12-16 21:28:25 +08:00
Sebastien Bourdeauducq c99388f80f firmware: use M-Labs as author in Cargo.toml files 2016-12-16 20:14:11 +08:00
Sebastien Bourdeauducq 9967dfc5ca runtime: reorganize to support DRTIO satellite firmware 2016-12-16 19:11:19 +08:00
Sebastien Bourdeauducq 6b998581cc rtio: use same reset for counter_rtio whatever the interface delay is 2016-12-15 09:28:13 +08:00
Robert Jördens 15b48be6e4 test/sawg: adapt to new latency spec 2016-12-14 19:43:30 +01:00
Robert Jördens 115ea67860 fir: automatically use transposed topology 2016-12-14 19:16:07 +01:00
Robert Jördens a451b675c9 Revert "fir: different adder layout"
This reverts commit 6f50e77b409c293c1905f28e69d79403a0803866.
2016-12-14 19:16:07 +01:00
Robert Jördens 93076b8efa fir: different adder layout 2016-12-14 19:16:07 +01:00
Robert Jördens 61abd994e9 Revert "fir: force dsp48"
This reverts commit 0ad433832d1b6dcd803ffa086ae73b2ee0568326.
2016-12-14 19:16:07 +01:00
Robert Jördens 641d109786 fir: force dsp48 2016-12-14 19:16:07 +01:00
Robert Jördens 8381db279f sawg: wire up all HBF outputs, latency compensation in phys, simplify 2016-12-14 19:16:07 +01:00
Robert Jördens 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
Robert Jördens 7be27d7116 fir: add upsample transfer function test 2016-12-14 19:16:07 +01:00
Robert Jördens 4c27029be0 sawg: fix limit regs 2016-12-14 19:16:07 +01:00
Robert Jördens 708c25b83a phaser: don't init rtio in startup_kernel 2016-12-14 19:16:07 +01:00
Sebastien Bourdeauducq e9592105ce drtio: fix aux controller clock domain mistakes 2016-12-14 10:16:45 +08:00
Sebastien Bourdeauducq 527757b471 kc705_drtio: use ad9154_fmc_ebz 2016-12-13 14:30:26 +08:00
Sebastien Bourdeauducq 3b5abae935 drtio: fix clock domain conflict 2016-12-13 14:19:49 +08:00
Robert Jördens 03d13d3811 phaser: dma/drtio changes 2016-12-12 17:46:36 +01:00
Robert Jördens 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
Sebastien Bourdeauducq 4b61020b27 drtio: reset more local state 2016-12-12 18:48:10 +08:00
Sebastien Bourdeauducq d99e64effd drtio: clear any stale FIFO space reply 2016-12-12 18:02:56 +08:00
Sebastien Bourdeauducq 4c59c0fecf Revert "drtio: order resets wrt writes"
This reverts commit 9a048c2b3a.
2016-12-12 17:49:07 +08:00
Sebastien Bourdeauducq 6a60afcba0 runtime: clear all DRTIO FIFOs first, reset remote PHYs on link init 2016-12-12 17:48:25 +08:00
Sebastien Bourdeauducq 8f747fa209 drtio: clear underflow and sequence error on reset 2016-12-12 17:39:14 +08:00
Sebastien Bourdeauducq 7196bc21c1 rtio: simplify error reset logic
Channel is always selected when reset is issued.
2016-12-12 17:35:10 +08:00
Sebastien Bourdeauducq 1c74249638 runtime: reset local DRTIO state 2016-12-12 17:30:41 +08:00
Sebastien Bourdeauducq 9a048c2b3a drtio: order resets wrt writes 2016-12-12 17:18:07 +08:00
Sebastien Bourdeauducq cbc49ea91d set asyncio loop earlier in controllers (#627) 2016-12-12 11:38:02 +08:00
Sebastien Bourdeauducq 3743633b04 Revert "pc_rpc: use ProactorEventLoop on Windows (#627)"
This reverts commit 7d4297b9bb.
2016-12-12 11:33:56 +08:00
Sebastien Bourdeauducq 09fb4869f3 runtime: centralize (D)RTIO management 2016-12-09 19:24:00 +08:00
Sebastien Bourdeauducq 0a9f69a3ed kc705_drtio_master: add missing rtio_core CSRs 2016-12-09 19:23:36 +08:00
Sebastien Bourdeauducq 4422b6902a runtime: silence unused variable warnings 2016-12-09 19:23:06 +08:00
Sebastien Bourdeauducq bc36bda94a perform RTIO init on comms CPU side 2016-12-09 14:16:55 +08:00
Robert Jördens f6071a5812 sawg/hbf: tweak pipeline for timing 2016-12-08 17:00:53 +01:00
Robert Jördens b7a308d33d fir: register multiplier output 2016-12-08 17:00:39 +01:00
Robert Jördens 18e3f58c22 sawg: reduce coefficient width 2016-12-08 16:14:32 +01:00
Robert Jördens 598da09a93 sawg: fix latency 2016-12-08 15:53:35 +01:00
Robert Jördens f4ceace253 test/fir: needs mpl. don't run by default 2016-12-08 15:49:50 +01:00
Robert Jördens efc95043c4 test/sawg: patch spline 2016-12-08 15:49:23 +01:00
Robert Jördens 3eef6229cc sawg: use ParallelHBFCascade to AA [WIP] 2016-12-08 15:32:57 +01:00
Robert Jördens a629eb1665 fir: add ParallelHBFCascade 2016-12-08 15:30:26 +01:00
Robert Jördens d303225249 fir: add ParallelFIR and test 2016-12-08 15:21:04 +01:00
Robert Jördens 7e0f3edca5 gateware/dsp: add FIR and test 2016-12-07 19:14:23 +01:00
Sebastien Bourdeauducq 4c3717932e drtio: link layer debugging CSRs 2016-12-07 23:03:14 +08:00
Robert Jördens 5efd0fcea5 sawg: documentation 2016-12-06 19:25:40 +01:00
Sebastien Bourdeauducq b311830fc4 kc705: fix drtio_aux address conflict 2016-12-06 18:28:48 +08:00
Sebastien Bourdeauducq 4669d3f02f kc705_drtio_satellite: add MiSoC system, hook up auxiliary controller 2016-12-06 14:56:42 +08:00
Sebastien Bourdeauducq f4b7d39a69 kc705_drtio_master: hook up auxiliary controller 2016-12-06 14:56:15 +08:00