Commit Graph

7094 Commits

Author SHA1 Message Date
7fee68ede0 subkernel messages: check for send/recv pairs 2024-02-01 18:56:07 +08:00
849b77fbf2 compiler: fix send_message after stackrestore 2024-02-01 18:56:07 +08:00
502204cab2 subkernel: fix DMA return control to wrong master 2024-02-01 18:56:07 +08:00
d1ee0ffb83 subkernel: fix passing arguments 2024-02-01 18:56:07 +08:00
cbe7ac1cfd waveform: add AnalogWaveform 2024-01-31 17:26:22 +08:00
2d8de3ed93 waveform: add BitVectorWaveform 2024-01-31 16:59:12 +08:00
5f3126f393 waveform: add BitWaveform 2024-01-31 15:51:34 +08:00
09462442f7 subkernel: allow negative timeouts for no timeout 2024-01-31 11:46:07 +08:00
726cb092ca tests: add message passing tests 2024-01-31 11:46:07 +08:00
0ba0330b53 compiler: support free subkernel message passing 2024-01-31 11:46:07 +08:00
7d3bcc7cac satman: support free subkernel message passing 2024-01-31 11:46:07 +08:00
171c7a6e11 runtime: use the destination passed by kernel 2024-01-31 11:46:07 +08:00
c087a47e45 waveform: add _BaseWaveform 2024-01-31 11:41:35 +08:00
28dfe1f9c6 waveform: add _WaveformView 2024-01-30 09:45:29 +08:00
3861d58749 dndwidgets: change splitter to use signal 2024-01-30 09:45:29 +08:00
6c9f1cbf7c waveform: add save_vcd 2024-01-25 15:06:21 +08:00
06b908fd18 waveform: fix in _AddChannelDialog 2024-01-25 14:49:55 +08:00
e72f37eb4e waveform: add _WaveformModel 2024-01-25 14:49:55 +08:00
847b4ee2a3 waveform: add save_trace 2024-01-25 14:49:16 +08:00
863daca2da waveform: remove punctuation in log msgs 2024-01-25 14:01:25 +08:00
fcaf4a8af0 gui.tools: add get_save_file_name helper 2024-01-25 12:32:06 +08:00
466d865e58 waveform: add _AddChannelDialog 2024-01-22 15:39:46 +08:00
5036230ff3 waveform: change log channel update 2024-01-22 15:39:11 +08:00
12a44fad3c comm_analyzer: change usage of logs field 2024-01-22 15:39:11 +08:00
096664c1ba dndwidgets: add drag drop helper widgets 2024-01-22 15:37:57 +08:00
8a9b6a449b artiq_dashboard: start proxy clients, device_sub 2024-01-22 15:37:10 +08:00
73be2257d3 waveform: add proxy clients 2024-01-22 15:37:10 +08:00
9088ffa2ca artiq_dashboard: add WaveformDock 2024-01-22 13:59:31 +08:00
d44f55c6d9 waveform: add WaveformDock 2024-01-22 13:59:31 +08:00
e393b3ab37 comm_analyzer: add set_end_time call 2024-01-15 13:39:06 +08:00
3af4c9d517 comm_analyzer: add get_channel_list 2024-01-13 00:07:42 +08:00
64567bc26f comm_analyzer: add AnalyzerProxyReceiver 2024-01-13 00:06:14 +08:00
Charles Baynham
669edf17c5
scheduler: resolve git references into revisions on submission (#2296)
Signed-off-by: Charles Baynham <c.baynham@imperial.ac.uk>
2024-01-10 16:05:26 +08:00
b215df2d25 comm_analyzer: add WaveformManager, WaveformChannel 2024-01-10 16:02:04 +08:00
6c0ff9a912 satman: fix targets without drtio routing 2024-01-09 10:41:22 +08:00
c9e3771cd5 subkernels: add support for (d)dma 2024-01-09 08:44:45 +08:00
c876acd5a5 docs: subkernels can call other subkernels now 2024-01-09 08:44:45 +08:00
4363cdf9fa master: make use of the async message ready flag 2024-01-09 08:44:45 +08:00
95b92a178b satman: make use of the async flag 2024-01-09 08:44:45 +08:00
1cc7398bc0 drtio: add sat -> mst async notif packet 2024-01-09 08:44:45 +08:00
4956fac861 satman: allow subkernels start subkernels 2024-01-09 08:44:45 +08:00
9bc66e5c14 support routing packets between satellites and master 2024-01-09 08:44:45 +08:00
4495f6035e master: support source parameters 2024-01-09 08:44:45 +08:00
e556c29b40 drtioaux: add source to relevant drtio packets 2024-01-09 08:44:45 +08:00
76fba538b1 artiq_ddb_template: fixed missing separator 2023-12-18 13:23:39 +08:00
8dd8cfa6b0 master: implement devarg_override 2023-12-18 12:11:40 +08:00
5df0721811 dashboard,client: add device argument overrides to expid 2023-12-17 19:43:41 +08:00
44a95b5dda dashboard: add repository revision clear button 2023-12-17 16:37:02 +08:00
858f0479ba aqctl_coreanalyzer_proxy: permissions and shebang 2023-12-17 13:27:38 +08:00
413d33c3d1 core: document analyzer proxy options 2023-12-13 14:29:33 +08:00
c2b53ecb43 core: add option to trigger analyzer proxy at run end 2023-12-13 14:27:48 +08:00
ede0b37c6e devices: introduce notify_run_end API 2023-12-13 14:27:04 +08:00
795c4372fa DeviceManager: fix close exception error message 2023-12-13 14:06:53 +08:00
402a5d3376 core: connect lazily to analyzer proxy
Otherwise artiq_compile and other uses of Core that does not access hardware/network may fail.
2023-12-13 13:46:47 +08:00
85850ad9e8 wavesynth: remove 2023-12-13 13:36:21 +08:00
7a863b4f5e core: add trigger_analyzer_proxy API 2023-12-13 13:08:54 +08:00
a26cee6ca7 coreanalyzer_proxy: cleanups/renames 2023-12-13 13:07:35 +08:00
be08862606 logo: text to path 2023-12-08 19:34:47 +08:00
05a9422e67 aqctl_coreanalyzer_proxy: cleanup 2023-12-08 18:56:10 +08:00
b09a39c82e
add aqctl_coreanalyzer_proxy 2023-12-08 18:55:07 +08:00
49267671f9 core: fix precompile 2023-12-04 12:10:11 +08:00
9f4b8db2de repeater: fix setting tsc 2023-12-01 16:43:48 +08:00
1a28069aa2 support for pre-compiling subkernels 2023-11-23 16:49:02 +08:00
56418e342e take into account VERSIONEER_REV in artiq._version.get_rev 2023-11-22 20:51:02 +08:00
77c6553725 always provide artiq._version.get_rev 2023-11-14 14:14:47 +08:00
e81e8f28cf gateware: merge kasli_generic into kasli. Closes #2279 2023-11-14 14:01:17 +08:00
de10e584f6 support .tar flashed idle/startup kernels 2023-11-13 18:14:35 +08:00
363afb5fc9 artiq_ddb_template: add support for user LEDs
Add support for additional user LEDs.
2023-11-08 10:51:39 +08:00
e7af219505 kasli_generic: add support for user LEDs
Add additional LED RTIO devices.
2023-11-08 10:51:39 +08:00
ec2b86b08d kc705: fix gtx clock path durnig init 2023-11-07 18:36:48 +08:00
8f7d138dbd gtx: Always enable IBUFDS_GTE2, add clk_path_ready
- Set clk_path_ready to High to start Initialization of GTP TX and RX
2023-11-07 18:36:48 +08:00
c0a6252e77 afws_client: improve compatibility with older versions of prettytable. Closes #2264 2023-11-07 14:06:31 +08:00
6640bf0e82 drtioaux/subkernel/ddma: introduce proper errors, more robust 2023-11-07 13:42:04 +08:00
b3c0d084d4 drtio: better control state of bigger payloads 2023-11-07 13:42:04 +08:00
bb0b8a6c00 kasli: Correct the GTP TX clock path during init
- TXOUT must be fed back into TXUSRCLK during initialization
- Now, MMCM Clock Input is switched before GTP TX Init is started instead of after GTP TX Init is done
- Reset in Sys Clock domain is kept asserted when clock is switched and GTP TX Init is NOT done
2023-11-07 13:40:32 +08:00
jfniedermeyer
9c68451cae Add hotkeys to organize experiments in dashboard
Signed-off-by: jfniedermeyer <justin.niedermeyer@colorado.edu>
2023-10-27 21:47:30 +02:00
93c9d8bcdf artiq_ddb_template:set default Shuttler drtio_dest
- remove default Shuttler "drtio_destination" value in jsonschema
- set the default Shuttler "drtio_destination" value according to
    board "target" and "hw_rev"
2023-10-27 21:46:02 +02:00
e480bbe8d8 artiq_ddb_template: move satellite_cpu_target to core 2023-10-27 21:45:12 +02:00
b168f0bb4b subkernel: separate tags and data 2023-10-17 12:18:03 +02:00
5f445f6b92 ad53xx: fix load() references in documentation 2023-10-16 13:54:38 +08:00
363f7327f1 io_expander: initialize before service 2023-10-15 07:45:20 +08:00
de41bd6655 eem_7series: pass through kwargs for shuttler 2023-10-11 12:15:06 +08:00
96941d7c04 big_number: fix metadata scaling, add unit label 2023-10-09 15:35:14 +08:00
f3c79e71e1 firmware: merge runtime and satman linker scripts 2023-10-09 15:33:29 +08:00
333b81f789 set_argument_value warning in browser 2023-10-09 10:38:17 +08:00
9c90f923d2 test: check return value of subprocesses in test_compile 2023-10-09 10:07:04 +08:00
e23e4d39d7 artiq_compile: ignore subkernel_arg_types 2023-10-09 10:03:43 +08:00
David Nadlinger
08eea09d44 compiler: Catch escaping numpy.{array, full, transpose}() results
Function calls in general can still be used to hide escaping
allocations from the compiler (issue #1497), but these calls in
particular always allocate, so we can easily and accurately handle
them.
2023-10-09 09:00:26 +08:00
973fd88b27 core: compile and upload subkernels 2023-10-08 17:11:51 +08:00
8d7194941e tests: add lit tests for subkernels 2023-10-08 17:11:51 +08:00
0a750c77e8 compiler: support subkernels 2023-10-08 17:11:51 +08:00
1a0fc317df satman: support subkernels 2023-10-08 17:11:32 +08:00
e05be2f8e4 runtime: support subkernels 2023-10-08 17:11:32 +08:00
6f4b8c641e drtioaux_proto: use better payload names 2023-10-08 17:11:32 +08:00
b42816582e ksupport: support subkernels 2023-10-08 17:11:32 +08:00
0131a8bef2 shuttler: cleanup 2023-10-06 14:55:51 +08:00
e63e2a2897 artiq_ddb_template: better satellite formatting 2023-10-06 13:01:57 +08:00
47fc640f75 applets: rename 'ctl' attribute to 'req' 2023-10-05 12:32:01 +08:00
da9f7cb58a applet extensions documentation 2023-10-05 12:32:01 +08:00
43926574da shuttler: remove sdm constants 2023-10-05 07:40:00 +08:00
4f3e58db52 gui.applets: add EntryArea 2023-10-04 15:35:52 +08:00
13271cea64
gui: remove copies of _WheelFilter and refactor with parameter 2023-10-04 13:35:01 +08:00
0e8fa8933f shuttler: init sigma-delta modulator 2023-09-30 11:51:43 +08:00
David Nadlinger
2eb89cb168 dashboard: Fix occasional "unexpected action" applet errors on startup
This turned out to be a race between the dashboard's dataset db
subscriber being initialised and the applet "embed" request, with
artiq.applet.simple not being able to handle the unexpected "mod"
message. We were only handling the other ordering outcome of this
race before.
2023-09-30 00:27:25 +01:00
a772dee1cc shuttler: change 0th order accumulator width
It now truncates the LSBs instead of the MSBs.
2023-09-29 10:09:39 +08:00
bafb85a274 custom_applet: change constructor, data_changed signatures 2023-09-28 10:35:14 +01:00
0e8aa33979 core: separate master target from compilation 2023-09-28 10:41:55 +08:00
fcf6c90ba2 ddb_template: support different satellite targets 2023-09-28 10:41:55 +08:00
0c1b572872 Shuttler: Correct spelling and grammar in docs 2023-09-27 17:29:16 +08:00
ab0d4c41c3 Shuttler: pdq, efc->shuttler pdq_words->coef_words 2023-09-27 17:29:16 +08:00
6eb81494c5 Allow using Python types in type annotations
This maps basic Python types (float, str, bool, np.int32, np.int64) as well as
some generics (list, tuple) to ARTIQ's own type instances.

Signed-off-by: Jonathan Coates <jonathan.coates@oxionics.com>
2023-09-26 23:46:43 +01:00
586d97c6cb Fix type annotations with mixed tuples
The type checker/inferer visits every node in an AST tree, including
function return annotations. This means for a function definition like

    def f() -> TTuple([TInt32, TBool]):
      ...

We attempt to type check the list [TInt32, TBool], which generates the
unification constraint builtins.TBool ~ builtins.TInt. This causes an
internal error due to compiler weirdness.

We can avoid this by just nulling-out the return annotation in the
embedding stage. The return type isn't actually used anywhere (it's
extracted via the inspect module instead), so this is entirely safe.

Arguments aren't affected by this, as we already nulled out the
annotation (see visit_arg in embedding.py).

Signed-off-by: Jonathan Coates <jonathan.coates@oxionics.com>
2023-09-26 23:43:01 +01:00
David Nadlinger
892b0eaca2 compiler: Fix crash on multiple types with the same name
The original fix in 21574bdfa9
was incomplete, as it only addressed the TInstance types, but
not their linked (typ.constructor) TConstructor instances.

This would (potentially among other issues) cause assertion
errors in llvm_ir_generator due to the wrong associated globals
being referenced; see added test case for an example that
previously caused such a crash.

Also modified the name collision detection from O(len(type_map))
(so quadratic overall in the number of custom types) to cache
names in sets for O(1) lookup.
2023-09-26 23:31:21 +01:00
eedac7cf71 Shuttler: Patch ddb entries in the example code 2023-09-26 12:20:26 +08:00
a61bbf5618 Shuttler: Replace ddb with json for the example 2023-09-26 12:20:26 +08:00
occheung
b7b8f0efa2
Generate coredevice entries for Shuttler (#2216)
* ddb: generate shuttler coredevice entries

* ddb: split-off all DRTIO-over-EEM peripherals

Only EFC uses DRTIO-over-EEM at this moment. It will be relevant to phaser-DRTIO in the future.

* ddb: generalize efc processing into drtio-over-eem peripherals

* ddb: check DRTIO role validity before processing
2023-09-26 09:44:21 +08:00
occheung
b52f253dbd
Simplify OOB reset by clock division (#2217)
* oob: simply logic by dividing into clk100

* replace clk100 clk ctrl with clk200 async reset

* fix comment (singular/plural)

* oob reset: invoke platform commands locally

* cleanup

* oob reset: add async reset import

* fix duplicated comment
2023-09-26 08:02:49 +08:00
occheung
73ab71f443
shuttler: add documentation 2023-09-25 17:47:47 +08:00
ab8247b3d7 Shuttler: Add coredevice example code for Shuttler
This example code:
    - Demonstrates the init flow for Shuttler
    - Blinks LED L0, L1
    - Demonstrates the real-time control of relay
    - Includes example fns for configuring the PDQ Output Channel in mu
2023-09-25 14:56:47 +08:00
36b3678853 satman: fix ddma reporting wrong destination 2023-09-22 10:25:37 +08:00
af77885dfc rtio_mgt: fix drtio reset on standalone 2023-09-22 09:46:40 +08:00
eb57b3b393 drtio: async messages become synchronous
They are now a reply for DestinationStatusRequest.
This prevents gateware errors and lost packets if the receiver is busy.
2023-09-21 16:30:00 +08:00
40ac2e03ab set_argument_value in applets 2023-09-21 16:26:11 +08:00
a2fbcb8bfd pre-dac gain/offsets: detect overflow & underflow
And output maximum / minimum DAC code when over/underflow
2023-09-19 18:49:20 +08:00
5c64eac8d2 relay: fix naming 2023-09-19 18:49:20 +08:00
477a7b693c remove debug for converter 2023-09-19 18:49:20 +08:00
f2694f25eb re-impl ADC using general access methods 2023-09-19 18:49:20 +08:00
9e1447d104 adc: implement standby & power-down/up 2023-09-19 18:49:20 +08:00
870020bc9f adc: use a generous upper bound 2023-09-19 18:49:20 +08:00
c2d136f669 shuttler: reorg SPI constants 2023-09-19 18:49:20 +08:00
06426e0ed9 shuttler: impl general reg access 2023-09-19 18:49:20 +08:00
e443e06e62 shuttler: remove adc calibrate debug lines 2023-09-19 18:49:20 +08:00
55150ebdbb shuttler: fix calibration channel target 2023-09-19 18:49:20 +08:00
eb08c55abe shuttler: add AFE drivers 2023-09-19 18:49:20 +08:00
67b6588d95 shuttler: implement gain & offset register access 2023-09-19 18:49:20 +08:00
1bb7e9ceef shuttler: support pre-DAC gain & offset 2023-09-19 18:49:20 +08:00
c02a14ba37 compiler: fix lit tests numpy.transpose error (#2190) 2023-09-18 22:11:46 +08:00
1f3b2ef645 dashboard.datasets: fix numpy objects in CreateEditDialog 2023-09-18 14:07:26 +08:00
372008cb66 Firmware: AD9117 Add check presence of clk comment 2023-09-18 13:04:51 +08:00
85abb1da2c Firmware: Set DACs RETIMER-CLK to Phase 1 Shuttler
- Intend to maintain the same pipeline latency across all DACs on Shuttler
- Force the RETIMER-CLK to be PHASE 1 on all DACs
- See Issue #2200 for details
2023-09-18 12:52:21 +08:00
David Nadlinger
9e5b62a6b1 gateware/targets/kasli: Only set DRTIO_ROLE in *Base classes [nfc]
kasli_generic uses the drtio_role setting to select the particular
*Generic class to use anyway.
2023-09-17 10:24:51 +08:00
David Nadlinger
22ab62324c gateware/targets/kasli: Set DRTIO_ROLE in {Master, Satellite}Base
These were introduced in 82bd913f63, and for Kasli only set from
the JSON description in the *Generic subclasses. Not all firmware
is built through that API, however, e.g. the CI system at the
University of Oxford. The missing attribute breaks artiq.build_soc.
2023-09-17 00:48:42 +01:00
David Nadlinger
fc74b78a45 dashboard: Make Ctrl-Alt-W close non-docked applets only
I had introduced this in f11aef74b as a means of quickly cleaning up
after e.g. an exploratory session where a lot of transient applets were
opened from ndscan, or for a dashboard that has been running for a while
with CCBs enabled but without anybody actually working there.

It turns out that one usually wants the few docked applets to stay open,
as they were necessarily arranged manually at some prior point. And as a
corollary to the latter, if one did want to close them as well, doing so
manually would not be too onerous either.
2023-09-16 23:47:23 +01:00
f01e654b9c gui.entries: fix RangeScan SpinBox size layouts 2023-09-16 16:06:45 +08:00
6df85478e4 scan: fix deprecated shuffle parameter in python 3.11 2023-09-13 12:24:44 +08:00
5c85cef0c2
Allow indexing tuples in kernel code
This only allows for indexing with a constant value (e.g. x[0]).

While slices would be possible to implement, it's not clear how to
preserve type inference here. The current typing rule is:

  Γ ⊢ x : τ  Γ ⊢ a : Int  Γ ⊢ b : Int
  ------------------------------------
             Γ ⊢ x[a:b] : τ

However, tuples would require a different typing rule, and so we'd need
to defer type inference if τ is a tyvar. I'm not confident that this
won't change behaviour, so we leave as-is for now.

Signed-off-by: Jonathan Coates <jonathan.coates@oxionics.com>
2023-09-12 14:43:38 +01:00
ccb140a929 Firmware: Add AD9117 DAC Startup Seq for shuttler 2023-09-11 15:07:47 +08:00
7c8073c1ce Shuttler: Add DAC Data Interface Gateware
- Add Parallel DDR Data Interface for DAC
- Add MMCM to generate phase shifted DDR Clk(45 degree phase shift by default)
- Connect dac_interface to Shuttler Module
2023-09-11 11:37:13 +08:00
b49fb841ce Firmware: EFC enables error led when going panic 2023-09-06 15:54:35 +08:00
a619c9f3c2 almazny: fix minor doc formatting 2023-09-06 14:12:09 +08:00
0188f31f3a i2c: fix doc formatting 2023-09-05 17:00:27 +08:00
4e770509db almazny: fix doc formatting 2023-09-05 17:00:27 +08:00
7f63bb322d disable DRTIO-over-EEM OSERDES until clock is stable
This asserts OOB reset on EFC.
2023-09-05 16:59:01 +08:00
5e5d671f4c kasli: add invoke order comments 2023-09-04 12:05:45 +08:00
98904ef4c3 kasli: construct DRTIO-EEM modules before adding RTIO 2023-09-04 12:05:45 +08:00
occheung
838cc80922
EFC: Implement OOB reset 2023-09-03 10:25:08 +08:00
Simon Renblad
904afe1632 tools: remove trim param 2023-09-01 20:06:19 +08:00
Simon Renblad
01d777c977
dashboard/datasets: fix CreateEditDialog datatype cast (#2176) 2023-09-01 13:59:17 +08:00
occheung
df99450faa
shuttler: add pdq-based waveform generator 2023-08-30 23:38:39 +08:00
ddb2b5e3a1 efc: add shuttler DAC parallel data interface pads 2023-08-30 10:25:39 +08:00
b56f7e429a
drtio: rename drtio_transceiver to gt_drtio 2023-08-28 04:50:46 +00:00
3452d0c423 efc: use variant (expected everywhere else) 2023-08-25 15:52:40 +08:00
2139456f80 firmware: skip clock switch for efc 2023-08-25 15:06:42 +08:00
a2a780a3f2 firmware: fix compilation warning 2023-08-25 15:06:02 +08:00
f5cbca9c29 kasli: implement DRTIO-over-EEM 2023-08-25 12:47:33 +08:00
737ff79ae7 eem: add efc 2023-08-25 12:01:17 +08:00
dc97d3aee6 drtio-eem: CONFIG_EEM_TRANSCEIVERS -> CONFIG_EEM_DRTIO_COUNT 2023-08-25 11:49:39 +08:00
5d38db19d0 drtio-eem: remove unnecessary rtio_rx clock domain 2023-08-25 11:32:28 +08:00
cd22e42cb4
efc: add DRTIO virtual LEDs
- EFC Gateware: Add virtual_leds to rtio
- EFC Firmware: io_expander is kept being serviced to update
  virtual_leds after init
2023-08-23 06:21:14 +00:00
b7bac8c9d8 EFC: Add SPI Gateware for Shuttler DAC
- Verified by a functional test reading back the rev register
2023-08-23 09:04:16 +08:00
e8818c812c satman: fix non-eem satellites failing to build 2023-08-22 16:32:59 +08:00
68dd0e029f targets: add efc target 2023-08-10 00:02:01 +00:00
occheung
64d3f867a0
add DRTIO-over-EEM PHY
for EFC and perhaps Phaser
2023-08-09 23:59:40 +00:00
df662c4262 flake: update llvmlite 2023-08-07 23:02:23 +08:00
David Nadlinger
efbae51f9d runtime: Validate ksupport ELF against hard-coded address ranges
This would have caught the reduction in header padding with LLD 14.
In theory, we could just get rid of the hard-coded kernel CPU address
ranges altogether and use ksupport.elf as the one source of truth; the
code already exists in dyld. The actual base address of the file would
still need to be forwarded to the kernel-side libunwind glue, though,
as there doesn't seem to be a clean way to get the equivalent of
KSUPPORT_HEADER_SIZE through the linker script. I have left this as-is
with the hard-coded KERNELCPU_… constants for now.
2023-08-07 10:10:38 +00:00
David Nadlinger
8acfa82586 ksupport: Remove unused sections from linker script [nfc]
We no longer build ksupport.ld in a position-independent fashion, and
the reference to the ld.bfd _GLOBAL_OFFSET_TABLE issue was just a
distraction
2023-08-07 10:10:38 +00:00
David Nadlinger
4d636ea593 Upgrade to LLD 14
Previous linker versions had inserted some zero padding bytes
between the ELF headers and the first section, but LLD 14 does
not anymore.

Hard-coding the offset of the first section in ksupport.elf
manually isn't ideal; we should probably parse the ELF program
headers instead when first setting up the kernel CPU.
2023-08-07 10:10:38 +00:00
Simon Renblad
c4259dab18
applets.simple: add kwargs to AppletControlRPC (#2155)
Co-authored-by: Simon Renblad <srenblad@m-labs.hk>
2023-08-05 11:38:07 +08:00
c46ac6f87d spi2: update set_config_mu doc 2023-08-04 09:22:57 +00:00
758b97426a Bootloader: SDRAM patch for EFC
- Modification of the CFG flag ensure EFC to initialize DDRPHY correctly
Note that Kasli and EFC share the same model of SDRAM
2023-08-02 02:18:45 +00:00
c206e92f29 Bootloader: Remove kusddrphy support for SDRAM
- Delete all the kusddrphy cfg flags and related code
2023-08-02 02:18:20 +00:00
cb547c8a46
efc: turn on power of FMC peripheral
- Add efc's io expander method
- Enable VADJ, P3V3_FMC in satman main during startup
2023-08-01 00:29:45 +00:00
linuswck
72a5231493
artiq_flash: add EEM FMC Carrier Board Support
- The code is derived from PR #2134 936f24f6bd
2023-07-25 11:14:19 +08:00
07714be8a7
jsonschema: add kasli_soc HW revision v1.1 2023-07-24 16:32:13 +08:00
361088ae72 tools: add trim argument to format funcs 2023-07-21 08:38:49 +00:00
6592b6ea1d artiq_client: change set_dataset with units 2023-07-21 08:15:39 +00:00
2fb085f1a2 datasets: change dataset value entry with units 2023-07-21 08:15:39 +00:00
a7569a0b2d tools: add scale_from_metadata helper func 2023-07-21 08:15:39 +00:00
4fbff1648c scientific_spinbox: rename precision to sig_figs 2023-07-19 07:01:24 +00:00
8f4c8387f9 entries: rename setPrecision to setSigFigs 2023-07-19 07:01:24 +00:00
59ad873831 examples: rename ndecimals to precision 2023-07-18 08:02:42 +00:00
8589da0723 test_arguments: rename ndecimals to precision 2023-07-18 08:02:42 +00:00
94e076e976 scan: rename ndecimals to precison 2023-07-18 08:02:42 +00:00
a0094aafbb entries: rename ndecimals to precision 2023-07-18 08:02:42 +00:00
0befadee96 environment: rename ndecimals to precision 2023-07-18 08:02:42 +00:00
b3dc199e6a Fix panic when receiving empty strings in rpc calls
Receiving an empty string in an RPC call currently panics.

When `length` is zero, a call to the `alloc` function (as implemented in `artiq/firmware/runtime/session.rs`) returns a null pointer. Constructing a `CMutSlice` from a null pointer panics.
A `CMutSlice` consists of a pointer and the length. Rust's documentation of the `core::ptr` module states: "The canonical way to obtain a pointer that is valid for zero-sized accesses is `NonNull::dangling`."
This commits adds a check for the length of a string received in an RPC call. Only for lengths greater than zero a memory allocation is performed. For zero-length strings, a dangling pointer is used.

Test plan:
Invoke the following experiment, which returns an empty string over RPC:
```
class ReturnEmptyString(artiq.experiment.EnvExperiment):
    def build(self):
        self.core: Core = self.get_device("core")

    @kernel
    def run(self):
        x = self.do_rpc()
        print(x)

    @rpc
    def do_rpc(self) -> TStr:
        return ""
```

Signed-off-by: Sven Over (Oxford Ionics) <sven.over@oxionics.com>
2023-07-18 04:00:32 +00:00
d73889fb27 gui/experiments: cast Qt timestamp to int preventing float type error 2023-07-14 08:33:27 +00:00
068a2d1663 progress_bar: refactor data_changed 2023-07-12 08:28:28 +00:00
6c588b83d7 plot_xy_hist: refactor data_changed 2023-07-12 08:28:28 +00:00
c17f69a51b plot_xy: refactor data_changed 2023-07-12 08:28:28 +00:00