HiFive Premier P550 Ubuntu 24.04 Update now available

For those of you who purchased an Early Access Version of the HiFive Premier P550, you can now update your boards to Ubuntu 24.04. The image update guide is located here:

https://www.sifive.com/document-file/hifive-premier-image-update-procedure

and the Ubuntu 24.04 RISC-V image is here:

Enjoy Ubuntu on the HiFive Premier P550

Hi, I have just flashed the ubuntu image and bootchain image to my p550 board accordingly.
I poweroff the board and removed my SD card after the process. Then I poweron the board but it won’t boot into ubuntu.

I see following messages from the USB serial console:

 [display init]Eswin UBooT DRM driver version: v1.0.1
 In: serial,usbkbd
 Out: vidconsole,seria1
 Err:vidconsole,serial
 Bootspi flash write protection enabled
 Get som info from flashERROR: No valid SoM Board info
 Cpu volatge need boost above 1.6 Ghz!
 Could not find "root" partition
 Low power features will not be supported!
 Net:eth0:ethernet@50400000
 Working FDT set to ed51c710

 starting USB...
 Bus usb1@50490000: Register 2000140 NbrPorts 2
 Starting the controller
 USB XHCI 1.10
 scanning bus usb1@50490000 for devices... 3 USB Device(s) found
 scanning usb for storage devices... 0 Storage Device(s) found
 No SATA device found!
 Hit any key to stop autoboot:0
 Retrieving file:/extlinux/extlinux.conf
 Error reading config file

I have to type β€œbootflow scan” on the console in order to boot into ubuntu.
This is quite annoying to me. What should I do to make the process happen automatically?

It should be booting with EFI, not EXT_LINUX. You should end up in the GRUB menu. Here’s what my boot looks like.

U-Boot 2024.01 (Nov 06 2024 - 05:26:46 +0000)                                   
                                                                                
CPU:   rv64imafdc_zba_zbb                                                       
Model: SiFive HiFive Premier P550                                               
DRAM:  16 GiB                                                                   
Core:  113 devices, 30 uclasses, devicetree: separate                           
Warning: Device tree includes old 'u-boot,dm-' tags: please fix by 2023.07!     
MMC:   sdhci@50450000: 0, sd@50460000: 1                                        
Loading Environment from SPIFlash... SF: Detected w25q128fw with page size 256 B
*** Warning - bad CRC, using default environment                                
                                                                                
eswin_pcie_wait_link_up: error: wait linkup timeout                             
PCIE-0: Link up (Gen1-x1, Bus0)                                                 
[display_init]Eswin UBOOT DRM driver version: v1.0.1                            
In:    serial,usbkbd                                                            
Out:   vidconsole,serial                                                        
Err:   vidconsole,serial                                                        
Bootspi flash write protection enabled                                          
Get som info from flash                                                         
Cpu volatge need boost above 1.6 Ghz!                                           
Could not find "root" partition                                                 
Low power features will not be supported!                                       
Net:   eth0: ethernet@50400000                                                  
Working FDT set to ed51c710                                                     
starting USB...                                                                 
Bus usb1@50490000: Register 2000140 NbrPorts 2                                  
Starting the controller                                                         
USB XHCI 1.10                                                                   
scanning bus usb1@50490000 for devices... 3 USB Device(s) found                 
       scanning usb for storage devices... 0 Storage Device(s) found            
No SATA device found!                                                           
Hit any key to stop autoboot:  0                                                
MMC: no card present                                                            
MMC: no card present                                                            
MMC: no card present                                                            
** Booting bootflow 'sdhci@50450000.bootdev.part_1' with efi                    
MMC: no card present                                                            
Booting /efi\boot\bootriscv64.efi                                               


                                                 GNU GRUB  version 2.12

 β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
 β”‚                                                                             β”‚
 β”‚*Ubuntu                                                                       
 β”‚ Advanced options for Ubuntu

Hi, Thanks for the reply! Yes, I think the boot process on your board is exactly what I want. But I don’t know how to fix it for my board. I think I followed the suggested image flash process well.

It seems you have an extlinux directory somewhere. EXTLINUX has priority over EFI (at least with older u-boot versions like the P550 has). Your boot directory should look like this. Just efi, dtbs and grub sub-directories.

