Commit Graph

220 Commits

Author SHA1 Message Date
Matt Harvey
e4973577ec Adds kata Makefile step call OpenTitan regtool
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
2022-10-06 17:57:47 +00:00
June Tate-Gans
a01ee363ea rust: Remove a rogue duplicate rust.cmake file
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
2022-10-06 17:57:38 +00:00
Austin Appleby
622727086d Disable BBL in easy-settings
Change-Id: I1c2524968246bae00009092a5cedcedd962e66c9
GitOrigin-RevId: d4f6df0a8405a61251a93781d0fc4e67934f8920
2022-10-06 17:57:24 +00:00
Austin Appleby
ff08436a47 Add .gitignore to kata/projects/processmanager
Change-Id: I472245c8dc984f6db18fe24e662fcd08af4cc11d
GitOrigin-RevId: 53774f360e4b450f9544f2561a2047ba64345f01
2022-10-06 17:57:06 +00:00
June Tate-Gans
af63371fd9 Merge "rust-toolchain: Use riscv32imac and better handle build tweaks"
GitOrigin-RevId: 50e4058c935cf522124ce2983d36ca4013ce1940
2022-10-06 17:56:54 +00:00
June Tate-Gans
83d2875eb2 rust: Add in link-time optimization by default
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
2022-10-06 17:56:41 +00:00
Sam Leffler
e35c69ae4c Add initial ProcessMaanger interfaces.
- 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
2022-10-06 17:56:26 +00:00
Sam Leffler
c61d7890a7 Add SeL4Debug component to expose sel4 debug syscalls.
- 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
2022-10-06 17:56:12 +00:00
Austin Appleby
d602aa29d5 Merge "Remove the Kanji prompt character and add a printf when the repl starts up so we can see it in the Renode log."
GitOrigin-RevId: cd401621c05352bbdd10a70fbf788c58bc2efa10
2022-10-06 17:56:01 +00:00
Sam Leffler
a859632f85 Fix RustAddLibrary for multiple components.
Change-Id: I74a5a5a72817559766d65a485493474de5e8487c
GitOrigin-RevId: 4116bed377cf8d851d8a81e250caf236f330f1f4
2022-10-06 17:55:51 +00:00
Sam Leffler
16d547d52d kata-uart-client: use correct type for dataports
Change-Id: I07224179314dbecc35f343e8e87b77886aa2108b
GitOrigin-RevId: 89e342f858475c1ab5695621ab1f46e70e6d45ca
2022-10-06 17:55:42 +00:00
Adam Jesionowski
90e9cb95f9 Start ML Coordinator.
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
2022-10-06 17:55:30 +00:00
Austin Appleby
1c107b73e5 Merge "Move sel4 uart to match hw team's memory map (uart3)"
GitOrigin-RevId: e917b6a81c73f04b0520a9d7e9029415387c2c5e
2022-10-06 17:55:22 +00:00
Matt Harvey
16fda25099 Switches platform from spike to sparrow
Change-Id: Ie086289080bb94e6cf3bc0e28a101d2e0db2000c
GitOrigin-RevId: 6de1d47766d977281f5cab7671637c31b2220d52
2022-10-06 17:55:14 +00:00
Matt Harvey
e45abd8d3e Merge "Adds kata settings for seL4 kernel internal logger and bbl enablement"
GitOrigin-RevId: 8d5a288654f428138bdd6ba0074aa74327773c86
2022-10-06 17:55:01 +00:00
Adam Jesionowski
7e8c603b43 Start ML Coordinator.
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
2022-10-06 17:54:51 +00:00
June Tate-Gans
31401be481 style: Put cmake keywords on the same line as their parameters
Change-Id: I8e6ecfa1e99e4f880f88928f561fc060d53dca0d
GitOrigin-RevId: 229aa4fddf2dc4ba496e8870d1b4f5f6ee919f35
2022-10-06 17:54:42 +00:00
June Tate-Gans
fa1c3cecd6 shell: Update prompt with Kanji character for kata
Change-Id: If76d7a83798f49e463cb7af24ee5e14320b0aed0
GitOrigin-RevId: dc142976c68a9d7af3027de8ff2d6cb566812c83
2022-10-06 17:54:31 +00:00
Matt Harvey
fd2bebb81f Replaces processmanager with a one-app CAmkES assembly for the entire Kata OS
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
2022-10-06 17:54:23 +00:00
June Tate-Gans
5007f2c48c processmanager: Initial project skeleton
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
2022-10-06 17:54:12 +00:00