I had successfully installed Ubuntu 21 to the SD card and the NVME SSD (Samsung 970 EVO) yesterday, and it was working fine. Now today this is emitted during boot:
U-Boot SPL 2021.01+dfsg-3ubuntu9 (Apr 21 2021 - 17:05:00 +0000)
Trying to boot from MMC1
U-Boot 2021.01+dfsg-3ubuntu9 (Apr 21 2021 - 17:05:00 +0000)
CPU: rv64imafdc
Model: SiFive HiFive Unmatched A00
DRAM: 16 GiB
MMC: spi@10050000:mmc@0: 0
EEPROM: SiFive PCB EEPROM format v1
Serial number: SF105SZ212200723
PCB revision: 3
Ethernet MAC address: 70:b3:d5:92:f9:87
CRC: 553e04e9
EEPROM dump: (0x25 bytes)
00: F1 5E 50 45 01 02 00 03 42 00 53 46 31 30 35 53
10: 5A 32 31 32 32 30 30 37 32 33 01 70 B3 D5 92 F9
20: 87 E9 04 3E 55
found SiFive v1
In: serial@10010000
Out: serial@10010000
Err: serial@10010000
Model: SiFive HiFive Unmatched A00
Net: eth0: ethernet@10090000
Hit any key to stop autoboot: 0
PCIe Link up, Gen1
Device 0: Vendor: 0x144d Rev: 2BUnhandled exception: Illegal instruction
EPC: 0000000000000000 RA: 0000000000000000 TVAL: 0000000000000000
EPC: ffffffff8029d000 RA: ffffffff8029d000 reloc adjusted
resetting ...
System reset not supported on this platform
### ERROR ### Please RESET the board ###
I figured some corruption may have occurred when I forced the machine to power off last night. So I re-imaged the SD card, and then the SSD with a USB enclosure but it still happens when the SSD is plugged in.
your ssd may be incompatible with the board. sifive suggest samsung 970plus。in fact , hp ex900 250G also can work.
change your ssd to an older version and try again.
Does it boot from just the SD card without the NVME present?
I had an SD card completely fail on me during my initial testing with Ubuntu… I’m unsure if the board, or even the OS, did something to it or if I just had a bad card, because it hasn’t happened again with a new one… But it might be worth checking, as it might be an indicator of something worse going on.
Edit: Thinking about it, it actually happened shortly after I switched to using an NVME drive.
I also had the first (brand new, Sandisk Extreme 32 GB) SD card I tried fail. I believe I hadn’t even put it into the Unmatched (so it’s not its fault). I wrote Ubuntu onto it and it wouldn’t verify. I couldn’t do anything to revive it and threw it away. I had spare cards on hand and the next one worked fine.
@spaceotter Could you try running diagnostics (for example, smartctl) on the SSD card from another system?
If you have a USB to SSD drive you could also try to run diagnostics on the Unmatched board after inserting the USB to SSD post (micro SD card) Linux boot.
It would be helpful to isolate this as a HW or SW issue.
If you have an image on NVME, then the bootloader will try to boot from NVME, but this does’t always work. There is a default order for booting which puts NVME before SDcard. Your SDcard is probably still OK. And your nvme drive is probably OK too. You can interrupt booting at the prompt "Hit any key to stop autoboot: 0 " before the count hits zero. Then at the u-boot prompt you can run “run bootcmd_mmc0” to force a boot from the SD card. This is documented in the SW Reference manual on the sifive web site. You can find docs at the bottom of this link. https://www.sifive.com/boards/hifive-unmatched
You can set up to boot from sd card and use nvme root which is more stable than booting directly from nvme. If you want to keep your nvme image, but stop booting from it, then I think all you need to do is remove or rename the extlinux.conf file on the fourth partition, as I think that is what the boot loader looks for.
I have an image on my nvme card and sometimes it boots fine and sometimes it doesn’t. Usually if I powercycle it will eventually succeed in booting directly from nvme. I don’t think it is known what the problem is. If you have USB devices attached (other than keyboard/mouse), you might try removing them to see if that makes the system boot better from nvme. In general, I’ve found that a usb thumb drive seems to cause trouble when attached. It may also make a difference which USB port devices are plugged into. Looking at the back of the board, the port on the upper left is directly connected to the pcie switch, the other three are not. So that port on the upper left tends to work better than the other three.
The NVME mysteriously started working again after I used run bootcmd_mmc0 to boot from the SD card and checked it with smartctl. If it happens again I can report whether this is repeatable.
I too got this error, but it wasn’t because of the SSD. I had originally thought it was due to an overclock, but I booted an older kernel version, and everything is back to normal.
I’m currently running the Ubuntu server image off SSD. I’m back to 5.11.0-1012-generic
This may or may not be related to the original issue, but i’m now “stuck” on 1013 and 1014. Which i’m unsure where the debs are for me to roll back to 1012.
Essentially some kernel builds hit Illegal instruction during ftrace_init() as observed during a bad boot with a few debug statements added.
Yet if one adds a bit more debug print statements it boots fine as seen in the good boot.
There is no kexec/kdump facility available, and I don’t know how to gdb the kernel with jtag. I have built the good & bad kernels with debug symbols, and attached the reference base image. Swapping in vmlinuz-5.11* alone from bad/good boots triggers failed/successful boots.
At this point I don’t know if there is a CPU bug / errata that is being reproduced, or if there is some toolchain bug of not aligning something. I’m also not sure how to debug and investigate this issue further.
Please see the boot logs attached there, and how minimal the diff between good & bad build is.
It does kind of means that arbitrary kernels builds may or may not be bootable on Unmatched in v5.11 series at least.