Commit graph

206 commits

Author SHA1 Message Date
bunnie
9a8c402cc2 add hosted mode bits back in 2020-10-14 23:04:54 +08:00
bunnie
6ff8c8518c Merge branch 'master' of github.com:betrusted-io/xous-core 2020-10-14 23:02:14 +08:00
bunnie
ac4d79ea68 logging server bringup 2020-10-14 23:01:57 +08:00
Sean Cross
797d622cc7 kernel: use connect() for some kernel tests
Now that `connect()` works, use that for some tests rather than
exclusively using `try_connect()`.

Signed-off-by: Sean Cross <sean@xobs.io>
2020-10-14 19:19:01 +08:00
Sean Cross
80a003c839 kernel: syscall: implement connect()
This implements the `connect()` syscall as a blocking version of
`try_connect()`.

Signed-off-by: Sean Cross <sean@xobs.io>
2020-10-14 19:18:16 +08:00
bunnie
5cf8e9e3bc Merge remote-tracking branch 'origin/master' into ticktimer 2020-10-14 15:30:47 +08:00
Sean Cross
54a8de2776 kernel: fix return_scalar and return_scalar2
These didn't correctly set the thread status in the server when
returning a value. Instead of marking a server as runnable, it remained
in an idle state.

This correctly sets the thread status in the server, and resumes the
client.

This has been tested in Renode as well as using `cargo test`.

Signed-off-by: Sean Cross <sean@xobs.io>
2020-10-14 11:16:21 +08:00
Sean Cross
ecd2d00f47 kernel: fix return_scalar2
This call did not work, because it wasn't properly returning control to
the parent process.

Signed-off-by: Sean Cross <sean@xobs.io>
2020-10-14 10:54:23 +08:00
Sean Cross
61fdd5be15 kernel: hosted: add current_tid() to Process
This allows us to mock the current TID for debugging purposes on hosted
environments.

Signed-off-by: Sean Cross <sean@xobs.io>
2020-10-14 10:54:19 +08:00
Sean Cross
e5100bcb33 kernel: syscall: implement SendMessage
SendMessage is a blocking version of TrySendMessage, except this call
will block if the server queue is full.

Signed-off-by: Sean Cross <sean@xobs.io>
2020-10-14 10:14:43 +08:00
Sean Cross
0c344efb60 kernel: syscall: move do_yield() to its own function
This will allow us to call `Yield` for other operations that need to be
blocking.

Signed-off-by: Sean Cross <sean@xobs.io>
2020-10-14 10:14:43 +08:00
Sean Cross
585e55e8b7 kernel: implement retry_instruction()
This function is used to decrement the program counter to re-run a given
instruction. This can be used as a cheap way to implement blocking
calls.

Signed-off-by: Sean Cross <sean@xobs.io>
2020-10-14 10:04:36 +08:00
bunnie
62b625ec60 convert kernel debug to utra 2020-10-14 03:04:33 +08:00
bunnie
67c49ddbce clean up a warning 2020-10-14 03:04:25 +08:00
bunnie
4d21f2d868 intermediate progress on debugging return messages 2020-10-14 01:28:10 +08:00
Sean Cross
84b39c931a kernel: services: switch address space prior to passing messages
Switch address spaces to pass messages to the new process, and switch
backafterwards.

Signed-off-by: Sean Cross <sean@xobs.io>
2020-10-13 22:56:04 +08:00
Sean Cross
39c7dced01 kernel: services: switch address space prior to passing messages
Switch address spaces to pass messages to the new process, and switch
backafterwards.

Signed-off-by: Sean Cross <sean@xobs.io>
2020-10-13 22:54:43 +08:00
Sean Cross
53f1b3c416 kernel: main: make utralib incusion conditional
Only include utralib when running on baremetal.

Signed-off-by: Sean Cross <sean@xobs.io>
2020-10-13 22:54:12 +08:00
bunnie
154384e3bb output hex for kernel debug
makes it much easier to read memory allocation requests
2020-10-13 16:15:15 +08:00
bunnie
cab4c7d4a9 fix more UTRA issues; migrate to dual-UART for kernel/console messages 2020-10-13 05:22:19 +08:00
bunnie
9a50de8b4e refactor: utra -> utralib naming
this cleans up some namespace issues when including
the utra crate which also refers to utra::generated::utra,
and there are CONST at the crate-level, and also functions
at the module-level which need disambiguation. By naming
the crate utra-lib this saves a bit of syntatic wrangling
at the top of every file.
2020-10-12 03:56:10 +08:00
Sean Cross
28f5f79b7d kernel: re-enable fat lto
Signed-off-by: Sean Cross <sean@xobs.io>
2020-10-11 09:15:49 +08:00
Sean Cross
fb027c569b kernel: lock: add new dependencies for utra
Signed-off-by: Sean Cross <sean@xobs.io>
2020-10-11 09:15:45 +08:00
Sean Cross
9140482a6b lock: add missing lockfiles
Signed-off-by: Sean Cross <sean@xobs.io>
2020-10-05 10:52:26 +08:00
Sean Cross
d0d687a239 utra: fix build on non-hardware release
This adds svd2utra, which enables building for non-embedded harware.

It also fixes some build issues, and paves the way for generating UTRA
at compile-time.

Signed-off-by: Sean Cross <sean@xobs.io>
2020-10-05 10:13:51 +08:00
Sean Cross
d4f0496371 kernel: remove unused debug data
Signed-off-by: Sean Cross <sean@xobs.io>
2020-10-04 19:08:29 +08:00
Sean Cross
8759f552f7 kernel: syscall: allow returning to the kernel
If nothing is running, don't crash when the timer hits.

