Re: [PATCH v2 3/4] nvmem: Replace the Wii and Wii U OTP driver with a Rust one
flat view
From: Link Mauve <hidden>
Date: 2026-03-04 18:54:53
Also in:
lkml, rust-for-linux
Hi, I’m working on a v3 of this series atm. On Wed, Feb 04, 2026 at 05:05:00AM +0100, Link Mauve wrote:
I wrote this driver long ago, and wanted to try seeing how hard it would be to convert it to Rust. It is a very simple driver, we write the address we want to read in one memory address, and read the data from a second memory address. A third memory address can be used to disable all reads in a range until the system has been rebooted, but I didn’t find any reason to expose that feature. I made sure to use no unsafe in this driver, to make sure the API exposed in the previous commit is usable. Ideally we wouldn’t have to impl the write() function in NintendoOtpProvider, but currently the vtable requires both. I have tested this driver only on a Wii so far, but I assume it will work the same on a Wii U, just exposing more memory banks. Signed-off-by: Link Mauve <redacted> --- drivers/nvmem/Kconfig | 1 + drivers/nvmem/Makefile | 2 +- drivers/nvmem/nintendo-otp.c | 122 -------------------------------- drivers/nvmem/nintendo_otp.rs | 127 ++++++++++++++++++++++++++++++++++ 4 files changed, 129 insertions(+), 123 deletions(-) delete mode 100644 drivers/nvmem/nintendo-otp.c create mode 100644 drivers/nvmem/nintendo_otp.rs
Should I make it a Rust reference driver[1] and keep the C version, or is replacing the C driver like I’m doing here okay? Ideally I would only maintain the Rust version in the end, but I’m fine with maintaining both for the time being, until we have everything sorted out. [1] https://rust-for-linux.com/rust-reference-drivers -- Link Mauve