1extern crate libc;
4extern crate intel_spi;
5
6use intel_spi::Spi;
7use std::fs;
8
9mod util;
10
11fn main() {
12 let mut spi = unsafe { util::get_spi() };
13
14 eprintln!("SPI HSFSTS_CTL: {:?}", spi.regs.hsfsts_ctl());
15
16 let len = spi.len().unwrap();
17 eprintln!("SPI ROM: {} KB", len / 1024);
18
19 let mut data = Vec::with_capacity(len);
20 while data.len() < len {
21 let mut buf = [0; 65536];
22 let read = spi.read(data.len(), &mut buf).unwrap();
23 data.extend_from_slice(&buf[..read]);
24 eprint!("\rSPI READ: {} KB", data.len() / 1024);
25 }
26
27 eprintln!();
28
29 fs::write("read.rom", &data).unwrap();
30}