I just checked the boot directory on my board and it’s the same as yours. Just efi, dtbs and grub sub-directories.

Weird stuff. Since your u-boot really wants to use EXT_LINUX, you could try installing a valid one.

sudo apt-get install u-boot-menu
sudo u-boot-update

If that works, you can get rid of EFI with:

sudo apt-get purge flash-kernel grub-common

1 Like

You may want to copy and paste the full u-boot log from the very first line U-Boot 2024.01 (Nov 06 2024 - 05:26:46 +0000) so it can be better debugged. Also crosscheck your u-boot environment variables using env print . Here’s what my board looks like:

=> env print
arch=riscv
baudrate=115200
board=hifive_premier_p550
board_info=SF106SKB2423000026
board_name=hifive_premier_p550
boot_targets=mmc1 usb sata mmc0
bootcmd=bootflow scan;
bootdelay=2
cpu=eic770x
emmc_dev=0
eth1addr=8c:1f:64:13:c0:4c
ethaddr=8c:1f:64:13:c0:4b
fdt_addr=ed51c710
fdt_addr_r=0x88000000
fdt_high=0xffffffffffffffff
fdtaddr=ed51c710
fdtcontroladdr=ed51c710
fdtfile=eswin/eic7700-hifive-premier-p550.dtb
gpt_partition=gpt write mmc ${emmc_dev} $partitions
initrd_high=0xffffffffffffffff
kernel_addr_r=0x84000000
kernel_comp_addr_r=0xa0000000
kernel_comp_size=0x4000000
loadaddr=0x80200000
partitions=name=boot,start=1MiB,size=512MiB,type=${typeid_efi},uuid=${uuid_boot};name=swap,size=4096MiB,type=${typeid_swap},uuid=${uuid_swap};name=root
,size=30GiB,type=${typeid_filesystem},uuid=${uuid_root};name=userdata,type=${typeid_filesystem},size=-;
preboot=setenv fdt_addr ${fdtcontroladdr};fdt addr ${fdtcontroladdr};usb start;sata init;nvme scan
pxefile_addr_r=0x88200000
ram_size=16
ramdisk_addr_r=0x88300000
scriptaddr=0x88100000
sdupdate=ext4load mmc 1:1 0x90000000 sdupdate.scr;source 0x90000000
stderr=vidconsole,serial
stdin=serial,usbkbd
stdout=vidconsole,serial
typeid_efi=C12A7328-F81F-11D2-BA4B-00A0C93EC93B
typeid_filesystem=0FC63DAF-8483-4772-8E79-3D69D8477DE4
typeid_swap=0657FD6D-A4AB-43C4-84E5-0933C84B4F4F
usbupdate=ext4load usb 0 0x90000000 usbupdate.scr;source 0x90000000
uuid_boot=44b7cb94-f58c-4ba6-bfa4-7d2dce09a3a5
uuid_root=b0f77ad6-36cd-4a99-a8c0-31d73649aa08
uuid_swap=5ebcaaf0-e098-43b9-beef-1f8deedd135e
vendor=eswin

Environment size: 1550/524284 bytes

Hi @fyang, Could you share the complete boot logs to help us better understand the issue you’re facing? Additionally, please try formatting the SD card using β€œfdisk” and then create new partitions.

Hi, I checked my u-boot log and found that the bootcmd env is different.
I have resolved this issue by setting this env to the same as yours:

=> setenv bootcmd=bootflow scan
=> saveenv

And it works! Thank you for the help!

BTW: The boot message from USB serial console says:
Cpu volatge need boost above 1.6 Ghz!

Does that mean the CPU is working at frequency of 1.6GHz? Just curious!

Hi @fyang
By default, the CPU operates at a frequency of 1.4 GHz. You can confirm this by running the following command:
cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq

Thanks. Yes, it says 1.4GHz. But why would we lock the CPU frequency at 1.4GHz? The ESWIN EIC7700X SoC manual says the CPU has working frequency of 1.4GHz, up to 1.8GHz.

1.3.2 Processor
⚫ RISC-V RV64GC 4core@1.4GHz, up to 1.8GHz 
⚫ Private L1 Cache 32K(I)+32KB(D),private L2Cache 256KB,shared L3 Cache 4MB