<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/drivers/edac/amd64_edac.c, branch linux-5.18.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-5.18.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-5.18.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2022-02-23T21:01:33Z</updated>
<entry>
<title>EDAC/amd64: Add new register offset support and related changes</title>
<updated>2022-02-23T21:01:33Z</updated>
<author>
<name>Yazen Ghannam</name>
</author>
<published>2022-02-02T14:43:07Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=2151c84ece920dc55942495004a823cbecb921e5'/>
<id>urn:sha1:2151c84ece920dc55942495004a823cbecb921e5</id>
<content type='text'>
Introduce a "family flags" bitmask that can be used to indicate any
special behavior needed on a per-family basis.

Add a flag to indicate a system uses the new register offsets introduced
with Family 19h Model 10h.

Use this flag to account for register offset changes, a new bitfield
indicating DDR5 use on a memory controller, and to set the proper number
of chip select masks.

Rework f17_addr_mask_to_cs_size() to properly handle the change in chip
select masks. And update code comments to reflect the updated Chip
Select, DIMM, and Mask relationships.

[uninitialized variable warning]
Reported-by: kernel test robot &lt;lkp@intel.com&gt;
Signed-off-by: Yazen Ghannam &lt;yazen.ghannam@amd.com&gt;
Signed-off-by: Borislav Petkov &lt;bp@suse.de&gt;
Reviewed-by: William Roche &lt;william.roche@oracle.com&gt;
Link: https://lore.kernel.org/r/20220202144307.2678405-3-yazen.ghannam@amd.com
</content>
</entry>
<entry>
<title>EDAC/amd64: Set memory type per DIMM</title>
<updated>2022-02-23T20:53:45Z</updated>
<author>
<name>Yazen Ghannam</name>
</author>
<published>2022-02-02T14:43:06Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=75aeaaf23def967853c8d1cfb513a6842dbc232e'/>
<id>urn:sha1:75aeaaf23def967853c8d1cfb513a6842dbc232e</id>
<content type='text'>
Current AMD systems allow mixing of DIMM types within a system. However,
DIMMs within a channel, i.e. managed by a single Unified Memory
Controller (UMC), must be of the same type.

Handle this possible configuration by checking and setting the memory
type for each individual "UMC" structure.

Signed-off-by: Yazen Ghannam &lt;yazen.ghannam@amd.com&gt;
Signed-off-by: Borislav Petkov &lt;bp@suse.de&gt;
Reviewed-by: William Roche &lt;william.roche@oracle.com&gt;
Link: https://lore.kernel.org/r/20220202144307.2678405-2-yazen.ghannam@amd.com
</content>
</entry>
<entry>
<title>Merge tag 'edac_updates_for_v5.17_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/ras/ras</title>
<updated>2022-01-10T19:45:23Z</updated>
<author>
<name>Linus Torvalds</name>
</author>
<published>2022-01-10T19:45:23Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=ff8be964208e6b6f1341f0645857c67830a78379'/>
<id>urn:sha1:ff8be964208e6b6f1341f0645857c67830a78379</id>
<content type='text'>
Pull EDAC updates from Borislav Petkov:

 - Add support for version 3 of the Synopsys DDR controller to
   synopsys_edac

 - Add support for DRR5 and new models 0x10-0x1f and 0x50-0x5f of AMD
   family 0x19 CPUs to amd64_edac

 - The usual set of fixes and cleanups

* tag 'edac_updates_for_v5.17_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/ras/ras:
  EDAC/amd64: Add support for family 19h, models 50h-5fh
  EDAC/sb_edac: Remove redundant initialization of variable rc
  RAS/CEC: Remove a repeated 'an' in a comment
  EDAC/amd64: Add support for AMD Family 19h Models 10h-1Fh and A0h-AFh
  EDAC: Add RDDR5 and LRDDR5 memory types
  EDAC/sifive: Fix non-kernel-doc comment
  dt-bindings: memory: Add entry for version 3.80a
  EDAC/synopsys: Enable the driver on Intel's N5X platform
  EDAC/synopsys: Add support for version 3 of the Synopsys EDAC DDR
  EDAC/synopsys: Use the quirk for version instead of ddr version
</content>
</entry>
<entry>
<title>EDAC/amd64: Add support for family 19h, models 50h-5fh</title>
<updated>2021-12-24T09:53:41Z</updated>
<author>
<name>Marc Bevand</name>
</author>
<published>2021-12-21T23:31:12Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=0b8bf9cb142da59a14622bba168ebcd6d0a54499'/>
<id>urn:sha1:0b8bf9cb142da59a14622bba168ebcd6d0a54499</id>
<content type='text'>
Add the new family 19h models 50h-5fh PCI IDs (device 18h functions 0
and 6) to support Ryzen 5000 APUs ("Cezanne").

Signed-off-by: Marc Bevand &lt;m@zorinaq.com&gt;
Signed-off-by: Borislav Petkov &lt;bp@suse.de&gt;
Reviewed-by: Yazen Ghannam &lt;yazen.ghannam@amd.com&gt;
Link: https://lore.kernel.org/r/20211221233112.556927-1-m@zorinaq.com
</content>
</entry>
<entry>
<title>EDAC/amd64: Add support for AMD Family 19h Models 10h-1Fh and A0h-AFh</title>
<updated>2021-12-10T11:54:33Z</updated>
<author>
<name>Yazen Ghannam</name>
</author>
<published>2021-12-08T17:43:54Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=e2be5955a88664421b25e463c28a910b8dbd534c'/>
<id>urn:sha1:e2be5955a88664421b25e463c28a910b8dbd534c</id>
<content type='text'>
Add a new family type for AMD Family 19h Models 10h to 1Fh. Use this new
family type for Models A0h to AFh also.

