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.
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.
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:
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 (module r8169)
- 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)
- Button not supported
- Front-Side LEDs can be used with additional kernel module which can be downloaded here: http://daduke.org/linux/apu/
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 is recognised due to missing HIMEM kernel option.
The generic image will work just fine, but if you want to enable all those features, you will have to compile an image yourself.
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.
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.
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
This issue does not happen with either AA and BB. If this happens for you, please detail your setup.
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
This probably happens because you have a SSD plugged in which becomes /dev/sda. Use grub to modify the boot options and set your root device to /dev/sdb.
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...
toh/pcengines/apu.txt · Last modified: 2014/11/17 14:40 by monkey