Commit graph

75 commits

Author SHA1 Message Date
bunnie
010856406d fix permissions 2021-10-27 23:06:13 +08:00
bunnie
3a4bbdd71a fix permissions. windows likes to make all files executable! world writeable! 2021-10-23 18:37:39 +08:00
bunnie
dc527a3619 Rust 1.56 results in a bigger loader. Presumably because "optimization".
This causes the font maps to shift down. Allocate some "room to grow"
as Rust gets more "optimal".
2021-10-23 18:36:31 +08:00
bunnie
16fdd25839 fix new compiler warnings since rust 1.55 re: workspace issues 2021-09-10 22:54:01 +08:00
bunnie
e2ce3cad2c make sure that the power states get set correctly early in the resume process 2021-08-27 15:47:27 +08:00
bunnie
98afa19264 fix kernel uart going dead after suspend/resume 2021-08-24 03:46:02 +08:00
bunnie
abd8eadfd8 modify the console behavior to better capture panics on resume
switches to kernel console on suspend, keeps it in kernel
console on resume for a few hundred ms before switching back
to our original setting
2021-08-22 14:28:06 +08:00
bunnie
c0ce66ee51 fix permissions. windows is sort of stupid and makes everything +x 2021-08-19 23:34:29 +08:00
Sean Cross
f5de6551bc loader: cargo: load packages that work with xous target
Load versions of the dalek crates that support the xous target.

Signed-off-by: Sean Cross <sean@xobs.io>
2021-08-18 18:19:41 +08:00
Sean Cross
c9c02b5d93 loader: initial riscv32imac-unknown-xous compat
Initial changes required to get the loader building for the
`riscv32imac-unknown-xous-elf` target.

Signed-off-by: Sean Cross <sean@xobs.io>
2021-08-18 18:18:56 +08:00
Sean Cross
f952d0d9fe loader: cargo: add support for -xous- target_os
Add link commands to the cargo config so that the loader can be built
for the `riscv32imac-unknown-xous-elf` target.

Signed-off-by: Sean Cross <sean@xobs.io>
2021-08-18 18:17:53 +08:00
Sean Cross
0c372263ff loader: mark sections as +X
It is unclear why this is required. More investigation
is needed.

Signed-off-by: Sean Cross <sean@xobs.io>
2021-08-15 21:59:19 +08:00
Sean Cross
4700275b93 loader: handle sections on page boundaries
Handle a section that ends exactly at a page boundary.

Signed-off-by: Sean Cross <sean@xobs.io>
2021-08-15 21:54:59 +08:00
bunnie
a59e4f995c initial take at converting loader to do fallback instead of fail-hard 2021-08-12 03:48:11 +08:00
Sean Cross
6d7660b76a loader: debug: fix minor clippy warning
Signed-off-by: Sean Cross <sean@xobs.io>
2021-08-06 11:55:56 +08:00
Sean Cross
f7f7ac2ee0 loader: add small comment
Signed-off-by: Sean Cross <sean@xobs.io>
2021-08-04 12:50:20 +08:00
Sean Cross
c5445da5d2 loader: only pre-allocate the first stack page
For each program, only allocate the first stack page. This will ensure
we don't use too much stack.

Signed-off-by: Sean Cross <sean@xobs.io>
2021-08-04 12:48:14 +08:00
Sean Cross
e93929e04b loader: use vendered version of utralib
By vendoring this package, we can avoid causing a rebuild unnecessarily.

This will be removed when Rust 1.55 is released and we can bring the
`loader` package back into the main workspace.

Signed-off-by: Sean Cross <sean@xobs.io>
2021-08-04 12:20:05 +08:00
bunnie
4c777976ac clear RAM on a cold boot
since the RAM is battery backed and persistent, it's probably
a good idea just to zero-ize it before using it on a cold boot.
2021-07-22 03:03:27 +08:00
bunnie
78394b869a Merge branch 'main' of github.com:betrusted-io/xous-core into main 2021-07-13 22:42:57 +08:00
bunnie
b8b034086c actually use the curve25519 engine in the loader
forgot to apply a patch.crates-io in the Cargo.toml file
for the loader, so we were using u32 software backend emulation.
2021-07-13 22:40:57 +08:00
Sean Cross
7c0e6ba81d loader: print an error on invalid public key
Instead of silently panicking, print an error to the screen and /then/
panic.