Increase the maximum number of controllers from 8 to 12.

Signed-off-by: Yazen Ghannam &lt;yazen.ghannam@amd.com&gt;
Signed-off-by: Borislav Petkov &lt;bp@suse.de&gt;
Link: https://lore.kernel.org/r/20211208174356.1997855-3-yazen.ghannam@amd.com
</content>
</entry>
<entry>
<title>EDAC/amd64: Add context struct</title>
<updated>2021-11-15T11:54:16Z</updated>
<author>
<name>Yazen Ghannam</name>
</author>
<published>2021-10-28T17:56:59Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=70aeb807cf8649dedbcd59b70dfc38fb89bdf1bd'/>
<id>urn:sha1:70aeb807cf8649dedbcd59b70dfc38fb89bdf1bd</id>
<content type='text'>
Define an address translation context struct. This will hold values that
will be passed between multiple functions.

Save return address, Node ID, and the Instance ID number to start.
Currently, the UMC number is used as the Instance ID, but future DF
versions may use another value.

Also include a "tmp" field to use when reading registers. This is to
avoid having to define a temporary variable in multiple functions.

Signed-off-by: Yazen Ghannam &lt;yazen.ghannam@amd.com&gt;
Signed-off-by: Borislav Petkov &lt;bp@suse.de&gt;
Link: https://lkml.kernel.org/r/20211028175728.121452-5-yazen.ghannam@amd.com
</content>
</entry>
<entry>
<title>EDAC/amd64: Allow for DF Indirect Broadcast reads</title>
<updated>2021-11-15T11:48:55Z</updated>
<author>
<name>Yazen Ghannam</name>
</author>
<published>2021-10-28T17:56:58Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=448c3d6085b71aad58cd515469560ee76c982007'/>
<id>urn:sha1:448c3d6085b71aad58cd515469560ee76c982007</id>
<content type='text'>
The DF Indirect Access method allows for "Broadcast" accesses in which
case no specific instance is targeted. Add support using a reserved
instance ID of 0xFF to indicate a broadcast access. Set the FICAA
register appropriately.

Define helpers functions for instance and broadcast reads and use them
where appropriate.

Drop the "amd_" prefix since these functions are all static.

Signed-off-by: Yazen Ghannam &lt;yazen.ghannam@amd.com&gt;
Signed-off-by: Borislav Petkov &lt;bp@suse.de&gt;
Link: https://lkml.kernel.org/r/20211028175728.121452-4-yazen.ghannam@amd.com
</content>
</entry>
<entry>
<title>x86/amd_nb, EDAC/amd64: Move DF Indirect Read to AMD64 EDAC</title>
<updated>2021-11-15T11:44:47Z</updated>
<author>
<name>Yazen Ghannam</name>
</author>
<published>2021-10-28T17:56:57Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=b3218ae47771f943b3e222f35fc46afacba39929'/>
<id>urn:sha1:b3218ae47771f943b3e222f35fc46afacba39929</id>
<content type='text'>
df_indirect_read() is used only for address translation. Move it to EDAC
along with the translation code.

Signed-off-by: Yazen Ghannam &lt;yazen.ghannam@amd.com&gt;
Signed-off-by: Borislav Petkov &lt;bp@suse.de&gt;
Link: https://lkml.kernel.org/r/20211028175728.121452-3-yazen.ghannam@amd.com
</content>
</entry>
<entry>
<title>x86/MCE/AMD, EDAC/amd64: Move address translation to AMD64 EDAC</title>
<updated>2021-11-15T11:36:32Z</updated>
<author>
<name>Yazen Ghannam</name>
</author>
<published>2021-10-28T17:56:56Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=0b746e8c1e1e3fcc9e4036efe8d3ea3fd3e5d4c3'/>
<id>urn:sha1:0b746e8c1e1e3fcc9e4036efe8d3ea3fd3e5d4c3</id>
<content type='text'>
The address translation code used for current AMD systems is
non-architectural. So move it to EDAC.

Signed-off-by: Yazen Ghannam &lt;yazen.ghannam@amd.com&gt;
Signed-off-by: Borislav Petkov &lt;bp@suse.de&gt;
Link: https://lkml.kernel.org/r/20211028175728.121452-2-yazen.ghannam@amd.com
</content>
</entry>
<entry>
<title>EDAC/amd64: Handle three rank interleaving mode</title>
<updated>2021-10-07T10:30:53Z</updated>
<author>
<name>Yazen Ghannam</name>
</author>
<published>2021-10-05T15:44:19Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=9f4873fb6af7966de8fcbd95c36b61351c1c4b1f'/>
<id>urn:sha1:9f4873fb6af7966de8fcbd95c36b61351c1c4b1f</id>
<content type='text'>
AMD Rome systems and later support interleaving between three identical
ranks within a channel.

Check for this mode by counting the number of enabled chip selects and
comparing their masks. If there are exactly three enabled chip selects
and their masks are identical, then three rank interleaving is enabled.

The size of a rank is determined from its mask value. However, three
rank interleaving doesn't follow the method of swapping an interleave
bit with the most significant bit. Rather, the interleave bit is flipped
and the most significant bit remains the same. There is only a single
interleave bit in this case.

Account for this when determining the chip select size by keeping the
most significant bit at its original value and ignoring any zero bits.
This will return a full bitmask in [MSB:1].

Fixes: e53a3b267fb0 ("EDAC/amd64: Find Chip Select memory size using Address Mask")
Signed-off-by: Yazen Ghannam &lt;yazen.ghannam@amd.com&gt;
Signed-off-by: Borislav Petkov &lt;bp@suse.de&gt;
Link: https://lkml.kernel.org/r/20211005154419.2060504-1-yazen.ghannam@amd.com
</content>
</entry>
</feed>
