Re: [PATCH v2 1/2] EDAC/amd64: Mask UMC chip select to the four implemented selects

From: Yazen Ghannam

Date: Mon Sep 28 2026 - 16:46:48 EST


On Mon, Sep 28, 2026 at 11:39:34PM +0530, Vishal Badole wrote:
> umc_get_err_info() masks the Chip Select from MCA_SYND with 0x7, a
> leftover from Zen 1 where the architecture reserved space for up to
> eight chip selects. Only four have ever been implemented, and newer
> products document this as MCA_SYND_UMC[1:0] = Chip Select.
>
> Since only four csrows are allocated, a syndrome with bit 2 set decodes
> to an out-of-range csrow and trips:
>
> EDAC MC0: INTERNAL ERROR: csrow value is out of range (5 >= 4)
>
> Mask with 0x3 to match the four implemented chip selects.
>

Here's an alternate commit message. Hopefully, this clears up some of
the points from Boris in the other thread.

Thanks,
Yazen

=======================================

For DRAM ECC errors, the chip select value can be found in the
MCA_SYND[ErrorInformation] field.

ErrorInformation[2:0] was first documented in Zen1. The 3 bit field
implied that up to 8 chip selects may be used.

However, all Zen-based systems have only ever had up to 4 chip selects.
So only bits [1:0] would contain a valid chip select value.

Future systems are redefining the field to ErrorInformation[1:0]. This
matches the existing 'up to 4 chip selects' implementations. And it
frees up the extra bit for other decoding.

Change the current chip select mask from 0x7 to 0x3 to prepare for the
decode change.