Signed-off-by: Sean Cross <sean@xobs.io>
2021-07-13 20:07:11 +08:00
bunnie
a4f8346c34 reflect the latest fixes to the secure boot process
also patch up some issues with sha512 reset and loose
ends on docs and updates
2021-07-13 00:46:31 +08:00
bunnie
5d62af49a5 simple signature checks in the bootloader now
checks xous.img as a single blob before accepting it.
2021-07-12 17:16:22 +08:00
bunnie
2b19f31da9 set the stage for simple signature validation on the kernel 2021-07-12 02:26:50 +08:00
bunnie
84a2e9f768 fix status bar so that it redraws out of suspend/resume
the bootloader modifies the screen, so all elements must
be redrawn regardless of the pervious state change!
2021-07-11 18:47:19 +08:00
bunnie
8007eabd54 Merge branch 'main' of github.com:betrusted-io/xous-core into main 2021-07-11 04:15:26 +08:00
bunnie
1949c1bbc9 a semblance of sanity, finally 2021-07-09 23:01:50 +08:00
Sean Cross
d96b6c15c8 loader: ensure stack is 16-byte aligned
The stack must be 16-byte aligned in order for `u32` to work properly,
as the compiler assumes these values are aligned.

Signed-off-by: Sean Cross <sean@xobs.io>
2021-07-07 14:32:08 +08:00
bunnie
6c697de512 add l2 cache support (suspend/resume flushing)
also noted some performance benchmark improvements
2021-07-05 17:05:10 +08:00
bunnie
a70b858812 convert to using the urandom interface 2021-06-11 16:29:25 +08:00
Sean Cross
ff46015127 loader: increase stack size to main process
The graphics server has been observed to explode stack. This increases
the start size of the stack to prevent this from happening.

Signed-off-by: Sean Cross <sean@xobs.io>
2021-05-10 15:08:46 +08:00
Sean Cross
e43f333faa loader: don't map the stack into the kernel
This prevents the stack from getting claimed by the kernel, or handed
out to another process.

Signed-off-by: Sean Cross <sean@xobs.io>
2021-05-10 14:37:33 +08:00
bunnie
46fe3885dc cleanup more turds left over during the bringup of suspend/resume 2021-05-01 00:35:32 +08:00
bunnie
260b154741 clean up some boot process holdovers 2021-04-30 23:28:31 +08:00
bunnie
640ddb48e8 suspend/resume now works to hardware 2021-04-30 19:29:36 +08:00
bunnie
7053c2b7c6 able to detect the clean suspend, now figuring out how to resume 2021-04-30 05:00:03 +08:00
bunnie
0e2d57c9fb retrofit the kernel and loader to handle resume
and now the even harder debuggening begins...zomg o_O
2021-04-30 01:55:38 +08:00
bunnie
bbcf698ff3 flesh out a simple touch-and-go suspend/resume demo loop
now the debuggening begins. lord help us.
2021-04-29 02:56:53 +08:00
bunnie
805d7c79a2 add some preliminary bits for the loader to detect suspend/resume 2021-04-29 00:22:38 +08:00
bunnie
f76358e716 Merge branch 'bunnie-dev' 2021-04-27 18:55:57 +08:00
bunnie
d2e9d35d37 modify loader to block out suspend resume pages per Xobs review 2021-04-27 18:47:55 +08:00
bunnie
8f679ce41f revert the loader assembly artifacts 2021-04-27 18:17:07 +08:00
bunnie
7f6abaea6a Revert "relocate top of kernel memory to save two pages for suspend/resume"
This reverts commit 36429de62f.

Turns out there is a better way to do this.
2021-04-27 18:16:33 +08:00
bunnie
07d6055b4e new loader artifacts, change +x mode on script 2021-04-27 03:52:34 +08:00
bunnie
36429de62f relocate top of kernel memory to save two pages for suspend/resume 2021-04-27 03:51:38 +08:00
bunnie
8ae1a7ff8c
Update README.md 2021-04-27 03:47:32 +08:00
bunnie
85211bb57d add susres server skeleton 2021-04-27 00:38:51 +08:00
Sean Cross
c5ca371e08 loader: fix debug warnings
These warnings appeared as part of a change in Rust 1.50.

Signed-off-by: Sean Cross <sean@xobs.io>
2021-04-12 17:15:52 +08:00
Sean Cross
8b06017c66 loader: fix double-allocation of memory regions
Due to an error in how small regions were loaded, memory was mapped to
the wrong offset. This didn't affect us for the most part, since these
small regions were mostly in the backtrace report which we don't usually
hit.

With this patch, we now can verify that processes are loaded correctly.
For example:

    (gdb) compare-sections
    Section .rodata, range 0x100e0 -- 0x13bdc: matched.
    Section .eh_frame, range 0x13bdc -- 0x15040: matched.
    Section .text, range 0x16040 -- 0x2dd6e: matched.
    Section .sdata, range 0x2ed70 -- 0x2ed78: matched.
    Section .data, range 0x2ed78 -- 0x2eda4: matched.
    (gdb)

Signed-off-by: Sean Cross <sean@xobs.io>
2021-04-12 17:15:44 +08:00