nvmem: nintendo-otp: Add new driver for the Wii and Wii U OTP
authorEmmanuel Gil Peyrot <linkmauve@linkmauve.fr>
Tue, 10 Aug 2021 15:30:36 +0000 (16:30 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 13 Aug 2021 08:27:20 +0000 (10:27 +0200)
commit3683b761fe3a10ad18515acd5368dd601268cfe5
treeb374fb59a83a8ade2ff5eee281e8b3db72c26825
parent9aaf4d2a08182b7ef6d939642a6d92564bd83b2f
nvmem: nintendo-otp: Add new driver for the Wii and Wii U OTP

This OTP is read-only and contains various keys used by the console to
decrypt, encrypt or verify various pieces of storage.

Its size depends on the console, it is 128 bytes on the Wii and
1024 bytes on the Wii U (split into eight 128 bytes banks).

It can be used directly by writing into one register and reading from
the other one, without any additional synchronisation.

This driver was written based on reversed documentation, see:
https://wiiubrew.org/wiki/Hardware/OTP

Tested-by: Jonathan Neuschäfer <j.ne@posteo.net> # on Wii
Tested-by: Emmanuel Gil Peyrot <linkmauve@linkmauve.fr> # on Wii U
Signed-off-by: Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Link: https://lore.kernel.org/r/20210810153036.1494-3-srinivas.kandagatla@linaro.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/nvmem/Kconfig
drivers/nvmem/Makefile
drivers/nvmem/nintendo-otp.c [new file with mode: 0644]