Precursor

Mobile, Open Hardware, RISC-V System-on-Chip (SoC) Development Kit

Dec 28, 2023

Project update 38 of 39

Xous v.0.9.15 release is now available

by bunnie

The v.0.9.15 release is now available. Here’re the highlights:

Xous Upstreamed into Rust

Xous has been further integrated into upstream Rust with Rust 1.74. This means that Xous is using mostly code shared with other Rust std targets to implement its std library; previously, a number of implementation specific patches were employed. This means that Xous’ std will more seamlessly benefit from bug fixes and improvements in mainline Rust’s std library.

@xobs made a huge push to improve and stabilize a number of key std features as part of this, including:

Updated Network Stack

smoltcp has been upgraded to its latest release, v0.11.0. This fixes a number of latent bugs in the network stack, such as #210 and #407. However, this required a fairly major overhaul to the network stack. We now use an mpsc::channel primitive to implement the wait/poll loop, which should make the network stack more efficient. However, it also uncovered a number of subtle errors in our mpsc and thread parking implementation.

We think most of these have been ironed out in this release, but please report network stack crashes, particularly ones where the network stack seems to go completely unresponsive (but otherwise the OS seems to be working fine).

mtxchat Project Kickoff

@nohj has kicked off an initiative to create a UI framework for chat clients on Precursor, which can eventually be used to wrap protocols such as Signal or Matrix. We’re looking for developers to help with refining the UI framework. See our project tracker for a detailed list of issues and discussions. Comments and pull requests welcome!

Other Fixes and Updates

Policy Changes

We are no longer updating the SOC image on all betrusted-soc commits. This is because there have been no changes to the design recently.

Instead, all of the recent commits have been fixes for breaking changes related to CI tooling on gateware libraries that have no actual impact on the design itself. A typical example is a breaking change in Rust itself forcing us to update a Rust testbench. This kind of change has no impact on the actual logic in the SOC, but is necessary to keep our CI infrastructure operating.

Updating the SOC incurs a non-zero risk of data loss or other severe complications. Thus, as a matter of policy we are no longer forcing users to update their SOC designs for the sake of capturing a new git hash and version number.

Thus, after updating, running ver soc will return a version of v0.9.14. This is deliberate, and it will stay at this version until a meaningful design change has happened that is worth the risk of an update.

Happy hacking!


Sign up to receive future updates for Precursor.

Subscribe to the Crowd Supply newsletter, highlighting the latest creators and projects