Skip to content

Commit

Permalink
Add SHA accelerator implementation (#257)
Browse files Browse the repository at this point in the history
* Add untested basic SHA for esp-sX/cX chips

* Fix ptr type inconsistency for S2

* Add ESP32 impl & fix process_buffer latch issue

* Add debug example for SHA accelerator

* Clean up no-op buffer prints

* Test vector parity (on esp32s3)

* Checkpoint for converting to alignment helper

* Finish refactoring & additional parity tests on esp32s3

* Remove core_intrinsics requirement for now

* Fix case where (src.len() % 4) == 3

* Finish sha2 example with performance comparison (12-61x speedup)

* Refactor ESP32 to alignment helper & Clean up example

* Prevent out-of-bounds reads in ESP32 version

* Revert Cargo debug changes

* Remove cargo config.toml

* Clean up example

* Remove common/rust-toolchain & ignore in future

* Might as well use actual size_of const

* Remove SHA512/SHA384 for C2/C3

* Directly import nb::block! to remove unused import warning & fix c2 feature detect

* Remove stray newlines

* Fix esp32c2 having SHA256

* ESP32 also has SHA384

* Remove comments that don't have a purpose

* Clean up example & finish() handling

* Add examples & add ESP32 free()

* Update C2/C3 examples to show accurate algorithm used

* Fix busy check for ESP32

* Remove outdated TODO comment

* Update PAC for ESP3 and (actually) fix busy check

* Refactor ESP32 version to reduce search space

* Add debug printlns to sha example & clean up comments

* Fix ESP32 version, finally

Co-authored-by: ferris <[email protected]>
Co-authored-by: Jesse Braham <[email protected]>
  • Loading branch information
3 people authored Nov 28, 2022
1 parent fbd912a commit 59d02f5
Show file tree
Hide file tree
Showing 19 changed files with 926 additions and 2 deletions.
1 change: 1 addition & 0 deletions esp-hal-common/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
rust-toolchain.toml
4 changes: 2 additions & 2 deletions esp-hal-common/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -50,11 +50,11 @@ ufmt-write = { version = "0.1.0", optional = true }
# Each supported device MUST have its PAC included below along with a
# corresponding feature. We rename the PAC packages because we cannot
# have dependencies and features with the same names.
esp32 = { version = "0.15.0", features = ["critical-section"], optional = true }
esp32 = { version = "0.16.0", features = ["critical-section"], optional = true }
esp32c2 = { version = "0.5.1", features = ["critical-section"], optional = true }
esp32c3 = { version = "0.8.1", features = ["critical-section"], optional = true }
esp32s2 = { version = "0.6.0", features = ["critical-section"], optional = true }
esp32s3 = { version = "0.8.0", features = ["critical-section"], optional = true }
esp32s3 = { version = "0.9.0", features = ["critical-section"], optional = true }

[features]
esp32 = ["esp32/rt" , "procmacros/xtensa", "xtensa-lx-rt/esp32", "xtensa-lx/esp32", "critical-section/restore-state-u32", "lock_api"]
Expand Down
1 change: 1 addition & 0 deletions esp-hal-common/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@ pub use self::{
timer::Timer,
};

pub mod sha;
pub mod analog;
pub mod clock;
pub mod delay;
Expand Down
Loading

0 comments on commit 59d02f5

Please sign in to comment.