{{tag>[hardware apu 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