[SOLVED] HiFive Unmatched Rev B doesn't boot, D2 LED red

Hi, I’ve just received a HiFive Unmatched Rev B board, attached an ATX PSU to it (BeQuiet 550W), and tried to boot it with the SD card provided in the package (preflashed with Freedom U SDK). The result was D2 LED glowing red and no output being printed to the serial console (/dev/ttyUSB1, /dev/ttyUSB0 being JTAG, I presume). The MSEL[3:0] combination is 1011 and I’ve tried both CHIPIDSEL settings, which I’m not sure are documented anywhere. Setting CHIPIDSEL=1 leads to same outcome, except “Error 0x0000000000000001“ is printed to the /dev/ttyUSB1 at baud rate 57600. Maybe I’m missing something required for the boot, or is this a hardware issue?

P.S.: I’ve also tried a SanDisk Ultra 32GB card flashed with Ubuntu server 24.04.4 preinstalled image, with the same result.

I’ve also tried attaching to the JTAG interface using the USB console and the openocd config from freedom-tools, but I couldn’t get it to run:

% openocd -f sifive_hifive_unmatched.cfg
Open On-Chip Debugger 0.12.0-01004-g9ea7f3d64-dirty (2025-11-12-08:18)
Licensed under GNU GPL v2
...
Info : auto-selecting first available session transport "jtag". To override use 'transport select <transport>'.
Info : Hardware thread awareness created
Info : ftdi: if you experience problems at higher adapter clocks, try the command "ftdi tdo_sample_edge falling"
Info : clock speed 10000 kHz
Info : JTAG tap: riscv.cpu tap/device found: 0x20000913 (mfg: 0x489 (SiFive Inc), part: 0x0000, ver: 0x2)
Info : datacount=2 progbufsize=16
Error: OpenOCD only supports Debug Module version 2 (0.13) and 3 (1.0), not 0 (dmstatus=0x0). This error might be caused by a JTAG signal issue. Try reducing the JTAG clock speed.
Error: unable to halt hart 0
Error:   dmcontrol=0x80000001
Error:   dmstatus =0x00030c82
Error: Fatal: Hart 0 failed to halt during examine()
Warn : target riscv.cpu0 examination failed
Info : datacount=2 progbufsize=16
Error: OpenOCD only supports Debug Module version 2 (0.13) and 3 (1.0), not 0 (dmstatus=0x0). This error might be caused by a JTAG signal issue. Try reducing the JTAG clock speed.
Error: Failed read (NOP) at 0x11; value=0x0, status=1
Error: unable to halt hart 1
Error:   dmcontrol=0x80010001
Error:   dmstatus =0x00030c82
Error: Fatal: Hart 1 failed to halt during examine()
Warn : target riscv.cpu1 examination failed
Error: dtmcontrol is 0. Check JTAG connectivity/board power.
...
Error: unable to halt hart 4
Error:   dmcontrol=0x80040001
Error:   dmstatus =0x00030c82
Error: Fatal: Hart 4 failed to halt during examine()
Warn : target riscv.cpu4 examination failed
Info : starting gdb server for riscv.cpu0 on 3333
Info : Listening on port 3333 for gdb connections
Error: Target not examined yet

I’ve managed to get JTAG connected to the board, I’ve tried to run “continue“ in GDB to see where it gets stuck, but every time it runs for a while and then gets interrupted at instruction at address 0x101d8. Here’s the dump:


P.S.: Trying to single-step the execution leads to the board jumping to zero, then back to the 0x10XXX range, then finally getting stuck at 0x10702

Issue fixed: setting CHIPIDSEL=1, MSEL[3:0]=0100 (inverting the 1011 suggested in the documentation) helped me reach the bootloader and boot into the Freedom U SDK distro.