Commit Graph

193 Commits

Author SHA1 Message Date
Wladimir J. van der Laan
d5ba35c440 Add link to dtsi in README.md instead 2020-10-28 09:19:46 +00:00
Wladimir J. van der Laan
f1806a90b4 Remove note about rust generating executables at base 0xffffffff80000000
This hasn't been true for a long time.
2020-10-28 09:17:54 +00:00
Wladimir J. van der Laan
5e8c4a8915 doc: Replace contents of k210.dtsi with a link 2020-10-26 09:02:26 +00:00
Wladimir J. van der Laan
1e3cf00aed rust: Add comment 2020-06-19 15:43:29 +00:00
Wladimir J. van der Laan
dd801e6ecc
Merge pull request #8 from Forty-Bot/pll
k210-shared: Rewrite compute_params to use fixed-point
2020-06-17 09:07:04 +02:00
Wladimir J. van der Laan
70d200a03c rust: Resurrect interrupt test for second core
It was disabled at some point because something in riscv-rt changed
and it no longer worked. Restore the testing in a more robust way.
2020-06-03 16:10:41 +00:00
Wladimir J. van der Laan
f4888ee0ef rust: Add MMU test 2020-06-02 21:13:23 +00:00
Wladimir J. van der Laan
5af12f9582 rust: Add simple debug macros
Add simple debug!() and debugln!() macros that can be used for everywhere
to print stuff to UARTHS.
2020-06-02 21:07:54 +00:00
Wladimir J. van der Laan
67078f6242 rust: Fixes for newer dependencies 2020-06-02 21:07:54 +00:00
Wladimir J. van der Laan
d7245693a7 rust: Add peripheral-side GCM tag checking (and testing) 2020-05-02 08:27:30 +00:00
Wladimir J. van der Laan
8b07675b33 rust: Implement Drop for AES iterator
Implement drop for the AES iterator to automatically finish
the hardware operation when the iterator goes out of scope.
2020-05-01 12:46:28 +00:00
Wladimir J. van der Laan
10561369b1 rust: Add benchmark output to README.md 2020-05-01 12:38:44 +00:00
Wladimir J. van der Laan
6b907fd033 rust: add AES benchmark against soft_aes 2020-05-01 12:25:24 +00:00
Wladimir J. van der Laan
e080a03821 rust: Split AES into three parts, setup, process data and finish
Might want to re-use the setup/finish code for streaming data and/or DMA.
2020-04-30 15:36:14 +00:00
Wladimir J. van der Laan
68ddf3b1bc rust: Add function that directly hashes 32-bit units
This is almost two times as fast, apparently, however it requires
the input to be aligned to 32 bit and be a multiple of 32 bits.
This should be special-cased.
2020-04-29 20:39:29 +00:00
Wladimir J. van der Laan
9d9f67692b rust: Add benchmark comparing to software implementation 2020-04-29 16:51:03 +00:00
Wladimir J. van der Laan
b695136eaa rust: Add SHA256 benchmark 2020-04-29 16:36:16 +00:00
Wladimir J. van der Laan
cf8b81c391 rust: Large SHA256 test vectors 2020-04-29 16:24:01 +00:00
Wladimir J. van der Laan
924af6ca23 rust: Add AES192 test vectors 2020-04-27 22:00:01 +00:00
Wladimir J. van der Laan
fbe528d8b6 rust: Add assertion that input length is at least 0 for AES
It doesn't look like the AES engine can handle 0-sized input. This makes
sense, in a way, as it is an edge case and in most cases a no-op. Only
in GCM mode, where there one might want to compute a tag over a 0-byte
input, would this come up.
2020-04-27 21:04:38 +00:00
Wladimir J. van der Laan
217b00227e rust: Add a few more AES-GCM test vectors 2020-04-27 20:10:14 +00:00
Wladimir J. van der Laan
a5b6c64903 rust: more AES128GCM test vectors 2020-04-27 20:01:18 +00:00
Wladimir J. van der Laan
7cc906d349 rust: Don't require resetting AES engine before every use
When using the AES engine in GCM mode, the hardware *requires*
verifying a tag even if we don't care about the result. Otherwise it
will hang in unfinished state, and needs a reset every time.

By going through these motions (like the SDK does) this costly reset can
be avoided.
2020-04-27 19:47:32 +00:00
Wladimir J. van der Laan
e8dc6282e8 rust: Add more test vectors for AES128/256 2020-04-27 19:00:35 +00:00
Wladimir J. van der Laan
4aef921276 rust: add AES and SHA256 peripheral drivers to k210-shared
And expand crypto engines test with more test vectors.
2020-04-26 10:37:41 +00:00
Wladimir J. van der Laan
7a3f75b922 doc: Add k210.dtsi from u-boot
Proposed u-boot k210.dtsi from Sean Anderson has a much more complete
overview of devices then Linux's.
2020-04-23 14:48:11 +00:00
Sean Anderson
f1680533e4 k210-shared: Rewrite compute_params to use fixed-point
This code is adapted from a patch I wrote for U-Boot "clk: Add K210 pll
support" Forty-Bot/u-boot@7d95737a93.
Significant reference was made to the datasheet for the PLL, which may be
found by searching for "tcitsmcn40ggpmplla1". For testing, I use a "brute
force" version of the algorithm which is significantly simpler code-wise.

Signed-off-by: Sean Anderson <seanga2@gmail.com>
2020-04-19 20:17:33 -04:00
Wladimir J. van der Laan
378f08da8e rust: Test sha256 accelerator too 2020-04-13 18:02:52 +00:00
Wladimir J. van der Laan
b0bcfec157 rust: Add cryptest 2020-04-13 16:31:09 +00:00
Wladimir J. van der Laan
488f308e57 rust: Bump rust-secp256k1 version 2020-03-08 18:26:36 +00:00
Wladimir J. van der Laan
185a977ff4 linux: Minor code cleanups 2020-03-06 21:17:12 +00:00
Wladimir J. van der Laan
a2d4fc3445 rust: Use aligned_as macro in voxel
Use updated macro by ExpHP from
https://users.rust-lang.org/t/can-i-conveniently-compile-bytes-into-a-rust-program-with-a-specific-alignment/24049/2
2020-03-06 21:12:57 +00:00
Wladimir J. van der Laan
e7de60ebbc linux: Reduce esptun default baudrate more
Changed to `115200 * 4`.
It's hard to get this stable...
2020-02-23 20:22:40 +00:00
Wladimir J. van der Laan
ab95e18ba8 linux: Handle "SEND FAIL" response
UDP sends can fail and then the ESP module returns "SEND FAIL";
we need to handle this, otherwise we'll never consider the send finished.
2020-02-23 20:02:42 +00:00
Wladimir J. van der Laan
7220737241 linux: Use my_err consistently in esptun
Use my_err instead of perror.

Also fix some printf format type mismatches.
2020-02-23 15:00:22 +00:00
Wladimir J. van der Laan
6a5f43b411 linux: Fix false error condition with back-to-back packets
Correct "no progress" check in `esp_read_responses` to avoid issues with
back-to-back packets crashing the tunnel.
2020-02-23 12:48:42 +00:00
Wladimir J. van der Laan
d1981173f7 rust: Use command names from ST7789V datasheet in LCD driver
Use the command names from the ST7789V datasheet instead of the
arbitrary ones borrowed from the SDK.
2020-02-22 23:34:36 +00:00
Wladimir J. van der Laan
a241403058 linux: Add note about esptun baudrates 2020-02-22 15:01:08 +00:00
Wladimir J. van der Laan
0ebae26c05 linux: Optimize binaries for size 2020-02-22 14:37:06 +00:00
Wladimir J. van der Laan
2819afaae5 linux: Mention mtu setting in esptun doc
The standard tunnel mtu of 1500 will cause packets to be dropped,
causing transferring larger files to fail.
2020-02-22 14:26:29 +00:00
Wladimir J. van der Laan
ce9505e670 linux: Unify logging function in esptun 2020-02-22 13:17:40 +00:00
Wladimir J. van der Laan
afde09e6cc linux: Don't set VTIME in UART configuration for esptun
`read(esp_fd)` should wait for 1 or more characters to be available in
the UART FIFO, no timing required.
2020-02-22 13:01:58 +00:00
Wladimir J. van der Laan
c261d4dcc7 linux: Simplify esptun by getting rid of some helper functions
`cread` and `cwrite` are trivial and only called in one place, so just
integrate them.
2020-02-22 12:55:31 +00:00
Wladimir J. van der Laan
7cbb10693e linux: Set timeout argument on poll() properly
`0` for the timeout means *return immediately* instead of
*wait forever*. This is absolutely unnecessary, so change
the argument to `-1` which does mean *wait until something happens*.
2020-02-22 12:22:25 +00:00
Wladimir J. van der Laan
aab7c0a84b linux: Solve an issue with incomplete packets
esp_read_responses was throwing away the buffer contents between
invocations, which is not a good idea if there might be a (partial)
async notification such a a received packet in there.
2020-02-22 11:40:58 +00:00
Wladimir J. van der Laan
526e9683c2 linux: Tune baudrate in esptun
The maximum baudrate seems unstable at times, tune it down a bit.
2020-02-22 11:24:42 +00:00
Wladimir J. van der Laan
885357f22f linux: deduplicate esp receive logic in esptun
Unify the two similar serial receive loops.
(as a bonus we'll no longer lose packets that come in through the ESP during
esp_tx_packet)
2020-02-22 11:24:42 +00:00
Wladimir J. van der Laan
d9750dcf73 Add k210 linux utilities 2020-02-21 15:42:04 +00:00
Wladimir J. van der Laan
78fb83fe50 rust: Add comment for sysctl set_spi0_dvp_data 2020-02-18 06:23:50 +00:00
Wladimir J. van der Laan
4d987f0d7d rust: Important correction to board definition comment
WIFI_RX and WIFI_TX are named from the perspective of the ESP8285,
so they need to be connected RX<->TX and TX<->RX to be used.
2020-02-17 12:32:32 +00:00