Name | Modified | Size | Downloads / Week |
---|---|---|---|
Parent folder | |||
README.md | 2025-01-06 | 95.0 kB | |
Tock 2.2 source code.tar.gz | 2025-01-06 | 12.2 MB | |
Tock 2.2 source code.zip | 2025-01-06 | 13.3 MB | |
Totals: 3 Items | 25.5 MB | 0 |
Tock 2.2
Tock 2.2 represents two years of Tock development since v2.1.1. This release contains almost 3900 commits made across 840 PRs by 90 contributors (of which 48 are new contributors!). It is the first Tock release that can compile on a stable Rust toolchain, and contains many other important fixes, new subsystems, new platforms, new drivers, and major refactors.
Backwards Compatibility
Tock 2.2 extends its system call interface through one new system call (Yield-WaitFor
), but retains backwards compatibility with Tock 2.1.1 for its core system call interface and all stabilized drivers.
In this release, we revised Tock's alarm system call driver implementation to predictably wrap its ticks
values at (2**32 - 1)
ticks, across all platforms. Before this change, hardware alarm implementations that were less than 32 bit wide would wrap before reaching (2**32 - 1)
ticks, which complicated correct alarm handling in userspace. In Tock 2.2, these alarm implementations are scaled to 32 bit, while also scaling their advertised frequency appropriately. While this change is non-breaking and compatible with the previous alarm implementation, it can expose such scaled alarms to userspace at significantly higher advertised frequency
values. Userspace alarm implementations that did not correctly handle such high frequencies may need to be fixed to support this new driver implementation.
Relevant PRs:
* [RFC] Yield-WaitFor syscall by @ppannuto in https://github.com/tock/tock/pull/3577 * kernel/hil/time,capsules/alarm: pad Ticks to 32 bit for predictable wrapping by @lschuermann in https://github.com/tock/tock/pull/3973 * capsules/alarm: left-justify 32 bit ticks, re-architect alarm, add unit tests by @lschuermann in https://github.com/tock/tock/pull/3975Security and arch
-crate Fixes
Tock 2.2 includes important and security-relevant fixes for its Cortex-M and RISC-V architecture support.
-
When switching between applications, the RISC-V PMP implementation did not correctly invalidate any additional memory protection regions that are not overwritten by the target app's PMP configuration. Under certain conditions this can allow an application to access private memory regions belonging to a different applications (such as when using IPC).
-
The Cortex-M (Armv7-M) and Cortex-M0/M0+ (Armv6-M) hard fault, interrupt and
svc
handlers contained a bug that could allow an application to execute inprivileged
mode after returning from the handler. This allows an application to execute code at kernel privileges and read / write arbitrary memory.
Relevant PRs:
* [RFC] Yield-WaitFor syscall by @ppannuto in https://github.com/tock/tock/pull/3577 * kernel/hil/time,capsules/alarm: pad Ticks to 32 bit for predictable wrapping by @lschuermann in https://github.com/tock/tock/pull/3973 * capsules/alarm: left-justify 32 bit ticks, re-architect alarm, add unit tests by @lschuermann in https://github.com/tock/tock/pull/3975Stable Rust Support
This release removes all nightly Rust features from all of Tock's core kernel crates (such as kernel
, arch/*
, and chips/*
). This allows Tock to be built on the Rust stable toolchain for the first time!
We demonstrate this by switching the hail
board to a stable toolchain in this release. We continue to compile other boards on the Rust nightly toolchain, as this enables some important code-size optimizations (such as by compiling our own, size-optimized core library).
Relevant PRs:
* [RFC] Yield-WaitFor syscall by @ppannuto in https://github.com/tock/tock/pull/3577 * kernel/hil/time,capsules/alarm: pad Ticks to 32 bit for predictable wrapping by @lschuermann in https://github.com/tock/tock/pull/3973 * capsules/alarm: left-justify 32 bit ticks, re-architect alarm, add unit tests by @lschuermann in https://github.com/tock/tock/pull/3975AppID
, Credentials and Storage Permissions
This Tock release revisits how applications are identified in the kernel, and introduces a set of mechanisms that allow developers to identify, verify, and restrict applications that are running on a Tock kernel. AppIDs are the core mechanism to enable this and identify an application contained in a userspace binary. AppIDs allow the kernel to apply security policies to applications as their code evolves and their binaries change. We specify AppIDs, Credentials and their interactions with process loading in a draft TRD.
Additionally, we introduce a mechanism to assign applications permissions to access some persistent storage (e.g., keys in a key value store). This mechanism interacts with AppIDs (ShortIDs) and is also specified in a a draft TRD.
Relevant PRs:
* Adding App IDs and userspace binary integrity to the Tock kernel by @phil-levis in https://github.com/tock/tock/pull/2809 * AppID/TBF: Add `ShortId` header by @bradjc in https://github.com/tock/tock/pull/4026 * HIL: Add Signature::verify with `const L:usize` and process checker for signatures by @bradjc in https://github.com/tock/tock/pull/3878 * TRD: Tock Storage Permissions by @bradjc in https://github.com/tock/tock/pull/4021 * Add support for ECDSA NIST P256 signature credentials by @alistair23 in https://github.com/tock/tock/pull/4165 * Storage Permissions: Implement to match TRD by @bradjc in https://github.com/tock/tock/pull/4031Major Refactors and Interface Changes
We implement a number of kernel-internal refactors and interface changes:
- System call drivers are now mandated to either return
Success
orFailure(ErrorCode::NODEVICE)
for acommand
system call with command number0
. Previously, some drivers used this command number to also convey additional information to userspace. This release does not change the interface of any stabilized drivers, which will be updated as part of Tock 3.0.
Relevant PRs:
* Syscall Spec: Allow Command 0 to return Success with value or lock it down by @ppannuto in https://github.com/tock/tock/pull/3626 * Update command 0 comments on stabilized userspace drivers by @hudson-ayers in https://github.com/tock/tock/pull/3402 * capsules: ensure driver existence check by @Samir-Rashid in https://github.com/tock/tock/pull/3613- Tock 2.2 introduces [a new policy to support external dependencies][external-deps] in the upstream Tock codebase. As part of this effort, we split up the existing, single
capsules
crate into multipe crates (such ascapsules-core
,capsules-extra
, andcapsules-system
) with different guarantees concerning stability and use of external dependencies. Thecore
capsules crate contains capsules deemed essential to most Tock systems, as well as virtualizers which enable a given single peripheral to be used by multiple clients. Other capsules have been moved to theextra
capsules crate. Thesystem
capsules crate contains components that extend the functionality of the Tock core kernel, while not requiringunsafe
.
Relevant PRs:
* doc: Add ExternalDependencies.md by @alistair23 in https://github.com/tock/tock/pull/3312 * capsules: split into `core/` and `extra/` (implementing [#3346]) by @lschuermann in https://github.com/tock/tock/pull/3396 * Create system capsules crate, move kernel implementations, update boards by @bradjc in https://github.com/tock/tock/pull/3992- Furthermore, the
DeferredCall
andDynamicDeferredCall
subsystems have been replaced with a more lightweight and unified deferred call infrastructure. This new approach has a smaller code size overhead and requires less setup boilerplate code thanDynamicDeferredCall
.
Relevant PR:
* Replace DeferredCall
and DynamicDeferredCall
with a more general-purpose implementation by @hudson-ayers in https://github.com/tock/tock/pull/3382
LeasableBuffer
has been renamed toSubSlice
and features a significantly improved API. Multiple subsystems have been ported to this new type.
Relevant PRs:
* kernel: LeasableBuffer: fix double slice end value by @bradjc in https://github.com/tock/tock/pull/3511 * kernel: leasablebuffer: add APIs by @bradjc in https://github.com/tock/tock/pull/3505 * Rename `LeasableBuffer` to `SubSlice` by @bradjc in https://github.com/tock/tock/pull/3519 * Switch SPI master HIL to leasable buffers instead of raw slices by @alevy in https://github.com/tock/tock/pull/4173 * ot: tests: switch to subslice by @bradjc in https://github.com/tock/tock/pull/3570 * ot: tests: LB->SS by @bradjc in https://github.com/tock/tock/pull/3573 * Screen: update HIL to simplify, format, and use SubSlice by @bradjc in https://github.com/tock/tock/pull/3792 * kernel: SubSlice: fix slice calculation by @bradjc in https://github.com/tock/tock/pull/3791- Tock 2.2 introduces "configuration boards": variants of in-tree board definition showcasing certain subsystems or peripherals. These boards (under
boards/configurations
) are implemented by converting some Tock boards into combined "lib + bin" crates and extending these boards.
Relevant PRs:
* boards: remove nrf52840dk demo by @bradjc in https://github.com/tock/tock/pull/3580 * Add Configuration Boards by @bradjc in https://github.com/tock/tock/pull/3873 * Add nRF52840DK-based Thread tutorial board definition by @lschuermann in https://github.com/tock/tock/pull/3979 * boards/nrf52840dk: split into lib+bin crates for configuration/tutorial boards by @lschuermann in https://github.com/tock/tock/pull/3981 * boards: add tutorial board for HOTP tutorial by @bradjc in https://github.com/tock/tock/pull/4027- Tock can now be built entirely using
cargo
and without its Makefiles. This change also simplifies downstream board definitions:
Relevant PR: * Migrate build to be entirely cargo-based, with make as integration tool by @bradjc in https://github.com/tock/tock/pull/4075
- A new
StreamingProcessSlice
helper provides a reusable data structure to convey a "stream" of data from capsures to userspace. This is used in Tock's new CAN driver, and is useful for ADC, networking, etc.
Relevant PR: * Migrate build to be entirely cargo-based, with make as integration tool by @bradjc in https://github.com/tock/tock/pull/4075
- Tock introduces a new interface for custom implementations of the userspace-syscall boundary to hook into the RISC-V trap handler, by specifying which registers are clobbered and providing a generic trampoline to jump to custom code on a trap.
Relevant PR: * arch/rv32i: separate kernel and app trap handlers by @lschuermann in https://github.com/tock/tock/pull/4009
New Boards
This release features support for 7 new boards in the upstream Tock codebase: * sma_q3 by @dcz-self in https://github.com/tock/tock/pull/3182 * particle_boron by @twilfredo in https://github.com/tock/tock/pull/3196 * BBC HiFive Inventor by @mateibarbu19 in https://github.com/tock/tock/pull/3225 * SparkFun LoRa Thing Plus by @alistair23 in https://github.com/tock/tock/pull/3273 * makepython-nrf52840 by @bradjc in https://github.com/tock/tock/pull/3817 * Nano33BLE Sense Rev2 by @TheButterMineCutter in https://github.com/tock/tock/pull/3717 * VeeR EL2 simulation target by @wsipak in https://github.com/tock/tock/pull/4118
New HILs, Drivers and Features
Tock 2.2 features 6 new HILs:
* CAN bus by @teonaseverin in https://github.com/tock/tock/pull/3301
* Buzzer
by @TeodoraMiu in https://github.com/tock/tock/pull/3084
* DateTime
by @Remus7 in https://github.com/tock/tock/pull/3559
* CycleCounter
by @codingHahn and @hudson-ayers in https://github.com/tock/tock/pull/3934
* public_key_crypto/SignatureVerify
by @bradjc in https://github.com/tock/tock/pull/3878
* Servo
by @inesmaria08 in https://github.com/tock/tock/pull/4126
An additional 40 PRs added support for various hardware peripherals, subsystems and other features:
* Add makepython-nrf52840 board, SSD1306 OLED driver, and SharedScreen SyscallDriver by @bradjc in https://github.com/tock/tock/pull/3817 * Apollo3 Add support for SPI by @alistair23 in https://github.com/tock/tock/pull/3243 * Sifive uart receive by @mateibarbu19 in https://github.com/tock/tock/pull/3240 * Sifive uart abort by @mateibarbu19 in https://github.com/tock/tock/pull/3253 * opentitan: add watchdog/aon_timer by @twilfredo in https://github.com/tock/tock/pull/3208 * Initial VirtIO support for VirtIO Net & RNG on `qemu_rv32_virt` target by @lschuermann in https://github.com/tock/tock/pull/3110 * PWM Syscall Driver by @TeodoraMiu in https://github.com/tock/tock/pull/3367 * chips/qemu_rv32_virt_chip: implement basic UART RX and add process console to board by @lschuermann in https://github.com/tock/tock/pull/3365 * capsules: Add support for AES GCM by @alistair23 in https://github.com/tock/tock/pull/3092 * Add hmac-sha256 software capsule by @bradjc in https://github.com/tock/tock/pull/3502 * capsules: kv_store: implement virtualization by @bradjc in https://github.com/tock/tock/pull/3490 * Full KV stack update PR by @bradjc in https://github.com/tock/tock/pull/3508 * nrf52: adc: Add highspeed implementation. by @bradjc in https://github.com/tock/tock/pull/3453 * HMAC sha256: replace buffer and add verify support by @bradjc in https://github.com/tock/tock/pull/3561 * Add `capsules/tutorials` crate and add encryption oracle capsule by @lschuermann in https://github.com/tock/tock/pull/3562 * KV: Separate virtualization from KV implementation, New KV trait, Set/Add/Update by @bradjc in https://github.com/tock/tock/pull/3551 * Basic system clock management for the STM32F4 family by @Ioan-Cristian in https://github.com/tock/tock/pull/3528 * Component and Capsule for BMM150 Sensor by @TheButterMineCutter in https://github.com/tock/tock/pull/3713 * Extend feature support for lowrisc UART by @jon-flatley in https://github.com/tock/tock/pull/3729 * stm32f4xx: Add DAC Driver by @asbarnes in https://github.com/tock/tock/pull/3741 * chips/apollo3: uart: Add UART receive support by @alistair23 in https://github.com/tock/tock/pull/3763 * arch/rv32i: re-design PMP architecture & implement OpenTitan EarlGrey-specific ePMP by @lschuermann in https://github.com/tock/tock/pull/3597 * Segger RTT Receive by @alevy in https://github.com/tock/tock/pull/4130 * Screen driver for SMA Q3 by @alevy in https://github.com/tock/tock/pull/4132 * chips: apollo3: Support the flash controller by @alistair23 in https://github.com/tock/tock/pull/4123 * HC_SR04 Distance Sensor Driver by @cristianaprecup in https://github.com/tock/tock/pull/4138 * Soil Moisture Sensor Support by @alistair23 in https://github.com/tock/tock/pull/4144 * USB implementation for Raspberry Pi Pico by @TeodoraMiu in https://github.com/tock/tock/pull/3310 * Capsule: AT24C32/64 support by @j-kk in https://github.com/tock/tock/pull/3547 * Added Driver and Component for Hs3003 Sensor by @TheButterMineCutter in https://github.com/tock/tock/pull/3666 * Component and Capsule for LPS22HB Sensor by @TheButterMineCutter in https://github.com/tock/tock/pull/3699 * Add stm32f4xx HSE (high-speed external) clock support by @asbarnes in https://github.com/tock/tock/pull/3750 * apollo3: Add support for the I2C slave hardware by @alistair23 in https://github.com/tock/tock/pull/3781 * tock-registers: added `debug()` method in registers for better human readable debug output by @Amjad50 in https://github.com/tock/tock/pull/3771 * capsules: add sh1106 OLED screen driver by @bradjc in https://github.com/tock/tock/pull/3944 * Raw Receive by @tyler-potyondy in https://github.com/tock/tock/pull/3919 * boards/apollo3: redboard_artemis_atp: Enable SPI controller by @alistair23 in https://github.com/tock/tock/pull/3994 * Initial support for the ATECC508A by @alistair23 in https://github.com/tock/tock/pull/3696 * PIO support for RP2040 by @mateir-7 in https://github.com/tock/tock/pull/4179 * Temporally order userspace print statements with kernel debug statements by @phil-levis in https://github.com/tock/tock/pull/3327IEEE 802.15.4 and 6LoWPAN Stack
We can now join a Thread network by running OpenThread as a libtock-c userspace implementation, thanks to a major refactor and redesign of Tock's IEEE 802.15.4 and 6LoWPAN stack.
Known issue: UDP transmit functionality is currently broken with a bug / inconsistency between the kernel and libtock-c implementation. When executing the transmit syscall, the libtock-c application fails to provide the src address and fails the error check that occurs for the transmit syscall. For more information, see the Tock 2.2 release testing issue: https://github.com/tock/tock/issues/4272#issuecomment-2569993915
Relevant PRs:
* Rewritten nRF52840 802.15.4 driver adding software ACK on receive by @tyler-potyondy in https://github.com/tock/tock/pull/3615 * 15.4 link layer security - encryption/decryption by @tyler-potyondy in https://github.com/tock/tock/pull/3652 * 6LoWPAN Packet Filtering by @tyler-potyondy in https://github.com/tock/tock/pull/3660 * Thread Network Child Device by @tyler-potyondy in https://github.com/tock/tock/pull/3683 * 802.15.4 Send Raw Syscall by @tyler-potyondy in https://github.com/tock/tock/pull/3851 * 15.4 Radio channel Enum by @tyler-potyondy in https://github.com/tock/tock/pull/3904 * 15.4 Receive Ring Buffer by @tyler-potyondy in https://github.com/tock/tock/pull/3899 * EUI-64 Capsule by @tyler-potyondy in https://github.com/tock/tock/pull/3947 * nrf52840 802.15.4 LQI by @tyler-potyondy in https://github.com/tock/tock/pull/3972 * 802.15.4 HIL updates; nRF52840 IEEE 802.15.4 Driver Updates by @bradjc in https://github.com/tock/tock/pull/3995 * 802.15.4: Add raw userspace driver by @bradjc in https://github.com/tock/tock/pull/4016 * 802.15.4: Revert raw/encrypted receive by @bradjc in https://github.com/tock/tock/pull/4014 * 802.15.4: Revert raw TX in 15.4 stack by @bradjc in https://github.com/tock/tock/pull/4015 * boards: nrf52840dk: Make 15.4 stack optional; add raw 15.4 stack to tutorial board by @bradjc in https://github.com/tock/tock/pull/4018 * 802.15.4: Add 15.4 Stack Readme by @bradjc in https://github.com/tock/tock/pull/4022 * Add 802154 support to the nrf52833 and microbit v2 by @alevy in https://github.com/tock/tock/pull/4225 * IEEE802.15.4 RxClient Encrypted Receive by @tyler-potyondy in https://github.com/tock/tock/pull/3940 * nrf52840 IEEE802.15.4 driver drop corrupted packets by @tyler-potyondy in https://github.com/tock/tock/pull/3985Fixes, Improvements and Refactors
Another 482 pull requests implement various fixes, improvements and refactors.
Pull Request List:
* LEDs array in LED Driver does not need to be mut by @brghena in https://github.com/tock/tock/pull/3135 * Refresh the process console list command output by @bradjc in https://github.com/tock/tock/pull/3167 * capsules: sha256: impl sha256 trait by @bradjc in https://github.com/tock/tock/pull/3172 * arm/cortex-m/syscall: replace volatile userspace RAM accesses with regular pointer reads/writes by @lschuermann in https://github.com/tock/tock/pull/3095 * Process Console New(ish) Commands by @bradjc in https://github.com/tock/tock/pull/3171 * HIL: Make TemperatureClient receive Result<i32, ErrorCode> values by @dcz-self in https://github.com/tock/tock/pull/2967 * Screen HIL: Fix set_brightness by @dcz-self in https://github.com/tock/tock/pull/3177 * litex-sim-ci: update Tockloader & libtock-c rev, change to rv32imc by @lschuermann in https://github.com/tock/tock/pull/3210 * boards/opentitan: fixup flash_ctrl test by @twilfredo in https://github.com/tock/tock/pull/3213 * Revert "boards/redboard_artemis: Workaround Hard Fault Exception" by @bradjc in https://github.com/tock/tock/pull/3211 * Added missing base frequency config for e310x by @mateibarbu19 in https://github.com/tock/tock/pull/3215 * ESP32-c3 Build Fixes, add docs for flashing apps by @TheConner in https://github.com/tock/tock/pull/3218 * microbit_v2: fixed openocd flashing script by @mateibarbu19 in https://github.com/tock/tock/pull/3226 * cortex-m: mpu: simplify error check by @bradjc in https://github.com/tock/tock/pull/3201 * tock-register-interface: don't encapsulate test_fields! tests in mod by @lschuermann in https://github.com/tock/tock/pull/3230 * stm32f412g: make user/kernel code boundary fall on flash sector boundary by @hudson-ayers in https://github.com/tock/tock/pull/3181 * imix: fix driver num for humidity used for component by @bradjc in https://github.com/tock/tock/pull/3236 * boards: linker: remove MPU alignment by @bradjc in https://github.com/tock/tock/pull/3198 * cortex-m: mpu: do not give all memory to process in certain case by @bradjc in https://github.com/tock/tock/pull/3200 * `static_buf!()`: Remove `StaticUninitializedBuffer` and `UninitializedBuffer` in favor of `MaybeUninit`, update component conventions to match by @hudson-ayers in https://github.com/tock/tock/pull/3239 * RFC: Cortex-M: Use two MPU regions for app memory rather than one by @bradjc in https://github.com/tock/tock/pull/3202 * OpenTitan: Bump to the latest RTL SHA by @alistair23 in https://github.com/tock/tock/pull/3056 * Fix UartMux to be able to use multiple muxes by @alexandruradovici in https://github.com/tock/tock/pull/3216 * AppID: Remove OptionalCell by @bradjc in https://github.com/tock/tock/pull/3241 * boards/opentitan: fixup tickv & flash: add safegaurds by @twilfredo in https://github.com/tock/tock/pull/3248 * chips/earlgrey/aes: Fixup AES for Verilator by @twilfredo in https://github.com/tock/tock/pull/3214 * Update components to use _static and static_buf!(): straightforward components by @bradjc in https://github.com/tock/tock/pull/3255 * boards/opentitan: App loading for Verilator by @twilfredo in https://github.com/tock/tock/pull/3269 * components: fxo: update to new _static by @bradjc in https://github.com/tock/tock/pull/3237 * component: update process console by @bradjc in https://github.com/tock/tock/pull/3259 * component: update udp to new static by @bradjc in https://github.com/tock/tock/pull/3260 * component: update ft6x06 to new static by @bradjc in https://github.com/tock/tock/pull/3261 * Component: Update bmX280 components by @bradjc in https://github.com/tock/tock/pull/3232 * boards/opentitan/Makefile: add OT version check by @twilfredo in https://github.com/tock/tock/pull/3271 * sifive: fix RX interrupt disable clobbering TX by @gemarcano in https://github.com/tock/tock/pull/3272 * hifive1: reduce main() stack frame size by @gemarcano in https://github.com/tock/tock/pull/3265 * boards/opentitan: add entrypoint override by @twilfredo in https://github.com/tock/tock/pull/3251 * component: update ambient light by @bradjc in https://github.com/tock/tock/pull/3234 * components: several updated components with complex macros by @bradjc in https://github.com/tock/tock/pull/3274 * components: Update components used by OpenTitan by @bradjc in https://github.com/tock/tock/pull/3280 * component: update alarm by @bradjc in https://github.com/tock/tock/pull/3281 * component: update ieee802154 by @bradjc in https://github.com/tock/tock/pull/3284 * component: update remaining sensors by @bradjc in https://github.com/tock/tock/pull/3285 * Rename appid and app_id to processid by @alexandruradovici in https://github.com/tock/tock/pull/3291 * components: update scheduler components by @bradjc in https://github.com/tock/tock/pull/3275 * component: update debug_* to new static by @bradjc in https://github.com/tock/tock/pull/3282 * component: update various bus components by @bradjc in https://github.com/tock/tock/pull/3286 * component: update gpio to new static name by @bradjc in https://github.com/tock/tock/pull/3292 * ADC: Add set_client() to AdcHighSpeed trait (take [#2]) by @bradjc in https://github.com/tock/tock/pull/3290 * replace rf233 and usb imix components with generic components + update mock_udp component by @hudson-ayers in https://github.com/tock/tock/pull/3293 * Component: Move ADC components to new _static macro by @bradjc in https://github.com/tock/tock/pull/3231 * component: add a variety of new components to remove some `static mut` by @bradjc in https://github.com/tock/tock/pull/3288 * kernel: remove static_init_half!() macro by @bradjc in https://github.com/tock/tock/pull/3287 * kernel: don't use `static mut` when `const` would suffice by @hudson-ayers in https://github.com/tock/tock/pull/3298 * Make generic BLE component by @hudson-ayers in https://github.com/tock/tock/pull/3296 * virtual_alarm: add unit test for quick alarm case and fix by @jettr in https://github.com/tock/tock/pull/3277 * RFC: remove kernel work counting optimization by @hudson-ayers in https://github.com/tock/tock/pull/3158 * Make `Component::finalize()` a safe trait method by @hudson-ayers in https://github.com/tock/tock/pull/3297 * esp32-c3-devkit-m1 GPIO Fixes by @TheConner in https://github.com/tock/tock/pull/3294 * boards/opentitan: bump to latest master RTL SHA by @twilfredo in https://github.com/tock/tock/pull/3249 * Decrease kernel size and return NODEVICE error by @alexandruradovici in https://github.com/tock/tock/pull/3276 * kernel: hil: rsa_math: Fixup the mutable Client by @alistair23 in https://github.com/tock/tock/pull/3309 * Increase the kernel flash space for Raspberry Pi Pico by @alexandruradovici in https://github.com/tock/tock/pull/3314 * kernel: fixup typo for struct ProcessCustomGrantIdentifier | capsule: typo for TickFSFlashCtrl by @twilfredo in https://github.com/tock/tock/pull/3323 * Apollo3: A collection of fixes and improvements by @alistair23 in https://github.com/tock/tock/pull/3324 * chips/lowrisc/spi_host: refactor and rustify. by @twilfredo in https://github.com/tock/tock/pull/3329 * boards/opentitan: fix verilator app support by @twilfredo in https://github.com/tock/tock/pull/3320 * libraries/tock-cells/OptionalCell: remove `T: Default` constraint by @lschuermann in https://github.com/tock/tock/pull/3334 * Increased the stack memory for the microbit board because of stack overflow by @JADarius in https://github.com/tock/tock/pull/3339 * kernel/hil/flash: add memory protection, impl/connect/test for OpenTitan by @twilfredo in https://github.com/tock/tock/pull/3250 * chips/sifive/clint: make generic over timebase `Frequency` by @lschuermann in https://github.com/tock/tock/pull/3333 * chips/lowrisc: small refactor / reduce some bloat by @twilfredo in https://github.com/tock/tock/pull/3335 * Only suggest make lst for libtock-c by @hudson-ayers in https://github.com/tock/tock/pull/3351 * boards/apollo3: lora_things_plus: Expose SPI to userspace for SX1262 by @alistair23 in https://github.com/tock/tock/pull/3330 * Update `VolatileCell` using the `vcell` crate's `VolatileCell`. by @jrvanwhy in https://github.com/tock/tock/pull/3344 * Fix nano33 panic by incrementing number of deferred call clients by @hudson-ayers in https://github.com/tock/tock/pull/3362 * Enable virtual function elimination by default for OpenTitan by @jwnrt in https://github.com/tock/tock/pull/3358 * boards/opentitan: bump to latest rtl sha by @twilfredo in https://github.com/tock/tock/pull/3359 * Re-add OpenTitan's VFUNC_ELIM flag by @jwnrt in https://github.com/tock/tock/pull/3374 * Fix Imix to not require process credential checking by default by @hudson-ayers in https://github.com/tock/tock/pull/3376 * Make the set_clocks functions of the RP2040 drivers public to crates only by @JADarius in https://github.com/tock/tock/pull/3373 * debug_writer_component: make debug buffer size configurable; double default debug buffer size by @hudson-ayers in https://github.com/tock/tock/pull/3369 * rv32i: force semihosting insn sequence to be contained in single page by @lschuermann in https://github.com/tock/tock/pull/3364 * ADC pending command functionality by @TeodoraMiu in https://github.com/tock/tock/pull/3368 * fixed i2c buffer len by @teonaseverin in https://github.com/tock/tock/pull/3384 * sifive and hifive1: support 344MHz system clock by @gemarcano in https://github.com/tock/tock/pull/3283 * MLFQSched: fixed invalid logic in redeem_all_procs by @D0x45 in https://github.com/tock/tock/pull/3390 * kernel: sched: mlfq by @bradjc in https://github.com/tock/tock/pull/3391 * multiple boards: refactored GET_PERIPHERALS by @RaresCon in https://github.com/tock/tock/pull/3385 * Process console command history by @CosminGGeorgescu in https://github.com/tock/tock/pull/3381 * boards/qemu_rv32_virt: set minimum reqd QEMU version to 7.2.0, fix Makefile rules, add documentation by @lschuermann in https://github.com/tock/tock/pull/3370 * Update pinned Tockloader revision in shell.nix by @lschuermann in https://github.com/tock/tock/pull/3395 * Update rp2040 boards by @alexandruradovici in https://github.com/tock/tock/pull/3399 * Add reset to process console by @alexandruradovici in https://github.com/tock/tock/pull/3398 * Fix temperature value by @alexandruradovici in https://github.com/tock/tock/pull/3400 * Add correct handling of Userspace Binary version numbers to boot sequence by @phil-levis in https://github.com/tock/tock/pull/3307 * kernel: util: static ref deref return type by @bradjc in https://github.com/tock/tock/pull/3392 * Fix process console by @alexandruradovici in https://github.com/tock/tock/pull/3403 * boards/opentitan: Enable SPI tests for QEMU by @twilfredo in https://github.com/tock/tock/pull/3295 * Rename `matches_any()` to `any_matching_bits_set()`, implement new `matches_any()` by @hudson-ayers in https://github.com/tock/tock/pull/3336 * Fixed svd2regs.py by @Ioan-Cristian in https://github.com/tock/tock/pull/3406 * boards/opentitan: bump opentitan commit sha by @twilfredo in https://github.com/tock/tock/pull/3408 * arch: cortex-m: format and comment assembly by @bradjc in https://github.com/tock/tock/pull/3306 * arch/rv32i: clobber kernel registers instead of manual (un)stacking by @lschuermann in https://github.com/tock/tock/pull/3407 * Update OpenTitan Makefile and build examples by @jwnrt in https://github.com/tock/tock/pull/3411 * rust: update nightly apr 2023 by @bradjc in https://github.com/tock/tock/pull/3421 * lora-phy: Add support for a LoRa capsule by @alistair23 in https://github.com/tock/tock/pull/3360 * chips: apollo3: Set a second timer for alarms by @alistair23 in https://github.com/tock/tock/pull/3426 * nrf52: support new access port protection mechanism on new nRF52 chips by @bradjc in https://github.com/tock/tock/pull/3422 * shell.nix: change pytoml Tockloader dependency to toml by @lschuermann in https://github.com/tock/tock/pull/3436 * Change the I2C implementation to use generics by @JADarius in https://github.com/tock/tock/pull/3431 * UDPHeader Visibility by @tyler-potyondy in https://github.com/tock/tock/pull/3447 * Implementing Escape State Machine for process console and command navigations by @mihai-negru in https://github.com/tock/tock/pull/3414 * process: print: display credential, if available by @bradjc in https://github.com/tock/tock/pull/3451 * hil: screen: make client 'a by @bradjc in https://github.com/tock/tock/pull/3461 * Remove 'static from ADC HIL client by @bradjc in https://github.com/tock/tock/pull/3455 * hil: remove 'static for client in radio by @bradjc in https://github.com/tock/tock/pull/3459 * Update PWM components names by @bradjc in https://github.com/tock/tock/pull/3454 * hil: i2c: remove 'static from client by @lschuermann in https://github.com/tock/tock/pull/3467 * nRF52: update usb with new variant by @bradjc in https://github.com/tock/tock/pull/3438 * TicKV: Use const parameter rather than assume 2048 byte pages by @bradjc in https://github.com/tock/tock/pull/3458 * boards: nrf52840dk: fix ctap example code by @bradjc in https://github.com/tock/tock/pull/3439 * make: llvm-tools no longer preview by @bradjc in https://github.com/tock/tock/pull/3443 * kernel: minor updates to platform.rs by @bradjc in https://github.com/tock/tock/pull/3444 * Fixes RNG capsule re-enter by @kaczmarczyck in https://github.com/tock/tock/pull/3475 * capsules: remove lingering pub static mut by @bradjc in https://github.com/tock/tock/pull/3464 * capsules: tickv: do operation after init on already init by @bradjc in https://github.com/tock/tock/pull/3456 * siphash24: add test by @bradjc in https://github.com/tock/tock/pull/3473 * hil: spi: remove 'static from client by @bradjc in https://github.com/tock/tock/pull/3460 * hil: dac: remove init by @bradjc in https://github.com/tock/tock/pull/3463 * chips: nrf52: spi: auto disable when unused by @bradjc in https://github.com/tock/tock/pull/3466 * capsules: change ctap to usb hid by @bradjc in https://github.com/tock/tock/pull/3440 * usb: add USB HID keyboard support by @bradjc in https://github.com/tock/tock/pull/3441 * capsules: tickv: hashed keys big endian by @bradjc in https://github.com/tock/tock/pull/3474 * kernel: hil: kv: clarify append semantics by @bradjc in https://github.com/tock/tock/pull/3487 * tickv: return value buffer on append fail by @bradjc in https://github.com/tock/tock/pull/3488 * capsules: kv driver: need to clear buffers by @bradjc in https://github.com/tock/tock/pull/3493 * nrf52840dk board: comment and organize main.rs file by @bradjc in https://github.com/tock/tock/pull/3465 * Fix single APP panic in kernel scheduler by @qazwsxedcrfvtg14 in https://github.com/tock/tock/pull/3498 * makefile: bump qemu version by @twilfredo in https://github.com/tock/tock/pull/3501 * kernel: StoragePermissions: add "kerneluser" storage access by @bradjc in https://github.com/tock/tock/pull/3470 * Fix global pointer setup code by @nbdd0121 in https://github.com/tock/tock/pull/3516 * increase stack size for microbit by @hudson-ayers in https://github.com/tock/tock/pull/3510 * nRF52 AES Improvements by @bradjc in https://github.com/tock/tock/pull/3448 * Ensure Rust code generated is eligible for linker relaxation by @nbdd0121 in https://github.com/tock/tock/pull/3517 * Fix rustfmt errors by @bradjc in https://github.com/tock/tock/pull/3512 * kernel: hil: Various spelling fixes by @bradjc in https://github.com/tock/tock/pull/3513 * tools: run_cargo_fmt.sh: Don't run format on QEMU Rust code by @alistair23 in https://github.com/tock/tock/pull/3525 * Fix errors when running QEMU tests for OpenTitan by @nbdd0121 in https://github.com/tock/tock/pull/3530 * chips: apollo3: Remove invalid interrupt config by @alistair23 in https://github.com/tock/tock/pull/3526 * kernel: HIL: digest: add set_client() for `ClientDataHash` and `ClientDataVerify` by @bradjc in https://github.com/tock/tock/pull/3479 * boards: apollo3: README: Update LoRa examples by @alistair23 in https://github.com/tock/tock/pull/3527 * Redefine TBF `protected_size` field to a `protected_trailer_size` by @lschuermann in https://github.com/tock/tock/pull/3515 * Fix negative padding reports in print_tock_memory_usage.py by @nbdd0121 in https://github.com/tock/tock/pull/3534 * chips/earlgrey: convert CONFIG to trait, make board-configurable by @lschuermann in https://github.com/tock/tock/pull/3640 * capsules: rename KVSystem to Kv by @bradjc in https://github.com/tock/tock/pull/3649 * make: add libraries/tickv to cargo test by @bradjc in https://github.com/tock/tock/pull/3638 * make: check for shasum (exists on mac) by @bradjc in https://github.com/tock/tock/pull/3655 * capsules: BUGFIX: backspace/delete would send an extra EOL char by @george-cosma in https://github.com/tock/tock/pull/3654 * components: hmac: use correct set_client by @bradjc in https://github.com/tock/tock/pull/3668 * tickv: handle additional read by @bradjc in https://github.com/tock/tock/pull/3667 * Fix Commented HID Initialization Code by @ethanzhouyc in https://github.com/tock/tock/pull/3669 * OpenTitan: Switch the I2C driver to generated registers. by @jrvanwhy in https://github.com/tock/tock/pull/3689 * derive Debug on Value by @andreeaflorescu in https://github.com/tock/tock/pull/3687 * Capsules: temp/humidity: better handling of busy flag by @bradjc in https://github.com/tock/tock/pull/3679 * Earlgrey: Update cw310 FPGA clock frequencies by @jrvanwhy in https://github.com/tock/tock/pull/3703 * boards: opentitan: Fixup existing test cases by @alistair23 in https://github.com/tock/tock/pull/3685 * HIL, Capsule, and Component for Pressure Sensors by @TheButterMineCutter in https://github.com/tock/tock/pull/3690 * Flash error improvement by @Ioan-Cristian in https://github.com/tock/tock/pull/3697 * HS3003: Removed Unnecessary Code by @TheButterMineCutter in https://github.com/tock/tock/pull/3708 * OpenTitan Earlgrey pinmux implementations by @mazurek-michal in https://github.com/tock/tock/pull/3707 * Add `pub type` to components by @bradjc in https://github.com/tock/tock/pull/3657 * TicKV: Zeroizing a key to remove data by @AndrewImwalle in https://github.com/tock/tock/pull/3715 * virtual_alarm: Do not disarm when setting client. by @jettr in https://github.com/tock/tock/pull/3712 * Process trait improvements by @Ioan-Cristian in https://github.com/tock/tock/pull/3716 * boards/opentitan: README: Fixup bitstream version by @alistair23 in https://github.com/tock/tock/pull/3718 * libraries/tickv: Implement key Zeroise by @alistair23 in https://github.com/tock/tock/pull/3721 * Make UART registers for Nrf52840 configurable by @Niederb in https://github.com/tock/tock/pull/3722 * chips/lowrisc: spi_host: Enable interrupts before operation by @alistair23 in https://github.com/tock/tock/pull/3730 * shell.nix: use fenix overlay by @Samir-Rashid in https://github.com/tock/tock/pull/3727 * scheduler/round_robin: Allow timeslice to be configured. by @granaghan in https://github.com/tock/tock/pull/3734 * boards: particle_boron: collection of improvements by @twilfredo in https://github.com/tock/tock/pull/3733 * arch/cortex-m: fix typo in asm comment of switch_to_user_arm_v7m by @lschuermann in https://github.com/tock/tock/pull/3742 * Only write the no-wait flag in yield-no-wait. by @jrvanwhy in https://github.com/tock/tock/pull/3740 * Fix RX race condition in lowrisc UART by @jon-flatley in https://github.com/tock/tock/pull/3743 * cortex-m: cleanup linker constants by @ppannuto in https://github.com/tock/tock/pull/3150 * Refactoring of Earlgrey GPIO driver by @mazurek-michal in https://github.com/tock/tock/pull/3710 * nrf52: i2c: fixup buffer usage by @twilfredo in https://github.com/tock/tock/pull/3747 * lowrisc: usb: change while to if by @bradjc in https://github.com/tock/tock/pull/3749 * Temperature Stack: Use templated capsules by @bradjc in https://github.com/tock/tock/pull/3681 * nrf5x: gpio: add i2c pin config | particle_boron: fixup i2c pin cfg by @twilfredo in https://github.com/tock/tock/pull/3746 * Modified LPS22HB Capsule by @TheButterMineCutter in https://github.com/tock/tock/pull/3751 * chips: nrf52: i2c: fixup register bitfield by @twilfredo in https://github.com/tock/tock/pull/3761 * boards: hifive*: use start() by @bradjc in https://github.com/tock/tock/pull/3768 * boards: clue-nrf52840: use start() by @bradjc in https://github.com/tock/tock/pull/3767 * boards: acd52832: use start() by @bradjc in https://github.com/tock/tock/pull/3766 * boards: arty: use start() by @bradjc in https://github.com/tock/tock/pull/3765 * hil: digest: fix comment by @bradjc in https://github.com/tock/tock/pull/3773 * capsules: i2c_master: Relay Nak to userspace by @alistair23 in https://github.com/tock/tock/pull/3764 * chips/apollo: iom: Report Nacks to the caller by @alistair23 in https://github.com/tock/tock/pull/3762 * boards: add wm1110-dev board by @bradjc in https://github.com/tock/tock/pull/3653 * trd: legal: fix spdx url by @bradjc in https://github.com/tock/tock/pull/3784 * Minor kernel doc improvements and updates by @bradjc in https://github.com/tock/tock/pull/3783 * chips: apollo3: uart: Support recieve and transmit at the same time by @alistair23 in https://github.com/tock/tock/pull/3789 * Update rust january 2024 by @bradjc in https://github.com/tock/tock/pull/3748 * Component type keyboard hid by @bradjc in https://github.com/tock/tock/pull/3774 * components: hmac: add component types by @bradjc in https://github.com/tock/tock/pull/3775 * capsules: tickv: not ready cases need flash loop by @bradjc in https://github.com/tock/tock/pull/3776 * capsules: i2c_master_slave_combo: Initial commit by @alistair23 in https://github.com/tock/tock/pull/3786 * OpenTitan: Fix broken UART and missing test cases by @alistair23 in https://github.com/tock/tock/pull/3754 * Update pinned tock-litex release to 2024011101 by @lschuermann in https://github.com/tock/tock/pull/3790 * capsules: console/virtual_uart: Report receive errors to userspace by @alistair23 in https://github.com/tock/tock/pull/3787 * components: console: support configurable buffers by @twilfredo in https://github.com/tock/tock/pull/3801 * Disconnect debug-related pins from GPIO by default in OpenTitan by @jwnrt in https://github.com/tock/tock/pull/3809 * Bus component bug fix by @CristianSLazar in https://github.com/tock/tock/pull/3810 * boards: particle_boron: collection of updates/drop pconsole by @twilfredo in https://github.com/tock/tock/pull/3800 * kernel: appchecker: compress: pass &Process by @bradjc in https://github.com/tock/tock/pull/3796 * kernel: process: add get_short_id() to ProcessId by @bradjc in https://github.com/tock/tock/pull/3795 * Common build.rs script by @jwnrt in https://github.com/tock/tock/pull/3782 * doc: syscall: add K-V syscall doc by @bradjc in https://github.com/tock/tock/pull/3785 * boards/apollo3: redboard_artemis_atp: Initial commit by @alistair23 in https://github.com/tock/tock/pull/3804 * tock-tbf: fix footer parsing error type by @bradjc in https://github.com/tock/tock/pull/3793 * humidity: Match temperature and use templated sensor by @bradjc in https://github.com/tock/tock/pull/3807 * board: earlgrey: Fix number of IRQ in PLIC by @mazurek-michal in https://github.com/tock/tock/pull/3819 * Add toml extension to .cargo/config files by @jwnrt in https://github.com/tock/tock/pull/3823 * kernel: appchecker: add shortid based on names by @bradjc in https://github.com/tock/tock/pull/3818 * opentitan: Rearrange UARTs and I2Cs. by @jrvanwhy in https://github.com/tock/tock/pull/3827 * Boards: wm1110dev updates: remove build.rs, update readme by @bradjc in https://github.com/tock/tock/pull/3837 * arch: cortex-v7m: use the same asm! format by @bradjc in https://github.com/tock/tock/pull/3832 * kernel: utilities: add crc32_posix by @bradjc in https://github.com/tock/tock/pull/3829 * chips/apollo3: A collection of I2C fixes by @alistair23 in https://github.com/tock/tock/pull/3840 * litex-sim-ci: update pinned libtock-c, remove custom riscv toolchain by @lschuermann in https://github.com/tock/tock/pull/3848 * Unbreak CI on master by @lschuermann in https://github.com/tock/tock/pull/3857 * libraries: tock-tbf: fix footer parse error by @bradjc in https://github.com/tock/tock/pull/3846 * boards: nordic: use start() by @bradjc in https://github.com/tock/tock/pull/3836 * kernel: syscall: add driver_num helper functions by @bradjc in https://github.com/tock/tock/pull/3856 * stm32f4xx: handle usart overrun error by @mattmart3 in https://github.com/tock/tock/pull/3844 * components: Add types for several basic components by @bradjc in https://github.com/tock/tock/pull/3853 * kernel: process_std: easy copy `make debug` by @bradjc in https://github.com/tock/tock/pull/3863 * kernel: sched: round-robin: handle empty process array by @bradjc in https://github.com/tock/tock/pull/3870 * Avoid creating intermediate Rust references when taking pointers of memory / extern statics by @lschuermann in https://github.com/tock/tock/pull/3824 * process_console: display completion code as isize by @bradjc in https://github.com/tock/tock/pull/3862 * process_console: fix char deletion handlers by @mattmart3 in https://github.com/tock/tock/pull/3868 * boards: nucleo: use start() by @bradjc in https://github.com/tock/tock/pull/3860 * Remove Redundant Imports by @bradjc in https://github.com/tock/tock/pull/3875 * hmac test: fix set_client by @bradjc in https://github.com/tock/tock/pull/3869 * Fix conditional compilation #[cfg( matches for arch & target_os by @lschuermann in https://github.com/tock/tock/pull/3865 * IEEE802.15.4: Remove dyn, change to template by @bradjc in https://github.com/tock/tock/pull/3859 * Resolve "unused import: `core::arch::global_asm`" warnings. by @jrvanwhy in https://github.com/tock/tock/pull/3887 * Capsules: AES test: make decryption optional by @bradjc in https://github.com/tock/tock/pull/3872 * Add a `CapsuleTest` trait by @bradjc in https://github.com/tock/tock/pull/3871 * RNG: template and add `RngComponentType` by @bradjc in https://github.com/tock/tock/pull/3855 * arch/cortex-m3: re-export `unhandled_interrupt()` by @wprzytula in https://github.com/tock/tock/pull/3889 * stm32f4xx: expose clock frequency to peripherals by @mattmart3 in https://github.com/tock/tock/pull/3888 * Fix panic printing by @Ioan-Cristian in https://github.com/tock/tock/pull/3896 * print-tock-memory-usage.py: fix regex warnings by @hudson-ayers in https://github.com/tock/tock/pull/3893 * capsules: test: sha256 implement CapsuleTest by @bradjc in https://github.com/tock/tock/pull/3897 * test_fields!: stringify offset and size in error messages by @yuriishutkin in https://github.com/tock/tock/pull/3901 * Arch: Cortex: Fix stack addresses for kernel hardfault debug message by @bradjc in https://github.com/tock/tock/pull/3900 * Get Process Buffer API by @tyler-potyondy in https://github.com/tock/tock/pull/3861 * arch/cortex-m3: re-export `initialize_ram_jump_to_main` by @wprzytula in https://github.com/tock/tock/pull/3917 * TBF Header: Store slices instead of parsed objects by @bradjc in https://github.com/tock/tock/pull/3902 * Doc: update boards readme with new boards and add script by @bradjc in https://github.com/tock/tock/pull/3908 * tock-registers: Fix a `cargo miri test` memory leak error. by @jrvanwhy in https://github.com/tock/tock/pull/3918 * boards: rpi: use start() by @bradjc in https://github.com/tock/tock/pull/3914 * kernel: deferred call: better error panic by @bradjc in https://github.com/tock/tock/pull/3916 * stm32f429zi: rtc deferred call by @bradjc in https://github.com/tock/tock/pull/3915 * Code updates from new nightly by @bradjc in https://github.com/tock/tock/pull/3921 * kernel: process loading: update comments & remove capabilities by @bradjc in https://github.com/tock/tock/pull/3509 * tock-cells: change `OptionalCell::map` to pass a copy into the closure by @lschuermann in https://github.com/tock/tock/pull/3535 * boards: microbitv2: use helper function in main by @bradjc in https://github.com/tock/tock/pull/3514 * capsules: remove virtual_[digest|flash|sha].rs which do not virtualize by @bradjc in https://github.com/tock/tock/pull/3503 * capsules: tickv: call error cb on append error by @bradjc in https://github.com/tock/tock/pull/3489 * Switch to v0 mangling scheme and port print_tock_memory_usage.py by @nbdd0121 in https://github.com/tock/tock/pull/3539 * tickv: remove get_buffer functions by @bradjc in https://github.com/tock/tock/pull/3491 * kernel/platform/mpu: don't provide default impls for methods by @lschuermann in https://github.com/tock/tock/pull/3550 * pconsole: display ShortID by @bradjc in https://github.com/tock/tock/pull/3548 * tock-cells/OptionalCell: rename extract-method to get by @lschuermann in https://github.com/tock/tock/pull/3536 * usb: keyboard: do not retry send on ctrl finish by @bradjc in https://github.com/tock/tock/pull/3545 * Add reset function to cortexm::support by @alexandruradovici in https://github.com/tock/tock/pull/3404 * Make StaticRef NonNull by @kupiakos in https://github.com/tock/tock/pull/3552 * boards: apollo3: Use helper function in main by @alistair23 in https://github.com/tock/tock/pull/3520 * Fix MapCell safety 2.0 by @kupiakos in https://github.com/tock/tock/pull/3537 * boards: nrf52840: increase kernel space by @bradjc in https://github.com/tock/tock/pull/3565 * storage permissions: clarify naming by @bradjc in https://github.com/tock/tock/pull/3554 * usb_hid: disambiguate RESERVE/BUSY by @ppannuto in https://github.com/tock/tock/pull/3553 * Fix NRF52 nvmc register offset and use by @bradjc in https://github.com/tock/tock/pull/3564 * pconsole: support a "hibernation" mode by @bradjc in https://github.com/tock/tock/pull/3557 * capsules/extra/tutorials/encryption_oracle: add DRIVER_NUM by @lschuermann in https://github.com/tock/tock/pull/3567 * Add openocd to shell.nix by @alevy in https://github.com/tock/tock/pull/3571 * kernel/process_standard: ensure kernel_memory_break align & cleanup by @lschuermann in https://github.com/tock/tock/pull/3556 * capsules: virtual_uart: ensure inflight is None on error by @bradjc in https://github.com/tock/tock/pull/3584 * kernel/platform/mpu: remove dependence on ProcessID and assumptions by @lschuermann in https://github.com/tock/tock/pull/3540 * components: add SW SHA256 and HMAC-SHA256 by @bradjc in https://github.com/tock/tock/pull/3579 * Update rust-toolchain to nightly of 2023-07-30 by @lschuermann in https://github.com/tock/tock/pull/3582 * infra: upgrade to rust-toolchain.toml by @ppannuto in https://github.com/tock/tock/pull/3593 * rustup: need version 1.23.0 by @bradjc in https://github.com/tock/tock/pull/3594 * Update OpenTitan to `Earlgrey-M2.5.2-RC0` by @cfrantz in https://github.com/tock/tock/pull/3586 * Use autogenerated register constants for OpenTitan by @cfrantz in https://github.com/tock/tock/pull/3587 * Fix linker script calculations by @cfrantz in https://github.com/tock/tock/pull/3601 * Update OpenTitan to use auto-generated base address constants by @cfrantz in https://github.com/tock/tock/pull/3598 * boards: nano33ble: use start function by @bradjc in https://github.com/tock/tock/pull/3602 * kernel_layout: remove eh_frame_hdr by @robyale in https://github.com/tock/tock/pull/3603 * Update thiserror to 1.0.44. by @jrvanwhy in https://github.com/tock/tock/pull/3609 * opentitan: tests: fix test order for flash/aes by @twilfredo in https://github.com/tock/tock/pull/3616 * workflows/litex_sim: add mirror for the pre-compiled RISC-V toolchain by @lschuermann in https://github.com/tock/tock/pull/3621 * New approach for kernel attributes by @bradjc in https://github.com/tock/tock/pull/3588 * boards: nrf52840dk: increase RTT wait by @bradjc in https://github.com/tock/tock/pull/3625 * litex_sim CI: fix RISC-V precompiled GCC toolchain URL by @lschuermann in https://github.com/tock/tock/pull/3630 * shell.nix: update to Tockloader v1.10.0 with optional unfree pkgs by @lschuermann in https://github.com/tock/tock/pull/3629 * Add TicKV to nrf52840dk by @bradjc in https://github.com/tock/tock/pull/3522 * clippy: -D ptr_eq by @bradjc in https://github.com/tock/tock/pull/3636 * clippy: -D unused_unit by @bradjc in https://github.com/tock/tock/pull/3634 * TicKV: Fix garabage collect for async and update tests by @bradjc in https://github.com/tock/tock/pull/3619 * Split out (almost) all remaining clippy lints by @bradjc in https://github.com/tock/tock/pull/3632 * chips/lowrisc/uart: fix spurious RX buffer underrun error condition by @lschuermann in https://github.com/tock/tock/pull/3641 * clippy: -D clippy::enum_glob_use by @bradjc in https://github.com/tock/tock/pull/3644 * TicKV: Add a search test by @bradjc in https://github.com/tock/tock/pull/3623 * rv32i: use la instruction, pass in linker vars by @bradjc in https://github.com/tock/tock/pull/3624 * clippy: -D unnecessary_cast by @bradjc in https://github.com/tock/tock/pull/3633 * clippy: -D needless_borrow by @bradjc in https://github.com/tock/tock/pull/3635 * Update deprecated VSCode settings by @CosminGGeorgescu in https://github.com/tock/tock/pull/3628 * kernel: export `StoppedExecutingReason` by @bradjc in https://github.com/tock/tock/pull/3648 * boards/pico_explorer_base: add buzzer driver by @irina-nita in https://github.com/tock/tock/pull/3646 * libraries: tickv: Fixup the broken region search by @alistair23 in https://github.com/tock/tock/pull/3618 * Clippy: -D question_mark by @bradjc in https://github.com/tock/tock/pull/3645 * clippy: -D clippy::manual-memcpy by @bradjc in https://github.com/tock/tock/pull/3656 * clippy: Address several complexity lints by @bradjc in https://github.com/tock/tock/pull/3637 * Clippy: Enable many style lints by @bradjc in https://github.com/tock/tock/pull/3643 * clippy: fix some pedantic lints by @bradjc in https://github.com/tock/tock/pull/3664 * clippy: now disallow everything by @bradjc in https://github.com/tock/tock/pull/3665 * clippy: -D clippy::needless_lifetimes by @bradjc in https://github.com/tock/tock/pull/3674 * clippy: -D clippy::bool_comparison by @bradjc in https://github.com/tock/tock/pull/3676 * boards: fix clippy ==true by @bradjc in https://github.com/tock/tock/pull/3680 * clippy: -D clippy::explicit_counter_loop by @bradjc in https://github.com/tock/tock/pull/3675 * `clippy::unnecessary-cast` lint fixes by @lschuermann in https://github.com/tock/tock/pull/3726 * Document Code Review Principles by @bradjc in https://github.com/tock/tock/pull/3596 * capsules: remove doc leftovers on `SyscallDriver` impls by @elenaf9 in https://github.com/tock/tock/pull/3532 * Clippy: Move configuration to Cargo.toml by @bradjc in https://github.com/tock/tock/pull/4082 * clippy: deny `unnecessary_unwrap` by @bradjc in https://github.com/tock/tock/pull/4090 * clippy: deny `needless_match` by @bradjc in https://github.com/tock/tock/pull/4091 * clippy: deny `type_repetition_in_bounds` by @bradjc in https://github.com/tock/tock/pull/4092 * clippy: deny `needless-if` by @bradjc in https://github.com/tock/tock/pull/4095 * clippy: deny `explicit_auto_deref` by @bradjc in https://github.com/tock/tock/pull/4096 * clippy: deny `borrow_deref_ref` by @bradjc in https://github.com/tock/tock/pull/4093 * clippy: deny `from-over-into` by @bradjc in https://github.com/tock/tock/pull/4097 * wm1110: add nonvolatile storage by @bradjc in https://github.com/tock/tock/pull/3920 * makefile: add readme check target for CI by @bradjc in https://github.com/tock/tock/pull/3913 * use `usize::checked_next_multiple_of` by @folkertdev in https://github.com/tock/tock/pull/3924 * Add Asynchronous Process Loader, Split Credential Traits, Make Process Checking pre-Kernel Loop by @bradjc in https://github.com/tock/tock/pull/3849 * Console: notify app if transmit fails by @bradjc in https://github.com/tock/tock/pull/3585 * stm32f429idiscovery: make and openocd updates by @bradjc in https://github.com/tock/tock/pull/3925 * Pin hail stable to 1.76 until static mut fixed by @alevy in https://github.com/tock/tock/pull/3930 * boards: stm32: use std openocd config by @bradjc in https://github.com/tock/tock/pull/3926 * Move MacOS build from regular CI to nightly by @alevy in https://github.com/tock/tock/pull/3932 * arch/cortex-m3: re-export interrupt mask by @wprzytula in https://github.com/tock/tock/pull/3935 * [opentitan] Fix spurious `0` byte reads on the LowRISC UART driver. by @jrvanwhy in https://github.com/tock/tock/pull/3927 * capsules: ssd1306: fix column command fmt by @bradjc in https://github.com/tock/tock/pull/3943 * IEEE802.15.4 Framer PSDU Offset Fix by @tyler-potyondy in https://github.com/tock/tock/pull/3933 * boards: make: fix -Z build-std by @bradjc in https://github.com/tock/tock/pull/3950 * make: check for semver and support mac and linux by @bradjc in https://github.com/tock/tock/pull/3953 * boards: esp32-c3: fix test by @bradjc in https://github.com/tock/tock/pull/3951 * make TakeCell::empty() const, and make nrf52840 GPIO pin initialization a const fn by @folkertdev in https://github.com/tock/tock/pull/3937 * boards: opentitan: tests: fix flash warnings by @bradjc in https://github.com/tock/tock/pull/3952 * boards: acd52832: simplify struct by @bradjc in https://github.com/tock/tock/pull/3968 * boards: config: nrf52840dk kernel test: fix import by @bradjc in https://github.com/tock/tock/pull/3969 * libraries: remove unused imports by @bradjc in https://github.com/tock/tock/pull/3966 * kernel: process_checker: basic: make assigner pub by @bradjc in https://github.com/tock/tock/pull/3967 * Stopgap changes to treatment of `static mut` to get around compiler warnings. by @alevy in https://github.com/tock/tock/pull/3965 * rust: update nightly April 2024 by @bradjc in https://github.com/tock/tock/pull/3842 * Remove Thread Capsule Debug Statements by @tyler-potyondy in https://github.com/tock/tock/pull/3976 * Update pinned Tockloader rev to v1.12.0 by @lschuermann in https://github.com/tock/tock/pull/3982 * boards: makepython: loader: register deferred call by @bradjc in https://github.com/tock/tock/pull/3984 * kernel: add RestartWithDebugFaultPolicy by @lschuermann in https://github.com/tock/tock/pull/3986 * Update nrf5x temperature calculation by @tyler-potyondy in https://github.com/tock/tock/pull/3988 * chips/nrf5x: disallow registering multiple interrupts for a single GPIO by @lschuermann in https://github.com/tock/tock/pull/3989 * capsules: tickv: invalidate may need another read by @bradjc in https://github.com/tock/tock/pull/3983 * chips: apollo3: iom: Support SPI operations larger then 32 bytes by @alistair23 in https://github.com/tock/tock/pull/3964 * kernel: hil: radio: use standard rx client by @bradjc in https://github.com/tock/tock/pull/3997 * ieee802154: Remove buffers from `initialize()` functions by @bradjc in https://github.com/tock/tock/pull/3993 * boards/apollo3: Fixup the GPIO configurations by @alistair23 in https://github.com/tock/tock/pull/3990 * capsules: spi_controller: Support read only and inline operations by @alistair23 in https://github.com/tock/tock/pull/3991 * components/console: use snake case for variables by @wprzytula in https://github.com/tock/tock/pull/4007 * stm32f4xx: clocks rework by @mattmart3 in https://github.com/tock/tock/pull/4008 * Remove dead code by @alistair23 in https://github.com/tock/tock/pull/4013 * bump Rust nightly to nightly-2024-05-23 and set optimize_for_size by @alistair23 in https://github.com/tock/tock/pull/4002 * appid: add null checker by @bradjc in https://github.com/tock/tock/pull/4019 * boards: nrf52840dk: remove thread capsule by @bradjc in https://github.com/tock/tock/pull/4017 * boards/apollo3: Update the flash layout by @alistair23 in https://github.com/tock/tock/pull/4030 * Fix temperature sign in bme280 and bmp280 drivers by @brghena in https://github.com/tock/tock/pull/3112 * build(deps): bump urllib3 from 2.1.0 to 2.2.2 in /tools/tockbot by @dependabot in https://github.com/tock/tock/pull/4035 * opentitan: Add ROM_EXT-compatible ePMP setup. by @jrvanwhy in https://github.com/tock/tock/pull/4034 * kernel: processstd: remove unsafe in version by @bradjc in https://github.com/tock/tock/pull/4038 * Components: Add component for sequential process loader by @bradjc in https://github.com/tock/tock/pull/4036 * kernel/collections/queue: rename `remove_first` to `remove_first_matching` by @lschuermann in https://github.com/tock/tock/pull/4033 * kernel: process standard: stop in YieldedFor by @bradjc in https://github.com/tock/tock/pull/4039 * boards: HOTP Tutorial: Enable screen by @bradjc in https://github.com/tock/tock/pull/4040 * capsules: appid: names: simplify implementation by @bradjc in https://github.com/tock/tock/pull/4041 * nrf52: Expose SPI0 and TWI1 (and not TWI0 and SPI1) by @bradjc in https://github.com/tock/tock/pull/4042 * nrf52840: IEEE802154 TX Buf Length Fix by @tyler-potyondy in https://github.com/tock/tock/pull/4047 * IPC: Avoid double grant entry by @bradjc in https://github.com/tock/tock/pull/4053 * Fix module name for TextScreen by @U-alb in https://github.com/tock/tock/pull/4056 * boards: teensy: use start() by @bradjc in https://github.com/tock/tock/pull/4060 * kernel: process standard: do not store reference to process name by @bradjc in https://github.com/tock/tock/pull/4061 * kernel crate: Improve comments and generated docs by @bradjc in https://github.com/tock/tock/pull/4080 * kernel: syscall: fix missing comments by @bradjc in https://github.com/tock/tock/pull/4105 * chips: apollo3: Handle the errata for clock double increments by @alistair23 in https://github.com/tock/tock/pull/4063 * libraries: tock-cells and enum_primitive: specify edition by @bradjc in https://github.com/tock/tock/pull/4067 * chips/{litex/liteeth,lowrisc/usbdev}: remove dead code by @lschuermann in https://github.com/tock/tock/pull/4073 * Update Rust nightly toolchain to nightly-2024-07-08 by @lschuermann in https://github.com/tock/tock/pull/4071 * lib: tbf: parse header lengths without 'static by @bradjc in https://github.com/tock/tock/pull/4079 * boards: use start() by @bradjc in https://github.com/tock/tock/pull/4085 * Stm32 Boards: use start() by @bradjc in https://github.com/tock/tock/pull/4083 * boards: litex: use start() by @bradjc in https://github.com/tock/tock/pull/4084 * Fixing deferred calls registering for rp2040 rtc by @inesmaria08 in https://github.com/tock/tock/pull/4098 * clippy: deny `wrong-self-convention` by @bradjc in https://github.com/tock/tock/pull/4089 * chips: apollo3: stimer: Ensure alarm occurs if set in the past by @alistair23 in https://github.com/tock/tock/pull/4078 * clippy: deny `redundant_field_names` by @bradjc in https://github.com/tock/tock/pull/4101 * clippy: deny `overflow_check_conditional` by @bradjc in https://github.com/tock/tock/pull/4094 * tickv: Remove the offset from read_region() by @alistair23 in https://github.com/tock/tock/pull/4069 * AppID: Restore `AppIdPolicy` implementations' ability to use the accepted credential, and allow credential checkers to pass data with accepted credentials by @bradjc in https://github.com/tock/tock/pull/4028 * Fix something that was not the root cause of relocation bug from [#2219] at the time, the root cause was a bug in LLD, and now that bug is fixed, so we can use the canonical way of ensuring the relocation section has a predictable LMA by @alevy in https://github.com/tock/tock/pull/4108 * loops: use .iter() rather than c loops by @bradjc in https://github.com/tock/tock/pull/4116 * clippy: deny `unnecessary_struct_initialization` by @bradjc in https://github.com/tock/tock/pull/4115 * arch: fix clippy warnings by @bradjc in https://github.com/tock/tock/pull/4117 * clippy: deny `match-single-binding` by @bradjc in https://github.com/tock/tock/pull/4114 * segger_rtt: mark allocated struct as `_SEGGER_RTT` in ELF by @alevy in https://github.com/tock/tock/pull/4124 * Fix the GPIO pins of the Pico Explorer Base by @U-alb in https://github.com/tock/tock/pull/4131 * Move Segger RTT to own chip crate and fix soundness issues with externally shared memory by @alevy in https://github.com/tock/tock/pull/4129 * boards/apollo3: Fixup broken tests by @alistair23 in https://github.com/tock/tock/pull/4143 * Add well-formedness check to CortexMRegion::new() by @enjhnsn2 in https://github.com/tock/tock/pull/4135 * kernel: process loading: improve debug prints by @bradjc in https://github.com/tock/tock/pull/4149 * Fix cooperative scheduler panic by @Ioan-Cristian in https://github.com/tock/tock/pull/4151 * spi: add support for variable chip-select polarity by @alevy in https://github.com/tock/tock/pull/4136 * Moving microbit_v2 away from openocd to probe-rs by @NegrilaRares in https://github.com/tock/tock/pull/4074 * chips: apollo3: iom: Add delay when reading I2C by @alistair23 in https://github.com/tock/tock/pull/4155 * chips: apollo3: iom: Support non 4-byte alligned SPI writes by @alistair23 in https://github.com/tock/tock/pull/4156 * Fix deferred calls by @Ioan-Cristian in https://github.com/tock/tock/pull/4161 * fmt: make `panic!` error messages greppable by @Samir-Rashid in https://github.com/tock/tock/pull/4163 * boards: linker: do not load .apps section by default by @bradjc in https://github.com/tock/tock/pull/4169 * LPM013m126 Screen: Support RGB color formats by @alevy in https://github.com/tock/tock/pull/4180 * boards: fixed STM systick frequency by @GabrielPavaloiu in https://github.com/tock/tock/pull/4182 * Boards: Add a build_scripts crate by @bradjc in https://github.com/tock/tock/pull/4172 * ot/earlgrey-cw310: custom build.rs that supports alternative linker script for tests by @hudson-ayers in https://github.com/tock/tock/pull/4190 * Update .apps section by @alexandruradovici in https://github.com/tock/tock/pull/4191 * Remove `.unwrap()` in `impl From` by @bradjc in https://github.com/tock/tock/pull/4195 * kernel: debug: remove `Debug` trait by @bradjc in https://github.com/tock/tock/pull/4196 * kernel/processbuffer: accept arbitrary Ranges in ProcessSlice::get by @lschuermann in https://github.com/tock/tock/pull/4192 * Fix the bus library to support all the possible address widths by @inesmaria08 in https://github.com/tock/tock/pull/4099 * Alarm Syscall: fix computed `dt` when both unshifted `reference` and `dt` from userspace have low-order bits. by @alevy in https://github.com/tock/tock/pull/4201 * st7xx: flip 16-bit endianness of buffer before txn by @alevy in https://github.com/tock/tock/pull/4206 * ProcessStandard: Make debugging data optional by @bradjc in https://github.com/tock/tock/pull/4188 * boards/pico_explorer_base/src/main.rs: remove unused imports to fix clippy checks by @lschuermann in https://github.com/tock/tock/pull/4210 * Bump QEMU version to 9.1.1 by @jwnrt in https://github.com/tock/tock/pull/4214 * Pio last update by @mateir-7 in https://github.com/tock/tock/pull/4212 * atecc508a: Support SHA256 Digests by @alistair23 in https://github.com/tock/tock/pull/4154 * Small updates for better performance in screen driver by @alevy in https://github.com/tock/tock/pull/4215 * rp2040: pio: replace unnecessary OptionalCell by @alevy in https://github.com/tock/tock/pull/4219 * atecc508a: Support the SignatureVerify HIL by @alistair23 in https://github.com/tock/tock/pull/4159 * arch: add cortex-m4f crate by @ppannuto in https://github.com/tock/tock/pull/4224 * bme280: A collection of fixes by @alistair23 in https://github.com/tock/tock/pull/4223 * capsules: spi_controller: Fix userspace operations by @alistair23 in https://github.com/tock/tock/pull/4234 * chips: apollo3: iom: Work with new SPI HIL by @alistair23 in https://github.com/tock/tock/pull/4235 * capsules: spi_controller: Fixup read operations by @alistair23 in https://github.com/tock/tock/pull/4236 * kernel: split out encode_syscall_return to utilities module by @lschuermann in https://github.com/tock/tock/pull/4229 * boards: apollo3: Support loading signed applications by @alistair23 in https://github.com/tock/tock/pull/4232 * arch: cortex-m: register name is psr by @bradjc in https://github.com/tock/tock/pull/4239 * Add `CapbilityPtr` and Add `SuccessAddr` and `SuccessPtr` syscall variants by @LawrenceEsswood in https://github.com/tock/tock/pull/4174 * Enable RISC-V bitmanip extensions for OpenTitan by @jwnrt in https://github.com/tock/tock/pull/4145 * capsules: chirp_i2c_moisture: Improve reliability and accuracy by @alistair23 in https://github.com/tock/tock/pull/4244 * Enhance SiFive PLIC support by @ZhekaS in https://github.com/tock/tock/pull/4241 * Update Rust Nightly to November 16 2024 by @bradjc in https://github.com/tock/tock/pull/4193 * kernel: scheduler: Use NonZeroU32 instead of u32 for `start()` and `get_remaining_us()` by @Ioan-Cristian in https://github.com/tock/tock/pull/4254 * USB HID/CTAP: General cleanup by @bradjc in https://github.com/tock/tock/pull/4251 * kernel: kernel: Trace exit syscalls by @Ioan-Cristian in https://github.com/tock/tock/pull/4261 * capsules: kv: Support 512 byte KV values by @alistair23 in https://github.com/tock/tock/pull/4248 * nordic: components: startup: fix uicr pin check by @alevy in https://github.com/tock/tock/pull/4262 * pconsole: increase command buffer size to 64 by @bradjc in https://github.com/tock/tock/pull/4265 * pconsole: change `boot` cmd to use process.start() by @bradjc in https://github.com/tock/tock/pull/4264 * Improv(docs): Fixed doc errors by @siddharthkumarjha in https://github.com/tock/tock/pull/4268 * grant: added remove_pending_upcalls function by @GabrielPavaloiu in https://github.com/tock/tock/pull/4267 * chips: apollo3: stimer: Reset the timer at startup by @alistair23 in https://github.com/tock/tock/pull/4270 * boards: make: sleep on mac no units by @bradjc in https://github.com/tock/tock/pull/4276Documentation and Tests
In this release, we moved a significant part of our documentation out of the Tock kernel repository, and into the Tock book itself. Nonetheless, this release includes 43 PRs to in-kernel documentation, in addition to the documentation changes included in all other PRs.
Pull Request List:
* static_init: add note about generic parameters by @ppannuto in https://github.com/tock/tock/pull/3146 * boards/opentitan: add flash_ctl utests by @twilfredo in https://github.com/tock/tock/pull/3163 * boards/opentitan/tests: fixup macro syntax by @twilfredo in https://github.com/tock/tock/pull/3245 * boards/opentitan: Improve README for OT bump by @twilfredo in https://github.com/tock/tock/pull/3220 * boards/qemu_rv32_virt: document known issue around app support by @lschuermann in https://github.com/tock/tock/pull/3331 * Document the datacenter security model by @cfrantz in https://github.com/tock/tock/pull/3328 * Document the Process Console by @JADarius in https://github.com/tock/tock/pull/3338 * Doc: Update DRIVER_CHECK system call for alarm capsule by @L0g4n in https://github.com/tock/tock/pull/3353 * fix: broken links on core capsules README by @cyril-marpaud in https://github.com/tock/tock/pull/3415 * kernel: process: freshen comments by @bradjc in https://github.com/tock/tock/pull/3452 * boards: apollo3: lora_things_plus: Fixup README by @alistair23 in https://github.com/tock/tock/pull/3538 * boards: make: document objcopy flag by @bradjc in https://github.com/tock/tock/pull/3555 * capsules: update spelling by @bradjc in https://github.com/tock/tock/pull/3566 * doc: small grammar / style fixes in comments by @ppannuto in https://github.com/tock/tock/pull/3568 * make: spelling fixes by @bradjc in https://github.com/tock/tock/pull/3595 * doc: Update compilation document with information about fixed-address apps by @bradjc in https://github.com/tock/tock/pull/3611 * Update Syscalls.md documentation by @bradjc in https://github.com/tock/tock/pull/3777 * doc: remove courses by @bradjc in https://github.com/tock/tock/pull/3778 * doc: move main docs to book by @bradjc in https://github.com/tock/tock/pull/3779 * doc: syscall: reorg driver numbers by @bradjc in https://github.com/tock/tock/pull/3843 * readme: add blurb on TockWorld7 by @bradjc in https://github.com/tock/tock/pull/3806 * Capsules: update readme with new capsules by @bradjc in https://github.com/tock/tock/pull/3910 * Tools: add readmes by @bradjc in https://github.com/tock/tock/pull/3911 * chips: virtio: add readme by @bradjc in https://github.com/tock/tock/pull/3906 * Update chips readme with chip support by @bradjc in https://github.com/tock/tock/pull/3907 * tools: update check boards readme by @bradjc in https://github.com/tock/tock/pull/3949 * capsules: readme: add eui64 by @bradjc in https://github.com/tock/tock/pull/3958 * Fix alarm syscall driver command comments by @hudson-ayers in https://github.com/tock/tock/pull/3970 * doc: Getting Started updates by @bradjc in https://github.com/tock/tock/pull/3978 * boards: nrf52840dk: update readme by @bradjc in https://github.com/tock/tock/pull/3980 * kernel: hil: 802.15.4: document the HIL by @bradjc in https://github.com/tock/tock/pull/3998 * doc: scheduling: moved to book by @bradjc in https://github.com/tock/tock/pull/4043 * readme: TockWorld 7 has completed by @bradjc in https://github.com/tock/tock/pull/4055 * arch: cortex-m: fix docs by @bradjc in https://github.com/tock/tock/pull/4057 * arch: rv32i: fix comments by @bradjc in https://github.com/tock/tock/pull/4059 * docs: fix various links by @bradjc in https://github.com/tock/tock/pull/4087 * main readme: Simplify and get right to the point with links by @bradjc in https://github.com/tock/tock/pull/4088 * doc: kernel: improve comments in debug.rs and process.rs by @bradjc in https://github.com/tock/tock/pull/4113 * kernel: improve deferred_call doc by @bradjc in https://github.com/tock/tock/pull/4128 * kernel: hil: uart: improve rustdoc by @bradjc in https://github.com/tock/tock/pull/4148 * kernel: hil: spi: improve rustdoc by @bradjc in https://github.com/tock/tock/pull/4170 * kernel: Update documentation to utilities and debug by @bradjc in https://github.com/tock/tock/pull/4197 * doc: Add example expansion for register_bitfields! macro by @Dragosh-C in https://github.com/tock/tock/pull/4230Internal Changes
Last but not least, this release includes 206 contributions to internal documentation, tooling and CI.