Commit Graph

5442 Commits

Author SHA1 Message Date
f9910ab242 i2c: support selecting multiple or no channels
closes #1054
2018-06-15 19:36:37 +02: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
1029ac870b sayma_rtm: don't drive txen pins
pins disabled by config
necessary for using that pin as DIN (#813)
2018-06-13 16:11:30 +00:00
68d16fc292 serwb: support single-ended signals
Low-speed PHY only.
2018-06-13 21:28:21 +08:00
a9a25f2605 sayma_rtm: drive ref_lo_clk_sel, and set clk muxes early 2018-06-12 20:00:12 +02:00
aff7fa008f Revert "artiq_flash/sayma: check for DONE after load"
This reverts commit 2de5b0cf25.

would make artiq uninstallable on windows as win buildbot is broken
2018-06-12 19:14:43 +02:00
2de5b0cf25 artiq_flash/sayma: check for DONE after load 2018-06-13 00:47:43 +08: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
0b086225a9 sawg: don't use Cat() for signed signals
c.f. #1039 #1040 #1022 #1058 #1044
2018-06-09 07:33:47 +00:00
5b73dd8604 sawg: accurate unittest rtio freq 2018-06-08 17:22:13 +02:00
735e4e8561 pcu: spelling 2018-06-08 14:39:22 +00:00
e5f6750171 sawg: cleanup double assign 2018-06-08 14:31:55 +00:00
Florent Kermarrec
53e9e475d0 serwb: transmit zeroes when nothing to transmit (for prbs), improve rx idle detection 2018-06-08 16:10:31 +02:00
Florent Kermarrec
7296a76f18 serwb: move common datapath code to datapath.py, simplify flow control 2018-06-08 12:37:08 +02:00
Florent Kermarrec
89797d08ed serwb: revert to 125MHz linerate (until we understand why 1gbps version breaks between builds) 2018-06-07 15:13:56 +02:00
b4c2b148d1 sawg: don't use Mux for signed signals
migen#75
2018-06-06 15:51:14 +00:00
Florent Kermarrec
009db5eda9 serwb: revert 1gbps linerate 2018-06-06 16:20:20 +02:00
cae92f9b44 kasli: add Tsinghua variant 2018-06-06 19:03:45 +08:00
38971d130a comm_analyzer: fix data without any spi reads
closes #1050
2018-06-06 12:21:42 +02:00
e21b7965b9 sayma_amc: change test patterns for 'without-sawg' 2018-06-06 08:02:52 +00:00
whitequark
38dac16041 compiler: don't crash when quoting builtin functions.
Fixes #1051.
2018-06-05 23:27:23 +00: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
07d4145a35 correct documented siphaser VCO frequency [NFC] 2018-06-04 20:53:43 +08:00
Florent Kermarrec
925b47b077 firmware/ad9154: reset the dac between each configuration attempt 2018-06-04 14:03:26 +02:00
bb87976d4f suservo: docstring fixes, revert parametrization of r_rtt 2018-06-04 07:27:17 +00:00
07a1425e51
SUservo EEM docs
add documentation to eem.SUServo. Change parameterization of t_rtt to include delays on Sampler, as this seems simpler and more robust to changing RTIO frequencies in the future.

c.f. #1046
2018-06-04 08:51:28 +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
985fd7377b artiq_rpctool: use inspect.formatargspec instead of a NIH formatter.
Fixes #1029.
2018-06-01 19:18:14 +00:00
62deffa7d2 opticlock: fix core device name 2018-06-01 15:39:23 +00:00
f50aef1a22 suservo: extract boilerplate
closes #1041
2018-06-01 15:37:07 +00:00
5de2d06568 ad53xx/zotino: do not clear power down on overtemp 2018-06-01 13:17:13 +00:00
2c344686d9 ad53xx/zotino: enable overtemp shutdown and readback control 2018-06-01 13:06:52 +00:00
87d3ac9d25 suservo: swap transfer function parametrization
The integrator is now parametrized through its gain and not the PI
corner frequency. The integrator gain limit is given in absolute gain
units and not relative to the proportional gain.

close #1033
2018-06-01 09:38:18 +00:00
e408241233 sawg: work around compiler not accepting delay_mu(int32) 2018-06-01 15:42:37 +08:00
f5d55c6902 sawg: add 1 coarse RTIO cycle between spline resets
This keeps all events in the same SED lane and limits the number of SED lanes required.

Closes #1038
2018-06-01 15:15:24 +08:00
22506e849f suservo: clarify timings
close #1027
2018-06-01 06:35:38 +00:00
a42f774440 suservo: document offset range limits
close #1034
2018-05-31 16:55:44 +00:00
36dcea3edf suservo: refactor y_mu_to_full_scale as portable
close #1032
2018-05-31 16:44:14 +00:00
e136709cac suservo: document gain state
close #1030
2018-05-31 16:36:53 +00:00
5dbdc5650c suservo: document set_config and get_status more
close #1028
2018-05-31 16:32:05 +00:00
e1b0fcc24e suservo: add documentation on settings and setup
close #1015
2018-05-31 16:21:09 +00:00
9b5a46dffd suservo: fix restart counter assertion
c.f. #788
2018-05-31 15:56:11 +00:00
Paweł
44c7a028cb Added second argument to DIO.add_STD in master and satellite variant of kasli (now builds properly) 2018-05-30 22:49:40 +08:00
8fd57e6ccb kasli_tester: add Sampler and Zotino support 2018-05-29 22:36:42 +08:00
d1df18ae6a monkey_patches: work around Python issue 33678. Closes #1016 2018-05-29 17:51:41 +08: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
ad099edf63 kasli: integrate grabber 2018-05-28 22:43:40 +08:00
563e434e15 eem: finalize grabber support 2018-05-28 22:43:06 +08:00
2612fd1e72 rtio: add grabber deserializer and WIP PHY encapsulation 2018-05-28 22:42:27 +08:00
Florent Kermarrec
e21f14c0b3 serwb/phy: typo (KUSSerdes --> KUSerdes) 2018-05-28 10:41:11 +02:00
c2890c6cf0 kasli_tester: initialize DDS channels 2018-05-28 14:24:39 +08:00
b20a8c86b0 kasli: don't bother with grabber ttls for now
not used on target cameras
2018-05-28 07:31:00 +02:00
80c69da17e eem: add Grabber IOs and CC 2018-05-28 11:16:23 +08:00
4d3f763865 move kasli_opticlock to kasli_basic 2018-05-28 11:02:44 +08:00
cc0ddf9d72 artiq_flash: do not check variants anymore
Not very useful and adds to the maintainance when building new Kasli systems.
2018-05-28 10:59:01 +08:00
bb248970df style 2018-05-28 10:40:05 +08:00
56cfe77c91 environment: spelling 2018-05-27 20:36:11 +02:00
b09d07905c kasli: add LUH/PTB/HUB variants
and refactor/simplify variant selection
2018-05-27 18:33:27 +00:00
whitequark
db4d1878d3 compiler: remove debug print. 2018-05-25 09:37:18 +00:00
whitequark
223b984385 Fix non-exception-safe finally: handlers.
Fixes #1013.
2018-05-25 04:23:32 +00:00
whitequark
fbf2c9a2fb compiler: hoist loads of kernel invariants to function entry block.
Addresses intraprocedural cases of #1007.
2018-05-25 02:18:13 +00:00
whitequark
12d1b9819c compiler: handle direct calls to class methods.
Fixes #1005.
2018-05-25 02:02:18 +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
bca2969957 sayma_rtm: add RTMScratch module to test remote Wishbone accesses 2018-05-24 16:53:10 +02:00
Florent Kermarrec
7642254d83 Merge branch 'master' of http://github.com/m-labs/artiq 2018-05-24 16:51:23 +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
19efd8b13e kasli: refactor EEM code 2018-05-24 18:41:54 +08: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
9715f774ac artiq_influxdb: controller (add ping()) 2018-05-22 22:12:25 +00:00
whitequark
7aacc04f0c language: scan functions are not supported on core device.
Closes #1009.
2018-05-22 21:33:35 +00:00
whitequark
b55ce66a1b Reinstate accidentally removed aqctl_corelog.
Closes #1008.
2018-05-22 21:31:34 +00:00
whitequark
ce3c8fcd3e compiler: add source location to SSA arguments.
Fixes #1006.
2018-05-22 18:14:14 +00:00
fcd12e3472 suservo: work around #1007 2018-05-22 17:36:41 +00:00
9a86dfe70d units: add mHz 2018-05-22 17:36:02 +00:00
4e863b32a1 coredevice: configurable initial backing state
Several core device drivers maintain a copy of some device state.
Since this copy is not transferred between experiments this backing state
can be different from device state when a new experiment is started.

This commit adds support for injecting initial backing state into
experiments via the device database and sets initial backing state where
known.

ad53xx (zotino): spi2 xfer_duration
novogorny: pgia gains
sampler: pgia gains, spi2 pgia and adc xfer_duration
suservo: pgia gains, spi2 pgia xfer_duration
urukul: cpld cfg (partial: rf_sw), attenuator register
spi2: div/length for xfer_duration

close #1003
2018-05-21 18:55:06 +02:00
4e5fe672e7 kasli: add tester target 2018-05-21 17:43:39 +08:00
2e6b81d59a kasli_tester: reset core device 2018-05-21 15:35:29 +08:00
8513f0b0d4 minor cleanup 2018-05-21 15:35:00 +08:00
whitequark
9b4ad8b5af compiler: implement local variable demotion. 2018-05-19 17:05:34 +00:00
whitequark
fd110e9848 compiler: sort predecessors in IR dump output.
Makes diffs more useful.
2018-05-19 17:02:08 +00:00
whitequark
dc1c4ebf1d compiler: use ARTIQ_IR_NO_LOC variable to control IR dump output.
Useful e.g. in tests or for running diff on irgen output.
2018-05-19 17:02:08 +00:00
whitequark
21a0f26cd1 compiler: do not emit nonstandard !unconditionally* LLVM metadata.
This metadata was added by an LLVM patch that was removed because
it was unsound.
2018-05-19 16:58:03 +00:00
f953bee79e kasli_test: add RF switch control 2018-05-18 23:48:29 +08:00
f457b59985 kasli_tester: bail out when run from ARTIQ master 2018-05-18 23:30:52 +08:00
3cbcb3bff6 move mitll, sysu and ustc device_dbs to kasli_basic 2018-05-18 23:20:40 +08:00
bdfd993818 kasli_tester: add Urukul support 2018-05-18 23:18:03 +08:00
72aef5799e kasli/ustc: use TTLOut 2018-05-18 22:55:28 +08:00
9a4408a570 add Kasli TTL tester 2018-05-18 22:52:53 +08: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
8a988d0feb kasli: remove leftover debug print 2018-05-18 17:25:23 +08:00
37bd0c2566 kasli: add USTC target 2018-05-18 16:15:07 +08:00
73f8e61478 kasli_sysu: fix TTL directions in example device_db 2018-05-18 16:13:50 +08:00
6476219296 frontend: fix permissions 2018-05-18 00:10:46 +08:00
bfff755295 urukul: do IO_RST also when blind 2018-05-17 14:48:49 +00: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
3b61b7c30b compiler: fix tests after 4d06c1d8. 2018-05-16 21:53:53 +00: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
99f7672c79 ad53xx: tweak spi readback 2018-05-16 19:08:27 +02: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
whitequark
a39f8d6634 artiq_devtool: use CommMgmt instead of shelling out to artiq_coremgmt.
(Which no longer exists.)

This also fixes `artiq_devtool hotswap` to work without
an `artiq_devtool connect` running in background.
2018-05-16 14:08:32 +00:00
whitequark
d446a3293e frontend: merge core{config,log,boot,debug,profile} into coremgmt. 2018-05-16 14:08:32 +00:00
Florent Kermarrec
f77bcbebb5 serwb/test_serwb_core: fix 2018-05-16 08:34:53 +02:00
Florent Kermarrec
77fc5c599f serwb/test: update 2018-05-15 23:52:58 +02:00
Florent Kermarrec
3873d09692 serwb: rewrite high-speed phys by splitting clocking/tx/rx, scrambling is now always enabled. 2018-05-15 23:52:41 +02:00
Florent Kermarrec
f8a9dd930b serwb/genphy: add device parameter (not used here, but this way all the phys share the same parameters), scrambling is also now always enabled. 2018-05-15 23:51:14 +02:00
Florent Kermarrec
2c627cd061 serwb/scrambler: simplify and set scrambler input data to 0 when sink.stb == 0 2018-05-15 23:49:17 +02: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
Florent Kermarrec
913d1e8e12 serwb: add generic low-speed phy (125Mhz linerate, same phy for ultrascale/7-series) 2018-05-15 16:39:39 +02:00
Florent Kermarrec
520aade8fe serwb/scrambler: cleanup/fix potential bug 2018-05-15 16:30:52 +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
a100c73dfe suservo: support pure-I 2018-05-14 18:48:27 +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
9a1bd66d2c compiler: add test for int64(round(1.0)). 2018-05-14 15:57:27 +00:00
e121a81f21 ad9914: fix frequency_to_xftw and xftw_to_frequency 2018-05-14 23:49:00 +08:00
80df86f700 ad9914: set_mu_x -> set_x_mu 2018-05-14 23:49:00 +08: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
0c1caf0744 suservo: clean up and beautify example 2018-05-14 15:22:47 +02:00
4ddb29fa02 suservo: document class arguments 2018-05-14 15:22:47 +02: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
504d37b66b suservo: add SI units functions and document
m-labs/artiq#788
2018-05-14 12:26:49 +00:00
4993ceec35 sampler: unroll conversion for speed 2018-05-14 12:26:49 +00:00
d71e4e60a9 suservo: use addition for offset 2018-05-14 12:26:49 +00:00
27f975e7bb kasli: eem DifferentialInputs need DIFF_TERM
cleanup some formatting on the way
2018-05-14 12:26:49 +00:00
2a47b934ea suservo: remove adc return clock gating 2018-05-14 12:26:49 +00:00
74c0b4452b suservo: clkout and sdo[b-d] are inverted 2018-05-14 12:26:49 +00:00
04240cdc08 suservo: sampler channels are reversed 2018-05-14 12:25:09 +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
ba1d137d19 ad9914: fix FTW write in regular resolution mode 2018-05-14 18:47:23 +08: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
b04c7abde8 ad9914: fix kernel_invariants 2018-05-14 14:02:11 +08:00
56a18682a7 ad9914: minor fixes 2018-05-14 10:37:50 +08:00
194d6462ee ad9914: fix set_mu 2018-05-14 00:19:09 +08:00
hartytp
00cb31b804 sampler: remove v_ref parameter (#988) 2018-05-13 18:00:57 +02:00
3027951dd8 integrate new AD9914 driver
moninj, analyzer, docs, examples, tests.
2018-05-13 23:29:35 +08:00
663d8e66ba ad9914: optimize extended-resolution mode 2018-05-13 23:01:06 +08:00
c8d91b297d coredevice: add new ad9914 driver 2018-05-13 22:30:33 +08: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
whitequark
ee4c475cf3 gateware: fix Sayma satellite build.
RTIO clock multiplier was removed from Sayma in 32f22f4c.
2018-05-13 13:10:39 +00:00
8c1390e557 kasli: use 62.5MHz clock for siphaser reference (#999) 2018-05-12 22:58:03 +08:00
2426fea3f2 siphaser: support external reference for the freerunning 150MHz 2018-05-12 22:57:11 +08:00
6796413a53 serwb: remove unnecessary shebang line 2018-05-12 22:49:44 +08:00
Florent Kermarrec
f5208ff2f3 serwb/core: reduce buffering, use buffered=True 2018-05-12 12:03:58 +02:00
Florent Kermarrec
fdc953e569 serwb/etherbone: recuce buffering 2018-05-12 12:03:11 +02:00
Florent Kermarrec
6e67e6d0b1 serwb: revert some changes (was breaking simulation) 2018-05-12 11:59:46 +02:00
Florent Kermarrec
0a6d4ccd85 serwb/phy: improve/cleanup init 2018-05-12 01:35:34 +02:00
Florent Kermarrec
b6ab59fb80 serwb/phy: increase timeout 2018-05-12 01:32:55 +02:00
Florent Kermarrec
e09dbc89bc serwb: remove idelaye3 en_vtc (was not done correctly, we'll add direct software control) 2018-05-12 01:32:16 +02: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
Florent Kermarrec
cd4477864a serwb: fix case when rtm fpga is not loaded, lvds input can be 0 or 1 2018-05-11 23:31:25 +02:00
2e3bf8602f serwb: reduce buffering. Closes #997 2018-05-11 14:13:41 +08:00
2cece47b10 firmware/si5324: fix compilation warning 2018-05-09 20:00:08 +08:00
6b811c1a8b sayma: fix runtime/rtm gateware address conflict 2018-05-09 19:47:29 +08:00
Florent Kermarrec
9de08f85c6 firmware/ad9154: reduce verbosity of dac_sysref_cfg 2018-05-09 10:57:00 +02:00
f055bf88f6 suservo: add clip flags (#992) 2018-05-09 07:16:15 +00:00
Florent Kermarrec
60fd362d57 serwb: fix rx_comma detection 2018-05-07 23:54:35 +02:00
7d4a103a43 opticlock, suservo: set default kasli hw_rev 2018-05-07 09:07:18 +02:00
whitequark
c646409dbe firmware: fix order of bits clocked into hmc542.
Fixes #993.
2018-05-05 03:12:25 +00:00
whitequark
917a4185eb Unbreak 9dc7efef. 2018-05-05 03:00:30 +00:00
whitequark
fd2b8d5f8f firmware: raise hmc542 log level to INFO. 2018-05-05 02:59:49 +00:00
whitequark
a148729bf8 artiq_flash, artiq_devtool: add support for ssh -J option. 2018-05-05 02:50:01 +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
9dc7efefe4 compiler: transparently handle Windows newlines in RunTool. 2018-05-05 01:43:00 +00:00
whitequark
4f29d9134f firmware: update log_buffer.
Fixes #986.
2018-05-05 01:18:59 +00:00
whitequark
5ebc626cf4 artiq_coreprofile: fix an inverted option. 2018-05-05 00:49:42 +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
0b4d06c7a9 worker: keep sys.modules untouched until the end of examine() 2018-05-02 12:50:37 +08:00
8079aa6d20 worker: python docs recommend not replacing sys.modules 2018-05-02 12:48:50 +08:00
8c69d939fb worker: restore sys.modules in examine() (#976) 2018-05-02 12:32:35 +08:00
8d66d53e06 Revert "tools/file_import: restore sys.modules. Closes #976"
This reverts commit b48e782dd6.
2018-05-02 12:14:56 +08:00
5f0cfadb30 rtio/sed: add unittest for sequence number rollover 2018-05-02 12:04:30 +08:00
4120105e3a rtio/sed: fix output network cmp_wrap 2018-05-02 12:04:03 +08:00
bce8fa3ec5 rtio/sed: add replace unittest at the top level (#978) 2018-05-02 10:58:18 +08:00
83fb431cd0 rtio/sed: pass sequence numbers through the FIFOs. Closes #978 2018-05-02 10:57:57 +08:00
Florent Kermarrec
05955bfd79 sayma_rtm: use bufio for sys4x (needed since we are using a -1 speedgrade) 2018-05-01 22:16:35 +02:00
b48e782dd6 tools/file_import: restore sys.modules. Closes #976 2018-05-01 22:15:47 +08:00
Florent Kermarrec
84e1f05559 sayma_rtm: make cd_sys4x clock domain reset_less 2018-05-01 16:11:26 +02: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
64c8eee28d serwb/phy/master: fix slave ready detection by filtering possible glitches on rx data (seems to happen when RTM fpga is not loaded) 2018-04-30 23:59:56 +02:00
5a683ddd1f Revert "kasli: force hw_rev for the different targets"
This reverts commit 17d7d7856a.

Would require filtering it in misoc or better
removing the argparse option.
2018-04-28 23:24:41 +02:00
17d7d7856a kasli: force hw_rev for the different targets 2018-04-28 21:30:29 +02:00
whitequark
f7e08ec46b Unbreak f35f1001. 2018-04-28 01:03:08 +00:00
whitequark
f35f100110 compiler: don't crash printing locations of specialized functions.
Fixes #987.
2018-04-28 00:49:25 +00:00
8812824fb2 suservo: speed up example, interlock mem 2018-04-27 17:17:17 +00:00
ae80bab180 urukul: reg based io-update is a kernel 2018-04-27 16:42:09 +00:00
5d3c76fd50 sayma_rtm: use bitstream opts in migen 2018-04-27 15:43:32 +00:00
5f00326c65 suservo: coeff mem write port READ_FIRST 2018-04-27 15:43:32 +00:00
73fa572275 suservo: documentation, small API changes 2018-04-27 16:53:22 +02:00
Florent Kermarrec
4e2d9abaf7 firmware/ad9154: combine analog and digital delay of hmc7043 for sysref scan 2018-04-27 14:32:03 +02:00
fe9834bac4 suservo: update 'technology preview' example [wip]
Still with mostly undocumented and unstable API.
2018-04-27 12:04:17 +00:00
307cd07b9d suservo: lots of gateware/ runtime changes
tested/validated:

* servo enable/disable
* dds interface, timing, io_update, mask_nu
* channel control (en_out, en_iir, profile)
* profile configuration (coefficients, delays, offsets, channel)
* adc timings and waveforms measured
* asf state readback
* adc readback

individual changes below:

suservo: correct rtio readback

suservo: example, device_db [wip]

suservo: change rtio channel layout

suservo: mem ports in rio domain

suservo: sck clocked from rio_phy

suservo: cleanup, straighten out timing

suservo: dds cs polarity

suservo: simplify pipeline

suservo: drop unused eem names

suservo: decouple adc SR from IIR

suservo: expand coredevice layer

suservo: start the correct stage

suservo: actually load ctrl

suservo: refactor/tweak adc timing

suservo: implement cpld and dds init
2018-04-27 13:50:26 +02:00
01f762a8f5 urukul/ad9910: support blind init
urukul: always set io_update attribute
to silence compiler warning w.r.t. kernel_invariants
2018-04-27 13:48:40 +02:00
Florent Kermarrec
3802c7badb firmware/ad9154: add sysref scan/conf for jesd sc1 2018-04-27 13:20:20 +02:00
Florent Kermarrec
8212e46f5e sayma_amc: filter jesd refclk/sysref with jreset (hmc7043 can generate noise when unconfigured see sinara issue #541) 2018-04-27 13:04:37 +02:00
edbc7763e0 urukul: allow no io_update_device 2018-04-25 17:32:36 +00:00
8a1151b54f suservo: example device db 2018-04-25 17:14:25 +00:00
f9b2c32739 suservo: add pgia spi channel 2018-04-25 17:14:25 +00:00
c83305065a suservo: add servo/config/status register 2018-04-25 15:59:06 +00:00
105068ad90 suservo: fix restart timing 2018-04-25 15:19:49 +00:00
c304b6207a suservo: drop adc idelays 2018-04-25 14:59:50 +00:00
b44d6517d1 suservo: use 125 MHz SDR ADC
* easier timing
* natural sampling on rising edge
* timing, signal robustness
* adjust the servo iteration timing
2018-04-25 14:32:23 +00:00
37c186a0fc suservo: refactor, constrain
* remove DiffMixin, move pad layout handling to pads
* add input delay constraints, IDELAYs
2018-04-25 13:44:52 +00:00
d0258b9b2d suservo: set input delays 2018-04-24 15:30:25 +00:00
fe75064c1e suservo: cleanup rtio interface 2018-04-24 13:08:40 +00:00
3942c2d274 suservo: fix clkout cd drive 2018-04-24 10:18:32 +00:00
f74998a5e0 suservo: move arch logic to top, fix tests 2018-04-23 21:11:26 +00:00
4903eb074c suservo: use BUFIO/BUFH for ADC 2018-04-23 18:30:19 +00:00
e36deab0a8 suservo/adc: try to help vivado extract srls 2018-04-23 18:30:19 +00:00
929ed4471b kasli/SUServo: use suservo, implement urukul_qspi
m-labs/artiq#788
2018-04-23 18:30:18 +00:00
4c1e356f67 suservo: add pads rewiring layer for eems 2018-04-23 18:30:18 +00:00
99dd9c7a2a suservo: fix rtio interface width 2018-04-23 18:30:18 +00:00
d5eea962ec suservo: fix cnv_b diff 2018-04-23 18:30:12 +00:00
c8fd63754a suservo: add unittests
m-labs/artiq#788
2018-04-23 18:25:59 +00:00
934c41b90a gateware: add suservo
from
fe4b60b902

m-labs/artiq#788
2018-04-23 18:24:59 +00:00
4fe09fddd5 examples/kc705_nist_clock: update to new ad53xx driver 2018-04-22 15:03:30 +08:00
c47d3ec8c8 zotino: use None as default for ldac and clr
This is also what AD53xx does.
2018-04-22 15:03:01 +08:00
d2d02ae353 artiq_coredebug: fix permissions 2018-04-22 15:02:17 +08: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
58967f14fd compiler: do not try to re-coerce fully coerced numerics. 2018-04-21 18:25:52 +00:00
whitequark
742e273441 Commit missing part of b4e3c30d. 2018-04-20 15:27:27 +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
whitequark
b4e3c30d8c compiler: desugar x != y into not x == y (fixes #974). 2018-04-20 12:20:45 +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
Florent Kermarrec
439d2bf2bc sayma/serwb: adapt, full reset of rtm on link reset 2018-04-17 19:24:03 +02:00
Florent Kermarrec
8edf4541d6 serwb: adapt test 2018-04-17 19:21:53 +02:00
Florent Kermarrec
20ccc9d82f serwb/core/phy: move scrambler in phy, add link test, revert delay min/max checks 2018-04-17 19:21:21 +02:00
Florent Kermarrec
ebfac36223 serwb/scrambler: dynamic enable/disable 2018-04-17 19:20:06 +02:00
Florent Kermarrec
816a6f2ec7 serwb/phys: remove phy_width (revert linerate to 1Gbps) 2018-04-17 19:19:18 +02:00
48b48e44dd kasli/mitll: fix demo 2018-04-17 20:15:38 +08:00
79f4892e22 kasli/mitll: fix RTIO channel numbers 2018-04-17 20:15:17 +08:00
eac447278f kasli: add MITLL variant 2018-04-17 19:00:11 +08:00
756e120c27 kasli/sysu: add comments 2018-04-17 18:46:55 +08:00
Florent Kermarrec
1acd7ea1db sayma/serwb: re-enable scrambling 2018-04-17 00:49:36 +02:00
Florent Kermarrec
ca01c8f1cb sayma: reduce serwb linerate to 500Mbps 2018-04-16 23:19:15 +02:00
Florent Kermarrec
825a2158ba serwb: add phy_width parameter to allow reducing linerate to 500Mbps or 250Mbps 2018-04-16 23:19:14 +02:00
Florent Kermarrec
bb90fb7d59 sayma/serwb: remove scrambling (does not seems to work on sayma for now...) 2018-04-07 15:57:57 +02:00
Florent Kermarrec
6aa8e2c433 serwb/test: replace valid/ready with stb/ack 2018-04-07 15:55:57 +02:00
Florent Kermarrec
73dbc0b6b6 serwb/test: adapt to new version 2018-04-07 15:09:29 +02:00
Florent Kermarrec
e15f8aa903 sayma/serwb: enable scrambling 2018-04-07 14:52:37 +02:00
Florent Kermarrec
9d0e8c27ff serwb/scrambler: add flow control 2018-04-07 14:51:17 +02:00
Florent Kermarrec
2f8bd022f7 sayma_rtm: remove sys0p2x clock 2018-04-07 03:10:34 +02:00
Florent Kermarrec
1fd96eb0fd serwb: replace valid/ready with stb/ack 2018-04-07 03:06:19 +02:00
Florent Kermarrec
c8a08375f8 serwb: replace valid/ready with stb/ack 2018-04-07 03:03:44 +02:00
Florent Kermarrec
73b727cade serwb: new version using only sys/sys4x clocks domains, scrambling deactivated. 2018-04-07 02:59:14 +02:00
Florent Kermarrec
dd21c07b85 targets/sayma_rtm: fix serwb 2 ... 2018-04-03 18:59:05 +02:00
Florent Kermarrec
7488703f23 targets/sayma_rtm: fix serwb 2018-04-03 18:57:00 +02:00
Florent Kermarrec
aef0153a8f targets/sayma: adapt to new serwb clocking 2018-04-03 18:53:39 +02:00
Florent Kermarrec
3248caa184 gateware/serwb: move all clocking outside of serwb, use existing sys/sys4x clocks 2018-04-03 18:48:08 +02:00
f0771765c1 rtio: move CRI write comment to more appropriate location 2018-03-29 23:55:00 +08:00
493d2a653f siphaser: add false path between sys_clk and mmcm_freerun_output 2018-03-29 10:55:41 +08:00
4229c045f4 kasli: fix DRTIO master clock constraint 2018-03-29 10:20:31 +08:00
3d89ba2e11 sayma: remove debug leftover 2018-03-29 10:20:17 +08:00
605292535c kasli: ignore OSERDESE2->ISERDESE2 timing path on DRTIO targets as well 2018-03-29 10:12:02 +08:00
416232cb64 runtime: do not reset RTIO PHY on core.reset(). Closes #971 2018-03-28 10:51:07 +08:00
5ca59467fd ad53xx: make LDAC and CLR optional 2018-03-26 22:45:01 +08:00
whitequark
bab6723ff2 Revert "gateware: don't run tests if there is no migen."
This reverts commit 4804cfef9b.
2018-03-26 03:33:52 +00:00
whitequark
4804cfef9b gateware: don't run tests if there is no migen.
This allows us to skip testing gateware on Windows.
2018-03-26 03:26:34 +00:00
whitequark
87c2f119a5 artiq_devtool: add load action. 2018-03-25 20:29:51 +00:00
8d62ea2288 examples: fix KC705 ad53xx 2018-03-25 11:19:54 +08:00
c3f763e217 dashboard: also create monitoring widgets for the Zotino class 2018-03-25 11:19:40 +08:00
a20dfd9c00 examples/master: ad5360 -> zotino 2018-03-24 16:46:59 +01:00
0505e9124f kc705: port device_db, ad53xx/zotino example 2018-03-24 16:05:26 +01:00
3a0dfb7fdc ad53xx: port monitor, moninj dashboard, kc705 target 2018-03-24 16:04:02 +01:00
a8f0ee1c86 ad53xx: refactor offset_to_mu(), fix docs 2018-03-24 15:45:42 +01:00
b0c8097025 ad53xx: remove channel index AND
It's incorrect since it doesn't respect the number of channels
of any of those chips (none has 64 channels).
2018-03-24 15:39:06 +01:00
77bcc2c78f zotino: style, use attributes to set SPI config 2018-03-24 15:37:34 +01:00
2cf414a480 ad53xx: move 8 bit shift out of ad53xx protocol funcs
That's specific to the SPI bus, not to the ad53xx.
2018-03-24 15:15:56 +01:00
08326c5727 ad53xx: style [nfc] 2018-03-24 14:10:20 +01:00
68e433a3a8 opticlock/device_db: resurrect novogorny
deleted in a992a67
2018-03-24 13:46:45 +01:00
hartytp
a992a672d9 coredevice/zotino: add (#969)
* Replace ad5360 driver with a ad53xx driver, designed to have a nicer interface
Add Zotino driver and add to opticlock target for Kasli
Test Zotino on hw:
 - Verify all timings on the hardware with a scope
 - Verify that we can correctly set and read back all registers in a loop (checks for SI and driver issues)
 - check we can set LEDs correctly
 - check calibration routine + all si unit functions with a good DVM
 - look at DAC transitions on a scope (while triggering of a TTL) on persist to check there are no LDAC glitches etc
To do: update examples and e.g. KC705 device db.
2018-03-24 13:41:18 +01:00
1553fc8c7d sed: reset valid in output sorter 2018-03-23 11:11:11 +00:00
0635907699 artiq_flash: fix cmdline formatting 2018-03-22 19:10:29 +08:00
46d5af31a1 artiq_flash: enclose filename in curly braces before passing to OpenOCD
Closes #927
2018-03-22 17:20:48 +08:00
eeedcfbdd7 artiq_flash: do not suppress useful backtrace information 2018-03-22 17:11:21 +08:00
f2cc2a5ff2 firmware: reset local RTIO PHYs on startup (#958) 2018-03-22 16:29:31 +08:00
770b0a7b79 novogorny: conv -> cnv
* parity with sampler
* also add novogorny device to opticlock
2018-03-21 18:38:42 +00:00
82c4f0eed4 sampler: fix channel gain retrieval 2018-03-21 14:22:13 +01:00
12d699f2a8 suservo: add sampler example 2018-03-21 12:21:53 +00:00
97918447a3 sampler: add coredevice driver 2018-03-21 12:21:53 +00:00
1afce8c613 kasli: simplify single eem pin formatting 2018-03-21 13:08:42 +01:00
d48b8f3086 kasli: fix sampler sdr/cnv pins 2018-03-21 09:28:00 +00:00
80903cead7 novogorny: streamline gain setting method, style [nfc] 2018-03-21 08:53:26 +00:00
f5a1001114 suservo: add device database and artiq_flash variant 2018-03-21 08:53:26 +00:00
1fb5907362 kasli: add SUServo variant (Sampler-Urukul Servo) 2018-03-21 08:53:26 +00:00
f74d5772f4 sampler: add wide eem definition 2018-03-21 08:53:26 +00:00
32f22f4c9c sayma: disable SERDES TTL entirely
Timing closure becomes very random, even at 4X.
2018-03-21 13:03:48 +08:00
f8c2d54e75 ttl_serdes_ultrascale: configurable SERDES ratio. Also try X4 on Sayma 2018-03-21 13:01:38 +08:00
9c2d343052 sayma: use SERDES RTIO TTL
This is not enabled on the standalone design as it breaks timing.
2018-03-21 10:53:52 +08:00
9ad1fd8f25 urukul: add comment and doc about the AD9910 MASTER_RESET 2018-03-20 17:40:03 +01:00
f17c0abfe4 urukul: don't pulse DDS_RST on init
closes m-labs/artiq#940

Apparently, if the DDS are reset, every other time they don't work
properly.
2018-03-20 16:10:26 +00:00
a185e8dc52 urukul: fix MASK_NU offset 2018-03-20 16:10:11 +00: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
c8020f6bbd ttl_serdes_generic: fix/upgrade test 2018-03-20 16:46:57 +08:00
a5825184b7 add ttl_serdes_ultrascale (untested) 2018-03-20 16:07:23 +08:00
fad066f1aa ttl_serdes_7series: cleanup indentation
Inconsistent with other code and confuses text editors.
2018-03-20 15:50:04 +08: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
hartytp
a27b5d88c2 Novogorny driver, remove unused imports (#964)
* Novogorny driver, remove unused imports

* more unused imports

* oops, one final one!
2018-03-19 11:58:14 +01:00
7a7ff6d2dd
Merge pull request #963 from hartytp/kasli_zotino_sampler
Add Zotino and Sampler functions to Kasli. Add Zotino to Kasli EEM 7 …
2018-03-19 10:52:50 +01:00
Thomas Harty
37d431039d Fix typos.
Reduce ififo depth to 4 for Zotino.
2018-03-19 09:42:18 +00:00
whitequark
c86df8e13e firmware: try to unstuck the I2C bus if it gets stuck.
Fixes #957.
2018-03-19 06:23:23 +00:00
Thomas Harty
c4fa44bc62 Add Zotino and Sampler functions to Kasli. Add Zotino to Kasli EEM 7 on OptiClock. 2018-03-18 00:25:43 +00:00
f39b7b33e8 ad5360: whitespace [nfc] 2018-03-17 18:51:17 +01:00
ion
c1439bfd3b Fix AD5360 after migration to SPI2 2018-03-17 11:37:11 +00:00
whitequark
4b5a78e231 compiler: do not pass files to external tools while they are opened.
This fixes access violations on Windows that are present both with
input and output files. For some reason, Cygwin-compiled binutils
did not exhibit this problem, but MSYS-compiled binutils do.

Fixes #961.
2018-03-15 22:21:29 +00:00
whitequark
5cb2602021 artiq_devtool: flash gateware if -g is passed. 2018-03-15 08:33:53 +00:00
whitequark
9ea7d7a804 firmware: allow building without system UART. 2018-03-14 18:34:31 +00:00
whitequark
158ceb0881 artiq_devtool: add kasli target. 2018-03-14 18:13:13 +00:00
a315ecd10b rtio/ttl_serdes_7series: reset IOSERDES (#958) 2018-03-14 09:01:29 +08:00
2fdc180601 dsp/fir: outputs reset_less (pipelined) 2018-03-13 17:11:50 +00:00
2edf65f57b drtio: fix satellite minimum_coarse_timestamp clock domain (#947) 2018-03-13 00:20:57 +08: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
eb6e59b44c sayma_rtm: fix serwb timing constraints (was causing the gated clock warning) 2018-03-12 11:25:29 +01:00
6dfebd54dd ttl_serdes_7series: use correct IBUFDS_INTERMDISABLE port names 2018-03-12 10:37:33 +08:00
a04bd5a4fd spi2: xfers take one more cycle until ~busy 2018-03-09 20:48:17 +01: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
fc3d97f1f7 drtio: remove spurious multichannel transceiver clock constraints
They used to cause (otherwise harmless) Vivado critical warnings.
2018-03-09 22:46:27 +08:00
caf7b14b55 kasli: generate fine RTIO clock in DRTIO targets, separate RTIO channel code 2018-03-09 22:36:16 +08: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
3fbcf5f303 drtio: remove TSC correction (#40) 2018-03-09 10:36:17 +08:00
e38187c760 drtio: increase default underflow margin. Closes #947 2018-03-09 00:49:24 +08:00
37f5f0d38d examples: add DMA to Sayma DRTIO 2018-03-09 00:49:24 +08: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
8bd15d36c4 drtio: fix error CSR edge detection (#947) 2018-03-08 16:28:25 +08:00
0adbbd8ede drtio: reset aux packet gateware after locking to recovered clock
Closes #949
2018-03-08 15:41:13 +08:00
8bd85caafb examples: fix Sayma DRTIO ref_period 2018-03-08 15:09:33 +08:00
37ec97eb28 ad9910/2: add sw invariant only when passed 2018-03-07 21:32:59 +01:00
82831a85b6 kasli/opticlock: add eem6 phys 2018-03-07 21:32:59 +01:00
3a6566f949 rtio: judicious spray with reset_less=True
Hoping to reduce rst routing difficulty and easier RTIO timing closure.
2018-03-07 14:57:18 +00:00
b0282fa855 spi2: reset configuration in rio_phy 2018-03-07 14:42:11 +00:00
7afb23e8be runtime: demote dropped and malformed packets msgs to debug 2018-03-07 14:28:21 +01:00
4af7600b2d Revert "LaneDistributor: try equivalent spread logic"
This reverts commit 8b70db5f17.

Just a shot into the dark.
2018-03-07 11:34:51 +00:00
a6d1b030c1 RTIO: use TS counter in the correct CD
artiq/m-labs#938
2018-03-07 11:34:42 +00:00
8b70db5f17 LaneDistributor: try equivalent spread logic 2018-03-07 11:34:42 +00:00
2cbd597416 LaneDistributor: style and signal consolidation [NFC] 2018-03-07 11:34:42 +00: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
f7aba6b570 siphaser: fix phase_shift_done CSR 2018-03-07 10:57:30 +08:00
acfd9db185 siphaser: minor cleanup 2018-03-07 10:57:30 +08:00
e6e5236ce2 firmware: fix si5324 select_recovered_clock 2018-03-07 10:57:30 +08:00
7d98864b31 sayma: enable siphaser 2018-03-07 10:57:30 +08:00
c2d2cc2d72 runtime: fix setup_si5324_as_synthesizer 2018-03-07 10:57:30 +08:00
a6e29462a8 sayma: enable multilink DRTIO 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
994ceca9ff sayma_amc: disable slave fpga gateware loading 2018-03-06 17:27:43 +01:00
f4dad87fd9 coredevice: add pcf8574a driver
I2C IO expander with 8 quasi-bidirectional pins
2018-03-06 14:27:19 +01:00
62af7fe2ac Revert "kasli/opticlock: use plain ttls for channels 8-23"
This reverts commit bd5c222569eb68d624a5ac1e9f2542f6ee553f83.

No decrease in power consumption or improvement in timing.
2018-03-06 14:27:19 +01:00
fd3cdce59a kasli/opticlock: use plain ttls for channels 8-23 2018-03-06 14:27:19 +01:00
50298a6104 ttl_serdes_7series: suppress diff_term in outputs 2018-03-06 14:27:19 +01:00
e356150ac4 ttl_simple: support differential io 2018-03-06 14:27:19 +01:00
956098c213 kasli: add second urukul, make clk_sel drive optional 2018-03-06 14:26:27 +01:00
07de7af86a kasli: make second eem optional in urukul 2018-03-06 14:26:26 +01:00
257bef0d21 slave_fpga: print more info 2018-03-06 14:26:26 +01:00
c25560baec sed: more LaneDistributor comments 2018-03-06 20:56:35 +08:00
f40255c968 sed: add comments about key points in LaneDistributor 2018-03-06 20:51:09 +08:00
Florent Kermarrec
5b3d6d57e2 drtio/gth: power down rx on restart (seems to make link initialization reliable) 2018-03-06 11:49:28 +01:00
Florent Kermarrec
64b05f07bb drtio/gth: use parameters from Xilinx transceiver wizard 2018-03-06 11:02:15 +01:00
Florent Kermarrec
45f1e5a70e drtio/gth: cleanup import 2018-03-06 10:56:07 +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
6aaa8bf9d9 drtio: fix link error generation 2018-03-04 23:20:13 +08:00
d747d74cb3 test: fix test_dma 2018-03-04 23:19:06 +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
abfbadebb5 doc: DMA can also raise RTIOUnderflow 2018-03-03 13:14:34 +08:00
ddcc68cff9 sayma_amc: move bitstream options to migen
close #930
2018-03-02 18:13:03 +08:00
5e074f83ac examples: update kasli sysu 2018-03-02 16:05:12 +08:00
29d42f4648 artiq_flash: add kasli sysu 2018-03-02 15:49:41 +08:00
a9daaad77b kasli: add SYSU variant and device_db 2018-03-02 14:44:31 +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
cc70578f1f remove old spi RTIO Phy 2018-03-01 11:19:18 +01:00
ec5b81da55 kc705: switch backplane spi to spi2 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
54984f080b artiq_flash: flash RTM firmware
based on whitequark's work in f95fb27

m-labs/artiq#813
2018-02-28 19:29:01 +01: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
1f999c7f5f sayma_amc: expose RTM fpga load pins as GPIOs 2018-02-28 18:44:36 +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
Florent Kermarrec
2896dc619b drtio/transceiver/gth: fix multilane 2018-02-28 14:15:40 +01:00
5046d6a529 ad9912/10: add a bit more slack to init() 2018-02-27 23:14:44 +01:00
f97163cdee examples/master: sync device_db with kc705_nist_clock 2018-02-27 19:40:00 +01:00
whitequark
916b10ca94 examples: spi → spi2. 2018-02-27 18:36:45 +00:00
386aa75aaa kasli: control SFP1 and SFP2 LEDs in DRTIO satellite to match master 2018-02-27 23:18:18 +08:00
5d81877b34 kasli: implement multi-link DRTIO on SFP1 and SFP2 of master 2018-02-27 23:15:20 +08:00
Florent Kermarrec
1f0d955ce4 drtio/transceiver/gtp: implement tx multi lane phase alignment sequence 2018-02-27 12:32:25 +01:00
e565d3fa59 kasli: add analyzer and RTIO log to DRTIO master target 2018-02-27 18:09:07 +08:00
760724c500 kasli/device_db: fix i2c switch addr 2018-02-26 11:37:12 +01:00
b466a569bf coredevice: export spi2 2018-02-24 09:49:31 +01:00
Florent Kermarrec
5b0f9cc6fd drtio/transceiver/gth: fix single transceiver case 2018-02-23 12:15:47 +01:00
cff85ee13b novogorny: simplify and fix coefficient 2018-02-23 10:09:44 +01:00
Florent Kermarrec
b4ba71c7a4 drtio/transceiver/gth: implement tx multi lane phase alignment sequence (fix merge issue...) 2018-02-23 08:37:05 +01:00
Florent Kermarrec
820c834251 drtio/transceiver/gth: implement tx multi lane phase alignment sequence 2018-02-22 22:14:15 +01:00
bc5e949bb4 novogorny: fix gain register length 2018-02-22 18:45:55 +00:00
1452cd7447 novogorny: add coredevice driver and test with Kasli
m-labs/artiq#687
2018-02-22 17:19:51 +01:00
74517107f0 ad9912: add slack after prodid read 2018-02-22 17:19:51 +01:00
3b7971d15d kasli: spelling 2018-02-22 17:19:51 +01:00
771bf87b56 kc705: port amc101_dac/spi0 and sma_spi to spi2 2018-02-22 17:19:51 +01:00
d4a10dcbd4 urukul: fix example 2018-02-22 11:28:50 +01:00
e8d4db1ccf coreanalyzer: add spi2 support
m-labs/artiq#926
2018-02-22 11:28:46 +01:00
f8e6b4f4e3 ad5360: port to spi2
* kc705 nist_clock target gateware
* coredevice driver
* moninj code
* test/example/device_db

This is untested as we don't have a AD5360 board right now.
Will be tested with Zotino v1.1

m-labs/artiq#926
2018-02-22 10:25:46 +01:00
96423882f2 fix 4d6619f3b 2018-02-22 15:27:54 +08:00
fa0d929b4d drtio: reorganize RX synchronizers 2018-02-22 15:21:23 +08:00
e5de5ef473 kasli: use deterministic RX synchronizer
Could not reproduce the "fully broken bitstream" bug.
2018-02-22 15:18:09 +08:00
4d6619f3bc satman: send ResetAck 2018-02-22 15:17:44 +08:00
a5ad1dc266 kc705: fix sdcard miso pullup 2018-02-21 19:41:05 +01:00
0d8145084d test_spi: move to new spi2 core 2018-02-21 19:41:05 +01:00
898bad5abc spi2: fixes 2018-02-21 19:41:05 +01: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
a63fd306af urukul: use spi2
* switch kc705 and kasli targets to spi2 gateware on urukul
* rewrite urukul, ad9912, ad9910
* update example experiments, device_dbs
2018-02-21 15:00:28 +00:00
37a0d6580b spi2: add RTIO gateware and coredevice driver
1006218997
2018-02-21 13:37:36 +00:00
91a4a7b0ee kasli: free run si5324 on opticlock for now 2018-02-21 13:37:29 +00:00
7a1d71502a ttl_serdes_7series: drive IBUF and INTERM disables from serdes 2018-02-21 13:37:29 +00:00
476e4fdd56 ttl_serdes_7series: disable IBUF and INTERM when output 2018-02-21 13:37:29 +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
whitequark
86ceee570f compiler: reject calls with unexpected keyword arguments.
Fixes #924.
2018-02-21 11:37:12 +00:00
f060d6e1b3 drtio: increase A7 clock aligner check period 2018-02-20 18:50:35 +08:00
738654c783 drtio: support remote RTIO resets 2018-02-20 18:48:54 +08:00
f15b4bdde7 style 2018-02-20 18:47:59 +08:00
7d9c7ada71 drtio: fix test infinite loop 2018-02-20 17:42:00 +08:00
ad2c9590d0 drtio: rewrite/fix reset and link bringup/teardown 2018-02-20 17:26:43 +08:00
7e02d8245c kasli: false paths
* don't bother with the round trip OSERDESE2 -> ... -> pad -> ... ->
  ISERDESE2
* clock groups with derived clocks c.f. migen 9c3a301
2018-02-19 13:05:11 +00:00
0f4549655b sayma: use Xilinx RX synchronizer
Cannot be used on Kasli, this breaks the bitstream entirely (nothing on UART).
2018-02-19 17:49:53 +08:00
52049cf36a drtio: add Xilinx RX synchronizer 2018-02-19 17:49:43 +08:00
3bc575bee7 drtio: add missing define for Sayma master 2018-02-19 17:11:21 +08:00
7376ab0ff8 drtio: fix Sayma after 83abdd28 2018-02-19 17:10:55 +08:00
Florent Kermarrec
f5831af535 drtio/transceiver/gtp_7series_init: don't reset gtp rx on power down 2018-02-19 10:03:19 +01:00
Florent Kermarrec
89a158c0c9 drtio/transceiver/gtp_7series_init: remove dead code 2018-02-19 10:02:23 +01:00
Florent Kermarrec
782051f474 drtio/transceiver/gtp_7series_init: add no retiming on gtp resets 2018-02-19 09:59:50 +01:00
01fa6c1c2e reorganize examples 2018-02-19 15:46:08 +08:00
4b4090518b drtio: clean up remnants of removed debug functions 2018-02-19 15:14:32 +08:00
c329c83676 kasli: fix disable_si5324_ibuf no_retiming 2018-02-19 12:19:05 +08:00
a93decdef2 kasli: disable DRTIO IBUFDS_GTE2 until Si5324 is initialized 2018-02-19 00:48:37 +08:00
94c20dfd4d drtio: fix misleading GenericRXSynchronizer comment 2018-02-19 00:47:54 +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
caedcd5a15 ad9912: cleanup, document init() 2018-02-18 11:38:16 +01:00
75c89422c9 ad991[02]: sysclk can be 1 GHz 2018-02-18 10:29:19 +00:00
287d533437 Revert "sayma_amc: remove RTM bitstream upload core. Closes #908"
This reverts commit 2d4a1340ea.
2018-02-17 17:38:48 +08:00
73985a9215 sayma: remove constraints at outputs of serwb PLL (see misoc d1489ed) 2018-02-17 17:38:17 +08: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
7002bea0ab kasli: clean up urukul example more 2018-02-15 14:21:17 +01: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
d572c0c34d artiq_devtool: fix the hotswap action. 2018-02-14 23:10:27 +00:00
whitequark
fe50018037 firmware: make network tracing runtime switchable. 2018-02-14 23:03:20 +00:00
2adba3ed33 urukul: document ad9912, and cpld, fix api 2018-02-14 09:45:17 +01:00
ede98679fc ad9910: add documentation 2018-02-14 09:05:03 +01:00
b6395a809b kasli: remove old urukul test code 2018-02-13 22:16:57 +01:00
be693bc8a9 opticlock: examples 2018-02-13 22:13:40 +01:00
a3d136d30d opticlock: wire urukul and novogorny 2018-02-13 22:13:40 +01:00
7f1bfddeda ad9910: tweak spi timing for higher speed 2018-02-13 22:13:40 +01:00
6a6695924f urukul: proto 8 2018-02-13 22:13:40 +01:00
bc6af03a61 urukul: (proto 7) drop att_le 2018-02-13 22:13:40 +01:00
df177bfd5b use new misoc identifier 2018-02-13 20:38:48 +08:00
ab5f397fea sed/fifos: use AsyncFIFOBuffered
(D)RTIO now passes timing at 150MHz on Kasli.
2018-02-13 20:02:51 +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
96b948f57f remote_csr: add sanity check of CSR CSV type column 2018-02-13 20:02:51 +08:00
e67a289e2b examples: add SAWG sines (DAC synchronization test) 2018-02-13 20:02:51 +08:00
Florent Kermarrec
bfdda340fd drtio/transceiver/gtp_7series: use parameters from xilinx wizard 2018-02-13 00:23:59 +01:00
Florent Kermarrec
180c28551d drtio/gateware/transceiver/gtp_7series: add power down state before reset on rx (seems to make restart reliable) 2018-02-09 20:17:02 +01:00
2d4a1340ea sayma_amc: remove RTM bitstream upload core. Closes #908 2018-02-07 12:27:35 +08:00
whitequark
61c64a76be gateware: use a per-variant subfolder in --output-dir. (fixes #912)
This commit also adds support for --variant and --args
to artiq-devtool.
2018-02-06 08:19:01 +00: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
9fca7b8faa artiq_flash: also report sayma AMC SYSMONE1 data
requires hardware patch (https://github.com/m-labs/sinara/issues/495)
2018-01-30 15:17:11 +08:00
fb8c779b4f artiq_flash: report XADC data
* bump openocd
* only kasli, kc705, sayma rtm so far
2018-01-30 14:56:50 +08:00
whitequark
807eb1155b Update smoltcp.
Fixes #902.
2018-01-30 03:29:08 +00:00
whitequark
a669652854 artiq_flash: tell openocd to not listen on any network ports. 2018-01-30 03:12:06 +00:00
whitequark
0edc34a9e5 artiq_devtool: the proxy artiq_flash action doesn't exist anymore. 2018-01-28 15:19:17 +00:00
whitequark
885ab40946 conda: split RTM and AMC packages back.
This avoids multiplying the RTM compilation time by the number
of AMC packages.
2018-01-28 14:27:55 +00:00
whitequark
11a8b84355 Merge the build trees of sayma_amc and sayma_rtm targets.
This also makes them a single artiq_flash target, and a single
conda package.
2018-01-27 19:54:31 +00:00
whitequark
0b9c551962 artiq_flash: implement flash read functionality. 2018-01-27 19:54:31 +00:00
0aacdb0458 tools: add missing import 2018-01-28 02:12:46 +08:00
6f90a43df2 examples: reorganize for new hardware 2018-01-28 02:11:45 +08:00
67625fe912 test: check kernel overhead credibility 2018-01-28 01:02:03 +08:00
e8ed3475ea test: add kernel overhead test (#407) 2018-01-28 01:00:59 +08:00
whitequark
eed2db3a98 artiq_flash: make the proxy action unnecessary. 2018-01-27 15:43:27 +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
whitequark
08101b631d artiq_devtool: fix typo. 2018-01-26 13:55:31 +00:00
440e19b8f9 kasli: use SFP2 for DRTIO mastering
SFP1 PCB routing has some issues.

Also use SFP1 LED for DRTIO in both master and satellite.
2018-01-26 19:02:54 +08:00
0d2f89db53 si5324: chip does not ack RST_REG write 2018-01-25 11:06:19 +08:00
ca4d5ae73e artiq_flash: add kasli drtio variants 2018-01-25 00:00:07 +08:00
77f90cf93b test: relax RTIO counter test and print result 2018-01-24 10:07:22 +08:00
ed0fbd5662 test: add test for RTIO counter (#883) 2018-01-24 00:28:39 +08:00
e0e795f11c sayma_amc: constrain pin, remove keep 2018-01-23 15:42:47 +00:00
b5c035bb52 sayma_rtm: constrain serwb clock input 2018-01-23 13:54:53 +00:00
aada38f508 kasli, kc705: remove vivado "keep", cleanup a constraint 2018-01-23 13:15:26 +00:00
85102e191e sayma_rtm: derive clocks automatically
* also don't add false paths unless necessary
2018-01-23 11:00:55 +00:00
7d1b3f37c9 sayma_rtm: set CFGBVS/CONFIG_VOLTAGE, compress 2018-01-23 10:56:42 +00:00
cb0016ceee examples/sayma: fix ref_multiplier
SAWG is working, whoohoo!
2018-01-23 15:26:03 +08:00
cfffd9e13d si5324: kasli support 2018-01-23 13:17:03 +08:00
649deccd9b kasli: fix DRTIO satellite QPLL refclksel 2018-01-23 12:27:19 +08:00
4b4374f76a sayma: register_jref for JESD204. Closes #904 2018-01-23 12:19:15 +08:00
763aefacff kasli: fix typo 2018-01-23 12:10:54 +08:00
c7b148a704 kasli: when using both GTP clocks, send REFCLK0 to PLL0 and REFCLK1 to PLL1 2018-01-23 12:08:10 +08:00
d6157514c7 gtp_7series: flexible QPLL channel selection 2018-01-23 12:03:09 +08:00
9f87c34a94 kasli: fix QPLL instantiation 2018-01-23 10:39:31 +08:00
98a5607634 gtp_7series: set clock muxes correctly for second QPLL channel 2018-01-23 10:39:20 +08:00
25fee1a0bb gtp_7series: use QPLL second channel 2018-01-23 10:15:49 +08:00
031d7ff020 kasli: keep using second QPLL channel for DRTIO satellite 2018-01-23 10:13:10 +08:00
626075cbc1 gtp_7series: simplify TX clocking 2018-01-23 09:49:23 +08:00
74b7baa8c5 urukul example: mmcx clock input 2018-01-22 20:30:08 +01:00
a86b28def2 urukul: example additions
* relax timings for faster spi xfers
* continuous readback test to explore spi speed limit
2018-01-22 20:29:30 +01:00
5a9035b122 urukul: faster spi clock 2018-01-22 18:27:40 +00:00
ca1fdaa190 ad9910: relax timing for faster spi clock 2018-01-22 18:27:40 +00:00
401e57d41c gtp_7series: fix nchannels assert 2018-01-23 01:28:01 +08:00
aa62e91487 kasli: add DRTIO targets (no firmware) 2018-01-23 01:27:40 +08:00
296ac35f5d sayma_amc: SFP TX disable is active-high 2018-01-23 00:32:09 +08:00
77192256ea kc705: style 2018-01-23 00:02:35 +08:00
ab7c49d6d0 sayma_amc: raise error on invalid variant 2018-01-23 00:02:16 +08:00
c1ac3b66b1 sayma_rtm: fix 8fe463d4a 2018-01-23 00:01:45 +08:00
53facfef13 sayma: build fixes 2018-01-22 18:33:22 +08:00
25f3feeda8 refactor targets 2018-01-22 18:25:10 +08:00
5198c224a2 sayma,kasli: use new pin names 2018-01-22 11:51:07 +08:00
whitequark
8598e475e9 artiq_flash: fix a refactoring mistake. 2018-01-20 08:30:42 +00:00
c3323f0d57 hmc830: improve lock failure error report 2018-01-20 15:42:53 +08:00
whitequark
115aa0d0d6 artiq_flash: support load action for Sayma RTM FPGA. 2018-01-20 07:23:50 +00:00
whitequark
94592c7a4c artiq_flash: unify flash handling in XC7 and Sayma programmers. 2018-01-20 07:23:50 +00:00
whitequark
1ffabac06f artiq_flash: use atexit for tempfile cleanup. 2018-01-20 07:23:50 +00:00
Florent Kermarrec
8fe463d4a0 sayma_rtm: add UART loopback to easily know if rtm fpga is alive 2018-01-20 06:04:34 +01:00
Florent Kermarrec
74ce7319d3 sayma: reduce serwb linerate to 625Mbps (make it work on saymas with 1.8v issue, related?) 2018-01-20 06:04:18 +01:00
whitequark
f4022ba872 remoting: avoid a race condition. 2018-01-20 01:30:44 +00:00
whitequark
83278a6edb artiq_flash: fix a refactoring bug. 2018-01-20 01:30:44 +00:00
hartytp
37fa3b29da firmware: add register dump on HMC830 lock timeout. 2018-01-20 00:19:31 +00:00
whitequark
934bc53cb5 artiq_devtool: refactor. 2018-01-19 20:35:35 +00:00
whitequark
ebd02c4f43 artiq_flash: fix typo. 2018-01-19 18:53:49 +00:00
whitequark
1c7cb737ca artiq_flash: refactor. 2018-01-19 17:45:49 +00:00
whitequark
bcc39a8c9d artiq_flash: add --dry-run option. 2018-01-19 17:45:49 +00:00
whitequark
323c7e66cf artiq_devtool: fix help message. 2018-01-19 17:45:49 +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
Florent Kermarrec
d27727968c add artix7 gtp (3gbps), share clock aligner with gth_ultrascale 2018-01-19 12:17:54 +01:00
cdbf95d46a kasli: fix permissions 2018-01-19 18:31:20 +08:00
whitequark
3c0b164e4d artiq_devtool: update for new board file convention.
Also fix a typo in documentation.
2018-01-19 09:43:03 +00:00
whitequark
4fd236d234 artiq_flash: cache transferred artifacts. 2018-01-19 08:28:04 +00:00
whitequark
3922a7c64b artiq_devtool: make locking reentrant. 2018-01-19 07:58:58 +00:00
whitequark
b553804e5a artiq_flash: implement network transparency. 2018-01-19 07:39:55 +00: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
8ec33ae7bd kasli: feed EEM clock fan-out from SI5324 2018-01-17 17:27:59 +01:00
whitequark
dbe48d3cad Fix 3313e997. 2018-01-17 11:31:32 +00:00
whitequark
3313e997df test: fix test_worker to work when deprecation warnings are emitted. 2018-01-17 11:27:56 +00:00
ed3e3b2791 sayma_amc: clarify --with-sawg help 2018-01-17 12:10:30 +01:00
Florent Kermarrec
f54b27b79c sayma_amc: prepare for jesd subclass 1 2018-01-17 11:49:36 +01:00
whitequark
f77aa9b78f artiq_flash: rename sayma to sayma_amc to fix bitstream discovery.
Fixes #895.
2018-01-17 01:45:47 +00:00
whitequark
a536d6df12 artiq_flash: add sayma_rtm support. 2018-01-17 01:21:19 +00:00
whitequark
bfceef439f Add missing parts of f317d1a2. 2018-01-17 01:14:16 +00:00
whitequark
1e896d4ba8 firmware: fix warnings. 2018-01-17 00:48:46 +00:00
whitequark
f317d1a2c6 Update board naming (again) to match DNS. 2018-01-17 00:42:56 +00:00
Florent Kermarrec
f73c3e5944 gateware/test/serwb: update and cleanup test (v2...) 2018-01-16 20:06:43 +01:00
7405006668 sayma: rtio clock is jesd fabric clock 2018-01-16 18:19:04 +01:00
whitequark
247167d34a Revert "gateware/test/serwb: update and cleanup tests"
This reverts commit 5b03cc2fae.
2018-01-16 08:21:26 +00:00
whitequark
444b901dbe sayma: add RTM configuration port. 2018-01-16 07:28:00 +00:00
Florent Kermarrec
702c35821b libboard_artiq/ad9154: add dac_status and dac_prbs (untested) 2018-01-15 22:15:35 +01:00
Florent Kermarrec
5b03cc2fae gateware/test/serwb: update and cleanup tests 2018-01-15 21:53:40 +01:00
1c15124c5e artiq_flash: add kasli 2018-01-15 14:17:40 +01:00
whitequark
6891141fa6 artiq_flash: add sayma support. 2018-01-15 11:43:29 +00:00
529033e016 kernel_cpu: disable PCU
* contributes to long timing paths on artix 7 (kasli)
* currently only used for testing and debugging
2018-01-12 12:03:50 +00:00
ac3c3871d0 kasli: s/extensions/variant/g 2018-01-12 12:29:42 +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
7c82fcf41a targets: avoid passing cpu_type around unnecessarily 2018-01-11 11:21:55 +08:00
6d58c4390b Merge branch 'sed-merge' 2018-01-10 13:14:39 +08:00
94d51d1364 firmware: fix drtio_dbg module syntax 2018-01-10 12:15:23 +08:00
04b2fd3e13 sayma: fix AD9154NoSAWG ramp clock domain 2018-01-10 12:11:33 +08:00
dc593ec0f0 Merge branch 'rtio-sed' into sed-merge 2018-01-10 12:04:54 +08:00
Florent Kermarrec
2009734b3c serwb/phy: get 625Mbps linerate working, increase timeout 2018-01-09 18:54:52 +01:00
Florent Kermarrec
9c6a7f7509 serwb/kusphy: use same serwb_serdes_5x reset than s7phy 2018-01-09 18:54:05 +01: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
34a5445802 compiler: don't die if addr2line cannot extract line from backtrace.
Fixes #885.
2018-01-08 21:53:04 +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
8813aee6b1 targets: add kasli [wip, untested] 2018-01-04 16:12:12 +01: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
67746cc7a0 urukul: raise instead of assert, clean up 2018-01-03 19:22:36 +00:00
e3d66d286d urukul: ad9910 examples 2018-01-03 18:43:04 +00:00
eae7584432 ad9910: add [wip] 2018-01-03 18:43:04 +00:00
7ac809f8b3 urukul: do io reset 2018-01-03 18:43:04 +00:00
28a3ee7e61 urukul: make STA reading robust, add io_rst(), clean up 2018-01-03 18:43:04 +00:00
cef40eef43 ad9912: clean up 2018-01-03 18:43:04 +00:00
d8dbab024d urukul: don't deal with dds_reset for now 2018-01-03 18:43:04 +00:00
e8608d12f5 device_db.py: whitespace 2018-01-03 18:43:04 +00:00
Florent Kermarrec
1e972034e8 gateware/targets: enable serwb scrambling on sayma amc & rtm 2018-01-03 17:34:46 +01:00
Florent Kermarrec
907af25a69 gateware/serwb: add scrambling, reduce cdc fifo depth 2018-01-03 17:34:03 +01:00
Florent Kermarrec
7f4756a869 gateware/serwb: cleanup packet 2018-01-03 17:30:12 +01:00
a940550e47 urukul: add CPLD and AD9912 driver [wip] 2018-01-02 19:59:24 +01:00
c2be820e9a kc705_dds: make ext_clkout 100 MHz 2018-01-02 19:58:47 +01:00
43686f324b kc705_dds: fix HPC voltages
* VADJ is 3.3 V due to the DDS card on LPC
* the LVDS standards need to be 2.5 V

* the direction control register on HPC (FMC-DIO to VHDCI)
  was LVCMOS33 but while all the LVDS pairs are at VCCIO=VADJ=3.3 V
  they were instantiated as LVDS_25 (ignoring the wrongly powered bank)
* we now use 2.5 V standards on HPC consistently despite VADJ=3.3 V
  and hope for the best.
2018-01-02 13:41:07 +01:00
94b84ebe7c kc705_dds: add urukul spi/ttl channels 2018-01-02 13:20:48 +01:00
53969d3686 kc705_dds: add urukul on vhdci extension definition 2018-01-02 13:20:47 +01:00
2f8e6c7462 spi: add diff_term, save power on outputs 2018-01-02 13:20:47 +01:00
6d20b71dde ttl_serdes_7series: refactor IOSERDES 2018-01-02 13:20:47 +01:00
whitequark
b7f38b123b frimware: update to log 0.4. 2018-01-01 11:45:55 +00:00
745e695b09 sayma: output a ramp in the absence of SAWG channels 2017-12-31 12:18:53 +01: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
a1b8bca1e6 Revert "artiq_flash: ignore RTM FPGA"
Naive optimism.

This reverts commit 100bda2582.
2017-12-31 13:29:36 +08:00
100bda2582 artiq_flash: ignore RTM FPGA
It has no flash connected, and attempting to detect it causes unnecessary program failure when the RTM is not present.
2017-12-31 12:10:16 +08:00
38ce1f1d5d artiq_flash: support flashing satman
A bit ugly and ad-hoc but I cannot think of an easy and better option right now.
2017-12-31 12:09:18 +08:00
a897d82324 ad9154: retry initialization (#727) 2017-12-31 11:27:43 +08:00
6e0288e568 drtio: fix GTH CPLL reset 2017-12-30 12:14:36 +08:00
379d29561b sayma: plausibility assertion on sawg data stream 2017-12-29 19:15:40 +01:00
37f9c0b10c spi: register clk
following m-labs/misoc#65
1dc68b0d0b
2017-12-28 16:50:22 +01: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
8153cfa88f drtio/gth: add probes on {tx,rx}_init.done 2017-12-28 16:49:08 +08:00
c086149782 drtio/gth: use async microscope probes 2017-12-28 16:37:40 +08: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
6801921fc0 drtio: instrument GTH transceiver 2017-12-28 15:03:14 +08: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
4d915ad15b compiler: do not permit str(...). (#878) 2017-12-27 03:10:50 +00:00
whitequark
355acb5e13 compiler: fix typo in a0a2650f. 2017-12-26 21:55:22 +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
9aec64093b compiler: do not ever emit !tbaa on invoke instructions. 2017-12-26 21:35:08 +00:00
whitequark
a2bc12da68 Only print gateware/software mismatch warning once per process. 2017-12-26 21:13:46 +00:00
whitequark
b31b59f7ca compiler: update for llvmlite 0.20.0. 2017-12-26 16:25:19 +00:00
whitequark
a0a2650fca compiler: do not use invoke for calls to nounwind ffi functions.
Otherwise, declarations such as:

  @syscall(flags={"nounwind", "nowrite"})
  def foo(...):

trip an LLVM assert because the invoke instruction and the !tbaa
metadata are no longer compatible since LLVM 4.0.
2017-12-26 16:24:57 +00:00
whitequark
fd6d97f052 artiq_devtool: set ServerAliveInterval. 2017-12-26 15:41:03 +00:00
whitequark
8b4a006855 runtime: update smoltcp. 2017-12-26 14:33:56 +00:00
whitequark
c939c6183e Update to LLVM 4.0. 2017-12-26 14:09:17 +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
whitequark
1570a482c2 artiq_devtool: don't require lock for reset.
reset is mainly useful as a part of reset+hotswap sequence, and that
already needs lock via connect.
2017-12-25 16:15:51 +00:00
70b7f28ad3 drtio: drive SFP TX disable pins 2017-12-23 22:58:51 +08:00
00ed51f6f4 satman: use new alloc_list (#880) 2017-12-23 22:15:39 +08:00
f8c8f3fe26 drtio: fix GTH clock domains 2017-12-23 07:21:44 +08:00
1af21c0b29 drtio: integrate GTH transceiver for Sayma 2017-12-23 01:19:59 +08:00
c57b66497c drtio: refactor/simplify GTH, use migen 2017-12-23 01:19:44 +08:00
77897228ca drtio: add GTH transceiver code from Florent (197c79d47) 2017-12-22 18:01:28 +08:00
ebdbaaad32 drtio: remove KC705/GTX support 2017-12-22 17:51:42 +08:00
0681d472c7 conda: fix sayma_rtm_csr.csv location for Sayma AMC 2017-12-22 17:14:10 +08:00
cbd69287a7 artiq_flash: select Sayma standalone variant by default 2017-12-22 16:54:06 +08:00
44959144d8 conda: add Sayma AMC standalone board package 2017-12-22 16:44:04 +08:00
Florent Kermarrec
86825a852c gateware/targets/sayma_rtm: add false path between cd_sys and cd_clk200 2017-12-21 23:52:44 +01:00
69d7e93e99 drtio: adapt examples to Sayma 2017-12-21 23:09:19 +08:00
a6ffe9f38d drtio: add Sayma top-level designs 2017-12-21 23:08:56 +08:00
4fbc8772a5 sayma: allocate all user LEDs to RTIO, make one TTL SMA input 2017-12-21 19:27:38 +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