Commit Graph

1079 Commits

Author SHA1 Message Date
ccc58a0f84 satman: add 125 MHz Si5324 settings
from cjbe
2018-08-29 17:53:48 +00:00
whitequark
0e7419450e firmware: update smoltcp.
This adds TCP window scaling support.
2018-08-20 00:26:40 +00:00
d1d26e2aa3 hmc7043: add explanation about HMC_SYSREF_DIV 2018-08-18 11:43:40 +08:00
f75a317446 hmc7043: automatically determine output groups 2018-08-18 11:43:23 +08:00
c498b28f88 hmc7043: disable FPGA_ADC_SYSREF 2018-08-18 11:42:57 +08:00
167e97efd2 sayma: support external RTM clocking 2018-08-17 22:57:54 +08:00
5c3e834c4d ad9154: retry DAC initialization on STPL or PRBS failure
Works around #1127
2018-08-17 20:52:55 +08:00
David Nadlinger
0e32a165c2 satman: Fix build with Rust 1.28
The build was broken in 2648b1b7a1.
2018-08-13 00:12:27 +01:00
whitequark
38d60100ff firmware: optimize dma_record_output.
This removes a number of bounds checks and adds a fast path for
outputting exactly one word to DMA, which is the most common
operation.
2018-08-12 19:17:45 +00:00
whitequark
bdd18de2c1 firmware: globally enable LTO.
This used to crash with earlier rustc versions, but doesn't anymore,
and gives significant speedup (e.g. 2x on test_dma_record_time).
2018-08-12 19:17:45 +00: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
738d2c6bcb hmc7043: REFSYNCIN → RFSYNCIN 2018-08-11 12:07:17 +08:00
f7678cc24a grabber: refactor state machine 2018-08-07 18:07:46 +02:00
6cd2432e30 grabber: log all resolution changes
close #1120
2018-08-07 16:21:21 +02:00
99a15ca0c6 grabber: rationalize derived traits 2018-08-07 16:21:21 +02:00
49f7a1610f sayma: use GTP_CLK1 only for all variants (#1080) 2018-08-07 20:53:14 +08:00
whitequark
7bd7b6592a rpc_proto: serialize keywords correctly.
Fixes #1109.
2018-08-07 06:47:09 +00:00
whitequark
a74958f01f ksupport: raise RuntimeError on reraise with no inflight exception.
Fixes #1123.
2018-08-07 05:53:13 +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
bbe36b94f7 ad9154: enable sync in init 2018-08-06 19:02:27 +08:00
7f0b2ff594 jesd204sync: work around HMC7043 poor behavior with combined delays
The HMC7043 outputs poorly controlled signals when adjusting
two delays at once. This commit puts the DAC in one-shot SYSREF mode,
and only triggers synchronizations when SYSREF is stable.
2018-08-06 17:43:17 +08:00
f32f0126e2 Revert "ad9154: use continuous sync mode"
The HMC7043 is not really glitchless.

This reverts commit bd968211de.
2018-08-06 16:59:53 +08:00
bd968211de ad9154: use continuous sync mode 2018-08-06 00:27:10 +08:00
e83ee3a07a hmc7043: disable GTP_CLK1 when not in use
Termination and biasing are not active at the FPGA when IBUFDS_GTE3 is
not instantiated, and driving a clock then leads to overvoltage.
2018-08-03 10:03:52 +08:00
6fc8439399 tweak moninj to allow old dashboard with new firmware 2018-08-02 19:34:14 +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
whitequark
5871d13da8 firmware: actually compact in config::compact().
Fixes #1116.
2018-08-01 16:27:48 +00: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
f8c17528e7 satman: use new SYSREF code 2018-07-26 16:26:57 +08:00
32c95ac034 sayma: automated DAC SYSREF phase calibration 2018-07-26 16:23:55 +08:00
dbcf2fe9b4 firmware: remove 'chip found' messages on Sayma 2018-07-26 16:07:37 +08:00
d523d03f71 sayma: automated FPGA SYSREF phase offset calibration 2018-07-26 14:53:28 +08:00
0a9d3638ee config: add write_int 2018-07-26 14:49:32 +08:00
19c51c644e grabber: cleanup GRABBER_STATE 2018-07-24 19:08:51 +08:00
e71cbe53a6 firmware: cleanup Cargo.lock 2018-07-18 10:37:43 +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
46fb5adac3 grabber: fix frequency counter formula 2018-07-12 20:14:38 +08:00
82def6b535 grabber: add frequency counter
Cameras are a bit obscure about what they output, this can help with troubleshooting.
2018-07-12 17:05:18 +08:00
29c35ee553 hmc7043: fix dumb mistake in previous commit 2018-07-12 13:01:41 +08:00
8802b930de hmc7043: add delay after init
Delay required at step 9 of the "Typical Programming Sequence" (page 24 of the datasheet)
2018-07-12 12:37:12 +08:00
c66f9483f8 hmc7043: wait after changing delays
Allows for the SPI transaction to finish, and for the delay to stabilize.
2018-07-12 12:33:53 +08:00
1c191a62bf sayma: tune SYSREF phases 2018-07-12 12:33:35 +08:00
773240bef4 hmc7043: test GPO before using
Based on code by David.
2018-07-12 11:30:24 +08:00
4843832329 hmc7043: check phase status on init. Closes #1055
Troubleshooting by David.
2018-07-11 19:45:24 +08:00
9397fa7f5a hmc7043: unstick SYSREF FSM (#1055)
Troubleshooting by David.

Additionally, register 7D is broken.
Checking phase init state has to be done through another means.
2018-07-11 19:11:01 +08:00
4f56710e4b grabber: add parser, report detected frame size in core device log 2018-07-10 02:06:37 +08:00
4eb26c0050 hmc7043: enable group 5 2018-07-03 14:16:31 +02:00
729ce58f98 sayma: use GTP_CLK1 to clock DRTIO satellite transceiver
This is required to get constant skew between the DRTIO transceiver clock
(which then generates the RTIO clock) and the siphaser reference clock.

Both the Si5324 and the RTM clock tree have non-deterministic in-to-out skew
at 150MHz due to dividers.
2018-06-28 11:23:40 +08:00
a65721d649 sayma: put RTM clock tree into the siphaser loop
* Fixes one bug where siphaser was one Si5324 output and the rest of the
system was clocked by the other. With the Si5324 settings we have, skew
between the outputs is not controlled.
* Puts the coaxial cable between AMC and RTM into the siphaser loop.
2018-06-27 21:46:55 +08:00
d49716dfac satman: tune Sayma SYSREF phases 2018-06-27 18:09:35 +08:00
46c044099c hmc7043,satman: verify alignment of SYSREF slips 2018-06-27 17:36:13 +08:00
7dfd70c502 hmc7043: make margin_{minus,plus} consistent with ad9154 2018-06-27 17:35:26 +08:00
4bbdd43bdf hmc7043: do not freeze if SYSREF slip fails 2018-06-27 17:32:56 +08:00
a8a2ad68d3 runtime: tune Sayma SYSREF phases 2018-06-27 17:31:29 +08:00
84b3d9ecc6 bootloader: also check firmware CRC in SDRAM (#1065) 2018-06-23 11:28:12 +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
whitequark
b6dd9c8bb0 runtime: support builds without RTIO DMA.
Fixes #1079.
2018-06-23 00:56:21 +00:00
76fc63bbf7 jesd204: use separate controls for reset and input buffer disable 2018-06-22 11:38:18 +08:00
de7d64d482 sayma: clock JESD204 from GTP CLK2
This frees up GTP CLK1, which is routable to the SFP quads, for DRTIO.
2018-06-21 22:33:53 +08:00
07bcdfd91e hmc7043: stricter check of FPGA SYSREF margin 2018-06-21 22:26:49 +08:00
e29536351d drtio: resync SYSREF when TSC is loaded 2018-06-21 17:00:32 +08:00
5a2a857a2f firmware: clean up SYSREF phase management 2018-06-21 16:23:41 +08:00
05e908a0fd hmc7043: align SYSREF with RTIO 2018-06-21 15:54:42 +08:00
9741654cad hmc7043: style 2018-06-21 15:54:42 +08:00
45e8263208 hmc7043: do not configure phases during initial init
They are determined later on.
2018-06-21 15:54:42 +08:00
whitequark
7cc3da4faf firmware: do not lose the ".dirty" suffix in build versions.
Fixes #1074.
2018-06-21 05:18:51 +00:00
whitequark
095ee28fd9 runtime: fix size values for bytes and bytearray RPCs.
Fixes #1076.
2018-06-21 00:51:56 +00:00
814d0583db hmc7043: improve smoothness of sysref phase control 2018-06-20 17:40:48 +08:00
5272c11704 typo 2018-06-20 17:05:20 +08:00
0c32d07e8b ad9154: new sysref scan
Print margins around the pre-defined fixed phase.
Also report error if margins are too small.

The fixed phase is also changed by this commit (the value 88 is
from before the new HMC7043 initialization code, and is probably wrong).
2018-06-20 00:15:58 +08:00
3d0e92aefd hmc7043: check that chip is disabled at startup 2018-06-19 23:49:17 +08:00
740e6863c3 hmc7043: add delay after releasing hardware reset 2018-06-19 23:48:48 +08:00
75b6cea52f sayma: add SAWG to DRTIO satellite 2018-06-19 19:12:10 +08:00
eb3259b847 firmware: reduce number of DAC initialization attempts
Faster startup when one DAC is broken.
2018-06-19 19:10:23 +08:00
1d594d0c97 firmware: make DAC initialization failures non-fatal
This allows using RTMs with one broken DAC for development.
2018-06-19 19:09:38 +08:00
158b5e3083 satman: program Allaki 2018-06-19 18:09:05 +08:00
574892a4e5 firmware/serwb: cleanup and improve messaging 2018-06-19 15:11:03 +08:00
c862471165 typo 2018-06-19 14:35:24 +08:00
433273dd95 sayma: support RTM FPGA, HMC830 and HMC7043 in DRTIO master and satellite 2018-06-19 14:33:48 +08:00
476cfa0f53 si5324: improve lock messaging 2018-06-19 14:29:57 +08:00
d29b3dd588 hmc830: compile-time configurable reference frequency 2018-06-19 13:47:32 +08:00
0e640a6d6f hmc7043: fix SYSREF to meet s/h at FPGA (#794) 2018-06-18 17:04:12 +08:00
6272052d15 ad9154: don't drive the bsm with txen pins 2018-06-18 10:04:42 +02:00
4f0c918dd3 slave_fpga: improve messaging 2018-06-17 00:27:27 +08:00
40baa8ecba hmc7043: disable ch 10 and 11 group 2018-06-15 15:34:31 +00:00
edfae3c4ba hmc7043: make fpga fabric clocks lvds
2 V common and 1.9 Vpp swing
is brutal to the banks (HP 1.8V AMC and RT 1.8V RTM)
2018-06-15 14:24:33 +00:00
f385add8b1 slave_fpga: disable cclk and din drive when done
to guard against accidental contention (old rtm gateware
but #813 rework done)
2018-06-13 16:26:48 +00:00
a9a25f2605 sayma_rtm: drive ref_lo_clk_sel, and set clk muxes early 2018-06-12 20:00:12 +02:00
Thomas Harty
b90a8fcc82 Merge branch 'master' of https://github.com/m-labs/artiq 2018-06-12 14:55:22 +01:00
ion
28ecf81c6c Sayma: HMC7043 init and detect no longer need results. 2018-06-12 13:10:26 +01:00
ion
c8935f7adf Sayma: bypass dividers where possible to minimize noise (nb this changes the output skew). 2018-06-12 12:56:04 +01:00
hartytp
7a0140ecb2
Sayma HMC830: update interface and register writes. (#1068)
* Break the HMC830 init into separate functions for general purpose (but, integer-N) init, setting dividers and checking lock

* Use 1.6mA ICP (which the loop filter was optimized for)

* Go through the data sheet carefully and set all registers to the correct value (e.g. ensure that all settings are correctly optimized for integer-N usage)

* Change divider values (now using 100MHz PFD, which should give lower noise in theory)
2018-06-12 12:37:17 +01:00
a9d97101fc slave_fpga: add another check 2018-06-12 10:24:04 +02:00
a143e238a8 savel_fpga: get rid of unneeded config 2018-06-12 10:24:04 +02:00
4912f53ab4 slave_fpga: board_misoc 2018-06-12 10:24:04 +02:00
hartytp
cb6e44b23a Sayma: disable unused HMC7043 outputs. 2018-06-12 16:18:20 +08:00
af88c4c93e clean up hmc7043 reset 2018-06-05 20:41:48 +08:00
Thomas Harty
988054f4bb Sayma: fix mistake in HMC7043 init code. 2018-06-05 19:22:04 +08:00
Thomas Harty
bd1ac7cf3b Configure HMC7043 to give deterministic phase differences between its outputs 2018-06-05 19:22:04 +08:00
Thomas Harty
ac5c4913ec Sayma RTM: hold hmc7043 in reset/mute state during init. 2018-06-05 19:22:04 +08:00
Florent Kermarrec
b82158a2de firmware/ad9154: add stpl test 2018-06-05 02:08:57 +02:00
Florent Kermarrec
925b47b077 firmware/ad9154: reset the dac between each configuration attempt 2018-06-04 14:03:26 +02:00
whitequark
d686d33093 runtime: print hex dumps around PC/EA in case of exception.
For #1026.
2018-06-01 21:17:59 +00:00
whitequark
2e09307d8d firmware: use writeln instead of write in UART logger. 2018-05-29 03:16:52 +00:00
560889372f firmware: grabber support 2018-05-29 10:26:36 +08:00
b860302a9a firmware: fix typo in UART logger 2018-05-28 17:25:23 +00:00
whitequark
2b7d98eb04 firmware: enable all log levels when creating UART logger.
The default is all off.
2018-05-28 16:49:25 +00:00
Florent Kermarrec
bcb9c3d09d firmware/serwb: move prbs_test outside of wait_init, add wishbone_test 2018-05-24 16:53:47 +02:00
Florent Kermarrec
353767bfdb firmware/hmc830: add VCO subsystem register 6 programming (suggested by hartytp, tested on hardware without regression) 2018-05-24 16:49:49 +02:00
Florent Kermarrec
ad89c42acc firmware/serwb: automatically adjust prbs test delay to prbs test cycles, increase prbs test cycles 2018-05-24 10:20:55 +02:00
Florent Kermarrec
19e5280824 firmware/ad9154: cleanup DAC init
- Split dac_setup in dac_reset, dat_detect & dac_setup.
- Only do one reset/detection.
- Configure before doing SYSREF scan (otherwise scan don't work at the first scan after power up).
- Do the spi_setup in each function.
2018-05-24 09:34:00 +02:00
Florent Kermarrec
fa3b48737b firmware/hmc830: Added magic word to HMC830 init sequence (from gkasprow & marmeladapk) 2018-05-24 09:23:00 +02:00
b10d3ee4b4 make RTIO clock switch optional and simplify
Kasli no longer has an internal RTIO clock.
Switching clocks dynamically is no longer supported.
2018-05-18 17:41:34 +08:00
whitequark
5744d97d59 firmware: adjust backtrace addresses correctly. 2018-05-17 08:13:55 +00:00
d4f074b1e1 firmware: fix Allaki addressing. Closes #993 2018-05-17 16:02:21 +08:00
whitequark
31c6c79204 firmware: implement an edge profiler.
It doesn't work extremely well, and the results can be somewhat
confusing, and it needs a libunwind patch, but it's the best I could
do and it seems still useful.
2018-05-16 21:53:53 +00:00
a640041844 firmware: improve ad9154/hmc830/hmc7043 messaging 2018-05-16 23:15:17 +08:00
fedf7f0c87 firmware/ad9154: cleanup sysref scan and run everytime 2018-05-16 23:01:19 +08:00
1364cd2948 firmware/hmc830_7043: break out HMC830 SPI mode selection 2018-05-16 22:46:45 +08:00
0aadd3a361 firmware/hmc830_7043: improve messaging 2018-05-16 22:46:45 +08:00
whitequark
4d06c1d84b coredevice.CommKernel: modernize. NFC. 2018-05-16 14:40:14 +00:00
whitequark
ca93b94aea firmware: move config requests to management protocol.
They were only in session protocol because of historical reasons.
2018-05-16 14:32:49 +00:00
Florent Kermarrec
7fe49a78d2 firmware/runtime/session: fix compilation when no rtio core 2018-05-15 23:47:47 +02:00
whitequark
8128a814f6 firmware: update dependencies. 2018-05-15 18:17:32 +00:00
whitequark
1b0384c513 firmware: fix satman build. 2018-05-15 16:35:05 +00:00
whitequark
07b713fdad firmware: use upstream log_buffer. 2018-05-15 15:19:20 +00:00
whitequark
9f5b76253c firmware: remove some unnecessary unwraps. 2018-05-15 15:05:19 +00:00
whitequark
e5796e26e1 firmware: remove unused #![feature(untagged_unions)]. 2018-05-15 15:05:19 +00:00
whitequark
b54926134c firmware: update the signature of #[lang="panic_fmt"]. 2018-05-15 15:05:19 +00:00
Florent Kermarrec
c18a73d45f sayma_amc/rtm: use new serwb low-speed phy 2018-05-15 16:40:50 +02:00
whitequark
9347f6e00c firmware: use a dedicated error type in the scheduler.
After this commit, error handling does not normally allocate
(session::Error::{Load,Unexpected} still allocate, but those two
are very rare).

Good riddance to libstd_artiq.
2018-05-15 14:19:44 +00:00
whitequark
479cb9a857 firmware: use dedicated error types for every protocol and thread.
Good riddance to io::Error::Unrecognized.
2018-05-15 13:27:23 +00:00
whitequark
514eab3d39 Update Rust to 1.26.0. 2018-05-15 12:47:51 +00:00
whitequark
26faaad2b7 firmware: remove io::Result<T, E> in favor of Result<T, impl Fail>.
This doesn't yet use impl Fail since std_artiq::io::Error doesn't
impl it.
2018-05-15 08:29:03 +00:00
whitequark
140ca729aa firmware: rename io::Error::{UnexpectedEof→UnexpectedEnd}.
We don't even have files.
2018-05-15 08:27:45 +00:00
whitequark
ce0593315b firmware: move {ProtoRead,ProtoWrite} to the root of libio. 2018-05-15 08:16:09 +00:00
whitequark
4416c04ae1 firmware: use the failure crate in libio. 2018-05-15 07:40:13 +00:00
whitequark
9e8f8bb669 firmware: extract io::Cursor into its own file.
Also remove unused io::CursorError.
2018-05-15 06:24:04 +00:00
whitequark
a4ab236af3 firmware: simplify some uses. 2018-05-14 19:24:14 +00:00
whitequark
d93aa13fd6 firmware: use upstream compiler_builtins again.
I've fixed i128 in LLVM, so there is no need in our fork anymore.
2018-05-14 19:11:57 +00:00
whitequark
5ead27f2e1 firmware: eliminate uses of std_artiq::io::{Read,Write} from runtime. 2018-05-14 19:11:57 +00:00
whitequark
cf33ba748d firmware: eliminate non-io uses of std_artiq from runtime.
Just replace these with references to alloc.
2018-05-14 19:11:57 +00:00
whitequark
ae50196186 firmware: rename libproto to libproto_artiq.
libproto_artiq only has ARTIQ-specific protocols.
2018-05-14 18:09:44 +00:00
whitequark
02b8426f60 firmware: rename libboard to libboard_misoc.
By analogy with libbuild_misoc. Hopefully one day it actually gets
moved to misoc...
2018-05-14 18:09:44 +00:00
whitequark
1ff42683d9 firmware: merge libamp into libboard_artiq.
All gateware interfaces live in libboard_artiq, but libamp predates
libboard_artiq.
2018-05-14 17:33:25 +00:00
whitequark
764386c9e3 firmware: split libdrtioaux into libproto and libboard_artiq modules.
All other protocol code lives in libproto, and all other gateware
interfaces live in libboard_artiq.
2018-05-14 17:26:59 +00:00
whitequark
6a10d54432 firmware: migrate rpc_proto to new libio.
This closes an old and horrible issue in that some code in ksupport
may implicitly try to allocate and we'll never know until it crashes
at runtime inside liballoc_stub.

This also removes liballoc_stub.
This also removes ReadExt and WriteExt from libproto.
Hooray!
2018-05-14 17:26:59 +00:00
whitequark
09617c9f5e firmware: migrate session_proto to new libio. 2018-05-14 15:17:32 +00:00
whitequark
e9c88e32e6 firmware: migrate moninj_proto to new libio. 2018-05-14 15:17:32 +00:00
whitequark
e292c8ab65 firmware: migrate mgmt_proto to new libio. 2018-05-14 15:17:32 +00:00
whitequark
976bb5e935 firmware: migrate analyzer_proto to new libio. 2018-05-14 12:51:59 +00:00
whitequark
2999756493 firmware: impl std_artiq::io::{Read,Write} for io::{Read,Write}. 2018-05-14 12:51:59 +00:00
whitequark
bfc8fd0807 firmware: add io::Error::Unrecognized variant and use it in drtioaux. 2018-05-14 12:51:59 +00:00
whitequark
7e299563df firmware: mark many functions in libio as #[inline]. 2018-05-14 11:22:56 +00:00
whitequark
368d6f9bfb satman: remove useless _Unwind_Resume. 2018-05-14 11:22:56 +00:00
whitequark
42420e094a satman: don't unwrap so much in process_aux_packet.
This shrinks the code by almost 4K.
2018-05-14 11:22:56 +00:00
whitequark
56a29b91fc firmware: implement ConsoleLogger, use it in satman. 2018-05-14 10:45:11 +00:00
whitequark
5d43d457d2 satman: eliminate heap. 2018-05-14 10:05:02 +00:00
whitequark
46c8afc56c firmware: implement libio and use in in drtioaux. 2018-05-14 10:02:39 +00:00
whitequark
d543c9aa63 firmware: backtrace_artiq → unwind_backtrace.
This crate isn't ARTIQ-specific.
2018-05-14 07:33:00 +00:00
whitequark
f383a470fe satman: do not debug print unexpected aux packets.
This shrinks firmware by 2.8K.
2018-05-13 13:43:39 +00:00
whitequark
aa42a69849 libdrtioaux: always inline read/write helpers.
This shrinks Packet::{read_from,write_to} by 1K.
2018-05-13 13:39:14 +00:00
whitequark
32522be413 satman: use 1K log buffer and 4K stack.
This reduces memory requirements in half.
2018-05-13 13:28:00 +00:00
Florent Kermarrec
6b4bbe31f7 firmware/ad9154: use fixed hmc7043 sysref phase (found with scan) 2018-05-12 00:12:59 +02:00
Florent Kermarrec
3c49eba0a0 firmware/hmc830_7043: put hmc7043 in sleep mode before hmc830 initialization
hmc7043 seems to generate broadband noise when not initialized. This allows isolating issues. If hmc830 still does not always lock correctly, then this is not related to hmc7043 broadband noise.
2018-05-12 00:06:49 +02:00
2cece47b10 firmware/si5324: fix compilation warning 2018-05-09 20:00:08 +08:00
Florent Kermarrec
9de08f85c6 firmware/ad9154: reduce verbosity of dac_sysref_cfg 2018-05-09 10:57:00 +02:00
whitequark
c646409dbe firmware: fix order of bits clocked into hmc542.
Fixes #993.
2018-05-05 03:12:25 +00:00
whitequark
fd2b8d5f8f firmware: raise hmc542 log level to INFO. 2018-05-05 02:59:49 +00:00
whitequark
9704fb837f firmware: fix warnings in ad9154 driver. 2018-05-05 01:55:42 +00:00
whitequark
8a70c18d1e firmware: add debug output to hmc542 driver. 2018-05-05 01:53:30 +00:00
whitequark
68ef09ed73 firmware: stop profiler before rebooting too. 2018-05-05 01:52:44 +00:00
whitequark
4f29d9134f firmware: update log_buffer.
Fixes #986.
2018-05-05 01:18:59 +00:00
whitequark
b1d349cc1b firmware: implement a sampling profiler.
Does not yet support constructing call graphs.
2018-05-05 00:44:40 +00:00
whitequark
9857dfcd7d firmware: add irq::Exception to libboard. 2018-05-04 18:41:03 +00:00
whitequark
623614f835 Update LLVM to 6.0.0 and Rust to 1.25.0. 2018-05-01 08:57:37 +00:00
Florent Kermarrec
4e2d9abaf7 firmware/ad9154: combine analog and digital delay of hmc7043 for sysref scan 2018-04-27 14:32:03 +02:00
Florent Kermarrec
3802c7badb firmware/ad9154: add sysref scan/conf for jesd sc1 2018-04-27 13:20:20 +02:00
whitequark
3b054855ec firmware: add allocator debug feature, invoked by artiq_coredebug frontend. 2018-04-21 19:39:46 +00:00
whitequark
873324d52b firmware: don't truncate queued RPCs (fixes #985). 2018-04-21 19:39:46 +00:00
whitequark
0d5fd1e83d runtime: fix race condition in log extraction code paths (#979).
The core device used to panic if certain combinations of borrows
of the log buffer happened. Now they all use .try_borrow_mut().
2018-04-20 15:26:00 +00:00
Florent Kermarrec
fe689ab4f2 firmware/serwb: add link test, use info! instead of debug! for link settings (useful to analyze logs from others boards) 2018-04-17 19:24:22 +02:00
416232cb64 runtime: do not reset RTIO PHY on core.reset(). Closes #971 2018-03-28 10:51:07 +08:00
f2cc2a5ff2 firmware: reset local RTIO PHYs on startup (#958) 2018-03-22 16:29:31 +08:00
f4719ae24b sdram: clean up console output 2018-03-20 15:42:49 +01:00
206664afd9 sdram: compact read_level output 2018-03-20 10:16:05 +00:00
495625b99d bootloader: repeat memory test 4 times 2018-03-20 09:57:49 +00:00
6fb0cbfcd3 sdram: clean up, make read_level robust to wrap around
* fix a few rust warnings
* also do eye scans on kintex
2018-03-20 09:57:49 +00:00
3abb378fbe i2c: unused variable 2018-03-20 09:56:26 +00:00
276b0c7f06 sdram: reject read delay wrap arounds 2018-03-20 00:28:41 +01:00
4b3f408143 sdram: simplify read level scan 2018-03-19 18:41:56 +00:00
845784c180 kusddrphy: use first and last tap that yield many valid reads 2018-03-19 17:54:26 +00:00
ed2e0c8b34 sayma/sdram/scan: test each tap 1024 times 2018-03-20 00:59:31 +08:00
whitequark
c86df8e13e firmware: try to unstuck the I2C bus if it gets stuck.
Fixes #957.
2018-03-19 06:23:23 +00:00
whitequark
9ea7d7a804 firmware: allow building without system UART. 2018-03-14 18:34:31 +00:00
999ec40e79 bootloader: print gateware ident 2018-03-13 00:11:25 +08:00
2caeea6f25 update copyright year 2018-03-13 00:09:13 +08:00
1d081ed6c2 drtio: print diagnostic info on satellite write underflow (#947) 2018-03-12 23:41:19 +08:00
Florent Kermarrec
5af4609053 libboard/sdram: limit write leveling scan to "512 - initial dqs taps delay" on ultrascale 2018-03-09 19:06:47 +01:00
Florent Kermarrec
a95cd423cc libboard/sdram: add gap for write leveling 2018-03-09 18:53:57 +01:00
Florent Kermarrec
8f6f83029c libboard/sdram: add write/read leveling scan 2018-03-09 13:50:51 +01:00
Florent Kermarrec
b0b13be23b libboard/sdram: rename read_delays to read_leveling 2018-03-09 09:23:20 +01:00
Florent Kermarrec
8475c21c46 firmware/libboard/sdram: kusddrphy now use time mode for odelaye3/idelaye3, now reloading dqs delay_value (500ps) with software 2018-03-08 10:00:00 +01:00
0adbbd8ede drtio: reset aux packet gateware after locking to recovered clock
Closes #949
2018-03-08 15:41:13 +08:00
7afb23e8be runtime: demote dropped and malformed packets msgs to debug 2018-03-07 14:28:21 +01:00
916197c4d7 siphaser: cleanup 2018-03-07 11:15:44 +08:00
74d1df3ff0 firmware: implement si5324 skew calibration 2018-03-07 10:57:30 +08:00
e6e5236ce2 firmware: fix si5324 select_recovered_clock 2018-03-07 10:57:30 +08:00
c2d2cc2d72 runtime: fix setup_si5324_as_synthesizer 2018-03-07 10:57:30 +08:00
c34d00cbc9 drtio: implement Si5324 phaser gateware and partial firmware support 2018-03-07 10:57:30 +08:00
257bef0d21 slave_fpga: print more info 2018-03-06 14:26:26 +01:00
a274af77d5 runtime: fix compilation without DRTIO 2018-03-05 00:43:42 +08:00
432e61bbb4 drtio: add kernel API to check for link status. Closes #941 2018-03-05 00:23:55 +08:00
928d5dc9b3 drtio: raise RTIOLinkError if operation fails due to link lost (#942) 2018-03-04 01:02:53 +08:00
ba74013e3e runtime: add a missing overflow flag reset 2018-03-03 13:16:21 +08:00
1c57d27ae2 slave_fpga: use sayma_rtm magic 2018-03-01 18:32:19 +01:00
de63e657b8 kasli/si5324: lock to 100 MHz with highest available bandwidth 2018-03-01 14:49:53 +01:00
abd160d143 slave_fpga: check DONE before loading 2018-03-01 19:53:34 +08:00
a04a36ee36 firmware: move wait for write completion to read() 2018-03-01 11:37:33 +01:00
a6ae08d8b8 firmware/spi: work around cs_polarity semantics
The semantics differ between the RTIO and CSR interface.
2018-03-01 11:19:18 +01:00
6fbe0d8ed8 hmc830: be explicit about SPI mode selection 2018-03-01 11:19:18 +01:00
a7720d05cd firmware, sayma: port converter_spi to spi2
* ksupport/nrt_bus
* port ad9154, hmc830, hmc7043
* port local_spi and drtio_spi
* port kernel_proto libdrtioaux, satman
* change sayma_rtm gateware over
* add spi2 NRTSPIMaster
* remove spi NRTSPIMaster
* change sayma device_db
* change HMC830 to open mode and explicitly sequence open mode
2018-03-01 11:19:18 +01:00
68278e225d slave_fpga: check for INIT low 2018-03-01 17:28:01 +08:00
whitequark
14f6fa6699 firmware: fix a warning. 2018-03-01 01:25:55 +00:00
whitequark
d051cec0dd firmware: remove useless module. 2018-03-01 01:22:52 +00:00
0c49201be7 firmware: add slave fpga serial load support
based on whitequark's work in f95fb27

m-labs/artiq#813
2018-02-28 19:27:52 +01:00
cedecc3030 Revert "firmware: Sayma RTM FPGA bitstream loading prototype (#813)."
This reverts commit f95fb273f1.

Will be replaced with a bitbang/GPIO based version.
2018-02-28 18:43:56 +01:00
whitequark
f95fb273f1 firmware: Sayma RTM FPGA bitstream loading prototype (#813). 2018-02-28 16:46:23 +00:00
96423882f2 fix 4d6619f3b 2018-02-22 15:27:54 +08:00
4d6619f3bc satman: send ResetAck 2018-02-22 15:17:44 +08:00
Florent Kermarrec
5eda894db4 firmware/libboard/sdram: increase read_delays dead zone to 32 on KU 2018-02-21 19:36:37 +01:00
whitequark
96f697ec96 firmware: update compiler_builtins to unbreak __gtdf2.
Fixes #883.
2018-02-21 15:21:48 +00:00
Florent Kermarrec
afc16a67b6 firmware/liboard/sdram.rs: iterate read multiple times in read_delays to avoid false positives 2018-02-21 14:15:35 +01:00
738654c783 drtio: support remote RTIO resets 2018-02-20 18:48:54 +08:00
ad2c9590d0 drtio: rewrite/fix reset and link bringup/teardown 2018-02-20 17:26:43 +08:00
83abdd283a drtio: signal stable clock input to transceiver 2018-02-18 22:29:30 +08:00
c87636ed2b si5324: fix cfb21ca 2018-02-18 11:38:20 +01:00
039dee4c8e si5324: rename SI5324_FREE_RUNNING to SI5324_AS_SYNTHESIZER
The previous name was causing confusion with the FREE_RUN bit
that connects the crystal to CLKIN2.
2018-02-17 13:54:50 +08:00
cfb21ca126 si5324: fix usage of external CLKIN2 reference 2018-02-17 13:52:01 +08:00
fb8b36cd41 clean up ccc279b8 2018-02-17 12:10:46 +08:00
hartytp
ccc279b8da rewrite HMC7043 init code without using ADI GUI outputs, working analog/digital delay 2018-02-17 12:07:11 +08:00
e41f49cc75 kasli: opticlock 125 MHz, mark external reference case broken 2018-02-16 17:23:15 +00:00
4d42df2a7c kasli: set up Si5324 in standalone operation 2018-02-15 20:32:58 +08:00
c5ae81f452 satman: remove unused 62.5MHz Si5324 settings 2018-02-15 20:29:51 +08:00
d7387611c0 sayma: print RTM gateware version 2018-02-15 19:31:58 +08:00
whitequark
fe50018037 firmware: make network tracing runtime switchable. 2018-02-14 23:03:20 +00:00
df177bfd5b use new misoc identifier 2018-02-13 20:38:48 +08:00
00f42f912b rename 'RTM identifier' to 'RTM magic number'
Avoids confusion with the MiSoC identifier (containing the ARTIQ version).
2018-02-13 20:02:51 +08:00
Florent Kermarrec
e80b481032 firmware/libboard_artiq/hmc830_7043.rs: add template for sys_ref phase configuration for dac1/dac2 and fpga 2018-02-05 13:40:17 +01:00
Florent Kermarrec
e50bebb63d firmware/liboard_artiq/ad9154.rs: add checks for jesd subclass 1 (verify that we receive the sysref and that phase error is within the specified window error threshold). 2018-02-05 13:39:30 +01:00
whitequark
807eb1155b Update smoltcp.
Fixes #902.
2018-01-30 03:29:08 +00:00
whitequark
d58393a1e5 runtime: build with -Cpanic=unwind.
This is required for backtraces to function. I'm not sure how it
turned out that master had -Cpanic=abort.
2018-01-26 23:01:24 +00:00
0d2f89db53 si5324: chip does not ack RST_REG write 2018-01-25 11:06:19 +08:00
cfffd9e13d si5324: kasli support 2018-01-23 13:17:03 +08:00
c3323f0d57 hmc830: improve lock failure error report 2018-01-20 15:42:53 +08:00
hartytp
37fa3b29da firmware: add register dump on HMC830 lock timeout. 2018-01-20 00:19:31 +00:00
Florent Kermarrec
9eb13aba3c liboard_artiq/hmc830_7043: allow sysref digital/analog delay configuration (will need to be adjusted for jesd subclass1) 2018-01-19 17:19:02 +01:00
whitequark
80cbef0031 firmware: always reset PHY when initializing Ethernet.
Fixes #897.
2018-01-19 04:56:11 +00:00
whitequark
1f82ceaa85 firmware: add HMC542 (Allaki) support. 2018-01-19 04:47:26 +00:00
Florent Kermarrec
07f4e2e35a libboard_artiq/ad9154: fix prbs test (only keep prbs7) and
always do it after ad9154 initialization
2018-01-18 08:19:37 +01:00
whitequark
1e896d4ba8 firmware: fix warnings. 2018-01-17 00:48:46 +00:00
Florent Kermarrec
702c35821b libboard_artiq/ad9154: add dac_status and dac_prbs (untested) 2018-01-15 22:15:35 +01:00
7429ee4fb6 firmware: make read leveling robust for KUS SDRAM
Increases the initial delay step into the valid read window as
with the original delay I was not getting out of the noisy
transition window, as evidenced by seeing read delay windows
of only 8 LSB ~10% of the time, leading to failing memory
tests
2018-01-12 10:35:38 +08:00
94d51d1364 firmware: fix drtio_dbg module syntax 2018-01-10 12:15:23 +08:00
dc593ec0f0 Merge branch 'rtio-sed' into sed-merge 2018-01-10 12:04:54 +08:00
whitequark
267c699835 firmware: support DDRPHY without write leveling (fixes #886).
Currently, this is kasli.
2018-01-09 02:41:02 +00:00
whitequark
07ccb9eebd firmware: support configuration without ethphy (#886).
Currently, this is kasli.
2018-01-08 22:16:17 +00:00
whitequark
3a3f44af53 firmware: update smoltcp. 2018-01-08 21:41:53 +00:00
whitequark
987a9c8308 conda: update rustc to 1.23.0. 2018-01-08 21:39:15 +00:00
161a414567 serwb: debug print on error 2018-01-04 22:23:59 +08:00
e1a75ac1c1 runtime: set log level early
We want to debug startup.
2018-01-04 22:19:48 +08:00
whitequark
fc9766d2fa firmware: reset ethphy before initializing smoltcp (fixes #884). 2018-01-04 11:42:35 +00:00
whitequark
b7f38b123b frimware: update to log 0.4. 2018-01-01 11:45:55 +00:00
whitequark
a371b25525 bootloader: allow using without Ethernet. 2017-12-31 09:21:28 +00:00
whitequark
70ebe431fd satman: fix build after b8f3d28b. 2017-12-31 09:21:02 +00:00
whitequark
e1253db0e8 firmware: update crc dependency, use it in libdrtioaux. 2017-12-31 09:16:11 +00:00
whitequark
b8f3d28bc0 firmware: update compiler_builtins dependency and move it to libboard.
This is so that we only specify it once.
2017-12-31 09:16:11 +00:00
a897d82324 ad9154: retry initialization (#727) 2017-12-31 11:27:43 +08:00
whitequark
3505878176 bootloader: add basic network support. 2017-12-28 15:26:12 +00:00
whitequark
d2687ce3c4 firmware: fix a typo replacing spiflash::SECTOR_SIZE with PAGE_SIZE. 2017-12-28 15:26:12 +00:00
whitequark
33e0393e4a firmware: move mod ethmac to libboard. 2017-12-28 14:40:15 +00:00
whitequark
55cfdec644 firmware: enlarge bootloader partition to 4 sectors. 2017-12-28 14:39:26 +00:00
whitequark
acd13837ff firmware: implement the new bootloader. 2017-12-28 13:18:51 +00:00
whitequark
b9754e7108 firmware: deduplicate libbuild_misoc and libbuild_artiq. 2017-12-28 13:18:51 +00:00
whitequark
d94db1de5d Revert accidentally committed parts of 1b9b5602. 2017-12-28 08:23:34 +00:00
whitequark
fcc438524c firmware: use main.rs as the root source for non-library crates. NFC. 2017-12-28 08:20:23 +00:00
whitequark
1b9b560242 firmware: use libbuild_misoc in libdrtioaux. NFC. 2017-12-28 08:20:23 +00:00
whitequark
8f33061a6d firmware: fix sayma_amc_standalone build with sawg. 2017-12-28 08:20:23 +00:00
4ea801b2ea firmware: si5324 moved to board_artiq 2017-12-28 15:45:45 +08:00
whitequark
3b18ece3b7 satman: update for changes in firmware elsewhere. 2017-12-28 07:36:33 +00:00
whitequark
d3066e5044 firmware: oops, misoc #[cfg]s were missing from libboard_artiq. 2017-12-28 07:36:33 +00:00
whitequark
ca419aa3c2 firmware: split out libboard_artiq from libboard. 2017-12-28 07:07:00 +00:00
whitequark
b443fbd8f7 runtime: remove #[repr(simd)] hack. 2017-12-28 04:46:27 +00:00
whitequark
7687a34285 firmware: remove dependency on compiler-rt. 2017-12-28 04:08:29 +00:00
whitequark
4dfe71676e firmware: remove dependency on libbase. 2017-12-28 04:03:27 +00:00
whitequark
68f128944a firmware: clean up makefiles. 2017-12-27 23:10:47 +00:00
whitequark
d7cb4963e1 firmware: prepare config block for access from BIOS/bootloader.
* remove liballoc dependency from mod config,
  * move mod config to libboard,
  * move config sector immediately after BIOS sector.
2017-12-27 21:28:40 +00:00
whitequark
5a2cbe7088 runtime: remove borrow_mut!() in favor of backtraces. 2017-12-27 19:15:25 +00:00
whitequark
edfacbd063 conda: ship runtime.elf in board-specific packages.
This is so that backtraces may be symbolized.
2017-12-26 21:50:31 +00:00
whitequark
8b4a006855 runtime: update smoltcp. 2017-12-26 14:33:56 +00:00
whitequark
71eca5ad61 runtime: fix some final flash storage issues. 2017-12-26 14:09:17 +00:00
whitequark
188764693e runtime: we're growing, put storage at 1M instead of 512K. 2017-12-26 03:34:16 +00:00
whitequark
e2513a2401 runtime: ensure flash storage never overlaps with runtime sections. 2017-12-26 03:31:37 +00:00
whitequark
6e341da3a1 runtime: simplify. NFC. 2017-12-26 02:31:28 +00:00
whitequark
061fb3dcd5 runtime: remove accidentally committed parts of a Makefile. 2017-12-25 20:30:13 +00:00
whitequark
230f2e5e18 runtime: print (address-only) backtraces on core device panics. 2017-12-25 18:32:41 +00:00
whitequark
3eec15c01d firmware: fix compatibility with newer rustc. NFC. 2017-12-25 17:16:05 +00:00
00ed51f6f4 satman: use new alloc_list (#880) 2017-12-23 22:15:39 +08:00
a6ffe9f38d drtio: add Sayma top-level designs 2017-12-21 23:08:56 +08:00
a23251276d Revert "sayma: set up Si5324 for RGMII clock rerouting"
This reverts commit 2b01aa22b6.
2017-12-21 14:42:15 +08:00
whitequark
701308474f runtime: update smoltcp. 2017-12-19 15:51:03 +00:00
whitequark
aaba36be7a runtime: log moninj messages at TRACE level, like all others. 2017-12-16 22:39:13 +00:00
whitequark
8cece4f260 runtime: hotswap slightly more carefully.
This generally lets some last characters out of UART, last ACKs
out of queues, etc. Nothing guaranteed though.
2017-12-16 22:39:13 +00:00
whitequark
4a9d8c9459 runtime: fix a warning. 2017-12-16 22:39:13 +00:00
2b01aa22b6 sayma: set up Si5324 for RGMII clock rerouting 2017-12-17 00:25:33 +08:00
f02c74cb7b libboard/si5324: enable both clock outputs 2017-12-15 16:56:44 +08:00
9caef3c1d3 libboard/si5324: configure I2C mux on Sayma 2017-12-15 16:45:26 +08:00
77977932f2 firmware: remove AD9516 support
This was only used in KC705 phaser.
2017-12-14 19:16:39 +08:00
5809e08686 runtime: no startup_clock config is not an error 2017-12-14 12:39:26 +08:00
whitequark
9e8bb1d51c runtime: update smoltcp. 2017-12-08 07:36:56 +00:00
66e089b376 libboard/serwb: more explicit retry log message 2017-12-02 10:51:13 +08:00
Florent Kermarrec
0eb9f93611 libboard/serwb: retry serwb initialization on error 2017-12-01 22:45:05 +01:00
2e5b20d53d libboard/hmc830_7043: enable HMC830 2017-11-30 12:06:54 +08:00
ad2a32d381 libboard/ad9154: small cleanup 2017-11-30 11:33:58 +08:00
Florent Kermarrec
bd75954192 libboard/ad9154: update for sayma (spi, jesd parameters, linerate), breaks kc705/ad9154 fmc support 2017-11-29 18:09:39 +01:00
Florent Kermarrec
8b8da39a8f libboard/hmc830_7043.rs: fix HMC7043 comments 2017-11-29 17:59:42 +01:00
19498e59f9 libboard: fix JESD reset release 2017-11-29 18:18:41 +08:00
cfb41e71a8 libboard: print serwb settings at the debug log level 2017-11-28 01:23:33 +08:00
whitequark
8e8f037971 runtime: print ethmac preamble error count.
Also, print total error count, not the difference (but still compute
the difference to determine *when* to print).
2017-11-26 22:35:26 +00:00
whitequark
26fdd42f8f runtime: update smoltcp. 2017-11-22 08:09:06 +00:00
Florent Kermarrec
a3383c340c firmware/satman/lib.rs: has_serwb_phy to has_serwb_phy_amc 2017-11-18 18:09:35 +01:00
Florent Kermarrec
39a8fc682d artiq/firmware/libboard/hmc830_7043.rs: some cleanup, don't use hmc830 for now 2017-11-18 18:08:31 +01:00
Florent Kermarrec
aff1609a53 firmware/libboard: use correct jesd clocking 2017-11-10 10:56:45 +01:00
Florent Kermarrec
d90d624877 firmware/libboard/serwb: revert init reset, show delay 2017-11-10 10:53:20 +01:00
Florent Kermarrec
76ddb063cf gateware/targets/sayma: get hmc830/7043 spi working (still need to test clock generation) 2017-11-06 12:08:28 +01:00
whitequark
fcd660d682 runtime: remove accidentally deleted code. 2017-11-03 16:10:59 +00:00
whitequark
dfb2fe0b80 runtime: allow #[cfg(not(has_ethmac))] builds. 2017-11-03 16:09:22 +00:00
whitequark
4835431ac3 runtime: allow #[cfg(not(has_kernel_cpu))] builds. 2017-11-03 16:04:17 +00:00
whitequark
ad8fcb8b86 runtime: has_rtio -> has_rtio_core.
has_rtio is the cfg for the kernel CPU, has_rtio_core is the one
for the comms CPU.

Also remove a few useless #[cfg]s.
2017-11-03 15:59:59 +00:00
whitequark
2404a0d8c8 runtime: allow #[cfg(not(has_rtio))] builds. 2017-11-03 15:49:30 +00:00
Florent Kermarrec
b3e920b3c8 firmware/libboard/serwb: fix init 2017-11-03 12:16:16 +01:00
0d8bad5128 runtime: fix rtio::log 2017-11-03 09:25:37 +08:00
4387b0be1e clean up rtio_log 2017-11-03 00:52:53 +08:00
whitequark
b03e36e4e9 conda: update misoc. 2017-10-30 09:33:02 +00:00
whitequark
7f32ae31de runtime: fix a typo. 2017-10-30 08:48:35 +00:00
whitequark
a66450b0af runtime: temporarily revert ethmac statistics collection. 2017-10-30 08:27:51 +00:00
whitequark
ae2d7abbed runtime: update smoltcp. 2017-10-30 08:26:54 +00:00
whitequark
cdf63c5ea0 runtime: interrogate ethmac error counters and display changes. 2017-10-30 07:46:23 +00:00
whitequark
978c0d98aa runtime: update smoltcp. 2017-10-30 07:22:47 +00:00
whitequark
8e91856426 runtime: parse the "ip" configuration as IP, not CIDR.
Or it defaults to the default IP on settings that were previously
perfectly valid.
2017-10-30 04:25:58 +00:00
whitequark
6bdeddd201 runtime: remove UDP-related code. 2017-10-25 02:55:01 +00:00
whitequark
cdba330845 Update smoltcp.
Fixes #840.
2017-10-25 02:31:27 +00:00
whitequark
9d356ed93b firmware: implement board::pcr. 2017-10-18 11:04:13 +00:00
e1e1f58ba9 libboard: fix use 2017-10-13 12:26:34 +02:00
whitequark
e7dac530c1 runtime: avoid hardcoding ethmac slot layout, use info from CSR. 2017-10-03 19:16:11 +00:00
a89b053473 firmware: wait for HMC830 lock 2017-10-04 01:42:57 +08:00
whitequark
2684aec4c6 firmware: use read_unaligned instead of a hack. NFC. 2017-10-02 03:38:31 +00:00
whitequark
fd07c3f4d7 runtime: get rid of config_dummy.rs. NFC.
Use the same strategy as elsewhere.
2017-10-02 03:20:50 +00:00
whitequark
73c76ebb9a firmware: eliminate most transmutes and document the rest. NFC. 2017-10-02 03:09:46 +00:00
whitequark
7ad54e1dcf firmware: unbreak heap view.
This was missing since 7799413a for no good reason.
2017-10-02 02:02:45 +00:00
b4c52c34f7 Merge branch 'sinara' 2017-09-30 01:11:16 +08:00
6c049ad40c rtio: report channel numbers in asynchronous errors 2017-09-29 16:32:57 +08:00
5437f0e3e3 rtio: make sequence errors consistently asychronous 2017-09-29 14:40:06 +08:00
whitequark
c00b3fe8cd firmware: update smoltcp. 2017-09-24 22:57:27 +00:00
whitequark
7799413a41 firmware: update Rust from 1.18.0 to 1.20.0. 2017-09-24 22:51:44 +00:00
20d79c930c drtio: use SED and input collector 2017-09-24 12:23:47 +08:00
whitequark
c1829f3eda runtime: update smoltcp. 2017-09-22 19:05:18 +00:00
928cffb09b firmware: export floor() in ksupport. Closes #828 2017-09-10 12:07:06 +08:00
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
2b2b345eb9 firmware: wait for serwb to be ready before proceeding further 2017-09-06 11:07:07 +08:00
33f053cff8 libboard: complete but undebugged support for HMC830/7043 programming 2017-09-06 10:46:02 +08:00
4baf17cebe libboard: generate HMC7043 register write list 2017-09-05 21:46:03 +08:00
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
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
44edba0c65 firmware: add placeholder code for HMC830/7043 initialization 2017-08-31 13:35:47 +08:00
0a5904bbaa firmware: support for multiple JESD DACs 2017-08-31 13:05:48 +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
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
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
ac83bfbd8e runtime: add support for targets without SPI flash 2017-08-20 11:28:57 -04:00
8459cfe8db firmware: remove unnecessary git_describe rust-cfg 2017-08-15 08:14:17 -06: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
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
whitequark
1e2603572a runtime: fix a bug causing sockets to get stuck in CLOSE-WAIT. 2017-07-05 16:27:36 +00:00
whitequark
ee1d5dbccb runtime: allow a much larger log buffer and avoid hacks. 2017-07-04 18:18:31 +00: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
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
12357d884e runtime: update smoltcp. 2017-06-24 16:55:59 +00:00
66dee9d1ad drtio: send/process I2C and SPI aux packets (#740) 2017-06-21 16:50:51 +08:00
f58f16ccd4 drtioaux: add default timeout 2017-06-21 16:23:11 +08:00
7675dd063b drtioaux: add I2C and SPI packets (#740) 2017-06-21 14:07:16 +08:00
c86029bca2 i2c: expose restart as syscall, add structure for I2C-over-DRTIO 2017-06-19 23:44:51 +08:00
6c6bb67618 libboard: fix compiler warning on not(has_i2c) 2017-06-19 14:57:15 +08:00
5d63489080 i2c,spi: add busno error detection 2017-06-19 14:27:30 +08:00
8399f8893d add kernel access to non-realtime SPI buses (#740) 2017-06-18 12:45:07 +08:00
8fea361412 firmware: always use 8 characters to abbreviate git commit hashes 2017-06-17 14:43:50 +08:00
2a76034fbc cri: add note about clearing of o_data 2017-06-16 19:06:00 +02:00
whitequark
284382b1f5 compiler: add support for bytearray values in RPC (#714). 2017-06-09 07:15:25 +00:00
whitequark
66a683f583 compiler: add support for bytes values in RPC (#714). 2017-06-09 07:10:48 +00:00
whitequark
d0e92067c3 ksupport: fix UB. 2017-06-09 06:18:20 +00:00
0b6fb95deb firmware: fix revision of compiler_builtins for satman 2017-05-13 15:12:53 +01:00
Florent Kermarrec
79c339d4ac gateware/targets/phaser: jesd core now handles jsync completely 2017-04-26 22:25:08 +02: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
db494967c5 firmware use Rust 0.18.0. 2017-04-19 09:38:24 +00:00
fe05aede78 firmware: DmaPlayback → DMARetrieve 2017-04-19 11:11:42 +08:00
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
whitequark
296dc3b0c4 artiq_coreboot: allow hot-rebooting the device. 2017-04-11 03:24:24 +00:00
whitequark
14ae1cc100 runtime: advance now on DMA replay.
Fixes #700.
2017-04-05 18:34:36 +00:00
5e3aef45dc drtio: support collision/replace + detect sequence errors at satellite 2017-04-06 01:06:56 +08:00
whitequark
391660e545 gateware: simplify the CRI arbiter to use a plain mux. 2017-04-05 15:09:19 +00:00
008678b741 drtio: add infrastructure for reporting busy/collision errors 2017-04-02 23:45:55 +08:00
0a687b7902 drtio: report satellite errors through firmware 2017-04-01 12:18:00 +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
2c3f720301 runtime: report asynchronous RTIO errors (collision, busy) in log. Closes #681 2017-03-27 17:14:14 +08:00
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
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
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
795a3e24d8 artiq_coreboot: block until hotswap image is actually received. 2017-03-07 11:36:28 +00: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
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
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
0b4922e0f4 dma: request RTIO control 2017-03-01 18:59:45 +08:00
whitequark
a4ece19614 Implement DMA playback. 2017-02-28 21:28:40 +00: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
dff23293c7 Merge branch 'master' of github.com:m-labs/artiq 2017-02-27 01:05:40 +08:00
whitequark
5d3b00cf12 Implement recording of DMA traces on the core device. 2017-02-26 02:50:20 +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
98be556143 drtioaux: fix compiler warnings 2017-02-25 12:18:57 +08:00
5a16660aa2 runtime: new moninj protocol, TCP-based, with DRTIO support 2017-02-25 12:07:00 +08:00
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
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
b34c6ba6b9 satman: process moninj packets 2017-02-23 16:24:05 +08:00
45ac0dcf57 drtioaux: add moninj packets 2017-02-23 16:23:51 +08:00
016743f079 libdrtioaux: do not attempt to access non-existent DRTIO gateware 2017-02-22 16:45:02 +08:00
257527629a firmware: use aux ping to determine when DRTIO satellite is ready 2017-02-22 15:26:32 +08:00
a8ea557406 firmware: add DRTIO aux packet library (WIP) 2017-02-21 21:55:36 +08:00
whitequark
a12876b239 firmware: update Cargo.lock. 2017-02-21 05:28:48 +00:00
bc3fc26e34 coredevice: expose PCU 2017-02-18 14:09:12 +01:00
6b5b679659 libboard: PCU regs 2017-02-18 14:09:12 +01:00
9501d37378 firmware: wait longer for Si5324 lock + more monitoring 2017-02-18 17:24:46 +08:00
7e8348a73e si5324: fix error handling 2017-02-18 14:12:18 +08:00
59e79673f7 satman: program Si5324 BWSEL depending on frequency 2017-02-18 14:12:01 +08:00
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
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
3eef0bcc1a firmware: give si5324 more time to lock 2017-02-04 19:19:25 +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
whitequark
f48cf9d9a0 firmware: use libcompiler_builtins to build satman. 2017-02-03 08:11:42 +00:00
a8ecbd6041 firmware: do not attempt to build Si5324 code when gateware does not support it 2017-02-03 12:27:13 +08:00
6fe1c9ff45 firmware: read back reserved bits from Si5324, use SFOUT2_REG=b001 instead of reserved b000 2017-02-03 12:24:13 +08:00
f6e9d571c2 satman: use rust liballoc 2017-02-03 12:23:38 +08:00
d181989de9 drtio: reset Si5324 at each boot 2017-02-03 12:00:58 +08:00
90ac915dd1 firmware: do not clear si5324 reserved bit 2017-02-02 20:54:50 +08:00
6bea253f82 firmware: fix misleading si5324 comment 2017-02-02 20:53:39 +08: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
f512ea42dc drtio: initialize si5324 in firmware 2017-02-02 18:11:24 +08:00
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
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
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
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
d8e9949266 drtio: initialize AD9516 clock chip 2017-01-30 11:06:45 +08:00
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
43aad0914e python3.5 -> python3
Many things also work with Python 3.6.
2017-01-30 09:24:43 +08:00
whitequark
be0953d98f firmware: unbreak Io::sleep().
Fixes #663.
2017-01-27 18:18:02 +00:00
82c4c61290 fix 7b2eba9f 2017-01-27 23:44:59 +08:00
7b2eba9fbd firmware: misoc_registers -> misoc_cfg 2017-01-27 23:28:00 +08:00
11994d1900 satman: unbreak build 2017-01-27 23:26:40 +08:00
6acb8021e1 satman: remove stale reference to main.c 2017-01-27 23:24:07 +08:00
whitequark
6891b5fcfd firmware: accept sessions even when startup kernel is running.
Fixes #625.
Fixes #649.
2017-01-27 13:46:32 +00:00
whitequark
24ce9a057b firmware: add missing try!. 2017-01-27 13:46:32 +00:00
whitequark
74b910e97d In case of a load error, pass the reason to host interpreter.
Fixes #654.
2017-01-27 12:49:48 +00:00
whitequark
50f234bea4 firmware: update smoltcp to take advantage of TCP MSS option. 2017-01-27 03:47:57 +00: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
f7dec72f02 firmware: give satman whole RAM in linker script 2017-01-26 15:58:42 +08: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
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
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
ce31ffddb0 firmware: add satellite manager
The code duplication with the runtime should be cleaned up later.
2017-01-18 16:50:32 -06:00
6805feb494 drtio: report truncated packets 2017-01-12 23:44:45 -06:00
7c699e2f80 drtio: add FIFO space request count debug API 2017-01-11 13:48:14 -06:00
c25186fae1 drtio: print packet error descriptions in log 2017-01-10 18:03:01 -06:00
7af152ed22 firmware: pass spawner around instead of scheduler 2017-01-10 16:15:39 -06:00
d3d23d0d3b drtio: report get FIFO space timeouts to log 2017-01-10 16:12:46 -06:00
fdfaa377db drtio: add debug syscalls 2017-01-08 15:06:14 -06:00
4f97d00e79 firmware: make i2c busno u8 2017-01-05 14:54:48 +01:00
13c45c8766 firmware: add si5324 programming functions 2017-01-05 14:50:00 +01:00
6c685205ce firmware: support i2c restart 2017-01-05 14:49:24 +01:00
082fdaf450 move i2c to libboard, do bit-banging on comms CPU 2017-01-04 21:04:38 +01:00
3dd9d54b22 firmware: fix compilation warning without moninj/analyzer 2017-01-04 21:04:08 +01:00