After I finally received my HiFive1 board, I was excited to try it. I plugged it in on the USB port, the two green power indicator LEDs lit up but nothing else happened, the RGB-LED stayed dark. I also tried using an external power supply to power the board, but it still didn’t show the led_fade demo.
After that, I tried to re-flash the led_fade program and suddenly the RGB-LED showed the expected pattern. However, after a reset or power loss it still remained dark. In the next step I tried to re-flash the bootloader, considering the modified values for the linker and the openocd command. Unfortunately this also did not fix the issue. I discovered that I could manually start the execution of the program with openocd’s resume 0x2000000 command.
Hmm, it sounds like this board snuck through the testing procedures. It sounds like its OTP was never programmed, which should be an essential step to pass the tests, which makes me wonder if it really passed all the tests.
Can you check whether the OTP was programmed, as follows?
Hit reset on your board
Connect with open_ocd (make run_openocd)
Connect with GDB in other window (make run_gdb)
Try the following in GDB to examine your ROM and OTP code:
(gdb) target extended-remote localhost:3333
(gdb) display/i $pc
??? What does it show?
(gdb) x/i 0x1000
Should show: 0x1000: j 0x20000
(gdb) x/i 0x20000
Should show: 0x20000: j 0x21ff4
(gdb) x/i 0x21ff4
Should show: 0x21ff4 : fence unknown, unknown
(gdb) x/i 21ff8
Should show 0x21ff8: lui t0, 0x20000
(gdb) x/i 21ffc
Should show 0x21ffc : jr t0
You can also email info@sifive.com as we may need to send you a replacement if we can’t figure it out remotely.