aboutsummaryrefslogtreecommitdiffstats
path: root/picosoc/firmware.c
diff options
context:
space:
mode:
authorClifford Wolf <clifford@clifford.at>2017-09-20 20:17:27 +0200
committerClifford Wolf <clifford@clifford.at>2017-09-20 20:17:27 +0200
commit51436b1c5017012fb1d666d8a7ffcb96b0906d73 (patch)
treeb31b03127316677e013ece1c53334ac1079319f7 /picosoc/firmware.c
parent7639e6ebac26fafbff2c3e2a72e83cf5cd0c3a3e (diff)
downloadpicorv32-51436b1c5017012fb1d666d8a7ffcb96b0906d73.tar.gz
picorv32-51436b1c5017012fb1d666d8a7ffcb96b0906d73.zip
PicoSoC QSPI DDR progress
Diffstat (limited to 'picosoc/firmware.c')
-rw-r--r--picosoc/firmware.c22
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();