From: Borislav Petkov <bp@alien8.de> To: "Ghannam, Yazen" <Yazen.Ghannam@amd.com> Cc: "linux-edac@vger.kernel.org" <linux-edac@vger.kernel.org>, "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org> Subject: Re: [PATCH v3 7/8] EDAC/amd64: Support Asymmetric Dual-Rank DIMMs Date: Fri, 23 Aug 2019 13:26:28 +0200 Message-ID: <20190823112628.GA28379@zn.tnic> (raw) In-Reply-To: <20190821235938.118710-8-Yazen.Ghannam@amd.com> On Thu, Aug 22, 2019 at 12:00:02AM +0000, Ghannam, Yazen wrote: > From: Yazen Ghannam <yazen.ghannam@amd.com> > > Future AMD systems will support "Asymmetric" Dual-Rank DIMMs. These are > DIMMs where the ranks are of different sizes. > > The even rank will use the Primary Even Chip Select registers and the > odd rank will use the Secondary Odd Chip Select registers. > > Recognize if a Secondary Odd Chip Select is being used. Use the > Secondary Odd Address Mask when calculating the chip select size. > > Signed-off-by: Yazen Ghannam <yazen.ghannam@amd.com> > --- > Link: > https://lkml.kernel.org/r/20190709215643.171078-8-Yazen.Ghannam@amd.com > > v2->v3: > * Add check of csrow_nr before using secondary mask. > > v1->v2: > * No change. > > drivers/edac/amd64_edac.c | 18 +++++++++++++++--- > 1 file changed, 15 insertions(+), 3 deletions(-) > > diff --git a/drivers/edac/amd64_edac.c b/drivers/edac/amd64_edac.c > index 26ce48fcaf00..4d1e6daa7ec4 100644 > --- a/drivers/edac/amd64_edac.c > +++ b/drivers/edac/amd64_edac.c > @@ -790,9 +790,13 @@ static void debug_dump_dramcfg_low(struct amd64_pvt *pvt, u32 dclr, int chan) > > #define CS_EVEN_PRIMARY BIT(0) > #define CS_ODD_PRIMARY BIT(1) > +#define CS_EVEN_SECONDARY BIT(2) > +#define CS_ODD_SECONDARY BIT(3) > > -#define CS_EVEN CS_EVEN_PRIMARY > -#define CS_ODD CS_ODD_PRIMARY > +#define CS_EVEN (CS_EVEN_PRIMARY | CS_EVEN_SECONDARY) > +#define CS_ODD (CS_ODD_PRIMARY | CS_EVEN_SECONDARY) That's just my urge to have stuff ballanced but shouldn't that last line be: #define CS_ODD (CS_ODD_PRIMARY | CS_ODD_SECONDARY) i.e., not have "even" as in CS_EVEN_SECONDARY in there but only "odd"s? :) > +#define csrow_sec_enabled(i, dct, pvt) ((pvt)->csels[(dct)].csbases_sec[(i)] & DCSB_CS_ENABLE) I moved that to the header, under csrow_enabled(). -- Regards/Gruss, Boris. Good mailing practices for 400: avoid top-posting and trim the reply.
next prev parent reply index Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-08-21 23:59 [PATCH v3 0/8] AMD64 EDAC fixes Ghannam, Yazen 2019-08-21 23:59 ` [PATCH v3 1/8] EDAC/amd64: Support more than two controllers for chip selects handling Ghannam, Yazen 2019-08-21 23:59 ` [PATCH v3 2/8] EDAC/amd64: Recognize DRAM device type with EDAC_CTL_CAP Ghannam, Yazen 2019-08-21 23:59 ` [PATCH v3 3/8] EDAC/amd64: Initialize DIMM info for systems with more than two channels Ghannam, Yazen 2019-08-21 23:59 ` [PATCH v3 4/8] EDAC/amd64: Find Chip Select memory size using Address Mask Ghannam, Yazen 2019-08-22 0:00 ` [PATCH v3 5/8] EDAC/amd64: Decode syndrome before translating address Ghannam, Yazen 2019-08-22 0:00 ` [PATCH v3 6/8] EDAC/amd64: Cache secondary Chip Select registers Ghannam, Yazen 2019-08-22 0:00 ` [RFC PATCH v3 08/10] EDAC/amd64: Gather hardware information early Ghannam, Yazen 2019-08-29 9:22 ` Borislav Petkov 2019-09-06 19:14 ` Ghannam, Yazen 2019-09-06 20:35 ` Borislav Petkov 2019-09-06 20:49 ` Ghannam, Yazen 2019-09-09 15:31 ` Borislav Petkov 2019-08-22 0:00 ` [PATCH v3 7/8] EDAC/amd64: Support Asymmetric Dual-Rank DIMMs Ghannam, Yazen 2019-08-23 11:26 ` Borislav Petkov [this message] 2019-08-23 13:27 ` Ghannam, Yazen 2019-08-23 15:11 ` Borislav Petkov 2019-08-22 0:00 ` [RFC PATCH v3 10/10] EDAC/amd64: Check for memory before fully initializing an instance Ghannam, Yazen 2019-08-22 18:51 ` [RFC PATCH v2] " Ghannam, Yazen 2019-08-22 0:00 ` [RFC PATCH v3 09/10] EDAC/amd64: Use cached data when checking for ECC Ghannam, Yazen 2019-08-22 0:50 ` [PATCH v3 0/8] AMD64 EDAC fixes Adam Borowski 2019-08-22 8:35 ` Borislav Petkov 2019-08-22 9:46 ` Adam Borowski 2019-08-22 9:55 ` Borislav Petkov 2019-08-22 18:54 ` Ghannam, Yazen 2019-08-23 15:28 ` Ghannam, Yazen 2019-08-23 15:37 ` Borislav Petkov 2019-08-26 14:19 ` Ghannam, Yazen 2019-08-26 14:59 ` Borislav Petkov 2019-08-26 15:05 ` Ghannam, Yazen 2019-08-22 18:48 ` [RFC PATCH v2] EDAC/amd64: Check for memory before fully initializing an instance Ghannam, Yazen
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=20190823112628.GA28379@zn.tnic \ --to=bp@alien8.de \ --cc=Yazen.Ghannam@amd.com \ --cc=linux-edac@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ /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
Linux-EDAC Archive on lore.kernel.org Archives are clonable: git clone --mirror https://lore.kernel.org/linux-edac/0 linux-edac/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 linux-edac linux-edac/ https://lore.kernel.org/linux-edac \ linux-edac@vger.kernel.org public-inbox-index linux-edac Example config snippet for mirrors Newsgroup available over NNTP: nntp://nntp.lore.kernel.org/org.kernel.vger.linux-edac AGPL code for this site: git clone https://public-inbox.org/public-inbox.git