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/icE1usb/fw_app.c b/firmware/ice40-riscv/icE1usb/fw_app.c index 17379b3..cb4dbb8 100644 --- a/firmware/ice40-riscv/icE1usb/fw_app.c +++ b/firmware/ice40-riscv/icE1usb/fw_app.c
@@ -53,8 +53,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/icE1usb/misc.c b/firmware/ice40-riscv/icE1usb/misc.c index 4fdd2f5..dca126a 100644 --- a/firmware/ice40-riscv/icE1usb/misc.c +++ b/firmware/ice40-riscv/icE1usb/misc.c
@@ -56,3 +56,9 @@ { return misc_regs->e1_tick[0].tx; } + +void +reboot(int fw) +{ + misc_regs->warmboot = (1 << 2) | (fw << 0); +}
diff --git a/firmware/ice40-riscv/icE1usb/misc.h b/firmware/ice40-riscv/icE1usb/misc.h index 6d90364..69c0da7 100644 --- a/firmware/ice40-riscv/icE1usb/misc.h +++ b/firmware/ice40-riscv/icE1usb/misc.h
@@ -28,3 +28,5 @@ void e1_led_set(bool enable, uint8_t cfg); uint16_t e1_tick_read(void); + +void reboot(int fw);