Linux ATA/IDE development
 help / color / mirror / Atom feed
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

  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