Picture of me in a dragon boat.

profile for unixsmurf at Stack Overflow, Q&A for professional and enthusiast programmers

System programmer with extensive ARM architecture and open-source development experience.

Languages: Swedish (native), English (fluent), German (basic)

Location: Strathdon, Scotland (remote)

Citizenships: Swedish, British

Employment history

FromToWhere
March 2021presentQualcomm
January 2020March 2021NUVIA inc (acquired by Qualcomm 2021-03-16)
May 2018December 2019Linaro ltd (directly employed)
January 2013May 2018Linaro ltd (assignee from ARM)
December 2005May 2018ARM ltd, Cambridge, UK
July 2001December 2005i3 Micro Technology AB, Akalla, Sweden
July 2000June 2001Real Time Logic ltd
19992000Datessa AB, Södertälje, Sweden

Open-source contributions

ProjectContribution
EDK2/TianocoreTianocore steward, maintainer of edk2 ArmPkg/ArmPlatformPkg/EmbeddedPkg as well as edk2-platforms and edk2-non-osi. Reviewer of initial RiscV64 port.
GRUBPorts to ARM architectures. Various EFI contributions. Port to U-Boot API.
Linux kernelAArch32 SWP instruction emulation, genericised condition code handling, device tree stdout-path console selection.
Open-MPIPort to ARMv7-A
QEMUVarious minor ARM architectural contributions. Designated reviewer for sbsa-ref.
U-BootReview of UEFI interface implementation, as well as some debug/testing and identifying missing protocols.
sdateAdded endless March support.

Projects

Qualcomm inc

Principal Engineer - Core Plaform Boot (March 2023 onwards)

Guiding work to align in-house tianocore fork with upstream, bringing it in line with industry standards it had diverged from, and training the team on the upstreaming process and the use of git.

Principal Engineer - Application processor firmware lead (- March 2023)

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.

NUVIA inc

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.

Linaro ltd

UEFI Team Lead

Enterprise Software Engineer

  • Ported GRUB to AArch64 UEFI
  • Ported GRUB to AArch32 UEFI
  • Ported GRUB to AArch32 U-Boot

ARM ltd.

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.

Information Developer

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

  • System developer in the MOOD set-top box software team. Responsibilities including:
    • 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.

Datessa AB

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.

Longer Education

FromToWhere
19961999Computer engineering, specializing in real time systems, at KTH (the Royal Institute of Technology), Sweden.
19951996Military service as squad leader in a pioneer platoon at the Svea Life Guards