System programmer with extensive ARM architecture and open-source development experience.
Languages: Swedish (native), English (fluent), German (basic)
Location: Strathdon, Scotland (remote)
|January 2020||March 2021||NUVIA inc (acquired by Qualcomm 2021-03-16)|
|May 2018||December 2019||Linaro ltd (directly employed)|
|January 2013||May 2018||Linaro ltd (assignee from ARM)|
|December 2005||May 2018||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. Reviewer of initial RiscV64 port.|
|GRUB||Ports to ARM architectures. Various EFI contributions. 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|
|QEMU||Various minor ARM architectural contributions. Designated reviewer for sbsa-ref.|
|U-Boot||Review of UEFI interface implementation, as well as some debug/testing and identifying missing protocols.|
|sdate||Added endless March support.|
Principal Engineer - Application processor firmware lead
Same role and responsibilities as before acquisition.
- Worked with Qualcomm legal and patents teams to enable upstream contributions to EDK2 (previously blanket banned), TF-A and QEMU.
- Pre-Si bring-up of firmware on software models (QEMU and ARM Fast Models).
- RTL verification through firmware bring-up on Cadence Palladium emulation platform, including PCIe subsystem using off-the shelf plug-in cards mounted in a SpeedBridge.
Application processor firmware lead
- Responsible for TF-A and EDK2 platform ports and services for the Orion AArch64 server platform.
- CPU/Platform prototyping in QEMU
Joined as one of the first members of the software group in January 2020 and helped build up the organisation through the lockdowns.
Together with the SoC firmware lead, defined a "virtual platform progression" approach enabling loosely lock stepped refinement of firmware and models during SoC design and development.
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.
- Appointed one of the original three stewards of the TianoCore project.
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.
Publications and presentations
- Blog at station.eciton.net.
- Open source UEFI and TianoCore - presented at FOSDEM 2020 session
- How writing portable UEFI drivers improves reliability (and helps me) - presented at Fall 2018 UEFI Plugfest slides
- 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.
|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|