Go to file
Matt Harvey 7363bd638c rz shell command
This change adds an "rz" command to the shell that calls a function
rz(). It switches the IO from the shell to a ZMODEM receiver that
produces a Rust upload object that collects the uploaded bytes and
computes a CRC32 checksum on the fly.

In a later change, we will retain the most recent payload in a
shell-owned object until it is consumed by an "install" command.

Limitations:

  * Sender hangup will cause the receiver to block forever and the
    prompt not to come back, since kata-uart-client does reads that
    block forever.
  * Logging must be set to a level higher than debug or messages from
    the zmodem crate itself corrupt the transfer.
  * The sender must rate limit to ~150 bytes/sec to avoid running
    too far ahead of the Renode UART, which drops bytes when the RX
    FIFO is full.
  * Uploading too big a payload will cause a kata_panic! unless the
    heap size is increased in kata-debug-console/src/run.rs

Demo:

KATA> loglevel error
ERROR
KATA> rz
**B0100000023be50
[Ctrl-C]

$ sz -O ~/random < /tmp/term | pv -L 150 > /tmp/term
Sending: random
Bytes Sent:  15360/  16384   BPS:26805    ETA 00:00   150 B 0:00:01 [ 146 B/s] [ <=>     Bytes Sent:  16384   BPS:144                                                            ]

Transfer complete
16.6KiB 0:01:53 [ 149 B/s] [               <=>                                          ]

$ stty sane -echo -icanon; socat - /tmp/term 2> /dev/null; stty sane;
size: 16384, crc32: 991b1d60
KATA>
[Ctrl-C]

$ crc32 ~/random
991b1d60

Change-Id: I53252b821a829a667a23a9fd072f71c6955fdc1a
GitOrigin-RevId: c818a35f186dcd8c083891bfaa84ad0a9f9fef7d
2022-10-06 18:14:21 +00:00
apps/system rz shell command 2022-10-06 18:14:21 +00:00
src processmanager: Initial project skeleton 2022-10-06 17:54:12 +00:00
.gitignore Add .gitignore to kata/projects/processmanager 2022-10-06 17:57:06 +00:00
CMakeLists.txt Replaces processmanager with a one-app CAmkES assembly for the entire Kata OS 2022-10-06 17:54:23 +00:00
easy-settings.cmake Disable BBL in easy-settings 2022-10-06 17:57:24 +00:00
README.md Replaces processmanager with a one-app CAmkES assembly for the entire Kata OS 2022-10-06 17:54:23 +00:00
settings.cmake Replaces processmanager with a one-app CAmkES assembly for the entire Kata OS 2022-10-06 17:54:23 +00:00

Kata OS

This is a CAmkES project that assembles the entire Kata OS. It exists outside the seL4 source trees, since it contains code not intended to go to upstream seL4.

This uses the standard CAmkES build system by symlinking CMakeLists.txt. It also symlinks settings.cmake, and so retains the notion of "apps," which enables the build system to switch which assembly it builds using the CAMKES_APP CMake cache value. Kata OS just has one app, system.