System programmer with extensive ARM architecture and open-source development experience.
Languages: Swedish (native), English (fluent), German (basic) Location: Cambridge, UK
|1996||1999||Computer engineering, specializing in real time systems, at KTH (the Royal Institute of Technology), Sweden.|
|1995||1996||Military service as squad leader in a pioneer platoon at the Svea Life Guards|
|January 2013||present||Linaro ltd (assignee from ARM)|
|December 2005||present||ARM ltd, Cambridge, UK|
|July 2001||December 2005||i3 Micro Technology AB, Akalla, Sweden|
|July 2000||June 2001||Real Time Logic ltd|
|1999||2000||Datessa AB, Södertälje, Sweden|
|EDK2/Tianocore||Tianocore steward, maintainer of edk2 ArmPkg/ArmPlatformPkg/EmbeddedPkg as well as edk2-platforms and edk2-non-osi.|
|GRUB||Ports to ARM architectures. Port to U-Boot API.|
|Linux kernel||AArch32 SWP instruction emulation, genericised condition code handling, device tree stdout-path console selection.|
|Open-MPI||Port to ARMv7-A|
|U-Boot||Review of UEFI interface implementation, as well as some debug/testing and identifying missing protocols.|
Publications and presentations
- Blog at station.eciton.net.
- EDK2 Platforms update - presented at Fall 2017 UEFI Plugfest slides.
- A common platforms tree: presented at UEFI Spring Plugfest 2015 slides video
- UEFI is not your enemy. First presented at Cambridge Mini Debconf 2013. Updated versions presented at FOSDEM 2014 and LinuxTag 2014.
- UEFI and ACPI for ARM - co-presented with Graeme Gregory at Linux Plumbers Cpnference 2013.
- Blog series on memory access ordering: part 1, part 2 and part 3
- Software Considerations When Using High-Performance Memory Systems video slides: presented at ELC Europe 2010.
- porting Linux 2.2 to a custom MPC860 platform: University final year project report written in the form of a project diary.
UEFI Team Lead
- Marshalling of AArch32 and AArch64 Linux kernel UEFI support patchsets.
- Google Summer of Code mentor: Port of UEFI to low-cost embedded platform
- Set up OpenPlatformPkg to provide a public repository for EDK2 platform ports. Worked to get a defined process in Tianocore to accept and maintain open platform ports. Based on this, migrated the code from OpenPlatformPkg to officially adopted repositories edk2-platforms and edk2-non-osi.
Enterprise Software Engineer
- Ported GRUB to AArch64 UEFI
- Ported GRUB to AArch32 UEFI
- Ported GRUB to AArch32 U-Boot
Staff/Principal Software Engineer
Joined the architectural software enablement group, initially as the sole resource focusing on SMP software in general, which eventually evolving into the initial ARM server software project.
Started aligning with and working together with the Linaro Enterprise Group (announced November 2012) from around the time of Linaro Connect 2012.Q2 in Hong Kong, eventually leading to my transition from January 2013 into a full-time assignee to Linaro.
The Information Developer role was created to provide a more hands-on approach to documentation. My target audience was software developers targeting ARM processors.
Kept working on and presenting customer training material.
Senior/Staff Applications Engineer
Specialising in the embedded software (TrustZone, JTEK, ...) range of products, and ARM development boards - especially Versatile EB + ARM11MPCore. Created software customer training for ARM11 MPCore and generic multiprocessor software development.
i3 Micro Technology AB
- System developer in the MOOD set-top box software team.
- STB production system
- Boot loader for the Mood 300 STB
- In-house embedded Linux distribution for STBs
- Initially natively built x86-based Mood 200 but turned cross-architecture for MIPS32-based Mood 300 and SH4-based Mood 100.
- Platform bring-up
- System developer in the MOOD streaming video (MPEG) server software team.
In-house system administration for small local database application consultancy. Also consulting as UNIX administrator, and some programming for y2k-proofing of existing applications.