To write s3L4 for OpenTitan matcha, we want to depend on generated C
header files for definitions of MMIO sizes, offsets, masks, bit
meanings, etc.
To make these header files available to the seL4 build, this change adds
a make prerequisite for the kata build to run regtool.py with output
going to out/kata/opentitan-gen.
In CAmkES CMake files, the INCLUDE attribute can be used to add to the
include path, and this change also does that for the UartDriver
component. (The implementation will be left for a later change, since an
initial straighforwrd attempt saw writes still going to the 16550.)
Change-Id: If7e7e206ddcf625b8f5a45dc6486693cab7c51e2
GitOrigin-RevId: 018b9ddf9cde2389fb9f39553095d955705cb7a0
This only serves to confuse the cmake build tools into using the wrong
definitions, instead of the ones used in apps/system/rust.cmake.
Change-Id: Iaed204a8f8a9ae5fc2233dc4f9147ba6cf6a9a25
GitOrigin-RevId: 290682ee7b8eb7ad00a52f72c0f6e3be08e88673
This turns on "fat" LTO for builds even in dev mode so that we can keep our
binaries size down. It's not a total solution, but eliminates the "kitchen sink"
effect that building Rust static libs has, allowing us to keep our dependencies
down a bit.
Change-Id: I5fb071d7cdb7b9964b2af25d8137944593bd065c
GitOrigin-RevId: fe7f105307e042c211be5d031870d6161d71e27c
- new ProcessManager component (aka kata-process-manager)
NB: interfaces/ProcessManagerBindings.h is manually generated by cbindgen
for the moment; e.g.
cargo install cbindgen;
cd components/ProcessManager; cbindgen -c cbindgen.toml \
-o ../../interfaces/ProcessManagerBindings.h kata-proc-common
Change-Id: I153c6b193c6ba8e376b87a2563dc8543753f0b42
GitOrigin-RevId: 18c354f14cbec6ce01c020136fe9aefd88248ee9
- add a SeL4Debug component that wraps seL4DebugPutString and seL4DumpScheduler
system calls that are marked static inline (so not callable from rust)
- connect seL4Debug to the DebugConsole and add a "ps" command to the shell
that uses sel4DumpScheduler to print the tcb's on the console; e.g.
KATA_PROMPT> ps
Dumping all tcbs!
Name State IP Prio Core
--------------------------------------------------------------------------------------
sel4debug:sel4debug running 0x1017e 254 0
sel4debug:fault_handler blocked on recv 0x1046e 255 0
sel4debug:control blocked on recv 0x1046e 254 0
drv:uart blocked on recv 0x11dc4 254 0
drv:fault_handler blocked on recv 0x105d4 255 0
drv:control blocked on recv 0x105d4 254 0
debug_console:fault_handler blocked on recv 0x10840 255 0
debug_console:control blocked on reply 0x12808 254 0
idle_thread idle 0 0 0
rootserver inactive 0x10558 255 0
Change-Id: I48496ec0002e3307aaeb5c779319d4beb87ae56b
GitOrigin-RevId: 8665f609bdb7efd3b814b4f40abf08c5dd1e863d
ML Coordinator needs to be able to load and unload models, which means verifying
and creating any necessary transfer buffers and other data structures.
First draft just keeps track of model references.
ML Coordinator needs to be able to execute models. Actual execution is
abstracted away from ExecutiveInterface.
Deletes fake_executive and moves to this file in the test section, as
this is currently the only user.
Change-Id: Ib2de5bc5761ccffe244e0bc0a02c6d2805cc00c6
GitOrigin-RevId: dc4de0085b36094ec6ac10c3a7f4fe0c8dff1627
Create some common data types and a fake executive. The fake executive
can either return an error (emulating execution failing) or a slice of
memory (emulating a correct result).
Change-Id: Id57f3ea3ee8db64b8921bf7446bcdf143d0daf49
GitOrigin-RevId: e266431d90864c0cd15567221acfa28a02c85a63
This also adds a skeleton for the DebugConsole CLI taking IO from a UART
via some Rust wrapper functions, also defined in this change
(kata-uart-client).
Change-Id: I56856c14992010483da58c45f6550c0a4c9987b0
GitOrigin-RevId: e1b2d65ed3a7f627a9f7377caa407151fc943864
This should give us a root task that simply says "Hello, World!" on start. This
is just a stand-in for what will come next.
Change-Id: I402c311d1c89a047dfaa12ab64d880bb1dea00b7
GitOrigin-RevId: aeeb8bc1f8175888d272ff7283df244fb94cc888