Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

EDAC, ie31200: Add Intel Kaby Lake CPU support

Kaby Lake seems to work just like Skylake.

Reported-and-tested-by: Doug Thompson <bc.tdw@recursor.net>
Signed-off-by: Jason Baron <jbaron@akamai.com>
Cc: Mauro Carvalho Chehab <mchehab@kernel.org>
Cc: Tony Luck <tony.luck@intel.com
Cc: linux-edac <linux-edac@vger.kernel.org>
Link: http://lkml.kernel.org/r/1495823683-32569-1-git-send-email-jbaron@akamai.com
Signed-off-by: Borislav Petkov <bp@suse.de>

authored by

Jason Baron and committed by
Borislav Petkov
7103de0e 8b9afe59

+12 -1
+12 -1
drivers/edac/ie31200_edac.c
··· 18 18 * 0c04: Xeon E3-1200 v3/4th Gen Core Processor DRAM Controller 19 19 * 0c08: Xeon E3-1200 v3 Processor DRAM Controller 20 20 * 1918: Xeon E3-1200 v5 Skylake Host Bridge/DRAM Registers 21 + * 5918: Xeon E3-1200 Xeon E3-1200 v6/7th Gen Core Processor Host Bridge/DRAM Registers 21 22 * 22 23 * Based on Intel specification: 23 24 * http://www.intel.com/content/dam/www/public/us/en/documents/datasheets/xeon-e3-1200v3-vol-2-datasheet.pdf 24 25 * http://www.intel.com/content/www/us/en/processors/xeon/xeon-e3-1200-family-vol-2-datasheet.html 26 + * http://www.intel.com/content/www/us/en/processors/core/7th-gen-core-family-mobile-h-processor-lines-datasheet-vol-2.html 25 27 * 26 28 * According to the above datasheet (p.16): 27 29 * " ··· 59 57 #define PCI_DEVICE_ID_INTEL_IE31200_HB_6 0x0c04 60 58 #define PCI_DEVICE_ID_INTEL_IE31200_HB_7 0x0c08 61 59 #define PCI_DEVICE_ID_INTEL_IE31200_HB_8 0x1918 60 + #define PCI_DEVICE_ID_INTEL_IE31200_HB_9 0x5918 62 61 63 62 #define IE31200_DIMMS 4 64 63 #define IE31200_RANKS 8 ··· 379 376 void __iomem *window; 380 377 struct ie31200_priv *priv; 381 378 u32 addr_decode, mad_offset; 382 - bool skl = (pdev->device == PCI_DEVICE_ID_INTEL_IE31200_HB_8); 379 + 380 + /* 381 + * Kaby Lake seems to work like Skylake. Please re-visit this logic 382 + * when adding new CPU support. 383 + */ 384 + bool skl = (pdev->device >= PCI_DEVICE_ID_INTEL_IE31200_HB_8); 383 385 384 386 edac_dbg(0, "MC:\n"); 385 387 ··· 566 558 IE31200}, 567 559 { 568 560 PCI_VEND_DEV(INTEL, IE31200_HB_8), PCI_ANY_ID, PCI_ANY_ID, 0, 0, 561 + IE31200}, 562 + { 563 + PCI_VEND_DEV(INTEL, IE31200_HB_9), PCI_ANY_ID, PCI_ANY_ID, 0, 0, 569 564 IE31200}, 570 565 { 571 566 0,