aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim Newsome <tim@sifive.com>2017-12-28 16:34:57 -0800
committerGitHub <noreply@github.com>2017-12-28 16:34:57 -0800
commit603ed9c419560317aa644ef90b07dbc615865d7c (patch)
tree182196baaf09ab069c39a7d4eb03ff40c2b070e0
parentc27a777eb8adf3aa039e7797cec802e631bbb780 (diff)
parent8150358cde70a42184ad250795192856f818a5f8 (diff)
downloadriscv-openocd-603ed9c419560317aa644ef90b07dbc615865d7c.zip
riscv-openocd-603ed9c419560317aa644ef90b07dbc615865d7c.tar.gz
riscv-openocd-603ed9c419560317aa644ef90b07dbc615865d7c.tar.bz2
Merge pull request #167 from riscv/sifive_cfg
Add config files for SiFive RISC-V hardware.
-rw-r--r--tcl/board/sifive-coreplexip-e31-arty.cfg31
-rw-r--r--tcl/board/sifive-coreplexip-e51-arty.cfg31
-rw-r--r--tcl/board/sifive-freedom-e300-hifive1.cfg34
3 files changed, 96 insertions, 0 deletions
diff --git a/tcl/board/sifive-coreplexip-e31-arty.cfg b/tcl/board/sifive-coreplexip-e31-arty.cfg
new file mode 100644
index 0000000..8b382dc
--- /dev/null
+++ b/tcl/board/sifive-coreplexip-e31-arty.cfg
@@ -0,0 +1,31 @@
+# JTAG adapter setup
+adapter_khz 10000
+
+interface ftdi
+ftdi_device_desc "Olimex OpenOCD JTAG ARM-USB-TINY-H"
+ftdi_vid_pid 0x15ba 0x002a
+
+ftdi_layout_init 0x0808 0x0a1b
+ftdi_layout_signal nSRST -oe 0x0200
+#ftdi_layout_signal nTRST -data 0x0100 -oe 0x0100
+ftdi_layout_signal LED -data 0x0800
+
+set _CHIPNAME riscv
+jtag newtap $_CHIPNAME cpu -irlen 5 -expected-id 0x20000001
+
+set _TARGETNAME $_CHIPNAME.cpu
+
+target create $_TARGETNAME.0 riscv -chain-position $_TARGETNAME
+$_TARGETNAME.0 configure -work-area-phys 0x80000000 -work-area-size 10000 -work-area-backup 1
+
+# Un-comment these two flash lines if you have a SPI flash and want to write
+# it.
+flash bank spi0 fespi 0x40000000 0 0 0 $_TARGETNAME.0 0x20004000
+init
+if {[ info exists pulse_srst]} {
+ ftdi_set_signal nSRST 0
+ ftdi_set_signal nSRST z
+}
+halt
+flash protect 0 64 last off
+echo "Ready for Remote Connections"
diff --git a/tcl/board/sifive-coreplexip-e51-arty.cfg b/tcl/board/sifive-coreplexip-e51-arty.cfg
new file mode 100644
index 0000000..8b382dc
--- /dev/null
+++ b/tcl/board/sifive-coreplexip-e51-arty.cfg
@@ -0,0 +1,31 @@
+# JTAG adapter setup
+adapter_khz 10000
+
+interface ftdi
+ftdi_device_desc "Olimex OpenOCD JTAG ARM-USB-TINY-H"
+ftdi_vid_pid 0x15ba 0x002a
+
+ftdi_layout_init 0x0808 0x0a1b
+ftdi_layout_signal nSRST -oe 0x0200
+#ftdi_layout_signal nTRST -data 0x0100 -oe 0x0100
+ftdi_layout_signal LED -data 0x0800
+
+set _CHIPNAME riscv
+jtag newtap $_CHIPNAME cpu -irlen 5 -expected-id 0x20000001
+
+set _TARGETNAME $_CHIPNAME.cpu
+
+target create $_TARGETNAME.0 riscv -chain-position $_TARGETNAME
+$_TARGETNAME.0 configure -work-area-phys 0x80000000 -work-area-size 10000 -work-area-backup 1
+
+# Un-comment these two flash lines if you have a SPI flash and want to write
+# it.
+flash bank spi0 fespi 0x40000000 0 0 0 $_TARGETNAME.0 0x20004000
+init
+if {[ info exists pulse_srst]} {
+ ftdi_set_signal nSRST 0
+ ftdi_set_signal nSRST z
+}
+halt
+flash protect 0 64 last off
+echo "Ready for Remote Connections"
diff --git a/tcl/board/sifive-freedom-e300-hifive1.cfg b/tcl/board/sifive-freedom-e300-hifive1.cfg
new file mode 100644
index 0000000..b0a8e26
--- /dev/null
+++ b/tcl/board/sifive-freedom-e300-hifive1.cfg
@@ -0,0 +1,34 @@
+adapter_khz 10000
+
+interface ftdi
+ftdi_device_desc "Dual RS232-HS"
+ftdi_vid_pid 0x0403 0x6010
+
+ftdi_layout_init 0x0008 0x001b
+ftdi_layout_signal nSRST -oe 0x0020 -data 0x0020
+
+#Reset Stretcher logic on FE310 is ~1 second long
+#This doesn't apply if you use
+# ftdi_set_signal, but still good to document
+#adapter_nsrst_delay 1500
+
+set _CHIPNAME riscv
+jtag newtap $_CHIPNAME cpu -irlen 5 -expected-id 0x10e31913
+
+set _TARGETNAME $_CHIPNAME.cpu
+target create $_TARGETNAME riscv -chain-position $_TARGETNAME
+$_TARGETNAME configure -work-area-phys 0x80000000 -work-area-size 10000 -work-area-backup 1
+
+flash bank onboard_spi_flash fespi 0x20000000 0 0 0 $_TARGETNAME
+init
+#reset -- This type of reset is not implemented yet
+if {[ info exists pulse_srst]} {
+ ftdi_set_signal nSRST 0
+ ftdi_set_signal nSRST z
+ #Wait for the reset stretcher
+ #It will work without this, but
+ #will incur lots of delays for later commands.
+ sleep 1500
+}
+halt
+flash protect 0 64 last off