Updating firmware to 4.01 on ASRockRack did not went well

ASRockRack released firmware 4.01 which provided both SCP and TF-A in 2.10-2026.02.10 version (you may see my table of available versions in EDK2 thread).

Today I decided to upgrade to this version from my old EDK2 build.

Upgrade via OpenBMC

Logged to OpenBMC, powered off the host and gave it SCP part first. It went, told me that Host has 4.01 now. So I gave it BIOS part. Again, took some time and process was finished without errors.

So I booted up the system (after whole box power cycle by removing power plug):

PMpro Runtime Firmware v2.10.20230517

The BIOS booted fine. Firmware setup tool told:

Reference Code Version 2.10j
SCP FW Version         2.10
SCP FW Build           20230517   

So SCP part did not got updated. Linux booted.

Firmware scripts debugging

So I logged into BMC system and started looking at firmware update scripts. The /sbin/ampere_firmware_upgrade.sh one does some stuff and calls ampere_eeprom_prog with the /dev/i2c-12 as I²C bus.

The problem is: THERE IS NO SUCH BUS:

root@wooster-bmc:~# ls /dev/i2c*
/dev/i2c-0   /dev/i2c-1   /dev/i2c-2   /dev/i2c-3
/dev/i2c-4   /dev/i2c-6   /dev/i2c-7   /dev/i2c-8
/dev/i2c-11  /dev/i2c-13  /dev/i2c-50  /dev/i2c-55  
/dev/i2c-56  /dev/i2c-57  /dev/i2c-58  /dev/i2c-59  
/dev/i2c-60  /dev/i2c-61  /dev/i2c-62  /dev/i2c-63
/dev/i2c-64  /dev/i2c-65  /dev/i2c-66  /dev/i2c-67
/dev/i2c-68  /dev/i2c-69

I wonder how to upgrade SCP on ASRockRack ALTRAD8UD-1L2T then.

Looks like switching I2C-12 from Host to BMC control fails. Script tries to set GPIO0 139 to 0 and nothing happens – it is still 1.

Which BMC version so you run? They previously forgot to enable the i2c12 node in the device-tree.

GPIO pin 139 is BMC_GPIOR3_SPI0_PROGRAM_SEL and switches the SPI mux from the CPU side to the BMC, it does not enable the i2c master.

If you can’t update the BMC, then maybe extract the SCP ROM from the SCP tarball and use GitHub - AmpereComputing/amp-fwupgrade: This tool enables upgrading firmware on Ampere's platform · GitHub

1 Like

BMC is 3.22 version.

Will take a look at this tool - when temperatures outside get back to below 30°C. Looks like EFI binary, right?

Not an EFI binary. The SCP is separate. As far as I can see, the SCP ROM is only visible in the Beta Zone. It’ll be a slim file. You unfortunately have to update both the BIOS and SCP separately (two separate update tarballs)

1 Like

Which is exactly what I tried to do and described in the first post.

I “love” how cryptic are instructions on how to update Altra firmware.

Nothing strange that whoever I asked told me that they do not touch it unless really have to.