Re: [PATCH] ahci: force 32-bit DMA for JMicron JMB582/JMB585
From: Mario Limonciello <mario.limonciello@amd.com>
Date: 2026-09-05 12:26:54
< snip >
So: tell me which test would actually be useful and I will run it and report the result either way, including a negative one. I would rather spend the window on the question you want answered than guess at it. Alvin Lim
Two things:
1. lspci -ttvvnn
2. Turn on amd_smn_debugfs_enable=1 on kernel command line.
Then use debugfs to get me the outputs from the SMN reads of these
registers:
0x111401d0,
0x111411d0,
0x111421d0,
0x111431d0,
0x111441d0,
0x112401d0,
0x112411d0,
0x112421d0,
0x112431d0,
0x112441d0,
0x112451d0,
0x113401d0,
0x114401d0,
Something like this might work.
sudo bash <<'EOF'
set -euo pipefail
if ! mountpoint -q /sys/kernel/debug; then
mount -t debugfs debugfs /sys/kernel/debug
fi
dir=/sys/kernel/debug/x86/amd_smn
test -d "$dir" || {
echo "Missing $dir; verify CONFIG_DEBUG_FS and
amd_smn_debugfs_enable=1"
exit 1
}
addresses=(
0x111401d0
0x111411d0
0x111421d0
0x111431d0
0x111441d0
0x112401d0
0x112411d0
0x112421d0
0x112431d0
0x112441d0
0x112451d0
0x113401d0
0x114401d0
)
printf '0\n' > "$dir/node"
for address in "${addresses[@]}"; do
printf '%s\n' "$address" > "$dir/address"
old=$(cat "$dir/value")
[[ $old =~ ^0x[[:xdigit:]]{8}$ ]] || {
echo "$address: invalid read: $old"
exit 1
}
printf '%s: %s\n' "$address" "$old"
done
EOF