Ben's notes

Linux, Unix, network, radio...

User Tools

Site Tools


upgrade_pc_engine_s_apu_bios_with_pxe

PC Engines APU - update BIOS over PXE

Prerequisites

  • Working PXE/tftp server.
  • PC Engine's APU.
  • Serial console.

Configuration

  • On the PXE server, create a directory.
    mkdir -p /tftpboot/bios
  • Download the (latest) BIOS firmware: http://www.pcengines.ch/file/apu_tinycore.tar.bz2
  • Extract in /tftpboot/bios.
  • Copy syslinux.cfg to /tftpboot/pxelinux.cfg/default, and edit the file.
    SERIAL 0 115200
    CONSOLE 0
    
    default tinyCore
    
    ALLOWOPTIONS 0
    TIMEOUT 600
    
    LABEL tinyCore
            MENU LABEL ^tinyCore
            KERNEL /bios/vmlinuz  console=ttyS0,115200n8
            append priority=low initrd=/bios/core.gz superuser noswap nodhcp embed nozswap blacklist=

Download BIOS image, flash BIOS

  • Request IP-Address.
    udhcpc -i eth0
  • Download the BIOS firmware.
    tftp -g -r /bios/apu140405.rom pxe.server.host
  • Upgrade the firmware.
    $ flashrom -w apu140405.rom
    flashrom v0.9.7-r1711-APU on Linux 3.8.13-tinycore (i686)
    flashrom is free software, get the source code at http://www.flashrom.org
    
    Using default programmer "internal".
    Calibrating delay loop... OK.
    coreboot table found at 0xdffdf000.
    Found chipset "AMD SB7x0/SB8x0/SB9x0". Enabling flash write... OK.
    Found Macronix flash chip "MX25L1605A/MX25L1606E" (2048 kB, SPI) at physical address 0xffe00000.
    Reading old flash chip contents... done.
    Erasing and writing flash chip... Erase/write done.
  • Reboot the APU.
    reboot
upgrade_pc_engine_s_apu_bios_with_pxe.txt · Last modified: 2021/10/09 15:14 by 127.0.0.1