Commit Graph

195 Commits

Author SHA1 Message Date
caef2a9f84 runtime/panic: prevent nested panic and added core ID in panic msg. 2020-07-16 17:11:35 +08:00
16158acfa9 analyzer: close connection gracefully 2020-07-16 17:10:24 +08:00
84630d66e3 rpc: added #[repr(C)] for structs. 2020-07-16 15:48:17 +08:00
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
2e10922715 analyzer: implement firmware part 2020-07-16 11:47:55 +08:00
b62fbce826 mgmt: log incoming connection 2020-07-16 11:36:26 +08:00
92405ffe91 logger: changed from RefCell to Mutex. 2020-07-15 17:04:16 +08:00
2568d62865 mgmt: fixed pull log 2020-07-15 16:05:00 +08:00
8e3574080c core1: added cache flush and barriers. 2020-07-14 10:53:35 +08:00
fa2d71615a report async RTIO errors 2020-07-13 16:06:05 +08:00
b42ab0634b complete RTIO exceptions 2020-07-13 15:47:34 +08:00
62f39e2c08 mgmt: Implemented network log access. 2020-07-13 15:15:06 +08:00
855b26aa19 Logger: ported log_buffer. 2020-07-13 14:59:56 +08:00
7aec419ed6 kernel: added core1 instruction cache flush 2020-07-10 17:21:55 +08:00
68d27ca2ee comms: removed core1 restart 2020-07-10 17:21:55 +08:00
407e18a6a0 fix typos 2020-07-10 16:36:45 +08:00
2d58193930 Panic: single line backtrace for addr2line. 2020-07-10 12:26:28 +08:00
2c1773b91b kernel: refactor main_core1 into KernelImage 2020-07-08 23:49:43 +02:00
b3d4590eec kernel: split into {api,control,core1,rpc} 2020-07-08 23:49:32 +02:00
bd7d58e239 add RTIO PLL and clock source selection 2020-07-08 19:58:13 +08:00
6454315cd2 config: refactor and share 2020-07-08 19:24:26 +08:00
e263814546 Kernel: Added startup kernel 2020-07-08 15:54:50 +08:00
a8de572014 set up PL clocks 2020-07-07 19:40:32 +08:00
7bfe882710 eh_artiq: reduce verbosity 2020-07-07 17:21:28 +08:00
c071507ff8 RTIO: implemented exceptions 2020-07-07 16:26:33 +08:00
f1750cf8cd Kernel: Fixed use-after-free 2020-07-07 15:51:12 +08:00
0f797284e2 SdReader: fixed write cache bug. 2020-07-07 14:02:13 +08:00
0119022b2c remove compiler warning 2020-07-06 21:55:30 +08:00
de2c2af523 use new exception vectors 2020-07-06 21:16:32 +08:00
8c0b7cdcf2 runtime: adjust stack and heap sizes 2020-07-06 20:48:22 +08:00
7661b2a288 remove unused import 2020-07-06 20:41:24 +08:00
c59772dca3 Exception handling: Implemented RPC exception. 2020-07-06 15:34:49 +08:00
f895773535 runtime: do not use slcr soft_reset in panic 2020-07-06 13:07:52 +08:00
33d12801b7 runtime: use network addresses from config 2020-07-06 12:59:51 +08:00
bbe6812792 add network address config code 2020-07-06 12:04:22 +08:00
e207c073ee config: remove unnecessary mut 2020-07-06 12:04:22 +08:00
0c1de42547 use simplified ps7_init 2020-07-06 00:54:44 +08:00
3bd4643009 use fpu_enable from zc706 2020-07-06 00:18:28 +08:00
de8da59e56 adjust logging levels 2020-07-05 23:46:23 +08:00
60d42b1aaa remove duplicated write_chunk function 2020-07-05 17:13:14 +08:00
e65d4e0e84 Kernel: implemented KernelException 2020-07-03 17:21:42 +08:00
f3c3bd7384 Backtrace: panic handler with proper backtrace. 2020-07-02 13:12:12 +08:00
3f2024e4e0 runtime: Updated dependency to disable default panic handler 2020-07-02 13:08:18 +08:00
eb750eb1f0 Exception handling: patched exception handling for ARTIQ. 2020-07-02 10:13:42 +08:00
26ac3194d1 Exception handling: copied eh_artiq from current artiq firmware. 2020-07-02 10:08:16 +08:00
0a35f68562 Added libpanic_unwind/dwarf from rustc as libdwarf. 2020-07-02 09:51:47 +08:00
6be44c3483 Libunwind: build libunwind with rust bindings 2020-07-02 09:51:44 +08:00
9282dcffdb Dyld: provides unwind section for libunwind 2020-07-02 09:50:53 +08:00
29dd311c0f Runtime config: fixed warning 2020-06-29 10:05:15 +08:00
507edb5a78 make config demo errors non-fatal 2020-06-25 11:27:50 +08:00
64cdf0ade3 sd_reader: use const for magic numbers 2020-06-18 23:56:32 +02:00
d9bd42389f kernel: flush now write-buffered dcache of image before execution 2020-06-18 20:14:02 +02:00
6608c16f46 Config: Renamed ConfigNotFound into KeyNotFoundError. 2020-06-18 12:05:24 +08:00
f43ad05be5 Testing for config. 2020-06-18 11:33:52 +08:00
a55a6291a4 SD reader: optimized stack and binary size 2020-06-18 11:33:18 +08:00
2b1b0dc49f Load PL: simplify logic by using fatfs find_file directly. 2020-06-18 11:32:23 +08:00
228c0c813d SD reader: changed from &mut to owning. 2020-06-18 11:31:46 +08:00
f7bb339275 Config: implemented config struct. 2020-06-18 11:29:33 +08:00
0dc0bb391d
add support for loading bitstream from bootimage. 2020-06-16 17:45:54 +08:00
e4b17f9473 Fixed incorrect byte_addr after multiple block read... 2020-06-15 15:12:22 +08:00
da6bda9a06 add config skeleton 2020-06-13 16:44:54 +08:00
f52f10abc2 remove unnecessary dereferencing 2020-06-13 16:43:32 +08:00
1138db34a2 add SD card FAT filesystem interface 2020-06-13 15:33:28 +08:00
e77cb5de7e fix comment in previous commit 2020-06-13 15:27:51 +08:00
e6b8bf5481 provide many move __aeabi_* calls 2020-06-11 22:49:52 +02:00
dc78868109 update dependencies and add fatfs 2020-06-11 17:36:23 +08:00
81b8fc8916 implement attribute writeback 2020-06-10 17:01:17 +08:00
bc81fa2e48 handle recursive RPC return values 2020-06-09 13:03:08 +08:00
7387e42306 provide __aeabi_l2d 2020-06-09 12:57:13 +08:00
b16ec2c6a8 provide mockups for all exception functions 2020-06-09 12:56:58 +08:00
12c2d658f3 tune heap/stack sizes 2020-06-09 12:56:18 +08:00
4d03ecc187 decode RPC exception 2020-06-08 18:32:44 +08:00
bdf0831eb2 style 2020-06-08 18:16:38 +08:00
b1161a0f71 process RPC replies (WIP) 2020-06-08 13:11:09 +08:00
06915ec25d rpc: make alloc async 2020-06-07 21:47:36 +08:00
7df6ab2149 rpc: use async-recursion 2020-06-07 21:30:33 +08:00
f0588c49ed rpc: make receive async 2020-06-07 20:24:41 +08:00
ef4bdbb668 rpc: enable logging 2020-06-07 20:23:43 +08:00
4b8bbdc3dc send RPC requests to host 2020-06-07 15:13:20 +08:00
1f23a1b86c enable FPU on Core1 2020-06-07 15:12:34 +08:00
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
a915ed172a send RPC requests to comms CPU, handle kernel termination 2020-06-05 11:48:34 +08:00
8e68e65ca7 remove dead code 2020-06-05 11:47:36 +08:00
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
9c0cf7e84c remove unneeded import 2020-06-03 11:17:37 +08:00
6454f994af add libio from ARTIQ 2020-06-03 11:17:28 +08:00
cb24b82e68 rpc: strings 2020-06-01 18:21:04 +08:00
7aa9a95c21 add RPC protocol module (WIP) 2020-06-01 18:02:21 +08:00
4464b85ab3 move build artifacts out of tree 2020-05-07 13:52:40 +08:00
47261a1d84 update comment/message 2020-05-07 12:43:53 +08:00
90faeb6fa2 use new core1 startup mechanism 2020-05-06 22:16:34 +08:00
198985cd6d runtime: check PL DONE 2020-05-04 22:27:15 +08:00
b7695d9313 typo 2020-05-02 11:50:29 +08:00
bca2b3fe50 comms: add comment about closed connection handling 2020-05-02 11:44:10 +08:00
2439ba1f88 add impure incremental build process, document 2020-05-01 10:07:38 +08:00