Commit Graph

6885 Commits

Author SHA1 Message Date
linuswck ddb2b5e3a1 efc: add shuttler DAC parallel data interface pads 2023-08-30 10:25:39 +08:00
linuswck b56f7e429a
drtio: rename drtio_transceiver to gt_drtio 2023-08-28 04:50:46 +00:00
Sebastien Bourdeauducq 3452d0c423 efc: use variant (expected everywhere else) 2023-08-25 15:52:40 +08:00
Sebastien Bourdeauducq 2139456f80 firmware: skip clock switch for efc 2023-08-25 15:06:42 +08:00
Sebastien Bourdeauducq a2a780a3f2 firmware: fix compilation warning 2023-08-25 15:06:02 +08:00
Sebastien Bourdeauducq f5cbca9c29 kasli: implement DRTIO-over-EEM 2023-08-25 12:47:33 +08:00
linuswck 737ff79ae7 eem: add efc 2023-08-25 12:01:17 +08:00
linuswck dc97d3aee6 drtio-eem: CONFIG_EEM_TRANSCEIVERS -> CONFIG_EEM_DRTIO_COUNT 2023-08-25 11:49:39 +08:00
Sebastien Bourdeauducq 5d38db19d0 drtio-eem: remove unnecessary rtio_rx clock domain 2023-08-25 11:32:28 +08:00
linuswck 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
linuswck 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
mwojcik e8818c812c satman: fix non-eem satellites failing to build 2023-08-22 16:32:59 +08:00
occheung 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
Sebastien Bourdeauducq 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
mwojcik c46ac6f87d spi2: update set_config_mu doc 2023-08-04 09:22:57 +00:00
linuswck 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
linuswck c206e92f29 Bootloader: Remove kusddrphy support for SDRAM
- Delete all the kusddrphy cfg flags and related code
2023-08-02 02:18:20 +00:00
linuswck 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
Denis Ovchinnikov 07714be8a7
jsonschema: add kasli_soc HW revision v1.1 2023-07-24 16:32:13 +08:00
Simon Renblad 361088ae72 tools: add trim argument to format funcs 2023-07-21 08:38:49 +00:00
Simon Renblad 6592b6ea1d artiq_client: change set_dataset with units 2023-07-21 08:15:39 +00:00
Simon Renblad 2fb085f1a2 datasets: change dataset value entry with units 2023-07-21 08:15:39 +00:00
Simon Renblad a7569a0b2d tools: add scale_from_metadata helper func 2023-07-21 08:15:39 +00:00
Simon Renblad 4fbff1648c scientific_spinbox: rename precision to sig_figs 2023-07-19 07:01:24 +00:00
Simon Renblad 8f4c8387f9 entries: rename setPrecision to setSigFigs 2023-07-19 07:01:24 +00:00
Simon Renblad 59ad873831 examples: rename ndecimals to precision 2023-07-18 08:02:42 +00:00
Simon Renblad 8589da0723 test_arguments: rename ndecimals to precision 2023-07-18 08:02:42 +00:00
Simon Renblad 94e076e976 scan: rename ndecimals to precison 2023-07-18 08:02:42 +00:00
Simon Renblad a0094aafbb entries: rename ndecimals to precision 2023-07-18 08:02:42 +00:00
Simon Renblad 0befadee96 environment: rename ndecimals to precision 2023-07-18 08:02:42 +00:00
sven-oxionics 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
Florian Agbuya d73889fb27 gui/experiments: cast Qt timestamp to int preventing float type error 2023-07-14 08:33:27 +00:00
Simon Renblad 068a2d1663 progress_bar: refactor data_changed 2023-07-12 08:28:28 +00:00
Simon Renblad 6c588b83d7 plot_xy_hist: refactor data_changed 2023-07-12 08:28:28 +00:00
Simon Renblad c17f69a51b plot_xy: refactor data_changed 2023-07-12 08:28:28 +00:00
Simon Renblad ac504069d2 plot_hist: refactor data_changed 2023-07-12 08:28:28 +00:00
Simon Renblad b6a83904b5 image: refactor data_changed 2023-07-12 08:28:28 +00:00
Simon Renblad 25959d0cd6 big_number: refactor data_changed 2023-07-12 08:28:28 +00:00
Simon Renblad 5695e9f77e simple: refactor TitleApplet data_changed signature 2023-07-12 08:28:28 +00:00
Simon Renblad fe0f6d8a2c simple: refactor SimpleApplet data_changed signature 2023-07-12 08:28:28 +00:00
Simon Renblad d1f2727126 simple: refactor RPC client set_dataset 2023-07-12 08:28:28 +00:00
Simon Renblad 16a3ce274f applets: add metadata param to set_dataset 2023-07-12 08:28:28 +00:00
Simon Renblad af7622d7ab simple: refactor IPC set_dataset 2023-07-12 08:28:28 +00:00
Jonathan Coates 9a84575649
eem_7series: fix typo in 77293d5
Signed-off-by: Jonathan Coates <jonathan.coates@oxionics.com>
2023-07-11 23:09:15 +00:00
Simon Renblad faf85e815a datasets: add metadata to CreateEditDialog 2023-07-10 06:50:41 +00:00
Simon Renblad 3663a6b8e8 artiq_client: refactor set_dataset, show_datasets 2023-07-10 04:50:54 +00:00
Simon Renblad 91442e2914 browser: refactor upload_clicked for dataset metadata 2023-07-10 04:26:08 +00:00
Simon Renblad 50a6dac178 files: read dataset metadata from HDF5 2023-07-10 04:26:08 +00:00
Simon Renblad 5292a8de82 browser: add metadata param to short_format 2023-07-10 04:26:08 +00:00
Sebastien Bourdeauducq 48bc8a2ecc gtx_7series_init: GTH -> GTX (NFC) 2023-07-10 11:26:07 +08:00
Denis Ovchinnikov 93882eb3ce kasli-soc: fix of SYS CLK switch failure
Change initialization behaviour of GTX transceivers
--
Modify the config parms CPLL of GTX transceiver for PLL to lock correctly
Modify the enabling requirement of GTX input clock buffer IBUFDS_GTE2 so
    that it depends on GTX PLL locked signal instead of TX Init Done
