Bringing up BPI-F3 – Part 3

RMAG news

Initramfs

Initially I was hoping that it would not be needed, but since the SoC has a remote processor and the defconfig for it enables it, I guess it is simpler to use an initramfs.

Remoteproc firmware

As seen here the remoteproc needs a firmware bit and if you happen to forget about it you’d be welcomed by:

[ 4.205609] remoteproc remoteproc0: rcpu_rproc is available
[ 4.211421] remoteproc remoteproc0: Direct firmware load for esos.elf failed with error -2
[ 4.214379] riscv-pmu-sbi: SBI PMU extension is available
[ 4.219790] remoteproc remoteproc0: powering up rcpu_rproc
[ 4.225306] riscv-pmu-sbi: 16 firmware and 18 hardware counters
[ 4.230776] remoteproc remoteproc0: Direct firmware load for esos.elf failed with error -2
[ 4.245106] remoteproc remoteproc0: request_firmware failed: -2
[ 4.246235] es8326 2-0019: assuming static mclk
[ 4.256170] enter spacemit_snd_sspa_pdev_probe
[ 4.301833] usb 2-1: new high-speed USB device number 2 using xhci-hcd

If you like to use dracut all you need is to add to your /etc/dracut.conf.d/firmware.conf is:

install_items+=” /lib/firmware/esos.elf “

If you use Genkernel, set in /etc/genkernel.conf:

# Add firmware(s) to initramfs
FIRMWARE=“yes”

# Specify directory to pull from
FIRMWARE_DIR=“/lib/firmware”

# Specify a comma-separated list of firmware files or directories to include,
# relative to FIRMWARE_DIR. If empty or unset, the full contents of
# FIRMWARE_DIR will be included (if FIRMWARE option above is set to YES).
FIRMWARE_FILES=“esos.elf”

as explained here.

Coming next

Now the remaining bits I’d like to have done are having a nicer u-boot configuration and hopefully wrap everything up so we can have a Gentoo image that can be simply flashed to the SD/eMMC/NVMe.