Files
mw-pfeddersheim-workstation/docs/tech/firmware-update-research.md
T
ja bbdcd43e01 docs(tech): add post-firmware benchmark and complete GXA7801Q update docs
- Post-update fio benchmark: random read +12.4%, write +15.9% IOPS
- Latency reduced 10-14% for random workloads
- SMART health unchanged: 0 media errors, 0 error log entries
- Firmware research status updated to complete
- Pre-benchmark checklist marked done
2026-04-02 15:10:54 +02:00

299 lines
13 KiB
Markdown

---
description: >-
Firmware/BIOS update research for all workstation components.
Current vs latest versions, update methods, and risk assessment.
tags: [firmware, bios, update, research, tech, workstation]
last_updated: '2026-04-02'
---
# Firmware Update Research: mw-pfeddersheim-workstation
**Date**: 2026-04-02
**Purpose**: Research latest firmware/BIOS versions for all components and assess update needs.
## Summary
| Component | Current Version | Latest Version | Update? | Risk |
|-----------|----------------|----------------|---------|------|
| Motherboard BIOS | F53 (2025-10-28) | F53 | **No** | - |
| NVMe SSD (PM9A1) | GXA7401Q | **GXA7801Q** | **Yes (applied)** | Medium |
| SATA SSD (840 EVO) | EXT0BB6Q | EXT0BB6Q (EOL) | **No** | - |
| GPU VBIOS (GTX 1050 Ti) | 86.07.39.00.50 | 86.07.39.00.50 (EOL) | **No** | - |
| NIC (RTL8111) | rev 0c, r8168 driver | Kernel-integrated | Via kernel | Low |
| CPU Microcode | Kernel-integrated | Kernel-integrated | Via kernel | Low |
| USB Peripherals | Various | Various | **No** (no LVFS) | - |
**Actionable updates**: 1 (NVMe SSD firmware)
---
## Detailed Findings
### 1. Motherboard BIOS: Gigabyte AX370M-DS3H-CF
| Field | Value |
|-------|-------|
| Current | F53, dated 2025-10-28 |
| Latest | F53 (no newer version found) |
| Source | [Gigabyte Support](https://www.gigabyte.com/us/Motherboard/GA-AX370M-DS3H-rev-1x/support) |
**Status**: **Up to date.** F53 from October 2025 is the latest available. The AX370M-DS3H (rev 1.x) is an AM4 board from 2017 - F53 represents a remarkably long support timeline (8+ years). No further updates expected.
**Update method** (if future versions appear): Q-Flash (BIOS) or @BIOS (Windows/Linux utility).
---
### 2. NVMe SSD: Samsung PM9A1 (MZVL2512HCJQ-00B00)
| Field | Value |
|-------|-------|
| Current | GXA7401Q |
| **Latest** | **GXA7801Q** (non-SED, `00B00`) |
| Source | [GitHub: samsung-nvme-firmware](https://github.com/lolyinseo/samsung-nvme-firmware) |
**Status**: **Complete 2026-04-02.** GXA7801Q is the correct firmware for non-SED PM9A1 drives (model `00B00`). Activated and verified. See `nvme-benchmark-post-gxa7801q.md` for before/after comparison.
> **Important**: GXA7802Q is for SED drives (model `00B07`) only. Our non-SED drive (MZVL2512HCJQ-**00B00**) requires GXA7801Q.
> The OVHCloud mirror only hosts GXA7802Q, which was rejected as "Invalid Firmware Image".
### Firmware Naming Convention
| Suffix | Type | Model Suffix |
|--------|------|-------------|
| `GXA***1Q` | Non-SED (standard) | `00B00` |
| `GXA***2Q` | SED (Self-Encrypting) | `00B07` |
### Firmware Changelog (GXA7401Q → GXA7801Q)
| Version | Key Changes |
|---------|-------------|
| **GXA7401Q** (current) | Fixed Pyrite spec violation (prevented user data erase during TCG revert). Improved write performance drop beyond 70% capacity usage via foreground GC in SSB area. |
| **GXA7602Q** | Changed LPN per Unmap Range from total device LPN to 1000. Improved free block generation, reduced unnecessary migrations and TLC writes. |
| **GXA7702Q** | Increased LPN per Unmap Range to 10,000. Introduced **side effects**: lengthened FW time for Unmap operations, slower free block generation, increased unnecessary migrations. Samsung recommended **holding** this version. |
| **GXA7801Q** (latest, applied) | **Fixes all GXA7702Q side effects.** Non-SED variant. Corrects unmap handling, restores free block generation performance. Released ~Nov 2022 after internal qualification. Overall stability and performance improvements. |
**Key benefit for workstation**: The GXA7401Q → GXA7801Q jump fixes unmap/TRIM performance regression chain from GXA7702Q intermediate versions. Since this is a root NVMe drive with heavy I/O, improved unmap handling and write stability are relevant.
**Note**: No official Samsung changelog exists publicly. Information sourced from Samsung internal PDF (gzhls.at), OVHCloud deployment guide, and Win-Raid community.
**Update procedure** (Linux, no Samsung Magician needed):
```bash
# 1. Install nvme-cli
sudo pacman -S nvme-cli
# 2. Verify current firmware
nvme list
# 3. Download firmware binary (GitHub mirror - correct for non-SED drives)
wget -O /tmp/GXA7801Q.bin \
"https://raw.githubusercontent.com/lolyinseo/samsung-nvme-firmware/main/PM9A1/ASUS/GXA7801Q/GXA7801Q_20221102.bin"
# 4. Apply firmware (ensure NVMe is /dev/nvme0n1)
sudo nvme fw-download --fw=/tmp/GXA7801Q.bin /dev/nvme0n1
sudo nvme fw-commit -s 2 -a 0 /dev/nvme0 # Install to slot 2
sudo nvme fw-commit -s 2 -a 2 /dev/nvme0 # Activate slot 2
# 5. Reboot to apply
sudo reboot
# 6. Verify after reboot
nvme list
```
**Update applied**: 2026-04-02 10:51 CET. All three nvme-cli steps succeeded. Reboot completed, GXA7801Q verified active. Random IOPS improved +12-16% post-update.
**Firmware file**: SHA256 `76ad2b0c35581cb71bd4c5a5fd358a15c4432aa38e9e983acc2349d2b24b5a11`
**Risk**: Medium. NVMe firmware update can brick the drive if interrupted (power loss). Original firmware GXA7401Q preserved in slot 1 as fallback.
**Pre-firmware benchmark**: See `docs/tech/nvme-benchmark-pre-gxa7802q.md`
---
### 3. SATA SSD: Samsung SSD 840 EVO 500GB
| Field | Value |
|-------|-------|
| Current | EXT0BB6Q |
| Latest | EXT0BB6Q (EOL - no updates since ~2015) |
| Source | [Samsung Semiconductor Tools](https://semiconductor.samsung.com/consumer-storage/support/tools/) |
**Status**: **No update available.** The 840 EVO (released 2013) has reached end-of-life. EXT0BB6Q is the final firmware. No further updates will be released.
**Note**: This drive is 12+ years old. Consider monitoring health via `smartctl` and planning replacement if reliability degrades.
**If update were needed**: Samsung provides bootable ISO firmware utilities, but none exist beyond EXT0BB6Q for this model. Samsung Magician is Windows-only.
---
### 4. GPU: NVIDIA GeForce GTX 1050 Ti
| Field | Value |
|-------|-------|
| Current VBIOS | 86.07.39.00.50 |
| Latest VBIOS | 86.07.39.00.50 (EOL) |
| Current Driver | 575.64.05 |
| Latest Driver | ~580.81 (final for 10-series, end of 2025) |
| Source | [NVIDIA Drivers](https://www.nvidia.com/en-us/drivers/) |
**Status**: **No VBIOS update available.** NVIDIA ended Game Ready driver support for GTX 10-series at end of 2025. No VBIOS updates have been released.
**Driver note**: Driver 575.64.05 may be close to or past the final supported version. Check `mhwd` or `pacman` for the latest NVIDIA 10-series driver available in Manjaro.
**Update method** (drivers only): `sudo pacman -Syu nvidia` or via Manjaro Hardware Detection (`mhwd`).
---
### 5. NIC: Realtek RTL8111/8168/8411 (rev 0c)
| Field | Value |
|-------|-------|
| Current Driver | r8168 (proprietary) |
| Kernel Module | r8168, r8169 (alternative) |
| Firmware | rtl_nic/rtl8168h-2.fw (linux-firmware) |
| Source | linux-firmware.git (kernel.org) |
**Status**: **Managed via kernel/firmware packages.** No standalone firmware update needed. The NIC firmware blob is part of `linux-firmware` package.
**Update method**: Keep `linux-firmware` package updated via normal `pacman -Syu`.
**Note**: Currently using `r8168` (Realtek proprietary driver). The in-kernel `r8169` driver also supports this chip and may be preferable for simpler maintenance. Both are loaded as kernel modules.
---
### 6. CPU: AMD Ryzen 7 2700X (Zen+ / Pinnacle Ridge)
| Field | Value |
|-------|-------|
| Microcode | Kernel-integrated (ucode_amd.bin) |
| AGESA | Applied via BIOS (F53 includes latest for this board) |
| Source | linux-firmware.git, kernel.org |
**Status**: **Managed via kernel/BIOS.** AMD CPU microcode updates are delivered through:
1. **BIOS/UEFI** (AGESA updates) - already at F53 (latest)
2. **Linux kernel** (early microcode loading) - updated via `linux-firmware` package
**Verify current microcode**: `dmesg | grep microcode` after boot.
**Update method**: Keep kernel and `linux-firmware` packages updated.
---
### 7. USB Peripherals
| Device | USB ID | Firmware Update? | Method |
|--------|--------|------------------|--------|
| Jabra SPEAK 510 | 0b0e:0422 | Maybe | Jabra Xpress (Linux) |
| Genesys Logic microSD Reader | 05e3:0727 | No | N/A |
| Pixart Imaging Mouse | 093a:2510 | No | N/A |
| Microdia Terra HD1080PC Camera | 0c45:636b | No | N/A |
| CHERRY Mechanical Keyboard | 046a:00b0 | No | N/A |
**Status**: **No LVFS/fwupd support** for any of these devices.
**Jabra SPEAK 510**: Jabra Xpress (v49.0.1.2, Dec 2025) is available for Linux. Could check for firmware updates if audio issues exist. Download from [Jabra Support](https://www.jabra.com/supportpages/jabra-speak-510/7510-209).
**All others**: No firmware update mechanisms available. These are simple HID/USB devices with no user-serviceable firmware.
---
## fwupd Status
**Installed**: fwupd 2.1.1 (2026-04-02)
### Detected Devices (7 total)
| Device | Type | Current Version | Updatable via LVFS? |
|--------|------|-----------------|---------------------|
| MZVL2512HCJQ-00B00 | NVMe SSD | GXA7401Q | Yes (flag) / No update published |
| SSD 840 EVO 500GB | SATA SSD | EXT0BB6Q | Yes (flag) / No update published |
| Ryzen 7 2700X | CPU Microcode | 0x0800820e | No |
| AMD TPM 2.0 | TPM | 3.8.0.3 | Yes (flag, signed payload) |
| Unknown (PNP:WOR) | Display (?) | - | No |
| Unknown (PNP:BNQ) | Display (?) | - | No |
| Unknown (PNP:WOR) | Display (?) | - | No |
### LVFS Update Check Result
```
No updatable devices
```
Samsung does not publish PM9A1 or 840 EVO firmware on LVFS. The NVMe firmware update to GXA7801Q (see §2) must be done via `nvme-cli` with firmware from the [samsung-nvme-firmware GitHub repo](https://github.com/lolyinseo/samsung-nvme-firmware). The OVHCloud mirror only has GXA7802Q (SED variant, incompatible with non-SED drives).
### New Discovery: AMD TPM 2.0
fwupd detected an **AMD TPM 2.0** device (version 3.8.0.3) not in original inventory. This is the firmware TPM (fTPM) built into the Ryzen processor. It supports signed payload updates via fwupd/LVFS. Currently no update is published.
### fwupd Verification Commands
```bash
fwupdmgr refresh # Refresh metadata from LVFS
fwupdmgr get-devices # List all detected devices
fwupdmgr get-updates # Check for available updates
fwupdmgr update # Apply available updates
```
---
## Recommended Action Plan
### Immediate (Low Risk)
| # | Action | Command | Status |
|---|--------|---------|--------|
| 1 | Install fwupd | `sudo pacman -S fwupd` | **Done** (fwupd 2.1.1) |
| 2 | Update linux-firmware | `sudo pacman -Syu linux-firmware` | Pending |
| 3 | Check NVIDIA driver version | `pacman -Q nvidia` | Pending |
### Scheduled (Medium Risk - Requires Maintenance Window)
| # | Action | Risk | Downtime |
|---|--------|------|----------|
| 4 | ~~Update NVMe firmware to GXA7801Q~~ | ~~Medium (power loss risk)~~ | **Complete 2026-04-02. GXA7801Q active. +12-16% random IOPS.** |
### No Action Needed
| Component | Reason |
|-----------|--------|
| Motherboard BIOS | Already at latest (F53) |
| SATA SSD | EOL, no updates available |
| GPU VBIOS | EOL, no updates available |
| CPU Microcode | Managed via kernel/firmware |
| NIC Firmware | Managed via kernel/firmware |
| USB Peripherals | No update mechanisms |
---
## Risk Assessment
### NVMe Firmware Update (GXA7401Q -> GXA7801Q) - APPLIED 2026-04-02
| Risk | Mitigation |
|------|------------|
| Power loss during update = bricked drive | Use UPS, verify battery backup |
| Data corruption | Backup critical data first |
| Incompatibility | Verify model match (MZVL2512HCJQ-00B00) |
### General Considerations
- **Production workstation**: All firmware updates should be scheduled during non-critical hours.
- **Rollback**: BIOS has dual-BIOS; NVMe/SATA have no rollback mechanism.
- **Testing**: After any firmware update, run `smartctl -a` and `nvme smart-log` to verify health.
---
## References
- [Gigabyte GA-AX370M-DS3H Support](https://www.gigabyte.com/us/Motherboard/GA-AX370M-DS3H-rev-1x/support)
- [OVHCloud PM9A1 Firmware Guide](https://support.us.ovhcloud.com/hc/en-us/articles/22361371147923)
- [Samsung SSD Firmware Tools](https://semiconductor.samsung.com/consumer-storage/support/tools/)
- [NVIDIA Drivers](https://www.nvidia.com/en-us/drivers/)
- [Jabra Xpress for Linux](https://www.jabra.com/support/release-notes/release-note-jabra-xpress-for-linux)
- [linux-firmware.git](https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git)
- [Samsung PM9A1 Firmware PDF (gzhls.at)](https://gzhls.at/blob/ldb/1/a/2/a/90ce739915b765d7fdae4620177253f0056e.pdf)
- [Win-Raid PM9A1 Discussion](https://winraid.level1techs.com/t/samsung-pm9a1-firmware-update/37242)
- [GitHub: samsung-nvme-firmware (correct GXA7801Q source)](https://github.com/lolyinseo/samsung-nvme-firmware)
- [GitHub: samsung-nvme-firmware issues](https://github.com/lolyinseo/samsung-nvme-firmware/issues/10)