commit | 46d6b412f55f0a6697199c7cf62929a8b4c997d9 | [log] [tgz] |
---|---|---|
author | Sylvain Munaut <tnt@246tNt.com> | Thu Oct 29 13:19:05 2020 +0100 |
committer | Sylvain Munaut <tnt@246tNt.com> | Thu Oct 29 13:19:05 2020 +0100 |
tree | 63221d01fec1bfbdf71436badcba1c185af058a2 | |
parent | 4ea7d27764affd317169a80c6cafe3b4df79bde3 [diff] |
firmware/ice40-riscv: Create a reboot() function instead of direct access to registers. Signed-off-by: Sylvain Munaut <tnt@246tNt.com> Change-Id: Iaee092c5ef651f0350b3f46386ed79fdbe06afcb
diff --git a/firmware/ice40-riscv/e1-tracer/fw_app.c b/firmware/ice40-riscv/e1-tracer/fw_app.c index b207ad2..c764b2e 100644 --- a/firmware/ice40-riscv/e1-tracer/fw_app.c +++ b/firmware/ice40-riscv/e1-tracer/fw_app.c
@@ -55,8 +55,7 @@ usb_disconnect(); /* Boot firmware */ - volatile uint32_t *boot = (void*)MISC_BASE; - *boot = (1 << 2) | (1 << 0); + reboot(1); } void
diff --git a/firmware/ice40-riscv/e1-tracer/misc.c b/firmware/ice40-riscv/e1-tracer/misc.c index c628cda..a7d8bc5 100644 --- a/firmware/ice40-riscv/e1-tracer/misc.c +++ b/firmware/ice40-riscv/e1-tracer/misc.c
@@ -35,3 +35,10 @@ ticks[0] = (v ) & 0xffff; ticks[1] = (v >> 16) & 0xffff; } + + +void +reboot(int fw) +{ + misc_regs->warmboot = (1 << 2) | (fw << 0); +}
diff --git a/firmware/ice40-riscv/e1-tracer/misc.h b/firmware/ice40-riscv/e1-tracer/misc.h index 31e8f80..ac942ec 100644 --- a/firmware/ice40-riscv/e1-tracer/misc.h +++ b/firmware/ice40-riscv/e1-tracer/misc.h
@@ -13,3 +13,5 @@ void vio_set(unsigned value); void e1_tick_read(uint16_t *ticks); + +void reboot(int fw);