linux_dsm_epyc7002/drivers/edac
Mauro Carvalho Chehab 33ad41263d i7300_edac: Fix memory detection in single mode
When the machine is on single mode, only branch 0 channel 0
is valid. However, the code is not honouring it:

[ 1952.639341] EDAC DEBUG: i7300_get_mc_regs: Memory controller operating on single mode
...
[ 1952.639351] EDAC DEBUG: i7300_init_csrows: 		AMB-present CH0 = 0x1:
[ 1952.639353] EDAC DEBUG: i7300_init_csrows: 		AMB-present CH1 = 0x0:
[ 1952.639355] EDAC DEBUG: i7300_init_csrows: 		AMB-present CH2 = 0x0:
[ 1952.639358] EDAC DEBUG: i7300_init_csrows: 		AMB-present CH3 = 0x0:
...
[ 1952.639360] EDAC DEBUG: decode_mtr: 	MTR0 CH0: DIMMs are Present (mtr)
[ 1952.639362] EDAC DEBUG: decode_mtr: 		WIDTH: x8
[ 1952.639363] EDAC DEBUG: decode_mtr: 		ELECTRICAL THROTTLING is enabled
[ 1952.639364] EDAC DEBUG: decode_mtr: 		NUMBANK: 4 bank(s)
[ 1952.639366] EDAC DEBUG: decode_mtr: 		NUMRANK: single
[ 1952.639367] EDAC DEBUG: decode_mtr: 		NUMROW: 16,384 - 14 rows
[ 1952.639368] EDAC DEBUG: decode_mtr: 		NUMCOL: 1,024 - 10 columns
[ 1952.639370] EDAC DEBUG: decode_mtr: 		SIZE: 512 MB
[ 1952.639371] EDAC DEBUG: decode_mtr: 		ECC code is 8-byte-over-32-byte SECDED+ code
[ 1952.639373] EDAC DEBUG: decode_mtr: 		Scrub algorithm for x8 is on enhanced mode
[ 1952.639374] EDAC DEBUG: decode_mtr: 	MTR0 CH1: DIMMs are Present (mtr)
[ 1952.639376] EDAC DEBUG: decode_mtr: 		WIDTH: x8
[ 1952.639377] EDAC DEBUG: decode_mtr: 		ELECTRICAL THROTTLING is enabled
[ 1952.639379] EDAC DEBUG: decode_mtr: 		NUMBANK: 4 bank(s)
[ 1952.639380] EDAC DEBUG: decode_mtr: 		NUMRANK: single
[ 1952.639381] EDAC DEBUG: decode_mtr: 		NUMROW: 16,384 - 14 rows
[ 1952.639383] EDAC DEBUG: decode_mtr: 		NUMCOL: 1,024 - 10 columns
[ 1952.639384] EDAC DEBUG: decode_mtr: 		SIZE: 512 MB
[ 1952.639385] EDAC DEBUG: decode_mtr: 		ECC code is 8-byte-over-32-byte SECDED+ code
[ 1952.639387] EDAC DEBUG: decode_mtr: 		Scrub algorithm for x8 is on enhanced mode
...
[ 1952.639449] EDAC DEBUG: print_dimm_size:               channel 0 | channel 1 | channel 2 | channel 3 |
[ 1952.639451] EDAC DEBUG: print_dimm_size: -------------------------------------------------------------
[ 1952.639453] EDAC DEBUG: print_dimm_size: csrow/SLOT 0   512 MB   |  512 MB   |    0 MB   |    0 MB   |
[ 1952.639456] EDAC DEBUG: print_dimm_size: csrow/SLOT 1     0 MB   |    0 MB   |    0 MB   |    0 MB   |
[ 1952.639458] EDAC DEBUG: print_dimm_size: csrow/SLOT 2     0 MB   |    0 MB   |    0 MB   |    0 MB   |
[ 1952.639460] EDAC DEBUG: print_dimm_size: csrow/SLOT 3     0 MB   |    0 MB   |    0 MB   |    0 MB   |
[ 1952.639462] EDAC DEBUG: print_dimm_size: csrow/SLOT 4     0 MB   |    0 MB   |    0 MB   |    0 MB   |
[ 1952.639464] EDAC DEBUG: print_dimm_size: csrow/SLOT 5     0 MB   |    0 MB   |    0 MB   |    0 MB   |
[ 1952.639466] EDAC DEBUG: print_dimm_size: csrow/SLOT 6     0 MB   |    0 MB   |    0 MB   |    0 MB   |
[ 1952.639468] EDAC DEBUG: print_dimm_size: csrow/SLOT 7     0 MB   |    0 MB   |    0 MB   |    0 MB   |
[ 1952.639470] EDAC DEBUG: print_dimm_size: -------------------------------------------------------------

Instead of detecting a single memory at channel 0, it is showing
twice the memory.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2013-04-29 10:32:39 -03:00
..
amd64_edac_dbg.c amd64_edac: convert sysfs logic to use struct device 2012-06-11 13:23:40 -03:00
amd64_edac_inj.c amd64_edac: Improve error injection 2012-11-28 11:45:01 +01:00
amd64_edac.c Drivers: edac: remove __dev* attributes. 2013-01-03 15:57:03 -08:00
amd64_edac.h amd64_edac: Use DBAM_DIMM macro 2012-11-28 11:46:19 +01:00
amd76x_edac.c Drivers: edac: remove __dev* attributes. 2013-01-03 15:57:03 -08:00
amd8111_edac.c edac: Drop __DATE__ usage 2011-04-19 00:23:22 +02:00
amd8111_edac.h edac: AMD8111 driver header file 2009-04-02 19:05:03 -07:00
amd8131_edac.c edac: Drop __DATE__ usage 2011-04-19 00:23:22 +02:00
amd8131_edac.h tree-wide: fix comment/printk typos 2010-11-01 15:38:34 -04:00
cell_edac.c Drivers: edac: remove __dev* attributes. 2013-01-03 15:57:03 -08:00
cpc925_edac.c Drivers: edac: remove __dev* attributes. 2013-01-03 15:57:03 -08:00
e7xxx_edac.c Drivers: edac: remove __dev* attributes. 2013-01-03 15:57:03 -08:00
e752x_edac.c Drivers: edac: remove __dev* attributes. 2013-01-03 15:57:03 -08:00
edac_core.h edac: add support for raw error reports 2013-02-21 14:16:03 -03:00
edac_device_sysfs.c edac: Convert debugfX to edac_dbg(X, 2012-06-11 13:23:49 -03:00
edac_device.c Merge branch 'devel' 2012-07-29 21:11:05 -03:00
edac_mc_sysfs.c edac: better report error conditions in debug mode 2013-02-21 11:06:35 -03:00
edac_mc.c edac: add support for raw error reports 2013-02-21 14:16:03 -03:00
edac_module.c edac: initialize the core earlier 2013-02-21 11:06:36 -03:00
edac_module.h edac: create top-level debugfs directory 2012-06-12 12:15:49 -03:00
edac_pci_sysfs.c Linux 3.8-rc7 2013-02-20 15:45:52 -03:00
edac_pci.c EDAC: Respect operational state in edac_pci.c 2012-11-28 11:22:47 +01:00
edac_stub.c EDAC: Change Boris' email address 2012-10-30 10:05:51 +01:00
ghes_edac.c ghes_edac: fix to use list_for_each_entry_safe() when delete list items 2013-02-26 10:05:35 -03:00
highbank_l2_edac.c Drivers: edac: remove __dev* attributes. 2013-01-03 15:57:03 -08:00
highbank_mc_edac.c Drivers: edac: remove __dev* attributes. 2013-01-03 15:57:03 -08:00
i7core_edac.c Linux 3.8-rc7 2013-02-20 15:45:52 -03:00
i3000_edac.c Drivers: edac: remove __dev* attributes. 2013-01-03 15:57:03 -08:00
i3200_edac.c i3200_edac: Fix the logic that detects filled memories 2013-02-21 11:06:31 -03:00
i5000_edac.c Drivers: edac: remove __dev* attributes. 2013-01-03 15:57:03 -08:00
i5100_edac.c i5100_edac: convert to use simple_open() 2013-02-26 10:06:18 -03:00
i5400_edac.c Drivers: edac: remove __dev* attributes. 2013-01-03 15:57:03 -08:00
i7300_edac.c i7300_edac: Fix memory detection in single mode 2013-04-29 10:32:39 -03:00
i82443bxgx_edac.c Drivers: edac: remove __dev* attributes. 2013-01-03 15:57:03 -08:00
i82860_edac.c Drivers: edac: remove __dev* attributes. 2013-01-03 15:57:03 -08:00
i82875p_edac.c Drivers: edac: remove __dev* attributes. 2013-01-03 15:57:03 -08:00
i82975x_edac.c Drivers: edac: remove __dev* attributes. 2013-01-03 15:57:03 -08:00
Kconfig ghes_edac: Register at EDAC core the BIOS report 2013-02-25 19:42:12 -03:00
Makefile ghes_edac: Register at EDAC core the BIOS report 2013-02-25 19:42:12 -03:00
mce_amd_inj.c EDAC: Change Boris' email address 2012-10-30 10:05:51 +01:00
mce_amd.c MCE, AMD: Dump error status 2012-11-28 11:56:30 +01:00
mce_amd.h MCE, AMD: Dump error status 2012-11-28 11:56:30 +01:00
mpc85xx_edac.c Drivers: edac: remove __dev* attributes. 2013-01-03 15:57:03 -08:00
mpc85xx_edac.h edac: Drop __DATE__ usage 2011-04-19 00:23:22 +02:00
mv64x60_edac.c Drivers: edac: remove __dev* attributes. 2013-01-03 15:57:03 -08:00
mv64x60_edac.h edac: Drop __DATE__ usage 2011-04-19 00:23:22 +02:00
octeon_edac-l2c.c Drivers: edac: remove __dev* attributes. 2013-01-03 15:57:03 -08:00
octeon_edac-lmc.c Drivers: edac: remove __dev* attributes. 2013-01-03 15:57:03 -08:00
octeon_edac-pc.c Drivers: edac: remove __dev* attributes. 2013-01-03 15:57:03 -08:00
octeon_edac-pci.c Drivers: edac: remove __dev* attributes. 2013-01-03 15:57:03 -08:00
pasemi_edac.c Drivers: edac: remove __dev* attributes. 2013-01-03 15:57:03 -08:00
ppc4xx_edac.c Drivers: edac: remove __dev* attributes. 2013-01-03 15:57:03 -08:00
ppc4xx_edac.h edac: new ppc4xx driver module 2009-04-02 19:05:03 -07:00
r82600_edac.c Drivers: edac: remove __dev* attributes. 2013-01-03 15:57:03 -08:00
sb_edac.c Linux 3.8-rc7 2013-02-20 15:45:52 -03:00
tile_edac.c Drivers: edac: remove __dev* attributes. 2013-01-03 15:57:03 -08:00
x38_edac.c Drivers: edac: remove __dev* attributes. 2013-01-03 15:57:03 -08:00