1. COMPANY
  2. PRODUCTS
  3. SERVICES
  4. NEWS
  5. CONTACT
  6. SHOP

#Coreboot

Meltdown and Spectre on PC Engines apu2

Published at May 29, 2019 · Michał Żygowski ·  9 min read

As a continuation the Meltdown and Spectre blog post, this post present the vulnerability status and mitigation with microcode update on PC Engines apu2. Read the post and get to know the open source tools for vulnerability and mitigation checks, as well as exploiting proof of concepts....

Categories: firmware security


Reproducible builds

Published at May 22, 2019 · Krystian Hebel ·  3 min read

Recently we made sure that every build of PC Engines' firmware is built in a reproducible manner. This short post shows what exactly does it mean and why this should be important to firmware developers....

Categories: firmware


How to enable Core Performance Boost on AMD platforms?

Published at February 14, 2019 · Michał Żygowski ·  13 min read

Pushing hardware to its limits In the epoch of efficient and fast processors, performance becomes one of the most crucial aspects when choosing and working with hardware. We want our computers to execute their tasks with possibly highest speeds. But what really influences the performance of our platforms? It’s the processor’s manufacturer design one may say. In this post, I will show You how firmware may boost Your silicon to higher performance level....

Categories: firmware


Xen HVM guests on PC Engines apu2

Published at August 16, 2018 · Piotr Król ·  15 min read

Continuing blog post series around Xen and IOMMU enabling in coreboot we are reaching a point in which some features seem to work correctly on top of recent patch series in firmware. What we can do at this point is PCI passthrough to guest VMs. Previously trying that on Xen caused problems: random hangs firmware cause Linux kernel booting issues (hang during boot) IOMMU disabled - unable to use PCI passthrough Now we can see something like that in dom0:...

Categories: firmware os-dev


How to boot Xen over PXE and NFS on PC Engines apu2

Published at July 18, 2018 · Piotr Król ·  9 min read

From time to time we face requests to correctly enable support for various Xen features on PC Engines apu2 platform. Doing that requires firmware modification, which 3mdeb is responsible for. Xen have very interesting requirements from firmware development perspective. Modern x86 have a bunch of features that support virtualization in hardware. Those features were described in Xen FAQ. It happens that most requesting were IOMMU and SR-IOV. First, give the ability to dedicate PCI device to given VM and second enables so-called Virtual Functions, what means on a physical device (e....

Categories: firmware os-dev


Flashing MinnowBoard Turbot with Raspberry Pi Zero W

Published at November 20, 2017 · Piotr Król ·  10 min read

Recently we started preparation of coreboot training for one of our customers. Our platform of choice for that training is MinnowBoard Turbot. There are couple reasons for that: During training we can show recent firmware trends - despite we don’t like blobs (FSP, AGESA, PSP, ME etc.) and bloated designs (UEFI) we cannot escape reality and have to show customers how to deal with those components. MinnowBoard Turbot use couple of them, but also supports coreboot....

Categories: firmware


UEFI/EDK II CorebootPayloadPkg on PC Engines apu2

Published at November 3, 2017 · Piotr Król ·  9 min read

Recently we were reached by person interested in running CoreOS on apu2. CoreOS is a very interesting system from security point of view. It was created to support containers and scalability out of the box. Unfortunately it requires firmware supporting GPT. At that point I was not sure if I can utilize GRUB GPT support on apu2, but this led to other questions: Is it possible to boot UEFI-aware OS on PC Engines apux boards?...

Categories: firmware


PC Engines apu2 python Robot Framework validation automation

Published at November 2, 2017 · Piotr Król ·  8 min read

Recently we attended ECC2017 conference. One of topics that we considered was a system for development and validation automation. Unfortunately this talk was not accepted, but we present some research below and plan to provide more soon. As maintainers of PC Engines platforms in coreboot we debug and fix quite a lot of bugs, but to take full responsibility for our code everything should be validated each time we do release....

Categories: firmware


PC Engines APU2 netboot Debian installation

Published at March 26, 2016 · Piotr Król ·  3 min read

In previous post I described how to setup PXE server and boot Debian installer using it. I mentioned that provided setup is limited and some extensive configuration is needed to make it useful for real world example. Since that time I learned that there is chain command in iPXE, which give ability to use arbitrary TFTP server as boot file source. Using RPi PXE server For example by changing my test network topology from previous post to something like that:...

Categories: os-dev


Coreboot for QEMU armv7 (vexpress-a9) emulated mainboard

Published at August 7, 2014 · Piotr Król ·  8 min read

Recently I came back to look into coreboot. Mainly because low level is fun and skills related to firmware (even coreboot) starting get attention on freelance portals (first odesk job, second odesk job). I was surprised that under the wings of Google coreboot team start to support ARM (BTW ARM programming is IMHO next great skill to learn). So I cloned latest, code compiled QEMU armv7 mainboard model and tried to kick it in latest qemu-system-arm....

Categories: firmware


Debugging coreboot in qemu environment - part 2

Published at April 18, 2012 · Piotr Król ·  2 min read

In previous post coreboot was configured and installed. Here we try to establish good debugging environment for it. To create a good emulated environment to debug, research and learn coreboot few tricks are required. First of all we need to know how to run our emulated environment (qemu). What I mean by that?...

Categories: firmware


Debugging coreboot in qemu environment - part 1

Published at March 12, 2012 · Piotr Król ·  2 min read

First of all I use testing version of Debian - wheezy. Clone coreboot repository: 1 2 git clone http://review.coreboot.org/p/coreboot cd coreboot; make menuconfig Configure FILO as apayload and use its latest version: 1 Payload -> Add a payload -> FILO Payload -> FILO version -> HEAD Add verbose debugging messages: 1 2 3 Debugging -> Check PIRQ table consistency Debugging -> Output verbose malloc debug messages Debugging -> Output verbose ACPI debug messages Debugging -> Enable debug messages for option ROM execution Debugging -> Built-in low-level shell Debugging -> Trace function calls Try to build:...

Categories: firmware


flashrom and Shuttle AV18E2

Published at January 6, 2012 · Piotr Król ·  2 min read

During Christmas break I found an old unused motherboard in my home, right away I thought that it maybe useful as learning environment for coreboot. First you need to do with this kind of board is to check if it is possible to flash its BIOS with user space tool called flashrom List of supported hardware can be found here. All you need to do is go through this HOWTO. Be aware that these operations can cause you will not be able to run your motherboard if something goes wrong....

Categories: firmware


How to begin with coreboot

Published at January 6, 2012 · Piotr Król ·  1 min read

About a month ago I started my adventure with coreboot. As coreboot home page says “coreboot is a Free Software project aimed at replacing the proprietary BIOS (firmware) found in most computers”. Although I read the majority of materials from mentioned page I still suffered from a lack of basic information that would help me to arrange everything in my head. Therefore, I decided to write a series of posts described my actions associated with this interesting project....

Categories: firmware