Signed-off-by: Sean Cross <sean@xobs.io>
2020-10-04 18:28:58 +08:00
Sean Cross
fa23cfa88b kernel: services: update some debug comments
Signed-off-by: Sean Cross <sean@xobs.io>
2020-10-04 18:28:29 +08:00
Sean Cross
7843189c45 kernel: remove printing of "hello, world!"
Signed-off-by: Sean Cross <sean@xobs.io>
2020-10-04 18:28:02 +08:00
Sean Cross
a00151b4de kernel: use IRQ 0 for UART
Signed-off-by: Sean Cross <sean@xobs.io>
2020-10-04 18:27:49 +08:00
Sean Cross
5f4ee01a0d kernel: use fixed address for debug port
Don't use the hardware address, since it is not likely to be in
the universal address space.

Signed-off-by: Sean <xobs@ci.betrusted.io>
2020-10-04 18:13:58 +08:00
Sean
bbab52be7f kernel: flush MMU when we rotate the SATP value
Signed-off-by: Sean <xobs@ci.betrusted.io>
2020-10-04 18:12:27 +08:00
bunnie
711e5ea910 slot in utra references 2020-10-02 04:52:03 +08:00
bunnie
4cded404e3 fix offset of UART 2020-09-26 01:36:45 +08:00
bunnie
5deeebae3b the loader seems to be working now. 2020-09-26 00:03:46 +08:00
bunnie
44f1a6b307 Merge branch 'master' of https://github.com/betrusted-io/xous-core into dvt-hardware 2020-09-25 17:50:24 +08:00
bunnie
8cc85f4e11 mods for running on DVT hardware 2020-09-25 17:50:02 +08:00
Sean Cross
2575d13acd cargo: update lock file
Signed-off-by: Sean Cross <sean@xobs.io>
2020-09-23 10:59:38 +08:00
Sean Cross
e5583a7646 kernel: fix message sender parameter
The `sender` was, previously, somewhat mislabeled. It was a combination
of PID and TID, except when it wasn't.

Instead, make this value a combination of ConnectionID and queue index.
This makes it easier to reason about which connection we're responding
to.

Additionally, don't expose teh global Server Index Table to userspace
programs.

Signed-off-by: Sean Cross <sean@xobs.io>
2020-09-23 10:52:22 +08:00
Sean Cross
435612a370 kernel: syscall: use new is_blocking() call
This removes the need to manually specify whether a call is blocking.

Signed-off-by: Sean Cross <sean@xobs.io>
2020-09-22 22:14:03 +08:00
Sean Cross
43002b8627 kernel: add blocking scalars
Add a new type: BlockingScalar, that can be used to do blocking scalar
calls such as sleep().

Signed-off-by: Sean Cross <sean@xobs.io>
2020-09-22 22:05:18 +08:00
Sean Cross
6d931ccc33 kernel: irq: disable irqs during handler
This fixes issue #1, which correctly noted the comment was correct but
the code implementation was not correct.

Signed-off-by: Sean Cross <sean@xobs.io>
2020-09-22 21:13:56 +08:00
Sean
1b59719a74 kernel: hosted: support per-thread memory messages
Previously, each process could return one chunk of memory. With this
change, processes can now return one chunk of memory per thread. This
enables multiple threads to lend memory to a server.

Signed-off-by: Sean <xobs@ci.betrusted.io>
2020-09-03 13:20:16 +08:00
Sean
3e6d3904fb kernel: hosted: handle TrySendMessage the same as SendMessage
With the introduction of TrySendMessage, the kernel needs to know that
this data structure should be transmitted over the wire in the same
manner as SendMessage. Previously it was not special-casing this, which
resulted in memory errors.

Signed-off-by: Sean <xobs@ci.betrusted.io>
2020-09-03 13:17:01 +08:00
Sean
2dc0545eaa kernel: test: print informative error when kernel data changes
When the message coming in from the client to a server changes, print
an informative message rather than just "left != right".

Signed-off-by: Sean <xobs@ci.betrusted.io>
2020-09-03 13:13:44 +08:00
Sean Cross
77426aaf56 kernel: hosted: ignore errors from shutting down network socket
When running on Linux, attempting to shut down a network socket that
has already been closed results in an error. That is, if the client
disconnects, then the server will throw an error when it also attempts
to disconnect.

Ignore errors to `.shutdown()` to fix `cargo test` on Linux.

Signed-off-by: Sean Cross <sean@xobs.io>
2020-09-03 10:19:05 +08:00
Sean Cross
cd7f8f67fc kernel: rename Connect/SendMessage to TryConnect/TrySendMessage
Signed-off-by: Sean Cross <sean@xobs.io>
2020-08-30 17:39:29 +08:00
Sean Cross
ae6dda0ad3 kernel: fix tests after message body rename
The test suite hadn't been updated to work with the new naming
convention.

Signed-off-by: Sean Cross <sean@xobs.io>
2020-08-30 10:47:10 +08:00
Sean Cross
fbda077aff kernel: remove excess println() statements
Signed-off-by: Sean Cross <sean@xobs.io>
2020-08-30 10:46:48 +08:00
Sean Cross
96c5739cdd kernel: fix remaining warnings
This fixes all remaining warnings in the kernel. For now.

Signed-off-by: Sean Cross <sean@xobs.io>
2020-08-30 01:17:35 +08:00