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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.