Commit graph

409 commits

Author SHA1 Message Date
Sean Cross
ffcccab513 emulation: add ticktimer and serial uarts
This updates renode's emulation to match the current system design.

Signed-off-by: Sean Cross <sean@xobs.io>
2020-10-15 11:56:41 +08:00
bunnie
9ee43a7acc some more attempts to get log strings working... 2020-10-15 00:01:02 +08:00
bunnie
c8a2f34998 add debug output to log_string 2020-10-14 23:15:33 +08:00
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
4ca97125ad xous: hosted: retry when WouldBlock is received
Retry a message when we receive a WouldBlock response.

Signed-off-by: Sean Cross <sean@xobs.io>
2020-10-14 19:26:33 +08:00
Sean Cross
2b66378556 xous: definitions: add WouldBlock
This opcode indicates a command would block and should be retried.

Signed-off-by: Sean Cross <sean@xobs.io>
2020-10-14 19:26:13 +08:00
Sean Cross
30ac202e65 Merge branch 'master' of github.com:betrusted-io/xous-core into master 2020-10-14 19:25:02 +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
88f0ad0056 update example soc.svd so CI doesn't break 2020-10-14 19:03:00 +08:00
bunnie
5cf8e9e3bc Merge remote-tracking branch 'origin/master' into ticktimer 2020-10-14 15:30:47 +08:00
Sean Cross
3bb9b55bb4 graphics-server: use send_message() instead of try_send_message()
This function is now implemented, and should give us better performance.

Signed-off-by: Sean Cross <sean@xobs.io>
2020-10-14 11:18:31 +08:00
Sean Cross
ac321be7e9 xous: implement send_message()
This fixes `send_message()` so it works as expected.

Signed-off-by: Sean Cross <sean@xobs.io>
2020-10-14 11:18:02 +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
Sean Cross
a0a90cc3ab emulation: rename example.svd to renode.svd
Signed-off-by: Sean Cross <sean@xobs.io>
2020-10-14 10:04:20 +08:00
bunnie
49f15e547f upgrade to work with multi-UART API 2020-10-14 04:35:15 +08:00
bunnie
5b51048774 add debugprint template to other servers 2020-10-14 03:41:53 +08:00
bunnie
1d23d2c1f7 unify debug.rs and move to UTRA format 2020-10-14 03:40:44 +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
30042b460c no need to mutably borrow for reads 2020-10-14 03:04:09 +08:00
bunnie
523d18f5ab refactor "examples" -> "services" 2020-10-14 02:04:21 +08:00
bunnie
a8ea46f6cd forgot to add debug.rs for graphics-server 2020-10-14 01:56:40 +08:00
bunnie
f863cb55cd update logo screen 2020-10-14 01:56:31 +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
6e6a8a4b08 debugging ticktimer 2020-10-13 22:49:12 +08:00
bunnie
1bb674f6b5 fix dangling hard-coded references 2020-10-13 16:15:41 +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
Sean Cross
a2ede7adf6 utralib: fix build dependency on svd file
Previously, the svd file was treated as an environment variable to
watch. Naturally this never changed, so an updated svd file never
triggered a rebuild.

Signed-off-by: Sean Cross <sean@xobs.io>
2020-10-13 14:18:00 +08:00
Sean Cross
bb0db65e58 utralib: fix build dependency on svd file
Previously, the svd file was treated as an environment variable to
watch. Naturally this never changed, so an updated svd file never
triggered a rebuild.

Signed-off-by: Sean Cross <sean@xobs.io>
2020-10-13 08:32:39 +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
10aacd76c4 move to utra 2020-10-13 04:38:21 +08:00
bunnie
d5668be9b6 Merge branch 'master' of https://github.com/betrusted-io/xous-core into ticktimer 2020-10-13 04:15:01 +08:00
Sean Cross
5e4c702c02 xtask: fix renode build
This properly sets the environment variable required for UTRA.

Signed-off-by: Sean Cross <sean@xobs.io>
2020-10-12 22:25:55 +08:00
bunnie
98f648f30f attempt to add a ticktimer server 2020-10-12 19:08:16 +08:00
bunnie
2fdc83b588 convert to UTRA abstraction 2020-10-12 17:26:34 +08:00
bunnie
fc02a3e4e1 add 32-bit field width option 2020-10-12 16:54:03 +08:00
bunnie
d36a2f2327 tweak API for better/unambiguous path resolution in page allocations 2020-10-12 04:12:21 +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
bunnie
cb6fcb60e8 add doc pointer 2020-10-12 03:25:11 +08:00