Commit Graph

4684 Commits

Author SHA1 Message Date
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
12e22823a2 conda: update misoc dependency. 2017-03-06 13:23:43 +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
f121ca20fe test: relax test_pulse_rate_dds 2017-03-03 18:10:27 +08:00
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
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
0b4922e0f4 dma: request RTIO control 2017-03-01 18:59:45 +08:00
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
3f556a3f58 doc: remove qt5 note 2017-02-28 13:22:47 +01:00
3c50c46a81 conda: pyqt >= 5.5 2017-02-28 13:22:39 +01:00
fca315235c Merge branch 'use_default_pyqt' of https://github.com/cjbe/artiq
* 'use_default_pyqt' of https://github.com/cjbe/artiq:
  conda: use anaconda default pyqt (fixes #670)
2017-02-28 13:21:13 +01:00
3af29f7a59 monkey_patches: cleanup 2017-02-28 13:20:41 +01:00
056a5a7e4d Merge branch 'py3.5.3_monkey-patch' of https://github.com/cjbe/artiq
* 'py3.5.3_monkey-patch' of https://github.com/cjbe/artiq:
  monkey-patch Python 3.5.3 asyncio.base_events._ipaddr_info this fixes #506 for py3.5.3
2017-02-28 13:19:08 +01:00
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
34421ee2f4 conda: use anaconda default pyqt (fixes #670) 2017-02-28 10:38:46 +00:00
9cfa3e704b fix test_analyzer 2017-02-27 19:19:46 +08:00
3b386aa590 fix test_moninj import 2017-02-27 18:44:32 +08:00
7d6ebabc1b reorganize core device communication code 2017-02-27 18:37:30 +08:00
e64d923a67 dashboard: fix moninj display refresh issues after mode changes 2017-02-27 17:56:45 +08:00
f402b4af3f drtio: fix typo in example device_db 2017-02-27 17:51:55 +08:00
d16073fcaa test: add moninj unittest 2017-02-27 15:56:58 +08:00
b8bfcd2d7e moninj: share probe/override numbers and use Enum 2017-02-27 11:54:16 +08:00
fc0ce310a8 examples: fix dds_test RTIO underflow 2017-02-27 11:45:18 +08:00
26654e6a3a moninj: Python-side fixes 2017-02-27 11:45:04 +08:00
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
dff23293c7 Merge branch 'master' of github.com:m-labs/artiq 2017-02-27 01:05:40 +08:00
96bf414257 dashboard: use new moninj protocol 2017-02-27 00:59:31 +08:00
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