pca006132
fc21fcc920
runtime/comms: removed sync_channel hack.
...
Fixes #80
2020-08-04 14:40:02 +08:00
pca006132
6a4d871917
runtime/irq: use spinlock functions instead of asm.
...
Closes #81
2020-08-04 14:40:02 +08:00
Sebastien Bourdeauducq
8337c9173e
runtime: share rtio_log format function
2020-08-04 13:27:18 +08:00
Sebastien Bourdeauducq
1e20259c36
fix acpki selection
2020-08-04 13:26:45 +08:00
Sebastien Bourdeauducq
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
Sebastien Bourdeauducq
c9bac028bf
dma: call rtio module to get time cursor position
...
More portable across RTIO implementations.
2020-08-04 13:14:00 +08:00
pca006132
56e7cc822c
runtime/comms: limited concurrent connections to 1 only.
2020-08-04 10:31:03 +08:00
pca006132
d58a3ef12c
runtime/comms: restart core1 before kernel load.
2020-08-04 10:17:19 +08:00
pca006132
fa00ab211d
Updated zc706 dependency and fixed compiler errors.
2020-08-04 10:15:57 +08:00
Sebastien Bourdeauducq
7caee2bf88
improve DMA logging
2020-07-30 22:25:49 +08:00
Sebastien Bourdeauducq
2e7090a359
remove unused import
2020-07-30 22:07:44 +08:00
Astro
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
Astro
641204425e
dyld: obtain EXIDX offsets from section headers
...
Gitea issue #16
2020-07-27 01:58:42 +02:00
Sebastien Bourdeauducq
7f983a453d
implement core device cache
2020-07-25 17:04:40 +08:00
Sebastien Bourdeauducq
630dcc274e
fix compilation warning with new rustc
2020-07-25 12:15:50 +08:00
Sebastien Bourdeauducq
e64f59723c
dma: use const initializer for manager
2020-07-25 12:12:56 +08:00
Sebastien Bourdeauducq
26874030fc
retry RTIO PLL lock
2020-07-25 11:15:33 +08:00
pca006132
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
pca006132
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
pca006132
64dad88a32
Kernel exception: fixed top level finally. ( #70 )
...
Fixes #70 .
2020-07-23 14:09:15 +08:00
Astro
4846f2891b
use blocking timer api, update microseconds api
2020-07-22 23:58:55 +02:00
Astro
536f50f122
update dependencies
2020-07-22 23:51:09 +02:00
Sebastien Bourdeauducq
9b07468e50
add libm functions from legacy runtime
2020-07-21 22:58:56 +08:00
pca006132
d11e3fdad8
runtime/mgmt: mgmt.rs consistency
...
Closes #67 .
2020-07-21 13:54:32 +08:00
Sebastien Bourdeauducq
e0560a2db9
expose libm functions to kernel
2020-07-21 13:50:33 +08:00
Sebastien Bourdeauducq
59cf2764ce
dma: report AXI bus error
2020-07-21 12:47:20 +08:00
Sebastien Bourdeauducq
21135c6a41
analyzer: report AXI bus errors
2020-07-20 19:51:22 +08:00
Sebastien Bourdeauducq
9a8f8e2d7b
szl: add startup banner
2020-07-20 19:51:09 +08:00
Sebastien Bourdeauducq
0b47ac75f0
comms,mgmt: log connections as soon as they arrive
2020-07-20 19:09:56 +08:00
Sebastien Bourdeauducq
8c60947291
moninj: better connection logging
2020-07-20 19:07:44 +08:00
Sebastien Bourdeauducq
4af29e8eca
comms: report error on incorrect connection start pattern
2020-07-20 19:07:12 +08:00
Sebastien Bourdeauducq
d65e893d1c
more conservative RTIO PLL reset timing
2020-07-20 14:19:13 +08:00
Sebastien Bourdeauducq
db2a8e7726
implement RTIO log
2020-07-20 14:10:46 +08:00
Sebastien Bourdeauducq
f5db0e06f4
update dependencies, use new libasync smoltcp recv API
2020-07-19 16:16:39 +08:00
Sebastien Bourdeauducq
3ec9788eb1
proto_async: always consume one byte in recv
2020-07-19 16:07:55 +08:00
Sebastien Bourdeauducq
523524c319
zc706: add RTIO log channels
2020-07-19 14:05:35 +08:00
Sebastien Bourdeauducq
6e75741aa3
analyzer: remove debug print
2020-07-16 18:37:15 +08:00
Sebastien Bourdeauducq
f69e41af5e
gateware: fix VADJ I/O standard conflict
2020-07-16 17:58:31 +08:00
Sebastien Bourdeauducq
6a361893c2
gateware: make LEDs common to all variants
...
Makes quick testing easier.
2020-07-16 17:36:27 +08:00
Sebastien Bourdeauducq
ae7ca22db9
dma: fix endianness issues
2020-07-16 17:27:08 +08:00
pca006132
a9f725dd33
kernel: added error message after uncaught exception
2020-07-16 17:11:35 +08:00
pca006132
caef2a9f84
runtime/panic: prevent nested panic and added core ID in panic msg.
2020-07-16 17:11:35 +08:00
Sebastien Bourdeauducq
16158acfa9
analyzer: close connection gracefully
2020-07-16 17:10:24 +08:00
Sebastien Bourdeauducq
10a12245a3
analyzer: fix endianness issue
2020-07-16 17:10:09 +08:00
pca006132
84630d66e3
rpc: added `#[repr(C)]` for structs.
2020-07-16 15:48:17 +08:00
pca006132
4457af7277
rpc: Fixed alignment problem.
...
Fixes issue #42 .
Previously there was no fix for the variable alignment.
We calculate the position of the variable based on the size
of the previous variable, so we could break the alignment requirement
for variables. For example, having a `i64` after `bool` could break
the alignment required for `i64` and trigger DataAbort or data
corruption.
However, this requires the same data layout and LLVM type for the
variables. If this cannot be maintained, this would break the alignment
on the other side of the RPC, either from host to kernel or kernel to
host.
2020-07-16 14:06:39 +08:00
Sebastien Bourdeauducq
2e10922715
analyzer: implement firmware part
2020-07-16 11:47:55 +08:00
Sebastien Bourdeauducq
b62fbce826
mgmt: log incoming connection
2020-07-16 11:36:26 +08:00
Sebastien Bourdeauducq
0c6db0d12c
analyzer: use 32-bit byte_count
2020-07-16 11:36:04 +08:00
Sebastien Bourdeauducq
36338ea3b2
Makefile: fix pl.rs dependencies
2020-07-16 11:35:40 +08:00
Sebastien Bourdeauducq
0b0ca8de49
analyzer: drive wid and wstrb
2020-07-15 23:11:19 +08:00
Sebastien Bourdeauducq
8e758ecc17
add RTIO analyzer core (untested)
2020-07-15 23:06:34 +08:00
Sebastien Bourdeauducq
b68cb137e5
dma: style
2020-07-15 23:06:14 +08:00
pca006132
92405ffe91
logger: changed from RefCell to Mutex.
2020-07-15 17:04:16 +08:00
pca006132
2568d62865
mgmt: fixed pull log
2020-07-15 16:05:00 +08:00
pca006132
5149d37be9
szl: added cache flush and memory barriers.
...
Resolves #50 .
2020-07-14 17:02:42 +08:00
pca006132
8e3574080c
core1: added cache flush and barriers.
2020-07-14 10:53:35 +08:00
Astro
49d93e20dd
dyld: add Image.rebind()
2020-07-14 01:31:54 +02:00
Sebastien Bourdeauducq
12ba867268
dma: fix and cleanup test
2020-07-13 18:58:08 +08:00
Sebastien Bourdeauducq
5c3c3c26b5
dma: fix inflight_cnt and eop generation
2020-07-13 18:51:55 +08:00
Sebastien Bourdeauducq
fa2d71615a
report async RTIO errors
2020-07-13 16:06:05 +08:00
Sebastien Bourdeauducq
b42ab0634b
complete RTIO exceptions
2020-07-13 15:47:34 +08:00
pca006132
62f39e2c08
mgmt: Implemented network log access.
2020-07-13 15:15:06 +08:00
pca006132
855b26aa19
Logger: ported log_buffer.
2020-07-13 14:59:56 +08:00
Sebastien Bourdeauducq
ea96cf96d3
dma: add simulation test (WIP)
2020-07-13 12:04:10 +08:00
Sebastien Bourdeauducq
10888cc6c6
dma: remove unneeded import
2020-07-13 10:42:02 +08:00
Sebastien Bourdeauducq
a7073edf79
add DMA core (untested)
2020-07-13 10:37:17 +08:00
Sebastien Bourdeauducq
e3ff21b1b5
create gateware folder
2020-07-11 17:49:54 +08:00
pca006132
7aec419ed6
kernel: added core1 instruction cache flush
2020-07-10 17:21:55 +08:00
pca006132
68d27ca2ee
comms: removed core1 restart
2020-07-10 17:21:55 +08:00
Sebastien Bourdeauducq
407e18a6a0
fix typos
2020-07-10 16:36:45 +08:00
pca006132
2d58193930
Panic: single line backtrace for addr2line.
2020-07-10 12:26:28 +08:00
Sebastien Bourdeauducq
c935e450df
makefile: automate runtime dependencies
2020-07-09 09:41:45 +08:00
Sebastien Bourdeauducq
656e768f06
makefile: update dependencies
2020-07-09 09:31:36 +08:00
Astro
2c1773b91b
kernel: refactor main_core1 into KernelImage
2020-07-08 23:49:43 +02:00
Astro
b3d4590eec
kernel: split into {api,control,core1,rpc}
2020-07-08 23:49:32 +02:00
Sebastien Bourdeauducq
68045ce0c5
mark RTIO clock as asychronous to system clock
2020-07-08 20:37:53 +08:00
Sebastien Bourdeauducq
7ee67db8e3
use IOSERDES TTL
2020-07-08 20:02:46 +08:00
Sebastien Bourdeauducq
bd7d58e239
add RTIO PLL and clock source selection
2020-07-08 19:58:13 +08:00
Sebastien Bourdeauducq
6454315cd2
config: refactor and share
2020-07-08 19:24:26 +08:00
pca006132
e263814546
Kernel: Added startup kernel
2020-07-08 15:54:50 +08:00
Sebastien Bourdeauducq
a8de572014
set up PL clocks
2020-07-07 19:40:32 +08:00
Sebastien Bourdeauducq
b13da96835
increase CSR bus width to 32 bits
...
Before:
Minimum interval for sustained TTL output switching ... 1.554e-06
After:
Minimum interval for sustained TTL output switching ... 5.17e-07
2020-07-07 17:22:07 +08:00
Sebastien Bourdeauducq
7bfe882710
eh_artiq: reduce verbosity
2020-07-07 17:21:28 +08:00
pca006132
c071507ff8
RTIO: implemented exceptions
2020-07-07 16:26:33 +08:00
pca006132
f1750cf8cd
Kernel: Fixed use-after-free
2020-07-07 15:51:12 +08:00
pca006132
0f797284e2
SdReader: fixed write cache bug.
2020-07-07 14:02:13 +08:00
Sebastien Bourdeauducq
e6cf3e90d3
update zc706
2020-07-07 12:50:05 +08:00
Sebastien Bourdeauducq
0119022b2c
remove compiler warning
2020-07-06 21:55:30 +08:00
Sebastien Bourdeauducq
de2c2af523
use new exception vectors
2020-07-06 21:16:32 +08:00
Sebastien Bourdeauducq
8c0b7cdcf2
runtime: adjust stack and heap sizes
2020-07-06 20:48:22 +08:00
Sebastien Bourdeauducq
7661b2a288
remove unused import
2020-07-06 20:41:24 +08:00
pca006132
c59772dca3
Exception handling: Implemented RPC exception.
2020-07-06 15:34:49 +08:00
Sebastien Bourdeauducq
f895773535
runtime: do not use slcr soft_reset in panic
2020-07-06 13:07:52 +08:00
Sebastien Bourdeauducq
33d12801b7
runtime: use network addresses from config
2020-07-06 12:59:51 +08:00
Sebastien Bourdeauducq
bbc1ffec8e
szl: disable ps7_init
2020-07-06 12:31:13 +08:00
Sebastien Bourdeauducq
bbe6812792
add network address config code
2020-07-06 12:04:22 +08:00
Sebastien Bourdeauducq
e207c073ee
config: remove unnecessary mut
2020-07-06 12:04:22 +08:00
Sebastien Bourdeauducq
0c1de42547
use simplified ps7_init
2020-07-06 00:54:44 +08:00
Sebastien Bourdeauducq
3bd4643009
use fpu_enable from zc706
2020-07-06 00:18:28 +08:00
Sebastien Bourdeauducq
de8da59e56
adjust logging levels
2020-07-05 23:46:23 +08:00
Sebastien Bourdeauducq
60d42b1aaa
remove duplicated write_chunk function
2020-07-05 17:13:14 +08:00
pca006132
e65d4e0e84
Kernel: implemented KernelException
2020-07-03 17:21:42 +08:00
pca006132
f3c3bd7384
Backtrace: panic handler with proper backtrace.
2020-07-02 13:12:12 +08:00
pca006132
3f2024e4e0
runtime: Updated dependency to disable default panic handler
2020-07-02 13:08:18 +08:00
pca006132
57da6f05fd
szl: enabled FPU
2020-07-02 13:06:36 +08:00
pca006132
214337387f
cc: fixed error and compiled unlzma using cc
2020-07-02 11:41:58 +08:00
Sebastien Bourdeauducq
b0aa77c73f
fix compilation warning
2020-07-02 10:34:43 +08:00
Sebastien Bourdeauducq
bdcae0db64
fix permissions
2020-07-02 10:28:40 +08:00
pca006132
24bd541dfd
Exception handling: added dependencies to makefile
2020-07-02 10:13:47 +08:00
pca006132
eb750eb1f0
Exception handling: patched exception handling for ARTIQ.
2020-07-02 10:13:42 +08:00
pca006132
26ac3194d1
Exception handling: copied eh_artiq from current artiq firmware.
2020-07-02 10:08:16 +08:00
pca006132
0a35f68562
Added libpanic_unwind/dwarf from rustc as libdwarf.
2020-07-02 09:51:47 +08:00
pca006132
6be44c3483
Libunwind: build libunwind with rust bindings
2020-07-02 09:51:44 +08:00
pca006132
9282dcffdb
Dyld: provides unwind section for libunwind
2020-07-02 09:50:53 +08:00
pca006132
d915211264
Libunwind: patched phase1 end of stack detection.
2020-07-02 09:50:53 +08:00
pca006132
f82ffe8cf2
Libunwind: use dyld instead of static linker symbols for unwind section.
2020-06-30 17:12:02 +08:00
pca006132
b21cccb4d2
Libunwind: added system header
2020-06-30 17:10:45 +08:00
pca006132
fd229a1b26
Copied LLVM Libunwind from commit 3e6ec2a
2020-06-30 16:52:49 +08:00
pca006132
29dd311c0f
Runtime config: fixed warning
2020-06-29 10:05:15 +08:00
Sebastien Bourdeauducq
8d1b9f7f23
dyld: fix compilation warning
2020-06-28 18:15:48 +08:00
Astro
53d931dccc
szl: invoke ps7_init::apply() at start
2020-06-27 02:36:36 +02:00
Astro
d8745074b4
update dependencies
2020-06-27 02:29:45 +02:00
Sebastien Bourdeauducq
a71ee143ac
update dependencies
2020-06-25 20:21:44 +08:00
Sebastien Bourdeauducq
507edb5a78
make config demo errors non-fatal
2020-06-25 11:27:50 +08:00
Astro
654d65a6d5
dyld: keep exidx p_vaddr as it is contained in LOAD sections already
...
should fix Gitea issue #17
2020-06-25 02:03:29 +02:00
Astro
571ab66114
dyld: keep EXIDX section data through program header entry
2020-06-24 00:18:34 +02:00
Astro
64cdf0ade3
sd_reader: use const for magic numbers
2020-06-18 23:56:32 +02:00
Astro
d9bd42389f
kernel: flush now write-buffered dcache of image before execution
2020-06-18 20:14:02 +02:00
Astro
06ad8dfe27
szl: flush now write-buffered dcache of DDR pages before executing instructions in them
2020-06-18 18:33:47 +02:00
Astro
f750234cb5
update dependencies
2020-06-18 18:33:32 +02:00
Sebastien Bourdeauducq
24853ab090
szl: move bss and stack to OCM3 to save space
2020-06-18 17:28:34 +08:00
pca006132
6608c16f46
Config: Renamed ConfigNotFound into KeyNotFoundError.
2020-06-18 12:05:24 +08:00
pca006132
f43ad05be5
Testing for config.
2020-06-18 11:33:52 +08:00
pca006132
a55a6291a4
SD reader: optimized stack and binary size
2020-06-18 11:33:18 +08:00
pca006132
2b1b0dc49f
Load PL: simplify logic by using fatfs find_file directly.
2020-06-18 11:32:23 +08:00
pca006132
228c0c813d
SD reader: changed from &mut to owning.
2020-06-18 11:31:46 +08:00
pca006132
f7bb339275
Config: implemented config struct.
2020-06-18 11:29:33 +08:00
Sebastien Bourdeauducq
e43511c95f
update dependencies
2020-06-16 18:08:12 +08:00
pca006132
0dc0bb391d
add support for loading bitstream from bootimage.
2020-06-16 17:45:54 +08:00
Sebastien Bourdeauducq
f9ccf908dd
update dependencies
2020-06-15 17:14:03 +08:00
pca006132
e4b17f9473
Fixed incorrect byte_addr after multiple block read...
2020-06-15 15:12:22 +08:00
Sebastien Bourdeauducq
da6bda9a06
add config skeleton
2020-06-13 16:44:54 +08:00
Sebastien Bourdeauducq
f52f10abc2
remove unnecessary dereferencing
2020-06-13 16:43:32 +08:00
pca006132
1138db34a2
add SD card FAT filesystem interface
2020-06-13 15:33:28 +08:00
Sebastien Bourdeauducq
e77cb5de7e
fix comment in previous commit
2020-06-13 15:27:51 +08:00
Astro
e6b8bf5481
provide many move __aeabi_* calls
2020-06-11 22:49:52 +02:00
Sebastien Bourdeauducq
dc78868109
update dependencies and add fatfs
2020-06-11 17:36:23 +08:00
Sebastien Bourdeauducq
81b8fc8916
implement attribute writeback
2020-06-10 17:01:17 +08:00
Sebastien Bourdeauducq
bc81fa2e48
handle recursive RPC return values
2020-06-09 13:03:08 +08:00
Sebastien Bourdeauducq
7387e42306
provide __aeabi_l2d
2020-06-09 12:57:13 +08:00
Sebastien Bourdeauducq
b16ec2c6a8
provide mockups for all exception functions
2020-06-09 12:56:58 +08:00
Sebastien Bourdeauducq
12c2d658f3
tune heap/stack sizes
2020-06-09 12:56:18 +08:00
Sebastien Bourdeauducq
4d03ecc187
decode RPC exception
2020-06-08 18:32:44 +08:00
Sebastien Bourdeauducq
bdf0831eb2
style
2020-06-08 18:16:38 +08:00
Sebastien Bourdeauducq
c980b3e634
dyld: reduce verbosity
2020-06-08 17:57:13 +08:00
Sebastien Bourdeauducq
b1161a0f71
process RPC replies (WIP)
2020-06-08 13:11:09 +08:00
Sebastien Bourdeauducq
06915ec25d
rpc: make alloc async
2020-06-07 21:47:36 +08:00
Sebastien Bourdeauducq
7df6ab2149
rpc: use async-recursion
2020-06-07 21:30:33 +08:00
Sebastien Bourdeauducq
f0588c49ed
rpc: make receive async
2020-06-07 20:24:41 +08:00
Sebastien Bourdeauducq
ef4bdbb668
rpc: enable logging
2020-06-07 20:23:43 +08:00
Sebastien Bourdeauducq
4b8bbdc3dc
send RPC requests to host
2020-06-07 15:13:20 +08:00
Sebastien Bourdeauducq
1f23a1b86c
enable FPU on Core1
2020-06-07 15:12:34 +08:00
Sebastien Bourdeauducq
ed21457f28
replace libio with core_io
...
* based on https://github.com/jethrogb/rust-core_io but could not get the packaging scripts to work
and the repos is unmaintained anyway, so just copied the result
* more features and more up-to-date
* compatible with the fatfs crate
2020-06-05 17:14:36 +08:00
Sebastien Bourdeauducq
a915ed172a
send RPC requests to comms CPU, handle kernel termination
2020-06-05 11:48:34 +08:00
Sebastien Bourdeauducq
8e68e65ca7
remove dead code
2020-06-05 11:47:36 +08:00
Sebastien Bourdeauducq
d65df2f454
rpc: revert to libio
...
* Recursive async fns in Rust are a mess and not usable.
* When doing ARTIQ async RPCs, it is simpler to encode the buffer on the kernel CPU and pass that to the comms CPU,
instead of tracking when kernel CPU memory with the RPC values can be freed.
2020-06-03 11:17:49 +08:00
Sebastien Bourdeauducq
9c0cf7e84c
remove unneeded import
2020-06-03 11:17:37 +08:00
Sebastien Bourdeauducq
6454f994af
add libio from ARTIQ
2020-06-03 11:17:28 +08:00
Sebastien Bourdeauducq
cb24b82e68
rpc: strings
2020-06-01 18:21:04 +08:00
Sebastien Bourdeauducq
7aa9a95c21
add RPC protocol module (WIP)
2020-06-01 18:02:21 +08:00
Sebastien Bourdeauducq
15b2b253cf
build for NIST variants
2020-05-14 15:30:50 +08:00
Sebastien Bourdeauducq
af08b1ad00
update dependencies
2020-05-14 09:28:16 +08:00
Sebastien Bourdeauducq
1222db56e1
use different user_led to avoid VADJ problems with NIST backplanes
2020-05-14 09:23:43 +08:00
Sebastien Bourdeauducq
aeefdc862d
update dependencies
2020-05-09 13:48:27 +08:00
Sebastien Bourdeauducq
7c6f57540e
prevent cargo xbuild from creating sysroot in source tree. Closes #6
2020-05-09 13:21:55 +08:00
Sebastien Bourdeauducq
b2fe33f6ea
zc706: add support for NIST backplanes
2020-05-07 17:05:00 +08:00
Sebastien Bourdeauducq
4464b85ab3
move build artifacts out of tree
2020-05-07 13:52:40 +08:00
Sebastien Bourdeauducq
743b0e198d
cargo: remove outdated runner entry
2020-05-07 13:50:21 +08:00
Sebastien Bourdeauducq
47261a1d84
update comment/message
2020-05-07 12:43:53 +08:00
Astro
d08f4552ab
libdyld: fix pltrel_sz, remove debug output
2020-05-07 01:44:26 +02:00
Sebastien Bourdeauducq
90faeb6fa2
use new core1 startup mechanism
2020-05-06 22:16:34 +08:00
Sebastien Bourdeauducq
198985cd6d
runtime: check PL DONE
2020-05-04 22:27:15 +08:00
Sebastien Bourdeauducq
07efdc6799
szl: cleanup
2020-05-04 22:17:59 +08:00
Sebastien Bourdeauducq
cbd591b86b
update dependencies
2020-05-03 09:59:24 +08:00
Sebastien Bourdeauducq
b7695d9313
typo
2020-05-02 11:50:29 +08:00
Sebastien Bourdeauducq
bca2b3fe50
comms: add comment about closed connection handling
2020-05-02 11:44:10 +08:00
Sebastien Bourdeauducq
90a19f9986
Merge branch 'master' of git.m-labs.hk:M-Labs/artiq-zynq
2020-05-01 10:08:17 +08:00
Sebastien Bourdeauducq
2439ba1f88
add impure incremental build process, document
2020-05-01 10:07:38 +08:00