Determine if APU firmware can be updated

Hi all,

In the wiki it is stated that
“Only PC Engines APU1 - APU6 images are currently supported.”

In the articels here it is usually like this

Board : PC Engines apu [1-6]

In my setup it looks like that:

user# firmware-update info
Board       : PC Engines APU
HW Version  : 1.0
Serial      : xxxxxx
BIOS Version: 4.0 (09/08/2014)
user# firmware-update version
firmware-update: Version 20210107

So can I update? I am unsure if this meets the requirements.

Thank you.

There is no automatism for updates ( and no announcement, besides probably a notice in the release notes ).

But you can ever try by firmware-update update. An update is only started, if the repository contains a version newer than the installed one. This is true for our system. BTW, the new version contains support for the hardware random generator; means your entropy will raise.

I just wanted to try the update on my APU4, but I keep getting the following error message:

Detected PC Engines PC Engines apu4 running BIOS version v4.6.4
Unkown vendor: PC Engines
Support for this vendor might not have been implement, yet

Any idea?

1 Like

I fear there is something wrong with your board information. Just post the output of

cat /sys/class/dmi/id/board_vendor /sys/class/dmi/id/board_name

Should be

PC Engines
apu4

EDIT: The output of firmware-update info and firmware-update update do not match.
info prints BIOS version 4.0, update BIOS verion 4.6.0.
Forget it. I matched two differeint issues.

The output is:

PC Engines
PC Engines apu4

How can i change it?

Thanks.

I will do that when I am home again and post the results.

Release notes of SMBIOS version 4.6.7 mention a fix for SMBIOS wrong entries.
Maybe an manual update to 4.16.0.3 ( the current version ) fixes the problem.

The shell command for the update is ( I hope )
flashrom -p internal -w /lib/firmware/pcengines/apu/apu4_v4.16.0.3.rom

This command should flash the current BIOS to your system. I have analysed the code of firmware-update and found this. Hope, I’ve not done a mistake.

@florom : Which APU system do you have? I didn’t realise, that @steven has a simliar problem.
The filename reflects the APU version, as can be seen when listing the firmware directory.

1 Like

Hi,

it worked there were a few scary moments, but in the end it worked out.

Thanks!

If interested here the logs:

user# cat /sys/class/dmi/id/board_vendor
PC Engines
user# cat /sys/class/dmi/id/board_name
APU
user# firmware-update update
Detected PC Engines APU running BIOS version 4.0
New firmware version available: v4.16.0.3

You are going to flash the firmware on device. This is a dangerous operation
that might potentially damage your device.

Please do NOT TURN OFF the system while the update is in progress and do
not abort the process.

  Firmware file: /lib/firmware/pcengines/apu/apu1_v4.16.0.3.rom

Do you want to proceed? [y/n] y
Flashing process is starting now...
PLEASE DO NOT TURN OFF THE SYSTEM WHILE FLASHING!
flashrom v1.2 on Linux 5.15.35-ipfire (x86_64)
flashrom is free software, get the source code at https://flashrom.org


Using clock_gettime for delay loops (clk_id: 1, resolution: 1ns).
coreboot table found at 0xdffdf000.
Found chipset "AMD SB7x0/SB8x0/SB9x0".
Enabling flash write... OK.
Found Macronix flash chip "MX25L1605A/MX25L1606E/MX25L1608E" (2048 kB, SPI) mapp                                                                                                                                                                                                                                             ed at physical address 0x00000000ffe00000.
This coreboot image (PC Engines:apu1) does not appear to
be correct for the detected mainboard (PC Engines:APU).
Proceeding anyway because user forced us to.
Reading old flash chip contents... done.
Erasing and writing flash chip... Erase/write done.
Verifying flash... VERIFIED.
Flashing was successful! Please reboot.
user# cat /sys/class/dmi/id/board_name
apu1
user# cat /sys/class/dmi/id/board_vendor
PC Engines
user# firmware-update info
Board       : PC Engines apu1
HW Version  : 1.0
Serial      : xxxxx
BIOS Version: v4.16.0.3 (04/21/2022)
user# firmware-update version
firmware-update: Version 20210107
1 Like

The message about not matching version of mainboard and image can be neglected. After the update the board_name is correct.

2 Likes

Thank you. It worked for me with the following command:

flashrom -p internal:boardmismatch=force -w /lib/firmware/pcengines/apu/apu4_v4.16.0.3.rom

3 Likes

The post marked as solution is the one which solves the problem mentioned in the topic.
I am glad another solution which is related can be found here too.

Thanks.

1 Like

@steven , you’re right. With your false entries in the DMI the option boardmismatch=force is necessary.
But only in such a case, where it is known that the BIOS holds bad identifiers.

1 Like