Skip to content
The PDF is generated from this page. Every line links to its record in the evidence appendix.
Download PDF

Ga Hing Woo (Jiaxing Hu)

Year 13 student, Mount Albert Grammar School · Firmware and embedded Linux · Auckland, New Zealand

I bring up new Rockchip silicon on mainline software and send the work upstream. Five of my commits are in the mainline kernel, merged in the 7.3 window and present since v7.3-rc1, applied by the IOMMU, Rockchip and networking maintainers. The first OP-TEE port for the RK3576 and a Trusted Firmware-A secure-boot fix are merged. I reverse-engineered the RK3576's NPU from vendor model files to a working driver stack, and when a published result of mine turned out to be wrong I retracted it by name. Kernel work is signed off as Jiaxing Hu; everywhere else I am gahingwoo.

Upstream contributions, accepted

Linux, iommu/rockchip: two fixes for the RK3576 NPU's IOMMU instances

Mainline, v7.3-rc1 · 2026

Take every clock the devicetree provides instead of a fixed pair, so register writes behind extra clock gates are no longer silently dropped; and acknowledge a stale page fault left by boot firmware before enabling stall, which otherwise hangs the poll. Applied by Will Deacon, IOMMU co-maintainer, with his own Signed-off-by.

Linux, arm64 dts: ArmSoM CM5 and CM5-IO board support

Mainline, v7.3-rc1 · 2026

Devicetree and binding for a new RK3576 compute module and carrier, through five review rounds. Acked-by Krzysztof Kozlowski on the binding; applied by Heiko Stübner, Rockchip SoC maintainer.

Linux, net/phy motorcomm: enable the reference clock for the YT8521

Mainline, v7.3-rc1 · 2026

Fix for crystal-less RGMII PHYs that need a SoC-sourced 25 MHz reference. Reviewed-by Andrew Lunn; Tested-by Gavin Gao on a different board; applied by Jakub Kicinski, net maintainer. An earlier attempt in the MAC driver was withdrawn on maintainer advice and redone at the PHY layer.

OP-TEE: first RK3576 platform port

merged · 2026

Ported the open-source Trusted Execution Environment to a new Rockchip SoC. Passed all 57 automated checks, reproduced on separate hardware, Reviewed-by from a Cherry Embedded Solutions maintainer. Flipper Devices later ran it on Flipper One: 114 xtest cases, 35,681 subtests, zero failures, credited by name in their developer documentation.

Trusted Firmware-A: removed a redundant secure-boot override

merged · 2026

A copy-paste build-configuration defect that would have silently broken secure boot on any build without a secure OS. Reviewed by engineers at STMicroelectronics, Arm and Rockchip.

Under review

Linux: RK3576 NPU enablement, 14 patches, PATCH v13

posted 15 Sep 2026

Bindings, power domains, IOMMU and accel/rocket changes to run the RK3576's NPU on the mainline driver. Reviewed-by ×4 (Krzysztof Kozlowski, Igor Paunovic, Abel Vesa ×2), Acked-by ×2 (Conor Dooley), Tested-by ×3 on RK3588 hardware I do not own. Tomeu Vizoso, the driver's author, has said he will review it. The root cause of the long-standing failure was a register field one word wide: a 16-bit task count where the RK3588 header assumed 12, confirmed on the list by Rockchip.

Mesa: RK3576 support in the Teflon delegate, !43804

posted · 2026

Five patches for one regular convolution on the rocket/Teflon path, deliberately the bare minimum the maintainer asked for first. Not yet reviewed.

Linux, media: RFC V4L2 driver for the RK3576 VEPU510 H.264 encoder

RFC · 2026

From-scratch encoder driver. Reviewed by Heiko Stübner and Nicolas Dufresne; on their advice, abandoned the stateful V4L2 interface in favour of the DRM/Vulkan-Video split being built for the RK3588.

What is next

  • RK3576 NPU series: into the accel tree. v13 is posted, carrying Igor Paunovic's corrections to his own test reports, and the driver's author has yet to reply; the goal is for the 14 patches to be applied, so the NPU works on a stock kernel.
  • Mesa: after the single regular convolution in !43804, the depthwise, pointwise and image-input layer types MobileNet is built from, as separate series.
  • charsiu: an open runtime that matches or beats the vendor's performance on the mainline driver, with no vendor code in the path. Nine models already run end to end with output identical to the CPU reference.
  • VEPU510 encoder: rebase on the DRM/Vulkan-Video split being built for the RK3588 once it lands, as the maintainers advised.
  • edk2-rk3576: a complete, polished UEFI for the RK3576. It boots a mainline Fedora 44 desktop today; the goal is every board it builds for verified and the platform support upstreamable.

Publication

RK3576 NPU bring-up on the open driver stack: preprint, version 2

Zenodo · 2026

Version 1 reported that chained compute failed below what software could reach. Version 2 retracts that on its first page: the cause was a register field-layout error in software, and MobileNet V1 now runs end to end on the NPU and returns the CPU's class. Most of version 2 is about why a disprove-first method held a false conclusion for 38 days. Covered by CNX Software; five register-model findings independently cross-confirmed on RK3588 by a separate reverse-engineering effort.

Selected projects

Review and community

Education

Mount Albert Grammar School, Auckland

Year 13 · 2026

Secondary school student. The upstream, research and tooling work above was done alongside school.

Skills, as used in the work above

Linux kernel
IOMMU, devicetree and bindings, pmdomain, PHY drivers, accel subsystem, V4L2; the mailing-list workflow with b4 and checkpatch, from RFC to applied.
Trusted execution and boot
Trusted Firmware-A, OP-TEE, TrustZone-M on Cortex-M33, TianoCore EDK2 and UEFI.
Hardware bring-up
Register-level reverse engineering, ordered register tracing and differential testing against a vendor stack, SWD debugging, power and clock trees.
Languages and tools
C, Python, Shell, JavaScript; Qt/PySide6; Mesa and Teflon; GitHub Actions and CI.
Back to top