Wladimir J. van der Laan
4f2c51e00d
rust: Unswizzle framebuffer for ST7789V display
...
By swapping the endian in RAMCTRL as well as in the SPI driver,
the frame format can be coerced into the "normal" order of pixels in
little endian, `0xBBBBAAAA` instead of `0xAAAABBBB`. This allows
seamless casting from an array of `u16`.
Accessing as 32-bit units might still be desirable for performance, but
it is a lesser worry now.
Note that a 32-bit alignment constraint still does hold for DMA.
2020-11-06 07:26:24 +00:00
Wladimir J. van der Laan
b847235d3e
Add note about weird "SPI" mode for ST7789V
...
We're not in Kansas anymore here…
2020-11-06 06:08:40 +01:00
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