Commit Graph

139 Commits

Author SHA1 Message Date
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
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
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
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
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
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
Wladimir J. van der Laan
5d20ac05a0 rust: k210-console: Fixes for colorfont generation script 2020-02-16 15:01:05 +00:00
Wladimir J. van der Laan
0636964b39 rust: weather: Show UART1 info at start 2020-02-16 14:57:13 +00:00
Wladimir J. van der Laan
34761dc4b6 rust: k210-console: allow utf to map to color font
- allow utf map function to map to color font (by making it return
  cell-flags too)
- gencolorfont.py accepts multiple input images
2020-02-09 14:30:05 +00:00
Wladimir J. van der Laan
b7fdbc0ad7 rust: Add module for timing/FPS measurement 2020-02-07 19:50:37 +00:00
Wladimir J. van der Laan
556b375078 rust: k210-console: Add cursor positioning 2020-02-07 19:50:37 +00:00
Wladimir J. van der Laan
412e414198 rust: Add comment 2020-02-07 19:50:37 +00:00
Wladimir J. van der Laan
8806f01455 rust: Add LCD shutdown function 2020-02-07 18:48:45 +00:00
Wladimir J. van der Laan
9e6c9f5a8f rust: i2c: Reset I2C controller at initialization
Prevent random hangs when restarting the application because
the I2C controller is still in a busy state.
2020-02-07 18:48:45 +00:00
Wladimir J. van der Laan
0fbf997b0d rust: Split out some structures from k210-console 2020-02-03 16:39:14 +00:00
Wladimir J. van der Laan
69636c4005 rust: Pass in font mapping to k210-console
Support other unicode to font mappings (such as application specific
ones) besides cp437.
2020-02-03 16:19:00 +00:00
Wladimir J. van der Laan
fa38e28491 rust: Pass in font for k210-console
Allow the user code to specify which font to use.
2020-02-03 15:38:17 +00:00
Wladimir J. van der Laan
f9620a47c3 rust: add colorfont support to k210-console
useful for emoji and other small hardcoded images
2020-02-03 15:00:33 +00:00
Wladimir J. van der Laan
0e88fae4d2 rust: lock embedded-graphics to 0.6.0-alpha.2
The API keeps changing significantly between alpha versions, it's too much
work for me to keep updating the demo - I'll update it to 0.6.0 once
there is a release.
2020-02-02 16:55:22 +00:00
Wladimir J. van der Laan
bd40892845 rust: add upstream PR for cc-rs 2020-01-19 18:10:26 +00:00
Wladimir J. van der Laan
ff78df047d voxel: Use accelerometer to steer 2020-01-12 17:36:28 +00:00
Wladimir J. van der Laan
7e0b0f05b0 voxel: Add smoothing for height 2020-01-12 13:12:20 +00:00
Wladimir J. van der Laan
e85a074309 rust: Add voxel rendering demo 2020-01-12 11:55:53 +00:00
Wladimir J. van der Laan
a1c65405ea rust: Clean up cargo patches
No more need for any `k210-hal` and `k210-pac` patches with 0.2.0
2019-12-28 20:17:37 +00:00
Wladimir J. van der Laan
33eab72e3e k210-console: SGR 39/49
these are fairly important: reset to default color
2019-10-14 02:37:53 +00:00