Unable to boot HiFive Unleashed

(ByungukMin) #1


I have a question regarding basic boot of HiFive Unleashed.
What I did is,

  • I got pre-built Linux BSP from https://www.sifive.com/boards,
  • Following guideline from https://github.com/sifive/freedom-u-sdk, I wrote the downloaded BSP to my micro SDcard through “zcat …” command from the link.
  • However, whenever I inserted the card and turned on the board, I couldn’t access the board through ssh. (“No route to host”)

Here is a weird point.
Although the manual(Getting Started Guide v1p1) says only top of 4 LEDs blinks regularly after inserting SDcard, in my case, all 4 of them are turned on without any blink.
Image = https://drive.google.com/open?id=1hvqYig6zY0NH0cEzk9mvY1mIpoq3NTsM
And 3 of LEDs are turned on even without inserted SDcard.

My question is,

  • Are there any steps I missed to connect the board with ssh?
  • Is the LED issue relevant to the problem? or the board works well without LED blink?


(Jim Wilson) #2

You should be connecting via a serial port first, using a USB cable. With the serial port, you have access to the console that will show boot loader and linux kernel messages. This is info that might help diagnose what is wrong.

Have you set the boot select switches correctly? We have two different kinds of images, which require two different boot select switch settings. If you orient the board so that the red power switch is on the left, then with an old image, without u-boot, all boot select switches must be to the left. With a new image, with u-boot, one switch must be on the right. There is a diagram in the freedom-u-sdk README that shows the position of these switches for a new image. You should have a new image if you got it from our sifive.com/boards page.

Are you sure that you are trying to connect to the right IP address via ssh?

The linux kernel uses one of the LEDs as a heartbeat. If the linux kernel boots, it will flash about once a second. If you see the flashing, then the linux kernel has as least part way booted. If it isn’t flashing, then the linux kernel did not boot.

(ByungukMin) #3


Thank you for the specific answers.
After checking your advice, I think my problem lied in my SDcard’s content. That’s because even though I tried with boot select switch of README’s diagram, I couldn’t find LEDs as a heartbeat, which means linux kernel doesn’t boot properly.
Are there any extra steps required to make bootable SDcard besides using dd command from README? (Any possible problems from wrong partitions?)
The used image is the one from sifive.com/boards page.
And my SDcard’s partition looks like below when writing is finished to my SDcard.

(Jim Wilson) #4

The dd command from the README is all you need. Info from the serial console would be extremely useful to have. But failing that, you might try another SDcard in case this one is bad, or in case maybe the first dd command gave a corrupted image on the SDcard. It is also a possibility that the download from our web site failed and you have a corrupted image. You could try downloading again and comparing images. I don’t know if anyone has tried 128GB SDcards, we ship with 8GB SDcard, and I think I have only tried up to 32GB cards, but I don’t know of any reason why that would be a problem.

You should also try a known working image, like the one that shipped with the board, after putting the boot switches back, so make sure the Unleashed card is still OK.

Basically, you need to verify everything that might possibly have failed. And get the serial console working.

(ByungukMin) #5

Again, thank you for your answers!

I was able to solve the booting problem through the one from archive/buildroot, and observed the LED heartbeat.
And with a exactly same log in the following link, sd card was able to be booted.

Now I can access buildroot through the serial port, and should solve the further issues regarding this. I’ll open new thread when new questions come out.
My last concern is, is there any difference between the latest booting method(201908-branch) and the one from archive/buildroot? If there’s huge flaw in the old one and it is not recommended to use it, I’ll try once more with the new version.

(Jim Wilson) #6

The booting process is different. archive/buildroot uses a machine-mode u-boot. the v201908-branch uses opensbi and a supervisor-mode u-boot. Long term, the v201908-branch will likely be better supported than the archive/buildroot branch. The machine-mode u-boot is not upstream, the supervisor-mode u-boot is. The opensbi/s-mode u-boot is the preferred method for booting. But if you aren’t a boot time expert, none of this probably matters as they both get you to a linux prompt.

(Troy Benjegerdes) #7

The new version is missing a few features, like the LED heartbeat. Until we have a new release that fixes the heartbeat LEDs I’ve been recommending the old archive/buildroot release because it’s a lot easier to tell if the board is working or if something’s wrong by looking at the LED activity.

I was also hoping to have time to send a new patch for M-mode U-boot to upstream but that may be awhile.