On Wed, Sep 22, 2021 at 4:12 AM Joel Stanley <joel@xxxxxxxxx> wrote: > On Tue, 21 Sept 2021 at 21:47, Emmanuel Gil Peyrot > <linkmauve@xxxxxxxxxxxx> wrote: > > > > This engine implements AES in CBC mode, using 128-bit keys only. It is > > present on both the Wii and the Wii U, and is apparently identical in > > both consoles. > > > > The hardware is capable of firing an interrupt when the operation is > > done, but this driver currently uses a busy loop, I’m not too sure > > whether it would be preferable to switch, nor how to achieve that. > > > > It also supports a mode where no operation is done, and thus could be > > used as a DMA copy engine, but I don’t know how to expose that to the > > kernel or whether it would even be useful. > > > > In my testing, on a Wii U, this driver reaches 80.7 MiB/s, while the > > aes-generic driver only reaches 30.9 MiB/s, so it is a quite welcome > > speedup. > > > > This driver was written based on reversed documentation, see: > > https://wiibrew.org/wiki/Hardware/AES > > > > Signed-off-by: Emmanuel Gil Peyrot <linkmauve@xxxxxxxxxxxx> > > Tested-by: Emmanuel Gil Peyrot <linkmauve@xxxxxxxxxxxx> # on Wii U > > --- > > drivers/crypto/Kconfig | 11 ++ > > drivers/crypto/Makefile | 1 + > > drivers/crypto/nintendo-aes.c | 273 ++++++++++++++++++++++++++++++++++ > > 3 files changed, 285 insertions(+) > > create mode 100644 drivers/crypto/nintendo-aes.c > > > > diff --git a/drivers/crypto/Kconfig b/drivers/crypto/Kconfig > > index 9a4c275a1335..adc94ad7462d 100644 > > --- a/drivers/crypto/Kconfig > > +++ b/drivers/crypto/Kconfig > > @@ -871,4 +871,15 @@ config CRYPTO_DEV_SA2UL > > > > source "drivers/crypto/keembay/Kconfig" > > > > +config CRYPTO_DEV_NINTENDO > > + tristate "Support for the Nintendo Wii U AES engine" > > + depends on WII || WIIU || COMPILE_TEST > > This current seteup will allow the driver to be compile tested for > non-powerpc, which will fail on the dcbf instructions. > > Perhaps use this instead: > > depends on WII || WIIU || (COMPILE_TEST && PPC) Or: depends on PPC depends on WII || WIIU || COMPILE_TEST to distinguish between hard and soft dependencies. Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds