← All Radxa Dragon Q8B fixes Fix Guide

How to Fix UFS Module Random Reboots, Freezes, and Slow Speeds on the Radxa Dragon Q8B

💻 Device: Radxa Dragon Q8B 🗓 Added

Causes

  • UFS driver (ufshcd-qcom) PM and hibern8 errors on the Dragon platform — Dragon-series owners who boot Radxa OS from a UFS 3.1 module reported a very specific failure pattern: the system stutters (freezes for 2-3 seconds) every few minutes, and after roughly an hour it either hard-freezes or randomly reboots. The kernel log is dominated by ufshcd-qcom errors — device abort tasks, pa_err link errors, and hibern8 (link power state) timeouts. This is a driver/firmware-level issue on the SC8280XP UFS controller, not a sign the module is physically dead — the same thread shows the module bench-marking far below spec while the rest of the system (CPU and RAM stress tests) stays perfectly stable.
  • Flashing the wrong system image variant for UFS — The Dragon Q8B download page publishes two images of every release: the .output_512.img.xz variant is marked "Suitable for booting from a microSD card or NVMe SSD," while the .output_4096.img.xz variant is the one "Suitable for booting from UFS." UFS 3.1 modules use 4096-byte logical sectors; if you flash the 512-byte image onto the UFS module, the filesystem geometry is wrong and you get severe performance degradation and instability — the module reports a fraction of its rated 1811 MB/s read / 557 MB/s write speed (owners measured roughly 60 MB/s) and eventually the controller trips into errors under sustained I/O.
  • Outdated SPI boot firmware on the board — Radxa support's first response to UFS instability reports was to update the boot firmware (the 2026-01-20 build, BOOT.MXF.1.0.1-00549-KODIAKWP-1, was the recommended version at the time). Early SPI firmware builds had UFS link-training and power-management bugs that caused the random freezes and reboots when the controller tried to enter low-power link states. Boards still running the factory firmware exhibit the freezes far more often.
  • Insufficient or unstable power delivery — The UFS module draws extra current during write bursts, and a marginal power source (a weak PD adapter, a long thin USB-C cable, or a DC supply that sags under load) can cause link errors that manifest as freezes or reboots. This is why the same symptoms appear on boards powered differently — and why Radxa's quick-start guide insists on a 20V PD adapter rated 3A or higher.
  • A faulty, counterfeit, or incompatible UFS module — The Q8B takes a Radxa UFS module (UFS 3.1 Gear 4 x2 connector). Modules from third parties, "upgraded" pulls, or units that arrive with a damaged connector can fail link training or drop off the bus mid-operation. Owners who tested a module and got persistent ufshcd_abort errors plus pa_err link faults on every boot, even with correct firmware and image, ultimately needed the module replaced.

How to Fix

  1. Confirm it's the UFS controller, not the OS or RAM — Boot the board from a microSD card or NVMe SSD (a known-good image) and run stress-ng --cpu 8 plus a memory test. If the system is rock-solid from other media and only misbehaves from the UFS module, you've isolated the problem to the UFS path. Then watch the kernel log while using the UFS boot: sudo dmesg -w | grep -i ufs — the signature is ufshcd-qcom abort/hibern8 errors and pa_err link faults right before each freeze.
  2. Re-flash the correct 4096-byte image for UFS — Download the radxa-dragon-midstream_noble_gnome_t2.output_4096.img.xz (or the current release's 4096 variant) from the Dragon Q8B Resource Downloads page — not the 512 variant. Extract the archive, then flash it to the UFS module. Because the Q8B boots from USB before UFS, the cleanest method is to boot a USB stick with the installer image and write the 4096 image to the module from Linux (sudo dd if=image.img of=/dev/sda bs=8M status=progress after confirming the device with lsblk), or use the UFS reader method documented in the install guide. Wrong-sector-size images are the single most common cause of "UFS is slow" reports.
  3. Update the SPI boot firmware via EDL — Download the latest SPI Boot Firmware (BIOS) from the Q8B Resource Downloads page. Enter EDL mode: hold the onboard EDL button, connect a 20V PD adapter, release the button. Verify the board is in EDL with lsusb (the Qualcomm device shows as 05c6:9008), then flash the firmware with the provided EDL tool (EDL-NG on Linux, or the Qualcomm driver + tool on Windows). This addresses the UFS link power-management bugs in early SPI builds — the documented fix Radxa support points Dragon owners to.
  4. Update the kernel with rsetup — Run sudo rsetupSystem → System Update to pull the current Radxa kernel, which includes ongoing SC8280XP UFS and thermal fixes (do not rely on apt update && apt upgrade, which Radxa warns can leave the system in a broken state). Reboot, then re-test with fio: a healthy Kioxia 256GB module on the Q8B should reach roughly 1811 MB/s read / 557 MB/s write — if you're still at ~60 MB/s after the correct 4096 image and firmware, the module or connector is the problem (step 6).
  5. Check power delivery and the module seating — Power the board from a 20V PD adapter rated 3A or higher (Radxa's 65W adapter is the reference) using a short, thick USB-C cable. Power off, remove the UFS module, inspect the gold fingers and connector pins for damage or dust, and reseat it firmly — a half-seated UFS module produces exactly these intermittent link errors. If you use the DC power pins instead, confirm the supply holds voltage under load.
  6. Test the module in another slot or board, then RMA if needed — If freezes persist after the 4096 image, current SPI firmware, current kernel, and clean power, the module itself is suspect. Test it in a second Dragon Q8B if available. Persistent ufshcd_abort/pa_err errors with correct firmware across two boards point to a faulty module — contact Radxa (or your seller, e.g. ARace) for a warranty replacement. Owners who swapped the module resolved the reboots immediately; the failure is on the module, not the board.