common: Implement Storage::erase() in Mx25l.
[gps-watch.git] / src / common / mx25l.rs
index ea2b8c1667372fe290f8c041d27566dfc9249d58..6c28c5ae904b96dc37791d3dd25f1c1ffe06c3c2 100644 (file)
@@ -115,6 +115,8 @@ impl Mx25l {
             return Ok(());
         }
 
+        self.write_enable();
+
         self.with_selected(|| {
             spi::tx8(spi::SPI0, Command::PP as u8);
 
@@ -157,6 +159,10 @@ impl Mx25l {
 }
 
 impl Storage for Mx25l {
+    fn size(&self) -> usize {
+        2 << 20
+    }
+
     fn read(&self, address: usize, buffer: &mut [u8]) {
         self.with_selected(|| {
             spi::tx8(spi::SPI0, Command::READ as u8);
@@ -192,6 +198,10 @@ impl Storage for Mx25l {
         Ok(())
     }
 
+    fn erase(&mut self, address: usize) -> Result<(), Error> {
+        self.erase_sector(address)
+    }
+
     fn clear(&mut self) {
         self.erase_all();
     }