whitequark
c7844d5223
runtime: use proper format for git commit.
...
Fixes #620 .
2016-11-17 15:20:21 +00:00
Sebastien Bourdeauducq
bb047aabe9
drtio: simpler link layer
2016-11-17 22:32:39 +08:00
Sebastien Bourdeauducq
09363e1da8
drtio: aux controller unittest
2016-11-16 19:45:28 +08:00
Sebastien Bourdeauducq
140bb0ecee
drtio: aux controller fixes
2016-11-16 19:44:03 +08:00
Sebastien Bourdeauducq
7fa9a4efc3
drtio: aux controller unittest WIP
2016-11-15 12:02:53 +08:00
Sebastien Bourdeauducq
6c9965b444
drtio: aux controller fixes
2016-11-15 12:02:41 +08:00
Sebastien Bourdeauducq
e1394db861
drtio: aux controller minor fixes
2016-11-14 17:26:30 +08:00
Sebastien Bourdeauducq
84bd962ed5
drtio: integrate aux controller
2016-11-14 17:20:47 +08:00
Sebastien Bourdeauducq
a4d92716da
drtio: fix aux receiver, add aux transmitter
2016-11-14 17:18:54 +08:00
Sebastien Bourdeauducq
f2f131e0fb
drtio: add aux receiver (untested)
2016-11-14 00:04:53 +08: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
Sebastien Bourdeauducq
8a48d6d66e
drtio: fix typo
2016-11-09 22:15:42 +08:00
Sebastien Bourdeauducq
863934c4fa
drtio: more reliable link layer init
2016-11-09 22:03:47 +08:00
Sebastien Bourdeauducq
c92ccd3b5b
drtio: add pulse rate example
2016-11-09 15:29:15 +08:00
Sebastien Bourdeauducq
60e748eabe
drtio: better LED demo
2016-11-09 14:53:45 +08:00
Sebastien Bourdeauducq
d547c5d922
drtio: fix example ref_period
2016-11-09 14:44:01 +08:00
Sebastien Bourdeauducq
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
Sebastien Bourdeauducq
95acc9b9d4
drtio: allow specifying 7series RXSynchronizer initial phase
2016-11-08 16:52:40 +08:00
Sebastien Bourdeauducq
bcb5053fb6
drtio: fix master TSC KCSR readout
2016-11-08 16:40:50 +08:00
Sebastien Bourdeauducq
651d538217
Merge branch 'master' into drtio
2016-11-08 16:11:18 +08:00
Sebastien Bourdeauducq
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
Sebastien Bourdeauducq
78f18a12eb
runtime: basic DRTIO init code
2016-11-07 19:34:34 +08:00
Sebastien Bourdeauducq
453e8b7eb3
runtime: support configurations without moninj, log or dds
2016-11-06 23:53:10 +08:00
Sebastien Bourdeauducq
266ae292d9
runtime: support configurations without moninj, log or dds
2016-11-06 23:52:27 +08:00
Sebastien Bourdeauducq
c4cd269afc
Merge branch 'master' into drtio
2016-11-06 00:13:32 +08:00
Sebastien Bourdeauducq
47b9868c68
kc705_drtio_master: pretend drtio is rtio
2016-11-05 23:48:29 +08:00
Sebastien Bourdeauducq
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
Sebastien Bourdeauducq
de47123737
drtio: connect RST and LOCKED on 7series RXSynchronizer MMCM
2016-11-05 00:24:49 +08:00
Sebastien Bourdeauducq
5019b03f10
drtio: add echo and packet count test
2016-11-04 22:24:35 +08:00
Sebastien Bourdeauducq
df7294792c
drtio: break some RT features into manager, add echo request CSR
2016-11-04 19:38:24 +08:00
Sebastien Bourdeauducq
1145a193dd
drtio: fix ack of echo and set_time requests
2016-11-04 18:36:43 +08:00
Sebastien Bourdeauducq
3da1cce783
drtio: add packet counters
2016-11-04 17:53:42 +08:00
Sebastien Bourdeauducq
8ec73cb9ec
dashboard: pack moninj widgets ( #603 )
2016-11-04 16:20:46 +08:00
Sebastien Bourdeauducq
747da3da15
drtio: differentiate local and remote unknown packet type errors
2016-11-04 15:17:19 +08:00
Sebastien Bourdeauducq
f76aa249ce
drtio: squelch 7series RXSynchronizer outputs when MMCM is unlocked
2016-11-04 15:16:48 +08:00
Sebastien Bourdeauducq
6a75837261
drtio: fix link_layer remote RX ready detection
2016-11-03 20:15:04 +08:00
Sebastien Bourdeauducq
1d027ffa95
drtio: fix gtx_7series comma alignment
2016-11-03 20:14:11 +08:00
Sebastien Bourdeauducq
a4ba34bb2c
drtio: cleanup test_full_stack
2016-11-03 20:13:31 +08:00
Sebastien Bourdeauducq
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
Sebastien Bourdeauducq
bee9774bd5
drtio: add link layer status CSR
2016-11-02 13:09:13 +08:00
Sebastien Bourdeauducq
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
Sebastien Bourdeauducq
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
Sebastien Bourdeauducq
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
Sebastien Bourdeauducq
07ad00c1ca
drtio: split kernel/system CSRs
2016-10-31 18:09:36 +08:00
Sebastien Bourdeauducq
9aa94e1a2d
adapt to migen/misoc changes
2016-10-31 00:53:01 +08:00
Sebastien Bourdeauducq
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
Sebastien Bourdeauducq
c656a53532
kc705: clean up clock constraints
2016-10-29 21:28:01 +08:00
Sebastien Bourdeauducq
ed4d57c638
use new Migen signal attribute API
2016-10-29 21:19:58 +08:00
Sebastien Bourdeauducq
da5208e160
drtio: add master gateware target
2016-10-29 17:31:15 +08:00
Sebastien Bourdeauducq
7c05dccf65
drtio: add support for 125MHz clock on GTX_1000BASE_BX10
2016-10-29 17:30:29 +08:00
Sebastien Bourdeauducq
95def81c03
drtio: squelch frame signals until link layer ready
2016-10-29 17:05:30 +08:00
Sebastien Bourdeauducq
4f6241283c
drtio: always use NoRetiming on MultiReg inputs
2016-10-29 16:37:53 +08:00
Sebastien Bourdeauducq
9bbc6eb0ef
drtio: more full stack testing
2016-10-26 22:04:32 +08:00
Sebastien Bourdeauducq
929a7650a8
drtio: fixes
2016-10-26 22:03:44 +08:00
Sebastien Bourdeauducq
45621934fd
drtio: forward errors to CSR
2016-10-26 22:03:05 +08:00
Sebastien Bourdeauducq
7f8e53aa5c
drtio: more fixes and tests
2016-10-26 11:48:47 +08:00
Sebastien Bourdeauducq
22173b8c70
drtio: full stack unittest
2016-10-26 00:35:22 +08:00
Sebastien Bourdeauducq
f763b519f4
drtio: fix channel selection
2016-10-26 00:33:21 +08:00
Sebastien Bourdeauducq
ad042de954
drtio: fixes, basic TTL working in simulation
2016-10-25 12:41:16 +08:00
Sebastien Bourdeauducq
94e68dbae4
drtio: test_full_stack (WIP)
2016-10-24 23:36:33 +08:00
Sebastien Bourdeauducq
a4e85081aa
drtio: more simple fixes
2016-10-24 23:32:49 +08:00
Sebastien Bourdeauducq
029e0d95b7
drtio: simple fixes
2016-10-24 23:10:15 +08:00
Sebastien Bourdeauducq
c39987b617
drtio: handle underflow/sequence error CSRs
2016-10-24 20:46:55 +08:00
Sebastien Bourdeauducq
7dd6eb2f5e
drtio: add RT write controller
2016-10-24 19:50:13 +08:00
Sebastien Bourdeauducq
83bec06226
drtio: fifo level -> fifo space
2016-10-24 15:59:12 +08:00
Sebastien Bourdeauducq
aa8e211735
drtio/rt_packets: fix
2016-10-22 13:03:35 +08:00
Sebastien Bourdeauducq
449d1c4dc6
rtio: export CDC modules
2016-10-22 13:03:10 +08:00
Sebastien Bourdeauducq
67c19ab178
drtio: RTPacketMaster RX, untested
2016-10-22 01:04:14 +08:00
Sebastien Bourdeauducq
3b4a40401a
drtio: RTPacketMaster TX (WIP)
2016-10-21 22:46:14 +08:00
Sebastien Bourdeauducq
1e313afe64
drtio: CrossDomainNotification
2016-10-21 22:45:45 +08:00
Sebastien Bourdeauducq
c71c4c89e0
drtio: change data direction in _CrossDomainRequest
2016-10-21 22:44:47 +08:00