Modify the GTX Init FSM so that BruteForceClock Aligner can reset GTX
    transceiver without resetting the GTX transceiver PLL

kasli-soc: fix of SYS CLK switch failure
Changed initialization of GTX transceivers.
Successful SYS CLK switching requires IBUFDS_GTE2 to be properly enabled and not disabled during GTX transceiver initialization.
For this reason, CPLL is not reset during GTX initialization and clock alignment.

kasli-soc: refractor fix of SYS CLK switch failure
Remove gtXxreset & cpllreset assertion and deassertion
The removed code does not affect the fix
2023-07-10 03:24:28 +00:00
Simon Renblad 373fe3dbe7 test_datasets: add metadata tests 2023-07-10 02:33:59 +00:00
Simon Renblad 1af98727b7 test_scheduler: refactor dataset metadata support 2023-07-10 02:33:59 +00:00
Simon Renblad 376f36c965 datasets: add metadata format param 2023-07-10 02:33:59 +00:00
Simon Renblad e710d4badd databases: read and save metadata in lmdb 2023-07-10 02:33:59 +00:00
Simon Renblad bfbe13e51b worker_db: write hdf5 dataset metadata 2023-07-10 02:33:59 +00:00
Simon Renblad bf38fc8b0f tools: refactor short_format with metadata 2023-07-10 02:33:59 +00:00
Simon Renblad 337273acb6 environment: add get_dataset_metadata 2023-07-10 02:33:59 +00:00
Simon Renblad 748707e157 environment: add unit feature 2023-07-10 02:33:59 +00:00
Leon Riesebos 833fd8760e artiq_ddb_template: use the clk_div field
this field exists in the json schema but was not used.

