Commit Graph

8530 Commits

Author SHA1 Message Date
1f58cd505c flake: update dependencies 2023-08-30 15:39:46 +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
3620358f12 flake: build efc firmware 2023-08-25 13:34:56 +08:00
72b0a17542 flake: register firmware outputs as hydra build products 2023-08-25 13:25:22 +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
9bee4b9697 flake: update dependencies 2023-08-25 11:13:33 +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
d2ac6aceb3 flake: update to Clang 14 2023-08-07 18:45:13 +08:00
9b94a09477 flake: update to LLVM 14 2023-08-07 18:28:44 +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
3ed7e0ed06 flake: update dependencies 2023-08-07 17:52:42 +08: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
a384df17a4 docs: add unit and precision explainer 2023-07-21 08:15:39 +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
a2d62e6006 RELEASE_NOTES: deprecated ndecimals 2023-07-18 08:02:42 +00:00
3d0feef614 docs: rename ndecimals to precision 2023-07-18 08:02:42 +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
9f8bb6445f RELEASE_NOTES: add breaking change data_changed signature 2023-07-12 08:28:28 +00:00
068a2d1663 progress_bar: refactor data_changed 2023-07-12 08:28:28 +00:00