User Tools

Site Tools


toh:pcengines:apu

PC Engines APU

APU system boards are manufacturered and sold by PC Engines. They utilise the x86-based AMD Bobcat APUs. The boards and other components (enclosures, power supplies, wireless cards, CompactFlash cards, etc) are sold separately, although some retailers sell pre-build kits. At the time of writing (April 2014), APU boards and associated accessories are readily available from many resellers across Europe and North America.

Bootloader

The APU runs coreboot as it's bootloader.

Warning! The Coreboot serial console runs at 115200 Baud 8N1. OpenWrt then switches to 38400 Baud 8N1.

Ethernet assignation apu1c2

Since the board can be put in the same box as the PCEngines Alix 2d13-Board it might be useful to know that the ethernet device order has changed. The interfaces are now ordered as shown in the following image:

OpenWrt support

The generic combined x86 OpenWrt package (http://downloads.openwrt.org/attitude_adjustment/12.09/x86/generic/openwrt-x86-generic-combined-ext4.img.gz) works on the APU 1C4 (booted from 16GiB SD-Card).

  • All three NICs are recognized and seem to work (only tested eth0 so far)
  • WiFi card on miniPCIe successfully tested with Qualcomm WLE200NX, Atheros AR928X
  • mSATA working (in my case: Skymedi SK6368)
  • SATA HDD untested
  • GPIOs untested
  • UMTS card (miniPCIe) with SIM slot untested
  • LED for the NIC apparently not working as expected (1G/100M indication)

Installation

Generic image

The simplest way use the generic x86 image of BB: http://downloads.openwrt.org/barrier_breaker/14.07/x86/generic/openwrt-x86-generic-combined-ext4.img.gz

However, the generic image is not ideal for an APU:

  • the generic image is i686, while the CPU supports x86_64
  • there is no SMP support, while the APU's CPU is double core
  • OpenWRT's baud rate for the serial console is 38400, while the BIOS is at 115200 baud. This is merely annoying.
  • the root filesystem is about 50 MB, which is not a lot if you are installing for instance on a 16 GB SSD
  • additionally, on a apu1c with 2 GB RAM, only 1 GB of RAM seems to be recognised (probably due to the lack of SMP support).

The generic image will work just fine, but if you want to enable all those features, you will have to compile an image yourself.

Compile from source

TODO

Installation

To install the image on a USB key or SD card, simply copy it after gunzipping:

gunzip openwrt-x86-generic-combined-ext4.img.gz
dd if=openwrt-x86-generic-combined-ext4.img of=/dev/sdX bs=1M

Of course, make sure to select the right `/dev/sdX`, so that you don't overwrite your own hard disk…

You should then be able to boot off the USB key or SD card. If it doesn't work, see "troubleshooting" below.

Configuration

With the generic image, only the first port (eth0, the one close to the serial port) is active. You should configure the other ports as appropriate.

Benchmark

Generic image

This benchmark is done with the generic x86 BB image (no SMP, i686). One laptop is attached to eth0, and runs iperf towards a second laptop attached to eth1.

  • Bridge, iperf TCP: 935 Mbit/s IP (~80 kpps, 1 Gbit/s Ethernet), 70% CPU on router (same with/without firewall rules)
  • Bridge, iperf TCP with 88 bytes IP packets: 90 Mbit/s IP (~150 kpps, ~160 Mbit/s Ethernet), 70% CPU on router (same with/without firewall rules)
  • Router without NAT/firewall, iperf TCP: 935 Mbit/s IP (~80 kpps, 1 Gbit/s Ethernet), 75% CPU on router
  • Router without NAT/firewall, iperf TCP with 88 bytes IP packets: 80 Mbit/s IP (~130 kpps, ~140 Mbit/s Ethernet), 70% CPU on router
  • Router with NAT and firewall, iperf TCP: 935 Mbit/s IP (~80 kpps, 1 Gbit/s Ethernet), 80% CPU on router
  • Router with NAT and firewall, iperf TCP with 88 bytes IP packets: 77 Mbit/s IP (~126 kpps, ~135 Mbit/s Ethernet), 70% CPU on router

Troubleshooting

Installed packages don't survive a reboot

This issue does not happen with either AA and BB. If this happens for you, please detail your setup.

APU does not come back after a reboot

The reboot command in OpenWrt does not work correctly. After the reboot is issued, the APU seems to shutdown but does not come back up. After the initial message PC Engines APU BIOS build date: Apr 5 2014 the boot process does not continue. After a power cycle the APU boots normally.

UPDATE: this issue has been fixed in BIOS from Jul 8 2014

Can't boot from an USB key or a SD card

This probably happens because you have a SSD plugged in.

Bootloader sequence

Bootloader sequence:

PC Engines APU BIOS build date: Apr  5 2014
Reading data from file [bootorder]
SeaBIOS (version ?-20140405_120742-frink)
SeaBIOS (version ?-20140405_120742-frink)
Found coreboot cbmem console @ df150400
Found mainboard PC Engines APU
Relocating init from 0x000e8e71 to 0xdf1065e0 (size 39259)
Found CBFS header at 0xfffffb90
found file "bootorder" in cbmem
CPU Mhz=1001
Found 29 PCI devices (max PCI bus is 06)
Copying PIR from 0xdf160400 to 0x000f27a0
Copying MPTABLE from 0xdf161400/df161410 to 0x000f25a0 with length 1f4
Copying ACPI RSDP from 0xdf162400 to 0x000f2580
Copying SMBIOS entry point from 0xdf16d800 to 0x000f2560
Using pmtimer, ioport 0x808
Scan for VGA option rom
EHCI init on dev 00:12.2 (regs=0xf7f08420)
Found 1 lpt ports
Found 2 serial ports
AHCI controller at 11.0, iobase f7f08000, irq 11
EHCI init on dev 00:13.2 (regs=0xf7f08520)
EHCI init on dev 00:16.2 (regs=0xf7f08620)
Searching bootorder for: /rom@img/setup
Searching bootorder for: /rom@img/memtest
OHCI init on dev 00:12.0 (regs=0xf7f04000)
OHCI init on dev 00:13.0 (regs=0xf7f05000)
OHCI init on dev 00:14.5 (regs=0xf7f06000)
OHCI init on dev 00:16.0 (regs=0xf7f07000)
Searching bootorder for: /pci@i0cf8/usb@16,2/storage@1/*@0/*@0,0
Searching bootorder for: /pci@i0cf8/usb@16,2/usb-*@1
USB MSC vendor='Multiple' product='Card  Reader' rev='1.00' type=0 removable=1
USB MSC blksize=512 sectors=30898176
All threads complete.
Scan for option roms
Running option rom at c000:0003

iPXE (http://ipxe.org) 00:00.0 C000 PCI2.10 PnP PMMpmm call arg1=1
pmm call arg1=0
+DF0DA520pmm call arg1=1
pmm call arg1=0
+DF03A520 C000

Searching bootorder for: /rom@genroms/pxeboot.rom

Build date: Apr  5 2014
System memory size: 4592 MB

Press F12 for boot menu.

Searching bootorder for: HALT
drive 0x000f2510: PCHS=0/0/0 translation=lba LCHS=1024/255/63 s=30898176
Space available for UMB: c1000-ee800, f0000-f2510
Returned 245760 bytes of ZoneHigh
e820 map has 7 items:
  0: 0000000000000000 - 000000000009fc00 = 1 RAM
  1: 000000000009fc00 - 00000000000a0000 = 2 RESERVED
  2: 00000000000f0000 - 0000000000100000 = 2 RESERVED
  3: 0000000000100000 - 00000000df14c000 = 1 RAM
  4: 00000000df14c000 - 00000000e0000000 = 2 RESERVED
  5: 00000000f8000000 - 00000000f9000000 = 2 RESERVED
  6: 0000000100000000 - 000000011f000000 = 1 RAM
enter handle_19:
  NULL
Booting from Hard Disk...
Booting from 0000:7c00
GRUB Loading stage1.5.

GRUB loading, please wait...

Tags

toh/pcengines/apu.txt · Last modified: 2014/10/27 13:56 by zorun