From: Alvin Lim <alvinwylim@gmail.com>
To: mario.limonciello@amd.com, mikael1022bzh@gmail.com, cassel@kernel.org
Cc: roland.waltersson@netinsight.net, artmoty@gmail.com,
linux-ide@vger.kernel.org, david.laight.linux@gmail.com,
kernel@wantstofly.org, imjohnsmith4000@gmail.com
Subject: Re: [PATCH] ahci: force 32-bit DMA for JMicron JMB582/JMB585
Date: Sun, 6 Sep 2026 13:05:01 +0800 [thread overview]
Message-ID: <20260906050501.1309388-1-alvinwylim@gmail.com> (raw)
In-Reply-To: <1c3df04b-7929-4b43-adb7-6007347a954e@amd.com>
On Sat, Sep 05, 2026 at 07:26:49AM -0500, Mario Limonciello wrote:
> Two things:
>
> 1. lspci -ttvvnn
> 2. Turn on amd_smn_debugfs_enable=1 on kernel command line.
Both below. Your script ran unmodified.
Conditions
----------
Board : AOOSTAR WTR MAX (DMI: TianBei "WTR MAX")
BIOS : AMI 0.01, 2025-04-27, revision 5.29
CPU : AMD Ryzen 7 PRO 8845HS
SATA : ASMedia ASM1166 [1b21:1166] rev 02, 6 HDDs
subsystem [1b21:2116], PCIe 8GT/s x2
Cmdline : root=/dev/mapper/pve-root ro amd_iommu=off quiet
amd_iommu=off amd_smn_debugfs_enable=1
amd_iommu=off was in force for every reading below. I did not re-enable
the IOMMU at any point, so these are values as seen in the configuration
this machine has run since 2026-06-17.
I took the same maintenance window to apply a pending Proxmox kernel
security update, and captured twice so the reboot was not wasted:
7.0.14-14-pve the kernel I quoted in my earlier mail
7.0.14-15-pve after the update
The two captures are byte-identical, so on this box the values do not
depend on which of those two kernels is running. That is an observation,
not a conclusion -- I have no basis for saying more than that.
To be explicit, since I would rather foreclose the misreading than
correct it later: this is not a test of the corruption on the newer
kernel. amd_iommu=off was set for both boots, so neither capture
exercised the failing path, and nothing here says anything about whether
7.0.14-15 behaves differently.
SMN registers
-------------
0x111401d0: 0x00000100
0x111411d0: 0x00000100
0x111421d0: 0x00000000
0x111431d0: 0x00000100
0x111441d0: 0x00000100
0x112401d0: 0x00000100
0x112411d0: 0x00000100
0x112421d0: 0x00000100
0x112431d0: 0x00000100
0x112441d0: 0x00000100
0x112451d0: 0x00000100
0x113401d0: 0x00000100
0x114401d0: 0x00000100
All thirteen read cleanly; no invalid reads and nothing stalled. I have
not tried to interpret them and am not going to guess at what they mean.
lspci -ttvvnn
-------------
-[0000:00]-+-00.0 Advanced Micro Devices, Inc. [AMD] Phoenix Root Complex [1022:14e8]
+-00.2 Advanced Micro Devices, Inc. [AMD] Phoenix IOMMU [1022:14e9]
+-01.0 Advanced Micro Devices, Inc. [AMD] Phoenix Dummy Host Bridge [1022:14ea]
+-01.1-[6a]--
+-01.2-[6b]----00.0 Samsung Electronics Co Ltd NVMe SSD Controller SM951/PM951 [144d:a802]
+-01.3-[6c]----00.0 Micron/Crucial Technology P510 NVMe PCIe SSD (DRAM-less) [c0a9:560a]
+-01.5-[6d]----00.0 Samsung Electronics Co Ltd NVMe SSD Controller 980 (DRAM-less) [144d:a809]
+-02.0 Advanced Micro Devices, Inc. [AMD] Phoenix Dummy Host Bridge [1022:14ea]
+-02.2-[64-65]--+-00.0 Intel Corporation Ethernet Controller X710 for 10GbE SFP+ [8086:1572]
| \-00.1 Intel Corporation Ethernet Controller X710 for 10GbE SFP+ [8086:1572]
+-02.3-[66]----00.0 Intel Corporation Ethernet Controller I226-V [8086:125c]
+-02.4-[67]----00.0 Intel Corporation Ethernet Controller I226-V [8086:125c]
+-02.5-[68]----00.0 ASMedia Technology Inc. ASM1166 Serial ATA Controller [1b21:1166]
+-02.6-[69]----00.0 Micron/Crucial Technology T500 NVMe PCIe SSD [c0a9:5415]
+-03.0 Advanced Micro Devices, Inc. [AMD] Phoenix Dummy Host Bridge [1022:14ea]
+-03.1-[04-63]--
+-04.0 Advanced Micro Devices, Inc. [AMD] Phoenix Dummy Host Bridge [1022:14ea]
+-08.0 Advanced Micro Devices, Inc. [AMD] Phoenix Dummy Host Bridge [1022:14ea]
+-08.1-[01]--+-00.0 Advanced Micro Devices, Inc. [AMD/ATI] Phoenix3 [1002:1900]
| +-00.1 Advanced Micro Devices, Inc. [AMD/ATI] Radeon High Definition Audio Controller [Rembrandt/Strix] [1002:1640]
| +-00.2 Advanced Micro Devices, Inc. [AMD] Phoenix CCP/PSP 3.0 Device [1022:15c7]
| +-00.3 Advanced Micro Devices, Inc. [AMD] Device [1022:15b9]
| +-00.4 Advanced Micro Devices, Inc. [AMD] Device [1022:15ba]
| +-00.5 Advanced Micro Devices, Inc. [AMD] Audio Coprocessor [1022:15e2]
| \-00.6 Advanced Micro Devices, Inc. [AMD] Family 17h/19h/1ah HD Audio Controller [1022:15e3]
+-08.2-[02]--+-00.0 Advanced Micro Devices, Inc. [AMD] Phoenix Dummy Function [1022:14ec]
| \-00.1 Advanced Micro Devices, Inc. [AMD] AMD IPU Device [1022:1502]
+-08.3-[03]--+-00.0 Advanced Micro Devices, Inc. [AMD] Phoenix Dummy Function [1022:14ec]
| +-00.3 Advanced Micro Devices, Inc. [AMD] Device [1022:15c0]
| +-00.4 Advanced Micro Devices, Inc. [AMD] Device [1022:15c1]
| \-00.5 Advanced Micro Devices, Inc. [AMD] Pink Sardine USB4/Thunderbolt NHI controller #1 [1022:1668]
+-14.0 Advanced Micro Devices, Inc. [AMD] FCH SMBus Controller [1022:790b]
+-14.3 Advanced Micro Devices, Inc. [AMD] FCH LPC Bridge [1022:790e]
+-18.0 Advanced Micro Devices, Inc. [AMD] Phoenix Data Fabric; Function 0 [1022:14f0]
+-18.1 Advanced Micro Devices, Inc. [AMD] Phoenix Data Fabric; Function 1 [1022:14f1]
+-18.2 Advanced Micro Devices, Inc. [AMD] Phoenix Data Fabric; Function 2 [1022:14f2]
+-18.3 Advanced Micro Devices, Inc. [AMD] Phoenix Data Fabric; Function 3 [1022:14f3]
+-18.4 Advanced Micro Devices, Inc. [AMD] Phoenix Data Fabric; Function 4 [1022:14f4]
+-18.5 Advanced Micro Devices, Inc. [AMD] Phoenix Data Fabric; Function 5 [1022:14f5]
+-18.6 Advanced Micro Devices, Inc. [AMD] Phoenix Data Fabric; Function 6 [1022:14f6]
\-18.7 Advanced Micro Devices, Inc. [AMD] Phoenix Data Fabric; Function 7 [1022:14f7]
What I can still do cheaply
---------------------------
I deliberately left amd_smn_debugfs_enable=1 on the command line, so
more SMN reads cost me nothing -- no reboot, no maintenance window. If
you want further registers, or the same ones under different
conditions, just send the list.
I can also still run any boot parameter combination (amd_iommu=pgtbl_v2,
iommu.forcedac=1, iommu=pt), older kernels from the Proxmox archive, a
custom kernel with a debug patch, or a long fio crc32c canary. The one
constraint I mentioned before still applies: this is a live NAS and the
ASM1166 carries real data including a Ceph OSD, so anything that
re-enables the IOMMU needs a scheduled window with the filesystems
unmounted, and I would write the canary first through the path I know
is good.
Still not something I can offer: no JMicron JMB582/585, no Intel or ARM
IOMMU machine, and no SATA controller other than this ASM1166.
A note for John Smith, added to Cc
----------------------------------
John -- I have added you because you are running the same machine I am,
and one of the readings above may be worth your attention.
You reported a TianBei WTR MAX with AMI BIOS 0.01 dated 2025-04-27,
revision 5.29, an ASM1166 with subsystem [1b21:2116], and IVHD EFR
0x246577efa2054ada. I checked each of those against this box today
rather than assuming, and every field matches.
The EFR needed a different route, which may be useful to you: with
amd_iommu=off there is no AMD-Vi line in dmesg to read it from, so I
took it from the IVRS ACPI table instead --
od -An -tx1 /sys/firmware/acpi/tables/IVRS
parsing the IVHD type 11h/40h blocks, where the EFR image sits at offset
0x18. Both blocks give 0x246577efa2054ada, EFR2 0, with GIOSup (bit 48)
and GT (bit 4) set. That is a live reading from this machine, not the
figure quoted from my earlier mail.
The thing that stands out: of the thirteen registers above, twelve read
0x00000100 and one -- 0x111421d0 -- reads 0x00000000. From a single
machine I cannot tell whether that is ordinary for this board or
specific to my unit, and you are the only person I know of with an
identical one, so your numbers would be directly comparable to mine.
That is the whole reason for the Cc. No obligation, and no request
attached -- I just did not think it was right to sit on it without
telling you.
Alvin Lim
next prev parent reply other threads:[~2026-09-06 5:05 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-03 13:35 [PATCH] ahci: force 32-bit DMA for JMicron JMB582/JMB585 Roland Waltersson
2026-09-03 21:40 ` Niklas Cassel
2026-09-03 22:36 ` Mario Limonciello
2026-09-04 5:20 ` Roland Waltersson
2026-09-04 11:14 ` Niklas Cassel
2026-09-04 12:38 ` Mario Limonciello
2026-09-04 12:50 ` Niklas Cassel
2026-09-04 16:55 ` Mikael Etienne
2026-09-05 11:38 ` Alvin Lim
2026-09-05 12:26 ` Mario Limonciello
2026-09-06 5:05 ` Alvin Lim [this message]
2026-09-06 19:27 ` John Smith
2026-09-05 14:13 ` Lennert Buytenhek
[not found] <AM8P193MB2659454F98AD53DEB002CF8AA9B42@AM8P193MB2659.EURP193.PROD.OUTLOOK.COM>
2026-09-07 10:28 ` Niklas Cassel
-- strict thread matches above, loose matches on Subject: below --
2026-09-06 11:48 snoep
2026-04-03 5:04 Arthur Husband
2026-04-03 7:02 ` Damien Le Moal
2026-04-03 8:12 ` Niklas Cassel
2026-04-03 8:19 ` Niklas Cassel
2026-04-03 5:02 Arthur Husband
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260906050501.1309388-1-alvinwylim@gmail.com \
--to=alvinwylim@gmail.com \
--cc=artmoty@gmail.com \
--cc=cassel@kernel.org \
--cc=david.laight.linux@gmail.com \
--cc=imjohnsmith4000@gmail.com \
--cc=kernel@wantstofly.org \
--cc=linux-ide@vger.kernel.org \
--cc=mario.limonciello@amd.com \
--cc=mikael1022bzh@gmail.com \
--cc=roland.waltersson@netinsight.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox