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

Thoughts dereferenced from the scratchpad noise.

Latest posts


Our first look at debos - new Debian images generator

Published at July 27, 2018 · Maciej Pijanowski ·  7 min read

What is debos debos is quite a new tool allowing easier Debian images generation. It seems to be following current trends - it is written in Go, using YAML as an input format. The idea of taking away debootstrap shell scripts and replacing it with a single, simple YAML file looks tempting enough to give it a try. Full feature description can be found in this introductory post on Collabora’s blog....

Categories: 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

Basics of x86 assembly (AT&T syntax)

Published at May 17, 2018 · Bartek Pastudzki ·  12 min read

Nowadays, application of programming in assembly language is very small. Writing production code in assembly may be found in the most demanding tasks in embedded. Even in modern firmware (coreboot, EDK2) most of the code is written in C. Honesly, that’s quite undestandable, assembly code isn’t easy to read nor write and some state that it’s no longer needed to be known. In my opinion, that’s far from the truth....

Categories: programming

The art of disassembly

Published at April 27, 2018 · Bartek Pastudzki ·  12 min read

Probably there was never a programming language that would fascinate me as much as assembly. In fact, it was my second “real language” (after Pascal/Delphi and DOS batch) and the first one I would really understand. Of course, the internals of protected mode initialization was too much for 15-year-old and I finally moved to C and *nix shell. Anyway, I always liked the feeling that I know what I’m really doing but more complex languages are needed nowadays....

Categories: programming

Building EDK2 based firmware for MinnowBoard

Published at April 3, 2018 · Bartek Lew ·  2 min read

Building EDK2 based firmware for MinnowBoard There are some options to build firmware for MinnowBoard, a Bay Trail based SBC (Single Board Computer) from Intel. We prefer usually coreboot as simplest and fastest, open source solution, but sometimes we want to have UEFI interface. UEFI itself doesn’t cover whole boot procedure, so its open source reference implementation, EDK2 is not enough to build firmware for hardware plafrorm, we need to provide PI (Platform Initialization) phase implementation....

Categories: firmware

Building UEFI based firmware on MinnowBoard

Published at March 28, 2018 · Bartek Pastudzki ·  8 min read

Building coreboot on well supported platform such as Bay Trail is quite straightforward task, however we need to remember about some things in order to have coreboot working. First of all we need to provide up-to-date microcode and FSP (Firmware Support Package), which are not included in coreboot source tree and coreboot build system won’t complain about it. Second thing is that Bay Trail has TXE firmware on the same ROM as boot firmware so we have to make sure that we won’t corrupt it because it would brick the platform....

Categories: firmware

Minnowboard Turbot remote firmware flashing with RTE (Remote Testing Environment)

Published at March 23, 2018 · Arkadiusz Cichocki ·  7 min read

Minnowboard Turbot remote firmware flashing with RTE (Remote Testing Environment) Introduction Work related to a hardware carries some restrictions which don’t occur when working only with a software. One of them is a limited number of devices. This one may cause a problem with a accessibility to the platform. The limited number of users could slow development and testing. What is more work with a hardware requires a minimal knowledge of the theory of circuits and signals to eliminate platform damage by a user....

Categories:

Flashing eMMC on Hummingboard Edge using fastboot? part 1

Published at March 20, 2018 · Maciej Pijanowski ·  9 min read

Introduction Flashing an eMMC of produced board is one of the crucial manufacturing procedures. This post series presents how one can take advantage of i.MX6 features and open source tools to prepare themselves with quite robust and easy to use process. Target reference platform is Hummingboard Edge. General concept The general concept is inspired by this great bootlin (former FreeElectrons) post: I’ve run into some issues while trying to do something similar on Hummingbard Edge, so decided to share my experience....

Categories: app-dev firmware

Robot Framework? using Request library for control RPI GPIO's

Published at January 18, 2018 · Daniel Konopski ·  5 min read

Requests library is one of the most popular libraries implemented for Robot Framework. It is very important for testing distributed applications, so this is the first library I got to know in the Robot Framework. To test Request library we can install Pi-GPIO-Server on Raspberry Pi. The server is able to control the state of input and output of GPIOs using REST API. The project is available on the link: Project weekend - GPIO Server...

Categories:

ssh reverse tunnel for PXE, NFS and DHCP setup on Qubes OS

Published at December 5, 2017 · Piotr Król ·  6 min read

At some point I stuck in the forest with WiFi connection and no physical access to router to create nice networking for my coreboot development needs. Recently I switched my laptop to Qubes OS what give interesting flexibility, but also additional problems. My key requirement is to boot system over PXE, so I can easily do kernel development and play with Xen. Because only available connection for my apu2 platform was directly to my laptop I had to provide configured DHCP server and PXE server on it....

Categories: os-dev