"self_destruct" => {
if !matches!(args.as_slice(), [s] if s == "void_my_warrantee") {
return Err(Error::help(
"Usage: 'self_destruct void_my_warrantee'. This PERMANENTLY wipes the chip and bricks it. No returns or exchanges are allowed after executing this command.",
));
}
let mut rram = bao1x_hal::rram::Reram::new();
unsafe { rram.self_destruct() }
// ... and all was null and void!
}
... why? Is the idea here to teach people what not to do? Why would you ever want to brick your own device?
Looking at the all of the security features of dabao board - i'd treat it as an ultimate "oh sh*t" trigger where you don't want to expose anything about the device except what hardware it is. e.g. as a journalist crossing the border
It's got a bunch of other security features too, so you can imagine wanting it to wipe if it had something precious on and was no longer under your control. Also, I was curious what it actually does; it writes 0x2468 to... uh, a register. I'm guessing it's a built-in function.
I wish the article went 1 step further into setting up the Rust toolchain and getting a blinky. I have two of these but the documentation has scared me away into working on other projects. The peripheral documentation in particular is really bad, the "reference guide" is just this auto-generated sludge and two or three sentences scattered throughout the docs of "yeah you really ought to read the Verilog for this chip to understand anything on the peripherals" - https://ci.betrusted.io/bao1x/
0x2ba22e11 | 9 hours ago
I genuinely started this article thinking "meh who cares" and got to the end of it feeling enthusiastic.
Good writeup.
Slightly obvious follow up questions:
0x2ba22e11 | 9 hours ago
Oh what the hell the GPIOs are worth their own entire article. https://www.bunniestudios.com/blog/2026/bio-the-bao-i-o-coprocessor/
This is like candy.
nemin | 7 hours ago
... why? Is the idea here to teach people what not to do? Why would you ever want to brick your own device?
patryk | 6 hours ago
Looking at the all of the security features of dabao board - i'd treat it as an ultimate "oh sh*t" trigger where you don't want to expose anything about the device except what hardware it is. e.g. as a journalist crossing the border
tentacloids | 5 hours ago
It's got a bunch of other security features too, so you can imagine wanting it to wipe if it had something precious on and was no longer under your control. Also, I was curious what it actually does; it writes 0x2468 to... uh, a register. I'm guessing it's a built-in function.
eyesinthefire | 4 hours ago
I wish the article went 1 step further into setting up the Rust toolchain and getting a blinky. I have two of these but the documentation has scared me away into working on other projects. The peripheral documentation in particular is really bad, the "reference guide" is just this auto-generated sludge and two or three sentences scattered throughout the docs of "yeah you really ought to read the Verilog for this chip to understand anything on the peripherals" - https://ci.betrusted.io/bao1x/