diff options
author | Clifford Wolf <clifford@clifford.at> | 2017-09-20 20:17:27 +0200 |
---|---|---|
committer | Clifford Wolf <clifford@clifford.at> | 2017-09-20 20:17:27 +0200 |
commit | 51436b1c5017012fb1d666d8a7ffcb96b0906d73 (patch) | |
tree | b31b03127316677e013ece1c53334ac1079319f7 /picosoc/firmware.c | |
parent | 7639e6ebac26fafbff2c3e2a72e83cf5cd0c3a3e (diff) | |
download | picorv32-51436b1c5017012fb1d666d8a7ffcb96b0906d73.tar.gz picorv32-51436b1c5017012fb1d666d8a7ffcb96b0906d73.zip |
PicoSoC QSPI DDR progress
Diffstat (limited to 'picosoc/firmware.c')
-rw-r--r-- | picosoc/firmware.c | 22 |
1 files changed, 16 insertions, 6 deletions
diff --git a/picosoc/firmware.c b/picosoc/firmware.c index ecc8657..1e1fcb3 100644 --- a/picosoc/firmware.c +++ b/picosoc/firmware.c @@ -222,7 +222,9 @@ void cmd_benchmark() void main() { reg_uart_clkdiv = 104; + set_quad_spi_flag(); + // reg_spictrl = (reg_spictrl & ~0x00700000) | 0x00600000; while (getchar_prompt("Press ENTER to continue..\n") != '\r') { /* wait */ } @@ -266,9 +268,11 @@ void main() print("\n"); print(" [1] Read SPI Flash ID\n"); print(" [2] Read SPI Config Regs\n"); - print(" [3] Enable/disable DDR\n"); - print(" [4] Enable/disable QSPI\n"); - print(" [5] Enable/disable XIP\n"); + print(" [3] Switch to QSPI DDR XIP mode\n"); + print(" [4] Switch to QSPI DDR mode\n"); + print(" [5] Switch to QSPI XIP mode\n"); + print(" [6] Switch to QSPI mode\n"); + print(" [7] Switch to default mode\n"); print(" [0] Run simplistic benchmark\n"); print("\n"); @@ -289,13 +293,19 @@ void main() cmd_read_flash_regs(); break; case '3': - reg_spictrl ^= 1 << 22; + reg_spictrl = (reg_spictrl & ~0x00700000) | 0x00700000; break; case '4': - reg_spictrl ^= 1 << 21; + reg_spictrl = (reg_spictrl & ~0x00700000) | 0x00600000; break; case '5': - reg_spictrl ^= 1 << 20; + reg_spictrl = (reg_spictrl & ~0x00700000) | 0x00300000; + break; + case '6': + reg_spictrl = (reg_spictrl & ~0x00700000) | 0x00200000; + break; + case '7': + reg_spictrl = (reg_spictrl & ~0x00700000) | 0x00000000; break; case '0': cmd_benchmark(); |