forked from M-Labs/artiq
runtime: show a prompt to erase startup/idle kernels.
This commit is contained in:
parent
1d1e821a74
commit
965fdd35e5
|
@ -18,6 +18,7 @@ use logger::BufferLogger;
|
||||||
extern {
|
extern {
|
||||||
fn putchar(c: libc::c_int) -> libc::c_int;
|
fn putchar(c: libc::c_int) -> libc::c_int;
|
||||||
fn readchar() -> libc::c_char;
|
fn readchar() -> libc::c_char;
|
||||||
|
fn readchar_nonblock() -> libc::c_int;
|
||||||
}
|
}
|
||||||
|
|
||||||
#[macro_export]
|
#[macro_export]
|
||||||
|
@ -100,11 +101,23 @@ pub unsafe extern fn rust_main() {
|
||||||
static mut LOG_BUFFER: [u8; 65536] = [0; 65536];
|
static mut LOG_BUFFER: [u8; 65536] = [0; 65536];
|
||||||
BufferLogger::new(&mut LOG_BUFFER[..])
|
BufferLogger::new(&mut LOG_BUFFER[..])
|
||||||
.register(move || {
|
.register(move || {
|
||||||
info!("booting ARTIQ...");
|
clock::init();
|
||||||
|
info!("booting ARTIQ");
|
||||||
info!("software version {}", GIT_COMMIT);
|
info!("software version {}", GIT_COMMIT);
|
||||||
info!("gateware version {}", ::board::ident(&mut [0; 64]));
|
info!("gateware version {}", ::board::ident(&mut [0; 64]));
|
||||||
|
|
||||||
clock::init();
|
let t = clock::get_ms();
|
||||||
|
info!("press 'e' to erase startup and idle kernels...");
|
||||||
|
while clock::get_ms() < t + 1000 {
|
||||||
|
if readchar_nonblock() != 0 && readchar() == b'e' as libc::c_char {
|
||||||
|
config::remove("startup_kernel");
|
||||||
|
config::remove("idle_kernel");
|
||||||
|
info!("startup and idle kernels erased");
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
info!("continuing boot");
|
||||||
|
|
||||||
rtio_crg::init();
|
rtio_crg::init();
|
||||||
network_init();
|
network_init();
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue