Skip to content
View shofiqtest's full-sized avatar
:octocat:
Working from home
:octocat:
Working from home

Block or report shofiqtest

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
shofiqtest/README.md

Md Shofiqul Islam

Embedded Linux BSP Engineer · Yocto/U-Boot · Linux Kernel Driver Contributor · Zephyr Individual Contributor · IEC 62304 Medical

Email LinkedIn Kernel patches Medical BSP Service

📍 Espoo, Finland · Open to embedded Linux / medical device roles in Europe and remote


What I Do

Area Detail
Yocto BSP Owner of ARM SoC BSP layer for production ARM SoC platform — machine config, BitBake recipes, kernel LTS upgrades, CI/CD pipeline
Linux kernel drivers 17 upstream patches across 9 subsystems — IIO, DMA, DT bindings, networking, SCSI, DRM/Accel
U-Boot NXP i.MX6Q patches — SPL SRAM overflow fix, LDB clock swap fix, VPD reader fix
Zephyr RTOS Individual Contributor — MAX30102 SpO₂/HR sensor driver merged, Arm TSC reviewed
Medical device IEC 62304 + ISO 14971 — Class IIb CE-marked device firmware, M.HSc. Biomedical Engineering

Yocto / BSP / U-Boot

Yocto / OpenEmbedded (daily work)

I own the Yocto BSP layer for a production ARM SoC platform:

  • Machine configuration, kernel recipes, BitBake layer hierarchy
  • Cross-compilation toolchain and sysroot management
  • Kernel LTS version upgrades — API migration, Device Tree updates, hardware regression validation
  • CI/CD pipeline: automated build, boot, and regression testing across board variants

U-Boot (NXP i.MX6Q)

Patches for NXP i.MX6Q LDB display clock initialisation and common board code.

Patch Files Status
ge: common: vpd_reader: fix errloc array size in verify_bch() board/ge/common/vpd_reader.c 🔄 Reviewed — Ian Ray
clk: imx6q: guard LDB clock init with appropriate video config drivers/clk/imx/clk-imx6q.c, board/aristainetos/aristainetos.c 🔄 Under review
imx6: clock: fix clk0/clk1 swap in select_ldb_di_clock_source() arch/arm/mach-imx/mx6/clock.c 🔄 Under review

Root cause found during review: clk0/clk1 were written to LDB_DI1/LDB_DI0 respectively — reversed. Guard mismatch: function defined for CONFIG_SPL_VIDEO but called for !CONFIG_SPL_BUILD. SPL SRAM overflow of 112 bytes. Fixed with !CONFIG_SPL_BUILD || CONFIG_SPL_VIDEO — saved 688 bytes in SPL.


IEC 62304 Compliance Documents for Embedded OSS Drivers

IEC 62304-aligned documentation based on real upstream drivers — real code, real documentation discipline.

MAX30102 (Zephyr RTOS, merged PR #108697):

Document Standard Description
Software Requirements Specification IEC 62304 §5.2 12 shall-statements: functional, performance, interface and safety requirements
Software Design Specification IEC 62304 §5.4 Architecture, component design, interfaces, timing, concurrency
SOUP Record IEC 62304 §8 SOUP management for Zephyr RTOS dependencies with risk classification
FMEA ISO 14971:2019 8 failure modes — severity, probability, risk level, mitigations

ADS1299 (Linux kernel IIO, patch submitted):

Document Standard Description
SOUP Record IEC 62304 §8 SOUP identification, known anomalies, risk classification, verification
FMEA ISO 14971:2019 10 failure modes for 24-bit EEG acquisition — signal integrity, lead-off, SPI errors

Documents: iec62304-embedded-drivers · Tool: kernel-soup-gen — auto-generate SOUP records for any Linux kernel driver


Zephyr RTOS Contributions

Contribution Area Status
drivers: sensor: max3010x: MAX30102 SpO₂ and heart-rate driver I2C, interrupt-driven FIFO, Devicetree binding, Kconfig, build coverage Merged — Arm TSC reviewed · PR #108697
maxim,max3010x-common shared DT binding Pulse oximeter / heart-rate sensor family Merged
tests/drivers/build_all/sensor/i2c.dtsi coverage Zephyr sensor build test matrix Merged

Recognised as Zephyr Individual Contributor.


Linux Kernel Contributions

17 patches across 9 subsystems. Full history: lore.kernel.org

Patch Subsystem Status
iio: adc: ti-ads1298: add ADS1299 EEG ADC family support IIO / Medical ADC / EEG 🔄 Changes requested · v2 in progress
dt-bindings: iio: adc: ti,ads1298: add ADS1299 EEG ADC variants DT Bindings / IIO 🔄 Changes requested · v2 in progress
iio: health: add MAX86150 ECG and PPG biosensor driver IIO / Health / Biosensor 🔄 Under review · v3 in progress
iio: adc: ti-ads1298: Remove unnecessary CONFIG2 write during init IIO / Medical ADC ✅ In linux-next
iio: adc: ti-ads1298: Fix incorrect timeout comment IIO / Medical ADC ✅ In linux-next
iio: adc: ti-ads1298: Add parentheses around macro parameter IIO / Medical ADC ✅ In linux-next
dt-bindings: iio: accel: Convert lis302 binding to YAML schema DT Bindings / IIO 🔄 Under review
sctp: Fix typo in comment Networking / SCTP ✅ Merged — Jakub Kicinski
ASoC: nau8825: Fix typos in comments Sound / ASoC ✅ Merged
xfs: Fix typo in comment XFS Filesystem ✅ Accepted
scsi: scsi_scan: Fix typo in comment SCSI core ✅ Merged — Martin K. Petersen
scsi: storvsc: Replace symbolic permissions with octal SCSI / Hyper-V ✅ Merged — reviewed by Microsoft
power: supply: ab8500_fg: Fix typos in comments Power Supply ✅ In linux-next
soc: ti: knav_qmss_queue: Implement resource cleanup in remove() SoC / TI Keystone ✅ Applied — Nishanth Menon
mfd: si476x-i2c: Fix spelling mistakes in comments MFD / Si476x ✅ In linux-next
drm/accel/amdxdna: add debugfs support DRM Accel / AMD Ryzen AI NPU 🔄 Under review
drm/accel/ivpu: send exact IPC message size instead of union size DRM Accel / Intel VPU NPU 🔄 Under review

Networking & Data Center Open Source

DPDK (Data Plane Development Kit)

Patch Component Status
bus/fslmc: fix ignored return value in fslmc_bus_unplug NXP DPAA2 bus driver ✅ Merged — Hemant Agrawal (NXP), David Marchand (Red Hat)
dma/dpaa2: fix dpaa2_qdma_remove always returning success NXP DPAA2 DMA driver ✅ Merged

SONiC (Software for Open Networking in the Cloud)

Patch Component Status
pfcwd: fix TypeError crash in interval() on partial PFC_WD entries PFC Watchdog CLI 🔄 Open — DCO ✅ · EasyCLA ✅

Education

Certifications

Linux for Engineers — The Linux Foundation · Introduction to RISC-V (LFD110) — The Linux Foundation · Generative AI and LLMs — Coursera


Tools

Linux Kernel Yocto U-Boot C C++ Zephyr Python git IEC62304 Docker checkpatch

Pinned Loading

  1. shofiqtest shofiqtest Public