Why E300-arty with JTAG ID 0x20000913 failed to upload SPI?

Hello there,

My Arty board works fine with the SiFive E31-Arty evaluation image, so I assume my environment is okay.

I just cloned the latest source of freedom E300 and build the MCS and tested it with freedom-e-sdk to upload software with BOARD=freedom-e300-arty, openocd can connect it, just the ID is not matched.

Error: JTAG tap: riscv.cpu expected 1 of 1: 0x10e31913 (mfg: 0x489 (SiFive, Inc.), part: 0x0e31, ver: 0x1)
Error: Trying to use configured scan chain anyway…
Warn : Bypassing JTAG setup events due to errors

It also failed to upload flash with openocd:
Error: Device ID 0x20000913 is not known as FESPI capable

I just wonder how the Device ID is related to FESPI capability, can some one show me where to modify it in openocd software?


Solved…just found the answer in another thread, please ignore this problem.

# flash bank my_first_flash fespi 0x20000000 0 0 0 $_TARGETNAME
flash bank my_first_flash fespi 0x20000000 0 0 0 $_TARGETNAME 0x10014000

I meet the same problem.
Have you solved the problem?

Hi @yanghui ,

I’m also interested in your solution. Can you share it with us? Thanks!


Hello there,

I have exactly experienced what you mentioned above. I got .mcs file online and debug well using Arduino. while trying to build my own .mcs file through Freedon in GitHub, it failed with error showed above. Here comes the solution:

Find your openocd.cfg file and this line:

flash bank my_first_flash fespi 0x20000000 0 0 0 $_TARGETNAME

Change it to this:

flash bank my_first_flash fespi 0x20000000 0 0 0 $_TARGETNAME 0x10014000

Save and exit, try again. Sometimes it occurs some puzzling errors and trying a second time may solve it luckily.

It is because of some incompatible issues about the different versions which are explained in other threads.

If you have no idea about where to find your openocd.cfg file, you can locate your openocd tools work location and search. I am using Arduino and mine is under sifive package like