be01fbd943
runtime/irq: use assembly for naked IRQ handler
...
and solves the bug introduced due to stack unwinding...
2021-01-18 17:08:04 +08:00
9e8b554c6d
runtime/kernel/core1: use correct ABI
2021-01-18 16:43:30 +08:00
b4ff6dda24
runtime: use naked function for IRQ
...
non-naked IRQ would somehow trigger interrupts after several kernel
restarts, investigating
2021-01-18 10:38:50 +08:00
35204d4716
fixed new compiler warnings
2021-01-15 17:55:58 +08:00
93493397ae
updated zynq-rs dependency
2021-01-15 17:55:47 +08:00
e5207b86db
update rust dependencies
2020-12-24 01:17:24 +01:00
28fe61b061
runtime: add feature target_kasli_soc
2020-12-23 20:11:43 +01:00
ce55e2ed23
update rust dependencies
2020-12-23 17:02:19 +01:00
cb9dae1951
update rust dependencies
2020-11-20 17:54:09 +01:00
07b425a67a
fix other compilation warnings
2020-11-16 14:57:20 +08:00
57ae8619f8
remove unnecessary no_mangle
...
no_mangle does nothing on extern items as per https://github.com/rust-lang/rust/issues/78989#issuecomment-726163973
Closes #115
2020-11-16 14:51:30 +08:00
32048ead20
gateware/coraz7: remove unused VARIANTS
2020-11-14 02:24:29 +01:00
113c8eb0b8
add coraz7 + redpitaya targets
2020-11-13 20:17:18 +01:00
9259cffeb2
i2c: add stubs for targets without i2c
2020-11-12 15:26:06 +01:00
David Nadlinger
7c336f7770
kernel/api: Add additional binary libm functions
...
Also factored out (f64, f64) -> f64 libm wrappers into
a macro, similar to the unary ones.
2020-11-11 01:24:44 +01:00
291a782db0
fix compiler warning
...
Feature is now stable.
2020-11-06 12:22:34 +08:00
479e6afd12
update Rust dependencies
2020-11-06 12:20:48 +08:00
7dbffadf08
mgmt: implemented config write
2020-11-04 21:16:47 +08:00
b7155c9ded
Makefile: cleanup
2020-10-14 13:06:15 +08:00
5c62d6a141
update dependencies, disable custom compiler_builtins ( #113 )
2020-10-13 21:51:40 +08:00
eab839aed0
follow changes in zynq-rs
2020-10-13 19:12:55 +08:00
a374d8a02f
runtime/kernel/dma: reduced replay overhead
...
We can just flush the cache once when we get the handle, instead of
everytime before replay.
2020-09-09 21:25:03 +08:00
03d9827a5a
acpki: working
2020-09-09 21:24:49 +08:00
86b9045417
use liconfig, libcoreio, szl from zynq-rs
2020-09-09 18:44:12 +08:00
7e26a87aed
fix previous commit
2020-09-09 18:12:39 +08:00
a277e89b3a
Makefile: fix runtime.bin target
2020-09-09 17:01:14 +08:00
1e742cc390
updated zynq-rs dependency
2020-09-07 16:18:50 +08:00
2fe73505c8
improve i2c error reporting
2020-09-06 00:38:28 +08:00
36d8ffec3b
expose i2c to kernels
2020-09-06 00:11:19 +08:00
91ed035bef
makefile: fix szl rebuild ( #108 )
2020-09-06 00:10:44 +08:00
d5a91a7697
updated zynq-rs for more CPU options
2020-09-04 16:43:07 +08:00
5da76f2abb
enabled cpu program flow prediction
2020-09-04 13:25:17 +08:00
5e4bf8bbf7
runtime/comms: Faster RPC alloc
...
We do busy polling for some time before doing await, for small
allocations we could avoid the context switching and reduce the latency.
2020-09-03 16:58:44 +08:00
cdc8ad8aee
runtime/kernel/control: fixed memory leak
2020-09-03 16:51:51 +08:00
805f1d4eff
runtime: increased heap size
2020-09-02 10:15:52 +08:00
ae07c05db4
runtime: optimize for speed and fix deadlock
...
The previous method of taking the channel could cause deadlock, we now
use semaphore to signal if the channel is available instead of busy
polling the mutex.
2020-09-02 10:15:52 +08:00
b0706f470d
runtime: set default log level to Info
2020-09-01 17:11:21 +08:00
ccf8ae5b5d
szl: implemented #96
...
SZL no longer do self-extraction for runtime binary, it would boot from
SD/ethernet depending on the boot mode settings.
This allows a larger runtime binary, so we can optimize for speed in the
runtime firmware for better performance, and allow more features to be
added later.
2020-09-01 15:57:20 +08:00
050b2457a4
runtime/main: removed bitstream loading code
2020-09-01 15:43:54 +08:00
eb78e4e2da
libconfig: refactored load_pl into bootgen
...
Now allows loading firmware.
2020-09-01 14:48:19 +08:00
afecc83ecf
libconfig/net_settings: made ipv6 optional feature
...
This is to prepare for szl, which cannot use ipv6 due to memory
limitation.
2020-09-01 14:48:19 +08:00
04437e876c
libconfig/load_pl: added alignment for devc buffer
...
According to the TRM, the buffer should be 64B aligned.
Without the alignment would cause failure for the DMA transaction.
It seems that the allocator would give some alignment, but to be more
correct we should specify that with the alloc interface.
2020-09-01 14:48:19 +08:00
42f94487cf
split config code into libconfig
2020-09-01 14:48:09 +08:00
d474cf58a5
runtime/rpc: optimizations for list and arrays
...
Requires https://github.com/m-labs/artiq/pull/1510
This is the commit producing the result in the table.
2020-08-26 13:47:41 +08:00
71427f8ec8
runtime/proto_async: simplify functions
...
And the compiler can use its intrinsic for byte rev.
2020-08-26 13:46:51 +08:00
538c012bc4
use new repos location for compiler-builtins-zynq
2020-08-25 16:24:30 +08:00
ba162b3997
Fix pure build
2020-08-25 14:51:39 +08:00
321a8e1522
runtime/kernel/core1: reset rtio after interrupted
2020-08-25 14:51:39 +08:00
0fb278f7cb
runtime/kernel/core1: allows getting backtrace when kernel is not loaded
2020-08-25 14:51:39 +08:00
fa187fb37a
runtime/kernel: use mutable static for shared channel
...
Mutex would prevent restart if we failed while waiting for RPC.
2020-08-25 14:51:39 +08:00
e592efb2b8
enabled L2 cache and optimized ethernet
2020-08-25 14:51:39 +08:00
760f46a115
update dependencies
2020-08-17 19:17:42 +02:00
David Nadlinger
6ccd0cb389
runtime/kernel: Expose libm::atanh
2020-08-09 20:06:09 +01:00
David Nadlinger
63250240d2
runtime/kernel: Expose __powidf2
2020-08-09 19:17:38 +01:00
David Nadlinger
9f898dd2b8
runtime/rpc: Support new TArray layout (ndarrays)
...
This is a port of the respective commit in the main ARTIQ
repository.
2020-08-09 19:17:38 +01:00
7342736124
szl: reduced binary size.
...
* Compiled unlzma with -Oz and enable LTO.
* Changed one unwrap to manual handling to remove fmt code.
* Implemented custom panic handler with minimal code.
2020-08-07 13:25:16 +08:00
3a8a025d5f
update dependencies, zc706 -> zynq-rs
2020-08-06 20:33:23 +08:00
2f6310f8bd
cleanup
2020-08-06 20:26:48 +08:00
8dabc8e6fd
runtime: remove access to obsolete i_overflow_reset CSR
2020-08-06 20:23:36 +08:00
1eeee43d64
acpki: implement input interface
2020-08-06 18:15:34 +08:00
0354699ae3
runtime/kernel/dma: fixed missing end of buffer marker.
...
The DMA transfer would halt before.
2020-08-06 14:00:20 +08:00
7873565917
runtime: expose libm tan
2020-08-06 11:45:41 +08:00
05e1614313
runtime/kernel: fixed duration bug.
...
Fixes #89 .
2020-08-06 11:12:24 +08:00
323191b9fc
runtime: expose more libm functions
2020-08-06 10:32:20 +08:00
2f7cc6fc38
tune compiler optimizations
2020-08-06 10:32:20 +08:00
5becf0af0a
runtime/kernel: fixed memory corruption for cache and DMA.
2020-08-06 10:29:31 +08:00
e7752a3d6d
runtime/kernel: fixes core0 memory leak.
...
Fixes #85
2020-08-06 09:39:49 +08:00
984bb08d27
Makefile: optimize
2020-08-05 19:14:18 +08:00
de2d7ecf48
typo
2020-08-05 18:52:08 +08:00
c85e85aa6d
runtime/logger: use blocking wait.
...
Fixes #84 using the first solution.
If the performance is considered too slow,
we can do the second option later.
2020-08-05 18:51:27 +08:00
4b6c5d5679
runtime/kernel: store DMA and cache buffer on core0.
...
Closes #77 .
2020-08-05 15:33:40 +08:00
72427dbebb
runtime: cleanup core_log
2020-08-05 00:40:54 +08:00
6d654de3d5
runtime: implement core_log
2020-08-04 23:27:51 +08:00
3092bfc21a
runtime: expose __aeabi_idivmod to kernel
2020-08-04 22:45:28 +08:00
b915176b29
runtime: implement acpki RTIO output
2020-08-04 17:32:43 +08:00
537f4968eb
acpki: add legacy i_status/o_status registers
2020-08-04 17:31:35 +08:00
62988a580e
acpki: update for combined RTIO channel/address
2020-08-04 17:28:15 +08:00
fc21fcc920
runtime/comms: removed sync_channel hack.
...
Fixes #80
2020-08-04 14:40:02 +08:00
6a4d871917
runtime/irq: use spinlock functions instead of asm.
...
Closes #81
2020-08-04 14:40:02 +08:00
8337c9173e
runtime: share rtio_log format function
2020-08-04 13:27:18 +08:00
1e20259c36
fix acpki selection
2020-08-04 13:26:45 +08:00
f8d4036451
add ACP kernel initiator
...
Based on work by Chris Ballance
https://github.com/m-labs/artiq/issues/1167#issuecomment-427188287
M-Labs/artiq-zynq#55
Work-in-progress, only gateware part and build system, untested.
2020-08-04 13:15:26 +08:00
c9bac028bf
dma: call rtio module to get time cursor position
...
More portable across RTIO implementations.
2020-08-04 13:14:00 +08:00
56e7cc822c
runtime/comms: limited concurrent connections to 1 only.
2020-08-04 10:31:03 +08:00
d58a3ef12c
runtime/comms: restart core1 before kernel load.
2020-08-04 10:17:19 +08:00
fa00ab211d
Updated zc706 dependency and fixed compiler errors.
2020-08-04 10:15:57 +08:00
7caee2bf88
improve DMA logging
2020-07-30 22:25:49 +08:00
2e7090a359
remove unused import
2020-07-30 22:07:44 +08:00
b388b529ad
dyld: remove KERNEL_EXIDX_START/END globals, move dl_unwind_find_exidx() into runtime::kernel::core1
...
Gitea issue #16
2020-07-27 19:56:06 +02:00
641204425e
dyld: obtain EXIDX offsets from section headers
...
Gitea issue #16
2020-07-27 01:58:42 +02:00
7f983a453d
implement core device cache
2020-07-25 17:04:40 +08:00
630dcc274e
fix compilation warning with new rustc
2020-07-25 12:15:50 +08:00
e64f59723c
dma: use const initializer for manager
2020-07-25 12:12:56 +08:00
26874030fc
retry RTIO PLL lock
2020-07-25 11:15:33 +08:00
0ce45b145e
kernel: proper type for static shared variables.
...
* Changed the KERNEL_CHANNEL_* to Mutex<T> with proper type, remove the
need for unsafe.
* Exposed a const pointer to KernelImage, with UnsafeCell holding
the library field for unbind with interior mutability.
2020-07-24 12:24:01 +08:00
0310421085
RTIO DMA: Compiled but not working.
...
* Cache flush should be done before playback instead when getting the
handler.
* `csr::rtio_dma::enable_read()` would loop forever, probably bug in the
gateware.
2020-07-23 17:04:15 +08:00
64dad88a32
Kernel exception: fixed top level finally. ( #70 )
...
Fixes #70 .
2020-07-23 14:09:15 +08:00
4846f2891b
use blocking timer api, update microseconds api
2020-07-22 23:58:55 +02:00
536f50f122
update dependencies
2020-07-22 23:51:09 +02:00
9b07468e50
add libm functions from legacy runtime
2020-07-21 22:58:56 +08:00