Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
168 commits
Select commit Hold shift + click to select a range
fb72468
kernel: crypto: add KeySelect and KeySet
bradjc Mar 14, 2025
e1617ec
capsules: signature check: require KeySelect
bradjc Mar 26, 2025
c30cb05
capsules: ecdsa_sw: implement KeySet
bradjc Mar 26, 2025
40d59b5
capsules: add SignatureVerifyInMemoryKeys
bradjc Apr 4, 2025
3596544
boards: config: appid-ecdsa: key switching
bradjc Apr 4, 2025
6f48392
atecc508a: implement KeySet
bradjc Apr 4, 2025
32a8062
boards: apollo3: update ecdsa with mutliple keys
bradjc Apr 4, 2025
da5801a
boards: config: ecdsa: add second key
bradjc Apr 4, 2025
980375f
hil: rename KeySet->SetKey, KeySelect->SelectKey
bradjc Apr 25, 2025
814a37c
capsules: signature_verify_imk: state fix
bradjc Apr 25, 2025
47c8bfe
kernel: hil: crypto: keys: selectkey: count async
bradjc Apr 28, 2025
1db1afb
keys: SelectKey make get count async
bradjc Apr 28, 2025
df1f388
doc: fix typos 'a[n] asym[m]etric'
ppannuto May 20, 2025
d712c3d
kernel: hil: keys: clarify SelectKey cannot have gaps
bradjc May 21, 2025
b8ff559
kernel: hil: keys: set key now returns the key
bradjc May 21, 2025
8d59377
update to new SetKeyBySlice
bradjc May 21, 2025
d5ddd6e
capsules: ecdsa: remove Default
bradjc May 21, 2025
d3c5704
kernel: hil: keys: selectkey: no error on repeat
bradjc May 22, 2025
68f6e66
capsules: sig check: no ealready in select key
bradjc May 23, 2025
69b1590
doc: Core WG Notes 2025-05-28
ppannuto May 28, 2025
d861dfa
kernel/memory_management: Added support for MMU
IoanCristianCirstea May 29, 2025
c8e533a
arch/x86/mpu: Implemented the new MPU trait
IoanCristianCirstea May 29, 2025
4d5b173
chips/x86_q35: Adapt the chip code to support MMU
IoanCristianCirstea May 29, 2025
e83df19
components/sched/cooperative: Adapt the component for the new process…
IoanCristianCirstea May 29, 2025
2145a88
capsules/extra/app_loader: Adapted the app loader for the new process…
IoanCristianCirstea May 29, 2025
015e766
boards/qemu_i486_q35: Adapted the board to support MMU
IoanCristianCirstea May 29, 2025
3fc93ff
boards/qemu_i486_q35: Added run-apps Makefile target
IoanCristianCirstea May 29, 2025
6c95d72
kernel/memory_management: Handle process memory configuration validat…
IoanCristianCirstea May 29, 2025
df03dd0
kernel: Fixed warnings
IoanCristianCirstea May 29, 2025
e0e1c22
kernel/process_loading: Fixed SequentialProcessLoader
IoanCristianCirstea May 29, 2025
42defc7
arch/x86: Implemented the first iteration of the MMU
IoanCristianCirstea May 30, 2025
93fa75d
arch/x86: Implemented the first iteration of the MMU
IoanCristianCirstea May 30, 2025
a41ec77
Merge branch 'master' into mmu
IoanCristianCirstea May 30, 2025
172f58e
arch/x86: Changed system call ABI interface
IoanCristianCirstea Jun 3, 2025
9e56e9f
kernel/syscall: `Changed initialize_process()`
IoanCristianCirstea Jun 3, 2025
b2a6da2
Merge pull request #4395 from tock/key-change
ppannuto Jun 3, 2025
29553cb
[Isolated NV] Fix physical flash address calc.
tyler-potyondy Jun 3, 2025
efb91c4
signing: add SignatureSign and ClientSign traits
pqcfox May 29, 2025
c316824
capsules: add signing support to ecsda_sw
pqcfox May 29, 2025
c19f886
capsules: add TestEcdsaP256Sign capsule
pqcfox May 30, 2025
4992016
tests: add nrf52840dk-test-kernel test for P256 signing
pqcfox May 30, 2025
3f522e8
tests: add correct test vector nrf52840dk-test-kernel test for P256 s…
pqcfox Jun 4, 2025
04dcd72
capsules: fix doc comment in p256_signer.rs
pqcfox Jun 4, 2025
d6b2059
capsules: add support for SetKey HIL to EcdsaP256SignatureSigner, and…
pqcfox Jun 4, 2025
a46ebfa
arch/riscv: Implemented the new MPU trait
IoanCristianCirstea Jun 3, 2025
cb97307
Merge pull request #4451 from pqcfox/master
ppannuto Jun 4, 2025
bf5588a
doc: core WG notes 2025-06-04
ppannuto Jun 4, 2025
745fa46
arch/cortex-m: Implemented the new MPU trait
IoanCristianCirstea Jun 5, 2025
ab5f5d9
boards/raspberry_pi_pico: Adapted the board for the new memory manage…
IoanCristianCirstea Jun 5, 2025
1477c5b
arch/cortex-m/mpu: Check that the start of the region is properly ali…
IoanCristianCirstea Jun 5, 2025
17544e0
arch/cortex-m/mpu: Removed commented code
IoanCristianCirstea Jun 5, 2025
b76eaa5
kernel/memory_management/allocators: Removed obsolete method
IoanCristianCirstea Jun 5, 2025
0878ad7
boards: tutorials: add readme
bradjc Jun 5, 2025
1b67bc8
boards: tut: dynapp: Add credential checking
bradjc Jun 5, 2025
9d19ee3
[Isolated NV] Update AppRegion Address Naming
tyler-potyondy Jun 3, 2025
241bae2
Merge pull request #4458 from tock/boards-tutorials-readme
ppannuto Jun 6, 2025
393fcfe
boards: tut: dynapps: add dependencies to c.toml
bradjc Jun 6, 2025
2550591
cargo.toml: clippy: add comments explaining lints
bradjc Jan 16, 2025
54c8711
Merge pull request #4460 from tock/clippy-comments
brghena Jun 6, 2025
c48fd5f
Merge pull request #4456 from tock/doc-wg-core-notes-2025-06-04
alevy Jun 6, 2025
ed41d7d
Merge pull request #4450 from tock/core-wg-notes--2025-05-28
alevy Jun 6, 2025
49060aa
build(deps): bump requests from 2.32.0 to 2.32.4 in /tools/tockbot
dependabot[bot] Jun 10, 2025
82cbe2b
netlify: try printing cache contents
ppannuto Jun 4, 2025
ac42f1d
netlify: remove manual cacheing
ppannuto Jun 10, 2025
81de264
netlify: pickup toolchain from rust-toolchain.toml
ppannuto Jun 10, 2025
12a7407
Merge pull request #4457 from tock/netlify-cache-fixes
ppannuto Jun 10, 2025
f121b4d
kernel/memop: Fixed potential panics
IoanCristianCirstea Jun 11, 2025
a88dfd8
kernel/syscall: Simplified system call interface.
IoanCristianCirstea Jun 11, 2025
81545b3
arch/x86: Updated the UserspaceKernelBoundary implementation
IoanCristianCirstea Jun 11, 2025
84cd8d9
arch/riscv: Updated the UserspaceKernelBoundary implementation
IoanCristianCirstea Jun 11, 2025
72eca77
arch/cortex-m: Updated the UserspaceKernelBoundary implementation
IoanCristianCirstea Jun 11, 2025
80d5d60
Formatted code
IoanCristianCirstea Jun 11, 2025
bbfb834
kernel: Fixed clippy warnings
IoanCristianCirstea Jun 11, 2025
7cd004e
Merge pull request #4455 from tyler-potyondy/isolated-nv
bradjc Jun 11, 2025
da4a439
boards: tut: dynapps: remove unnecessary lifetime
bradjc Jun 11, 2025
2e0b3a1
Merge pull request #4459 from tock/tut-dynamic-credential-checking
alevy Jun 11, 2025
f4521f2
arch/riscv/pmp: fix underflow in region_overlaps
lschuermann Jun 11, 2025
0bb62f5
arch/cortex-m: Added comment for feature
IoanCristianCirstea Jun 12, 2025
91f99bb
kernel: Added brief comments for new memory management related code
IoanCristianCirstea Jun 12, 2025
e03d5ce
Merge pull request #4461 from tock/dependabot/pip/tools/tockbot/reque…
lschuermann Jun 12, 2025
fb4f7c1
boards: tut: dyn apps: use signed apps key
bradjc Jun 12, 2025
50babfb
Merge pull request #4466 from tock/tut-dynapps-signedapps
ppannuto Jun 12, 2025
a7cd927
Merge pull request #4463 from tock/dev/pmp-region-overlap-underflow
alevy Jun 13, 2025
0c8b693
tools: update rust: remove netlify
bradjc Jun 13, 2025
fda330e
Merge pull request #4467 from tock/rustc-version-not-in-netlify
ppannuto Jun 13, 2025
b4966df
Core working group meeting notes: June 18, 2025
brghena Jun 18, 2025
e312bbb
build(deps): bump urllib3 from 2.2.2 to 2.5.0 in /tools/tockbot
dependabot[bot] Jun 19, 2025
fa97a93
boards: STACK need not be pub
bradjc Jun 19, 2025
cb90a00
Merge pull request #4470 from tock/core-notes-2025-06-18
alevy Jun 19, 2025
e603e0f
Merge pull request #4472 from tock/dependabot/pip/tools/tockbot/urlli…
lschuermann Jun 19, 2025
3170e34
Introduct the x86 working group
alevy Jun 19, 2025
020cfed
doc/wg: add link to x86 WG to README
lschuermann Jun 19, 2025
4985bf9
Merge pull request #4474 from alevy/x86-wg
lschuermann Jun 19, 2025
544b334
Merge pull request #4473 from tock/boards-no-pub-static-stack
lschuermann Jun 20, 2025
1ee25f3
boards: tutorials: add root of trust tutorial board
pqcfox Jun 21, 2025
3bd3df4
kernel/syscall: Avoid using user virtual pointers
IoanCristianCirstea Jun 20, 2025
a739b3f
kernel: Extensive use of nullable pointers
IoanCristianCirstea Jun 21, 2025
1a40f63
Merge pull request #4475 from pqcfox/root-of-trust-tutorial
bradjc Jun 21, 2025
e5c3e44
clippy: remove new-ret-no-self
bradjc Jun 21, 2025
69108d1
clippy: remove redundant map
bradjc Jun 21, 2025
5644693
clippy: deny single_match
bradjc Jun 21, 2025
1cfae8b
clippy: deny field-reassign-with-default
bradjc Jun 21, 2025
130d56c
clippy: deny collapsible_match
bradjc Jun 21, 2025
cd8db83
clippy: deny blocks_in_conditions
bradjc Jun 21, 2025
c080343
clippy: comment style allowed lints
bradjc Jun 21, 2025
8f5b63a
clippy: deny let_and_return
bradjc Jun 21, 2025
8185670
clippy: deny option_map_or_none
bradjc Jun 21, 2025
68d73fb
clippy: deny redundant_pattern_matching
bradjc Jun 21, 2025
6d523ae
capsules: analog sensor: fix temperature new()
bradjc Jun 21, 2025
3b8c73b
Merge pull request #4478 from tock/analog-sensor-fix
lschuermann Jun 21, 2025
c83f070
Merge pull request #4477 from tock/clippy-style-2025-06
lschuermann Jun 23, 2025
a4bdabc
clippy: deny declare-interior-mutable-const
bradjc Jun 21, 2025
1e9d49e
Merge pull request #4476 from tock/clippy-deny-declare-interior-mutab…
ppannuto Jun 23, 2025
8b78109
clippy: comment perf and cargo allowed lints
bradjc Jun 23, 2025
8dbe354
clippy: comment complexity lints
bradjc Jun 23, 2025
1e6dc42
clippy: move if_same_then_else to style group
bradjc Jun 23, 2025
bf8cfd9
clippy: manual_unwrap_or_default doesn't trigger anymore
bradjc Jun 23, 2025
e219d7c
clippy: deny while-let-loop
bradjc Jun 23, 2025
828b68e
Merge pull request #4481 from tock/clippy-deny-while-let-loop
alevy Jun 25, 2025
32a5fc7
Merge branch 'master' into clippy-comment-perf-cargo
alevy Jun 25, 2025
1e79861
Merge pull request #4480 from tock/clippy-comment-perf-cargo
alevy Jun 25, 2025
fada220
Update Thread tutorial for signed sensor tutorial
tyler-potyondy Jun 13, 2025
25f4c15
Merge pull request #4483 from tyler-potyondy/mobisys-tutorial-thread
bradjc Jun 25, 2025
42354e5
Thread tutorial board: Fix link to thread tutorials
alevy Jun 26, 2025
082d3d9
Merge pull request #4484 from alevy/tut/thread/link
alevy Jun 26, 2025
8ab8364
kernel: add ProcessArray
bradjc May 23, 2025
9261be9
boards: update components with ProcessArray
bradjc May 23, 2025
f63fc72
boards: update nrf52840dk with ProcessArray
bradjc May 23, 2025
3ce5da2
debug: consistent naming for process array accesses
ppannuto Jun 4, 2025
bf92b9e
kernel: get_process: simplify impl
bradjc Jun 4, 2025
2d67d5f
board: nrf52840dk: fix import error
bradjc Jun 5, 2025
b4aa081
components: add ProcessArray component
bradjc Jun 5, 2025
61ff9fe
boards: nrf52840dk: use process array component
bradjc Jun 5, 2025
a14625a
boards: apollo3: update to ProcessArray
bradjc Jun 5, 2025
d5e6931
boards: arty: update to ProcessArray
bradjc Jun 6, 2025
35a5883
boards: convert to ProcessArray
bradjc Jun 19, 2025
c00f57b
kernel: ProcessArray: rename get_active() -> get()
bradjc Jun 19, 2025
9d30071
kernel: ProcessArray: rename is_valid_for
bradjc Jun 19, 2025
664c4d3
boards: tut: rot: update to ProcessArray
bradjc Jun 21, 2025
778703d
kernel: process array: inline const for empty
bradjc Jun 26, 2025
9af07b3
Merge pull request #4447 from tock/process-array-bradjc2
alevy Jun 26, 2025
48724a1
Merge remote-tracking branch 'local/mmu' into mmu
IoanCristianCirstea Jun 28, 2025
649159b
kernel: Solved clippy issues
IoanCristianCirstea Jun 28, 2025
02a7b03
kernel/utilities/misc: Added more implementations
IoanCristianCirstea Jun 28, 2025
2605e2e
kernel/utilities/pointers: Added tests
IoanCristianCirstea Jun 28, 2025
f7b09f2
kernel/utilities/slices: Added tests
IoanCristianCirstea Jun 28, 2025
4d626fe
kernel/utilities/ordering: Added tests
IoanCristianCirstea Jun 28, 2025
1d4a056
kernel/memory_management: Get rid of commented code
IoanCristianCirstea Jun 28, 2025
d75d699
kernel/memory_management: Added tests for static allocator
IoanCristianCirstea Jun 28, 2025
0be3cda
kernel/memory_management/slices: Added tests
IoanCristianCirstea Jun 28, 2025
5f2bbad
kernel/memory_management/regions: Added tests
IoanCristianCirstea Jun 28, 2025
5d6082f
kernel/syscall: Updated the UKB interface
IoanCristianCirstea Jun 28, 2025
352b481
kernel/memory_management/configurations: Added tests
IoanCristianCirstea Jun 29, 2025
e63443e
kernel: Support for an arbritary number of regions for MPU and MMU
IoanCristianCirstea Jun 29, 2025
cafc460
arch/x86: Adapt the new MMU to support arbitrary number of regions
IoanCristianCirstea Jun 29, 2025
5071b07
chips/x86_q35: Integrated the new MMU
IoanCristianCirstea Jun 29, 2025
999827b
boards/qemu_i486_q35: Integrated the new MMU
IoanCristianCirstea Jun 29, 2025
58064af
Formatted code
IoanCristianCirstea Jun 29, 2025
5ec5be0
arch/riscv: Integrated the new MPU trait
IoanCristianCirstea Jun 29, 2025
971188a
arch/cortex-m/mpu: Adapted the MPU implementation to the new trait
IoanCristianCirstea Jun 29, 2025
de64f4d
arch/x86/mmu: Don't flush the TLB after each region
IoanCristianCirstea Jun 30, 2025
d1bb660
arch/x86/mmu: Reduce the number of TLB flushes
IoanCristianCirstea Jun 30, 2025
037c5b4
kernel/process_standard: Handle null minimum RAM memory
IoanCristianCirstea Jun 30, 2025
e32c913
arch/riscv/syscall: Request 0 bytes of memory to run a process
IoanCristianCirstea Jun 30, 2025
7e4c859
arch/riscv/syscall: Return the stack pointer after process switch.
IoanCristianCirstea Jun 30, 2025
614e9b0
arch: Formatted code
IoanCristianCirstea Jun 30, 2025
4cee279
arch/riscv/pmp: Removed unnecessary PMPUserMPUConfig
IoanCristianCirstea Jun 30, 2025
e95c5af
arch/cortex-m/syscall: Return the stack pointer after a switch to a p…
IoanCristianCirstea Jun 30, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
77 changes: 51 additions & 26 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,7 @@ members = [
"boards/configurations/nrf52840dk/nrf52840dk-test-kernel",
"boards/configurations/nrf52840dk/nrf52840dk-test-dynamic-app-load",
"boards/configurations/microbit_v2/microbit_v2-test-dynamic-app-load",
"boards/tutorials/nrf52840dk-root-of-trust-tutorial",
"boards/tutorials/nrf52840dk-dynamic-apps-and-policies",
"boards/tutorials/nrf52840dk-hotp-tutorial",
"boards/tutorials/nrf52840dk-thread-tutorial",
Expand Down Expand Up @@ -136,84 +137,108 @@ codegen-units = 1
# Tock does not comply with or we do not want to use.
#
# For each group there are three sections:
# 1. The first section are lints we almost certainly don't want.
# 1. The first section are lints we don't want with a comment explaining our use
# case for not enabling that lint.
# 2. The second section are lints we may not want, we probably have to see the
# resulting diff.
# 3. The third section are lints that we do want we just need to fixup the code
# to pass the lint checks.
#
# There are some lints we specifically do not want:
#
# - `clippy::if_same_then_else`: There are often good reasons to enumerate
# different states that have the same effect.
# - `clippy::manual_unwrap_or_default`: As of Apr 2024, this lint has many false
# positives.
[workspace.lints.clippy]
restriction = "allow"

if_same_then_else = "allow"
manual_unwrap_or_default = "allow"


# COMPLEXITY LINTS
complexity = { level = "deny", priority = -1 }

# Subjective, and complex functions may need many arguments.
too_many_arguments = "allow"
# This is pretty sensitive, even `Result`s with returned buffers trigger this.
# It is not worth us creating types for all of these.
type_complexity = "allow"
# We use options extensively and they can be as clear as if let statements.
option_map_unit_fn = "allow"
# Sometimes the semantic meaning of variables means it is more clear to use
# nonminimal if statements, particularly when matching hardware or datasheets.
nonminimal_bool = "allow"
# Particularly for setting register values, expressing a zero offset can be
# semantically meaningful and encourage consistency between several lines of
# code.
identity-op = "allow"
while-let-loop = "allow"
# Subjective, and for SyscallDrivers sometimes enumerating the specific command
# numbers rather than using a range is semantically more clear.
manual-range-patterns = "allow"
# Particularly when interactive with hardware, including a leading zero can
# often be semantically more clear.
zero_prefixed_literal = "allow"


manual-flatten = "allow"

zero_prefixed_literal = "allow"

# STYLE
style = { level = "deny", priority = -1 }

blocks_in_conditions = "allow"
# Sometimes an if block is standalone and shouldn't be merged with an else.
collapsible_else_if = "allow"
# Multiple if blocks can be clearer to express a particular logical flow.
collapsible_if = "allow"
collapsible_match = "allow"
# Sometimes if statements are easier to read than match statements.
comparison_chain = "allow"
# Sometimes it's more clear to have repetition in enum names.
enum-variant-names = "allow"
field-reassign-with-default = "allow"
# For buffers, `.get(0)` (using byte index) makes more sense than `.first()`.
get_first = "allow"
# There are often good reasons to enumerate different states that have the same
# effect.
if_same_then_else = "allow"
# Buffers and objects can have a length of 0, but it isn't necessarily intuitive
# to think of a buffer or those objects as "empty".
len_without_is_empty = "allow"
# Buffer logic often makes more sense with lengths, and not `is_empty()`.
len_zero = "allow"
# Sometimes the borrow checker works better with `match` instead of `.map()`.
manual-map = "allow"
# Syntax like `!(-17..=4).contains(&x)` is just not clear.
manual_range_contains = "allow"
# Match statement is clear, using `matches!()` is not an improvement.
match_like_matches_macro = "allow"
# Sometimes it makes sense to have module in a folder of the same name.
module_inception = "allow"
new-ret-no-self = "allow"
# Maybe someday we want this, but right now `for i in 0..4` is much more clear
# than using `.iter()` functions like `.skip(n)`.
needless-range-loop = "allow"
# We don't need unused Default implementations.
new_without_default = "allow"
redundant_closure = "allow"
# Using `Result()` is good practice, even if there is no meaning to the error.
result_unit_err = "allow"
single_match = "allow"
# For hardware registers it can make sense to group bits semantically and not
# just in multiples of four.
unusual-byte-groupings = "allow"
# We widely use upper case acronyms for hardware registers and fields.
upper_case_acronyms = "allow"


declare-interior-mutable-const = "allow"
let_and_return = "allow"
missing_safety_doc = "allow"
needless-range-loop = "allow"
option_map_or_none = "allow"
redundant_pattern_matching = "allow"
unusual-byte-groupings = "allow"
doc_lazy_continuation = "allow"


# PERF
perf = { level = "deny", priority = -1 }

# Tock extensively uses enums for state machines, and it often is much clearer
# to store objects between states in the state enum rather than as "global"
# variables in the struct itself. Therefore, some enums end up quite large.
large-enum-variant = "allow"


# CARGO
cargo = { level = "deny", priority = -1 }

# Tock includes over 100 crates, and it is just too pedantic to expect each one
# to have full and correct metadata.
cargo_common_metadata = "allow"
# We generally avoid all cargo features, and therefore it isn't intuitive that
# we would expect some features to be enabled by default, so it can make sense
# to have a feature to disable something.
negative-feature-names = "allow"


Expand Down
4 changes: 4 additions & 0 deletions arch/cortex-m/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,10 @@
//! Generic support for all Cortex-M platforms.

#![no_std]
// This feature is almost stable. There is an ongoing discussion on whether the
// method should accept non power of two values. Tock is not concerned by this
// discussion. It also produces better code than the manual check.
#![feature(pointer_is_aligned_to)]

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we need this feature or can we manually implement the check? I think it would be a good idea to avoid features so that we can compile Tock with stable Rust.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We don't stricly need it. Tock currently doesn't compile on stable and it looks there is no milestone for it. As for the feature itself, it is almost stable. It is in its final comment period. It also generates slightly better code than the manual check.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok, can you add a comment with this?

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done.


use core::fmt::Write;

Expand Down
Loading
Loading