whitequark
dd829afebd
firmware: fix another TOCTTOU race in sync/async RPC code.
2018-11-12 15:42:07 +00:00
whitequark
583bba8777
Revert "firmware: workaround for RPC failures"
...
This reverts commit 59033d2588
.
2018-11-12 15:36:36 +00:00
whitequark
0edae64afb
firmware: fix TOCTTOU race in sync/async RPC code.
...
Before this commit, the main loop in session code was laid like:
1. process_kern_queued_rpc
2. process_host_message
3. process_kern_message
If a host message (such as an RPC reply) caused the kernel to exit,
then any async RPCs would not complete, since RunFinished immediately
shuts down the kernel.
Fix this by reordering 1 and 2.
2018-11-12 15:30:59 +00:00
59033d2588
firmware: workaround for RPC failures
2018-11-12 19:51:54 +08:00
8caea0e6d3
gateware,runtime: optimize RTIO kernel interface further
...
* now pinning (TODO: atomicity)
* for inputs, merge request and timeout registers
2018-11-08 18:29:24 +08:00
969a305c5a
Merge branch 'master' into switching125
2018-10-04 10:08:42 +08:00
b92350b0f6
drtio: monitor RTIOClockMultiplier PLL ( #1155 )
...
Debugging by Tom Harty
2018-09-26 10:52:08 +08:00
1b7f403a4b
drtio: remove remote RTIO PHY resets
2018-09-20 11:10:32 +08:00
53a979e74d
rtio: cleanup resets
2018-09-20 10:58:38 +08:00
3d965910f7
Revert "drtio: implement per-destination underflow margins"
...
This reverts commit 142c952e3d
.
2018-09-19 17:05:48 +08:00
142c952e3d
drtio: implement per-destination underflow margins
2018-09-19 17:03:15 +08:00
62642957cd
runtime: fix DRTIO aux channel race condition
2018-09-19 11:16:21 +08:00
David Nadlinger
b482f5feae
firmware: Use larger ARP cache
...
This works around a problematic interaction between ARP cache
expiry in smoltcp (with its 3 seconds timeout before a discovery
request is sent) and our TCP keepalive settings, where the timeout
is reached before the keepalive had a chance to be sent.
GitHub: Closes #1150 .
2018-09-18 14:46:52 +00:00
whitequark
c33f74dabe
firmware: derive Clone for Mutex.
2018-09-15 15:24:44 +00:00
c8cd830118
drtio: implement get_rtio_destination_status for kernels
2018-09-15 19:11:22 +08:00
d38755feff
drtio: implement destination state checks on operations
2018-09-15 15:55:45 +08:00
whitequark
1990ab35d3
firmware: implement mutexes.
2018-09-15 07:35:35 +00:00
2f010e0109
runtime: improve moninj aux error logging
2018-09-15 10:44:41 +08:00
f8c6fa5ad6
typo
2018-09-15 10:43:36 +08:00
65da1fee4a
firmware: fix build without DRTIO
2018-09-14 20:38:41 +08:00
d19550daf8
firmware: simplify drtioaux function names
2018-09-14 20:32:09 +08:00
ae72e3a51e
firmware: add support for moninj and kern_hwreq over DRTIO switching
2018-09-14 20:26:39 +08:00
1ef39a98a7
drtio: implement per-destination buffer space
2018-09-13 16:16:32 +08:00
042b0065de
runtime: print destination up message for local RTIO
2018-09-13 14:10:52 +08:00
fa872c3341
firmware: implement DRTIO destination survey
2018-09-13 12:00:29 +08:00
5a9cc004f2
drtio: receive and print unsolicited aux packets
...
Helps with debugging and prevents the aux channel from getting stuck after packets arrive after the timeout.
2018-09-12 22:57:21 +08:00
e36a8536d7
runtime: better handling of aux timeouts
2018-09-12 17:31:23 +08:00
95432a4ac1
drtio: remove old debugging features
2018-09-12 13:01:27 +08:00
2679a35082
firwmare: propagate DRTIO routing table and rank all the way
2018-09-11 18:28:17 +08:00
b38c57d73b
firmware: send DRTIO routing table to satellite
2018-09-11 14:12:41 +08:00
2fff96802b
runtime: remove support for building without RTIO
2018-09-10 23:09:02 +08:00
19a14b68b1
runtime: program DRTIO routing table into gateware
2018-09-10 22:48:56 +08:00
264078baba
style
2018-09-10 22:29:35 +08:00
e01efbcb8a
runtime: merge sync_tsc and wait_tsc_ack
2018-09-10 22:17:00 +08:00
4d889c0c4e
firmware: improve DRTIO log messages
2018-09-10 21:40:02 +08:00
whitequark
0e7419450e
firmware: update smoltcp.
...
This adds TCP window scaling support.
2018-08-20 00:26:40 +00:00
167e97efd2
sayma: support external RTM clocking
2018-08-17 22:57:54 +08:00
whitequark
2648b1b7a1
firmware: migrate to Rust 1.28.0.
...
This also updates / is a prerequisite for updating smoltcp.
Rationale for changes made:
* compiler_builtins is now shipped in the rust prefix.
* rustc's libpanic_unwind no longer works for us because it
has a hard dependency on Box (and it's a horrible hack);
fortunately, we only ever needed a personality function
from it.
* panic and oom handlers are now set in a completely different
way.
* allocators are quite different (and finally stable).
* NLL caused internal compiler errors in runtime, so code using
NLL was rewritten to not rely on it and it was turned off.
2018-08-12 19:17:45 +00:00
2008d02f4d
runtime: use different default IP and MAC for different kinds of boards
...
This helps reduce conflicts when having many boards on a development network.
2018-08-07 10:30:50 +08:00
47740c8930
share moninj injection state between dashboards
...
Previously if one dashboard overrode a channel this was not visible on
any other dashboard - the channel appeared to operate normally.
2018-08-02 19:34:14 +08:00
e4d48a78eb
drtio: wait for remote to ack TSC synchronization
...
Sayma takes a long time after TSC sync to align SYSREF, and this caused two issues:
1. Aux packets getting lost and causing error reports
2. DRTIO links reported up and kernels proceeding despite the DACs not being properly synced.
2018-07-26 20:28:17 +08:00
83de8b2ba2
drtio: add ping timeout during link init
2018-07-26 20:27:53 +08:00
446f791180
firmware: simplify SYSREF DRTIO alignment
2018-07-26 19:37:59 +08:00
32c95ac034
sayma: automated DAC SYSREF phase calibration
2018-07-26 16:23:55 +08:00
d523d03f71
sayma: automated FPGA SYSREF phase offset calibration
2018-07-26 14:53:28 +08:00
13984385a8
firmware: version → ident
2018-07-15 17:40:17 +08:00
b27fa8964b
add variant in identifier string
...
Also add without-sawg suffixes on Sayma.
Closes #1060
Closes #1059
2018-07-15 17:21:17 +08:00
1c191a62bf
sayma: tune SYSREF phases
2018-07-12 12:33:35 +08:00
a8a2ad68d3
runtime: tune Sayma SYSREF phases
2018-06-27 17:31:29 +08:00
68530fde07
sayma: generate 100MHz from Si5324 on standalone and master targets
...
* Allow switching between DRTIO satellite and standalone without
touching the hardware.
* Allow operating standalone and master without an additional RF
signal generator.
2018-06-23 10:44:38 +08:00