Signed-off-by: Leon Riesebos <28567817+lriesebos@users.noreply.github.com>
2023-06-29 03:29:18 +00:00
Sebastien Bourdeauducq 77293d53e3 json: use schema defaults when applicable 2023-06-16 16:59:08 +08:00
Sebastien Bourdeauducq a792bc5456 json: factor handling of deprecated 'base' 2023-06-16 16:32:42 +08:00
Sebastien Bourdeauducq 20d4712815 json: base -> drtio_role 2023-06-16 16:17:31 +08:00
Spaqin 82bd913f63
satellites: add kernel cpu 2023-06-16 15:44:31 +08:00
Sebastien Bourdeauducq 115415d120 Revert "flake: update to LLVM 14 and llvmlite 0.40.0+master"
This reverts commit c25c0bd55a.
2023-06-14 18:54:33 +08:00
Florian Agbuya d140c960bb
applets: implement dataset modification feature in big number applet 2023-06-12 17:52:46 +08:00
Egor Savkin c25c0bd55a
flake: update to LLVM 14 and llvmlite 0.40.0+master 2023-06-09 13:25:08 +08:00
Egor Savkin 30ef8d8cb4
compiler: skip demangling list of empty names 2023-06-09 13:24:10 +08:00
Florian Agbuya 7ad32d903a browser: add update method to dataset controller 2023-06-06 11:07:08 +00:00
Florian Agbuya bf46ce4a92 applets.simple: add mutate_dataset feature 2023-06-05 12:30:14 +00:00
Florian Agbuya 150d325fc1 applets.simple: add append_to_dataset feature 2023-06-02 14:56:00 +00:00
Florian Agbuya c298ec4c2e applets: add update_dataset for dataset mods 2023-06-02 14:56:00 +00:00
mwojcik 29cb7e785d fix missing DIFF_TERM for Sampler and Mirny inputs 2023-06-02 17:21:00 +08:00
Sebastien Bourdeauducq b97f6a9e44 bootloader: fix compilation warning without Ethernet 2023-06-02 10:48:55 +08:00
Sebastien Bourdeauducq e0ebc1b21d applets: fix some asyncio problems 2023-05-31 22:56:48 +08:00
Sebastien Bourdeauducq c6ddd3af17 applets: add controller and set_dataset API 2023-05-31 22:51:48 +08:00
Florian Agbuya e12219e803
gui: add handler for applet set_dataset 2023-05-31 14:08:14 +00:00
Sebastien Bourdeauducq c8dc2cbf09 browser: decouple dataset controller from dataset dock 2023-05-31 21:57:54 +08:00
Sebastien Bourdeauducq c6b29b30fb Revert "flake: update to LLVM 14 and llvmlite 40"
This reverts commit 748969c21e.
2023-05-31 19:36:43 +08:00
Sebastien Bourdeauducq d103cbea31 libboard_misoc: fix clang STB_WEAK warning 2023-05-31 18:59:51 +08:00
Egor Savkin 748969c21e
flake: update to LLVM 14 and llvmlite 40
Signed-off-by: Egor Savkin <es@m-labs.hk>
2023-05-30 16:47:59 +08:00
Sebastien Bourdeauducq 953a8a9555 master: merge master_config and master_terminate 2023-05-30 15:55:19 +08:00
Sebastien Bourdeauducq 444bab2186 gui: datasets_sub -> dataset_sub (nfc) 2023-05-30 15:44:30 +08:00
Denis Ovchinnikov 22e2514ce6 update configuration of IBUFDS_GTE2
Input clock is terminated internally with 50 Ohm on each leg and to 4/5 MGTAVCC.
2023-05-30 11:42:51 +08:00
mwojcik a4895b591a analyzer: fix satellite behavior 2023-05-29 13:13:24 +08:00
Sebastien Bourdeauducq b9c7905b20 nixpkgs 23.05 2023-05-27 17:17:36 +08:00
Charles Baynham c2b0c97640 worker: Wait until datasets are written before quitting
Avoids a race condition in worker_impl.py where HDF5 dataset saving was
cut off before it finished for large datasets.
2023-05-23 21:48:56 +01:00
Sebastien Bourdeauducq 58cc3b8d0a kasli_generic: fix LooseVersion deprecation warning 2023-05-23 19:36:06 +08:00
Jonathan Coates ea9fe9b4e1
dma: fix off-by-one error in RawSlicer (#2090)
Signed-off-by: Jonathan Coates <jonathan.coates@oxionics.com>
2023-05-23 11:15:39 +08:00
mwojcik c1d6fd4bbe satman analyzer: remove forgotten comment 2023-05-19 11:39:14 +08:00
mwojcik ab52748cac analyzer sat: disarm on drop 2023-05-19 11:39:14 +08:00
mwojcik ddfe51e7ac analyzer: use transactions for data transmission 2023-05-19 11:39:14 +08:00
mwojcik 6c96033d41 analyzer: implement querying up satellites for data 2023-05-19 11:39:14 +08:00
mwojcik 0b03126038 satman: support analyzer packets 2023-05-19 11:39:14 +08:00
mwojcik fdca1ab7fc drtioaux: add analyzer related messages 2023-05-19 11:39:14 +08:00
mwojcik c36b6b3b65 master: only local rtio events in analyzer 2023-05-19 11:39:14 +08:00
mwojcik c0ca27e6cf satellite: add rtio_analyzer, only for local rtio 2023-05-19 11:39:14 +08:00
Jonathan Coates 3ca47537b8 Fix mismatched signatures for the wide interface
Lists are passed by-reference from python code, and so should be
&CSlice<_> not CSlice<_>.

Signed-off-by: Jonathan Coates <jonathan.coates@oxionics.com>
2023-05-19 10:18:06 +08:00
Sebastien Bourdeauducq c53d333d46 almazny: fix parameter 2023-05-09 14:27:37 +08:00
Sebastien Bourdeauducq 5b94ce82e4 artiq_ddb_template: fix almazny 2023-05-09 14:27:15 +08:00
Sebastien Bourdeauducq 45cd438fb8 Almazny v1.2 support
Based on PR #2060 by Robert Jördens.
2023-05-09 12:54:48 +08:00
Sebastien Bourdeauducq 0e7e30d46e test: fix hardware testbench trying to write to ARTIQ_ROOT 2023-04-30 17:16:36 +08:00
Sebastien Bourdeauducq d5a7755584 test: improve tmpdir names 2023-04-30 17:15:34 +08:00
Sebastien Bourdeauducq 3ff0be6540 PEP440 compliant version numbers 2023-04-30 16:55:49 +08:00
Sebastien Bourdeauducq 2c1438c4b9 coredevice: add missing pattern to sampler_hw_rev 2023-04-30 16:07:56 +08:00
Egor Savkin 5199bea353
master: emit warning if datasets will not be stored 2023-04-30 15:22:21 +08:00
mwojcik a533f2a0cd rtio: SED, InputCollector use rio clock domain 2023-04-28 17:49:12 +08:00
Jonathan Coates 0bf57f4ebd Fix ADF3536 having RTIO channel names
The channel in this device refers to a channel on the mirny, not an RTIO
channel.
2023-04-24 20:05:14 +08:00
Sebastien Bourdeauducq 4056168875 master: store datasets in LMDB (#1743) 2023-04-24 17:34:30 +08:00
Egor Savkin 9331911139
add tests for client submit functionality 2023-04-24 11:43:24 +08:00
Spaqin 2f35869eb1
satman: fix PMP and L2 flush 2023-04-20 15:45:15 +08:00
Egor Savkin aed47d79ff
master: add terminate API 2023-04-18 15:03:06 +08:00
mwojcik 918d30b900 dma: pass "uses_ddma" for non-remote recordings 2023-04-18 12:35:37 +08:00
Egor Savkin b5d9062ba9 Fix AD9914 channel map
Signed-off-by: Egor Savkin <es@m-labs.hk>
2023-04-17 09:23:30 +08:00
Egor Savkin 8984f5104a Move RTIO errors formatting to the session_proto
This would be closer to the artiq-zynq implementation

Signed-off-by: Egor Savkin <es@m-labs.hk>
2023-04-17 09:23:30 +08:00
Egor Savkin d0b8818688 Add 125 MHz from 80 MHz reference option to rtio clocking
Signed-off-by: Egor Savkin <es@m-labs.hk>
2023-04-13 14:57:24 +08:00
Sebastien Bourdeauducq 757c00b0fe afws_client: improve UX of common build errors 2023-04-08 16:50:15 +08:00
Sebastien Bourdeauducq c1474c134a remove obsolete AFWS certificate 2023-04-07 16:09:47 +08:00
Sebastien Bourdeauducq dc3db8bb66 afws_client: WebSocket, system certificates 2023-04-07 16:03:33 +08:00
Sebastien Bourdeauducq 97161a3df2 firmware: improve RTIO map error reporting 2023-04-04 11:27:31 +08:00
Ikko Eltociear Ashimine 7ba06bfe61 fix typo in comm_analyzer.py
error_occured -> error_occurred
occured -> occurred
2023-04-02 09:17:37 +08:00
Spaqin b225717ddb
DDMA: documentation 2023-03-29 13:46:33 +08:00
mwojcik 696bda5c03 handle playback status in aux_transact 2023-03-28 14:18:29 +08:00
mwojcik 9150230ea7 dma: gate ddma features behind cfg(has_drtio) 2023-03-28 14:18:29 +08:00
Spaqin e9a153b985
runtime: implement distributed DMA 2023-03-22 11:16:25 +08:00
David Nadlinger 8b1f38b015 worker_impl: Remove misleading update() from ExamineDatasetMgr [nfc]
`update(mod)` would be on the DatasetDB, not the manager. Rather,
modifications currently just fail due to e.g. `set(…)` not being
defined.
2023-03-20 13:20:40 +08:00
Egor Savkin bbf80875fb
firmware: assume empty config records as removed (#2064)
This will return `KeyNotFound` for empty values, which are produced by `remove` operation

Signed-off-by: Egor Savkin <es@m-labs.hk>
2023-03-13 18:18:26 +08:00
Egor Savkin 1ca09b9484
Add support for default route (IPv4 and IPv6) (#2059)
Based on code by Michael Birtwell <michael.birtwell@oxionics.com>
2023-03-13 17:29:10 +08:00
Spaqin 84e7515721
satman: distributed DMA support 2023-03-11 18:36:36 +08:00
Sebastien Bourdeauducq a9360823b1 libproto: remove obsolete Jdac packets 2023-03-02 20:29:09 +08:00
Egor Savkin 1ec0abbfcf Add Urukul PLL bypass option to the JSON
Signed-off-by: Egor Savkin <es@m-labs.hk>
2023-03-01 19:05:16 +08:00
mwojcik 90a6fe1c35 satellite: add dma to gateware 2023-02-23 17:33:23 +08:00
mwojcik d0437f5672 rtio core: fix minimum_coarse_timestamp 2023-02-22 10:44:25 +08:00
Egor Savkin 394138f00f
firmware: block session on startup kernel to be finished (#2046) 2023-01-19 16:46:53 +08:00
Sebastien Bourdeauducq 20e8f17b3d artiq_ddb_template: fix mistake in 18524911 2023-01-15 12:27:13 +08:00
Sebastien Bourdeauducq 57e87c9717 sampler: fix mistake in c591e7e3 2023-01-15 12:27:10 +08:00
Sebastien Bourdeauducq b8968262d7 Merge branch 'syncrtio' 2023-01-12 16:44:54 +08:00
Sebastien Bourdeauducq 514ac953ce remove obsolete SI5324_AS_SYNTHESIZER config option 2023-01-12 13:01:08 +08:00
Sebastien Bourdeauducq 0a37a1a4c1 Merge branch 'syncrtio' 2023-01-12 12:58:19 +08:00
Sebastien Bourdeauducq 6d37d9d52c gui/state: fix asyncio loop management 2023-01-12 12:41:08 +08:00
Sebastien Bourdeauducq 5f77d4f5fa applets: fix asyncio loop management 2023-01-12 12:35:02 +08:00
Sebastien Bourdeauducq 2f289c552f remove unused import 2023-01-12 12:18:17 +08:00
Sebastien Bourdeauducq 9e8bb3c701 browser,dashboard: fix asyncio loop management 2023-01-12 12:17:16 +08:00
Sebastien Bourdeauducq d872c3ab4d aqctl_moninj_proxy: fix asyncio loop management 2023-01-12 12:16:53 +08:00