quark_d20xx.cfg 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. # SPDX-License-Identifier: GPL-2.0-or-later
  2. if { [info exists CPUTAPID] } {
  3. set _CPUTAPID $CPUTAPID
  4. } else {
  5. set _CPUTAPID 0x38289013
  6. }
  7. jtag newtap quark_d20xx quark -irlen 8 -irmask 0xff -expected-id $_CPUTAPID -disable
  8. jtag newtap quark_d20xx cltap -irlen 8 -irmask 0xff -expected-id 0x0e786013 -enable
  9. proc quark_d20xx_tapenable {} {
  10. echo "enabling quark core tap"
  11. irscan quark_d20xx.cltap 0x11
  12. drscan quark_d20xx.cltap 12 1
  13. runtest 10
  14. }
  15. proc quark_d20xx_tapdisable {} {
  16. echo "disabling quark core tap"
  17. irscan quark_d20xx.cltap 0x11
  18. drscan quark_d20xx.cltap 12 0
  19. runtest 10
  20. }
  21. proc quark_d20xx_setup {} {
  22. jtag tapenable quark_d20xx.quark
  23. }
  24. jtag configure quark_d20xx.quark -event tap-enable \
  25. "quark_d20xx_tapenable"
  26. jtag configure quark_d20xx.quark -event tap-disable \
  27. "quark_d20xx_tapdisable"
  28. target create quark_d20xx.quark quark_d20xx -endian little -chain-position quark_d20xx.quark
  29. quark_d20xx.quark configure -event reset-start {
  30. # need to halt the target to write to memory
  31. if {[quark_d20xx.quark curstate] ne "halted"} { halt }
  32. # set resetbreak via the core tap
  33. irscan quark_d20xx.quark 0x35 ; drscan quark_d20xx.quark 1 0x1
  34. # trigger a warm reset
  35. mww 0xb0800570 0x2
  36. # clear resetbreak
  37. irscan quark_d20xx.quark 0x35 ; drscan quark_d20xx.quark 1 0x0
  38. }
  39. jtag configure quark_d20xx.quark -event setup \
  40. "quark_d20xx_setup"