|
Linux Kernel
3.7.1
|
#include <linux/module.h>#include <linux/init.h>#include <linux/pci.h>#include <linux/pci_ids.h>#include <linux/slab.h>#include <linux/edac.h>#include <linux/mmzone.h>#include "edac_core.h"Go to the source code of this file.
Data Structures | |
| struct | i5400_dev_info |
| struct | i5400_dimm_info |
| struct | i5400_pvt |
| struct | i5400_error_info |
Macros | |
| #define | I5400_REVISION " Ver: 1.0.0" |
| #define | EDAC_MOD_STR "i5400_edac" |
| #define | i5400_printk(level, fmt, arg...) edac_printk(level, "i5400", fmt, ##arg) |
| #define | i5400_mc_printk(mci, level, fmt, arg...) edac_mc_chipset_printk(mci, level, "i5400", fmt, ##arg) |
| #define | MAX_BRANCHES 2 |
| #define | CHANNELS_PER_BRANCH 2 |
| #define | DIMMS_PER_CHANNEL 4 |
| #define | MAX_CHANNELS (MAX_BRANCHES * CHANNELS_PER_BRANCH) |
| #define | AMBASE 0x48 /* AMB Mem Mapped Reg Region Base */ |
| #define | MAXCH 0x56 /* Max Channel Number */ |
| #define | MAXDIMMPERCH 0x57 /* Max DIMM PER Channel Number */ |
| #define | TOLM 0x6C |
| #define | REDMEMB 0x7C |
| #define | REC_ECC_LOCATOR_ODD(x) ((x) & 0x3fe00) /* bits [17:9] indicate ODD, [8:0] indicate EVEN */ |
| #define | MIR0 0x80 |
| #define | MIR1 0x84 |
| #define | AMIR0 0x8c |
| #define | AMIR1 0x90 |
| #define | FERR_FAT_FBD 0x98 /* also called as FERR_FAT_FB_DIMM at datasheet */ |
| #define | FERR_FAT_FBDCHAN (3<<28) /* channel index where the highest-order error occurred */ |
| #define | NERR_FAT_FBD 0x9c |
| #define | FERR_NF_FBD 0xa0 /* also called as FERR_NFAT_FB_DIMM at datasheet */ |
| #define | NERR_NF_FBD 0xa4 |
| #define | EMASK_FBD 0xa8 |
| #define | ERR0_FBD 0xac |
| #define | ERR1_FBD 0xb0 |
| #define | ERR2_FBD 0xb4 |
| #define | MCERR_FBD 0xb8 |
| #define | AMBPRESENT_0 0x64 |
| #define | AMBPRESENT_1 0x66 |
| #define | MTR0 0x80 |
| #define | MTR1 0x82 |
| #define | MTR2 0x84 |
| #define | MTR3 0x86 |
| #define | NRECFGLOG 0x74 |
| #define | RECFGLOG 0x78 |
| #define | NRECMEMA 0xbe |
| #define | NRECMEMB 0xc0 |
| #define | NRECFB_DIMMA 0xc4 |
| #define | NRECFB_DIMMB 0xc8 |
| #define | NRECFB_DIMMC 0xcc |
| #define | NRECFB_DIMMD 0xd0 |
| #define | NRECFB_DIMME 0xd4 |
| #define | NRECFB_DIMMF 0xd8 |
| #define | REDMEMA 0xdC |
| #define | RECMEMA 0xf0 |
| #define | RECMEMB 0xf4 |
| #define | RECFB_DIMMA 0xf8 |
| #define | RECFB_DIMMB 0xec |
| #define | RECFB_DIMMC 0xf0 |
| #define | RECFB_DIMMD 0xf4 |
| #define | RECFB_DIMME 0xf8 |
| #define | RECFB_DIMMF 0xfC |
| #define | ERROR_FAT_MASK |
| #define | ERROR_NF_CORRECTABLE |
| #define | ERROR_NF_DIMM_SPARE |
| #define | ERROR_NF_SPD_PROTOCOL (EMASK_M22) |
| #define | ERROR_NF_NORTH_CRC (EMASK_M21) |
| #define | ERROR_NF_RECOVERABLE |
| #define | ERROR_NF_UNCORRECTABLE (EMASK_M4) |
| #define | ERROR_NF_MASK |
| #define | ENABLE_EMASK_ALL (ERROR_FAT_MASK | ERROR_NF_MASK) |
| #define | FERR_FAT_MASK ERROR_FAT_MASK |
| #define | FERR_NF_MASK to_nf_mask(ERROR_NF_MASK) |
| #define | FERR_NF_CORRECTABLE to_nf_mask(ERROR_NF_CORRECTABLE) |
| #define | FERR_NF_DIMM_SPARE to_nf_mask(ERROR_NF_DIMM_SPARE) |
| #define | FERR_NF_SPD_PROTOCOL to_nf_mask(ERROR_NF_SPD_PROTOCOL) |
| #define | FERR_NF_NORTH_CRC to_nf_mask(ERROR_NF_NORTH_CRC) |
| #define | FERR_NF_RECOVERABLE to_nf_mask(ERROR_NF_RECOVERABLE) |
| #define | FERR_NF_UNCORRECTABLE to_nf_mask(ERROR_NF_UNCORRECTABLE) |
| #define | MTR_DIMMS_PRESENT(mtr) ((mtr) & (1 << 10)) |
| #define | MTR_DIMMS_ETHROTTLE(mtr) ((mtr) & (1 << 9)) |
| #define | MTR_DRAM_WIDTH(mtr) (((mtr) & (1 << 8)) ? 8 : 4) |
| #define | MTR_DRAM_BANKS(mtr) (((mtr) & (1 << 6)) ? 8 : 4) |
| #define | MTR_DRAM_BANKS_ADDR_BITS(mtr) ((MTR_DRAM_BANKS(mtr) == 8) ? 3 : 2) |
| #define | MTR_DIMM_RANK(mtr) (((mtr) >> 5) & 0x1) |
| #define | MTR_DIMM_RANK_ADDR_BITS(mtr) (MTR_DIMM_RANK(mtr) ? 2 : 1) |
| #define | MTR_DIMM_ROWS(mtr) (((mtr) >> 2) & 0x3) |
| #define | MTR_DIMM_ROWS_ADDR_BITS(mtr) (MTR_DIMM_ROWS(mtr) + 13) |
| #define | MTR_DIMM_COLS(mtr) ((mtr) & 0x3) |
| #define | MTR_DIMM_COLS_ADDR_BITS(mtr) (MTR_DIMM_COLS(mtr) + 10) |
Enumerations | |
| enum | error_mask { EMASK_M1 = 1<<0, EMASK_M2 = 1<<1, EMASK_M3 = 1<<2, EMASK_M4 = 1<<3, EMASK_M5 = 1<<4, EMASK_M6 = 1<<5, EMASK_M7 = 1<<6, EMASK_M8 = 1<<7, EMASK_M9 = 1<<8, EMASK_M10 = 1<<9, EMASK_M11 = 1<<10, EMASK_M12 = 1<<11, EMASK_M13 = 1<<12, EMASK_M14 = 1<<13, EMASK_M15 = 1<<14, EMASK_M16 = 1<<15, EMASK_M17 = 1<<16, EMASK_M18 = 1<<17, EMASK_M19 = 1<<18, EMASK_M20 = 1<<19, EMASK_M21 = 1<<20, EMASK_M22 = 1<<21, EMASK_M23 = 1<<22, EMASK_M24 = 1<<23, EMASK_M25 = 1<<24, EMASK_M26 = 1<<25, EMASK_M27 = 1<<26, EMASK_M28 = 1<<27, EMASK_M29 = 1<<28 } |
Functions | |
| MODULE_DEVICE_TABLE (pci, i5400_pci_tbl) | |
| module_init (i5400_init) | |
| module_exit (i5400_exit) | |
| MODULE_LICENSE ("GPL") | |
| MODULE_AUTHOR ("Ben Woodard <[email protected]>") | |
| MODULE_AUTHOR ("Mauro Carvalho Chehab <[email protected]>") | |
| MODULE_AUTHOR ("Red Hat Inc. (http://www.redhat.com)") | |
| MODULE_DESCRIPTION ("MC Driver for Intel I5400 memory controllers - "I5400_REVISION) | |
| module_param (edac_op_state, int, 0444) | |
| MODULE_PARM_DESC (edac_op_state,"EDAC Error Reporting state: 0=Poll,1=NMI") | |
| #define AMBASE 0x48 /* AMB Mem Mapped Reg Region Base */ |
Definition at line 68 of file i5400_edac.c.
| #define AMBPRESENT_0 0x64 |
Definition at line 110 of file i5400_edac.c.
| #define AMBPRESENT_1 0x66 |
Definition at line 111 of file i5400_edac.c.
| #define AMIR0 0x8c |
Definition at line 78 of file i5400_edac.c.
| #define AMIR1 0x90 |
Definition at line 79 of file i5400_edac.c.
| #define CHANNELS_PER_BRANCH 2 |
Definition at line 52 of file i5400_edac.c.
| #define DIMMS_PER_CHANNEL 4 |
Definition at line 53 of file i5400_edac.c.
| #define EDAC_MOD_STR "i5400_edac" |
Definition at line 42 of file i5400_edac.c.
| #define EMASK_FBD 0xa8 |
Definition at line 92 of file i5400_edac.c.
| #define ENABLE_EMASK_ALL (ERROR_FAT_MASK | ERROR_NF_MASK) |
Definition at line 257 of file i5400_edac.c.
| #define ERR0_FBD 0xac |
Definition at line 94 of file i5400_edac.c.
| #define ERR1_FBD 0xb0 |
Definition at line 95 of file i5400_edac.c.
| #define ERR2_FBD 0xb4 |
Definition at line 96 of file i5400_edac.c.
| #define ERROR_FAT_MASK |
Definition at line 211 of file i5400_edac.c.
| #define ERROR_NF_CORRECTABLE |
Definition at line 216 of file i5400_edac.c.
| #define ERROR_NF_DIMM_SPARE |
Definition at line 222 of file i5400_edac.c.
| #define ERROR_NF_MASK |
Definition at line 245 of file i5400_edac.c.
| #define ERROR_NF_NORTH_CRC (EMASK_M21) |
Definition at line 225 of file i5400_edac.c.
| #define ERROR_NF_RECOVERABLE |
Definition at line 228 of file i5400_edac.c.
| #define ERROR_NF_SPD_PROTOCOL (EMASK_M22) |
Definition at line 224 of file i5400_edac.c.
| #define ERROR_NF_UNCORRECTABLE (EMASK_M4) |
Definition at line 242 of file i5400_edac.c.
| #define FERR_FAT_FBD 0x98 /* also called as FERR_FAT_FB_DIMM at datasheet */ |
Definition at line 82 of file i5400_edac.c.
Definition at line 83 of file i5400_edac.c.
| #define FERR_FAT_MASK ERROR_FAT_MASK |
Definition at line 260 of file i5400_edac.c.
| #define FERR_NF_CORRECTABLE to_nf_mask(ERROR_NF_CORRECTABLE) |
Definition at line 275 of file i5400_edac.c.
| #define FERR_NF_DIMM_SPARE to_nf_mask(ERROR_NF_DIMM_SPARE) |
Definition at line 276 of file i5400_edac.c.
| #define FERR_NF_FBD 0xa0 /* also called as FERR_NFAT_FB_DIMM at datasheet */ |
Definition at line 86 of file i5400_edac.c.
| #define FERR_NF_MASK to_nf_mask(ERROR_NF_MASK) |
Definition at line 274 of file i5400_edac.c.
| #define FERR_NF_NORTH_CRC to_nf_mask(ERROR_NF_NORTH_CRC) |
Definition at line 278 of file i5400_edac.c.
| #define FERR_NF_RECOVERABLE to_nf_mask(ERROR_NF_RECOVERABLE) |
Definition at line 279 of file i5400_edac.c.
| #define FERR_NF_SPD_PROTOCOL to_nf_mask(ERROR_NF_SPD_PROTOCOL) |
Definition at line 277 of file i5400_edac.c.
| #define FERR_NF_UNCORRECTABLE to_nf_mask(ERROR_NF_UNCORRECTABLE) |
Definition at line 280 of file i5400_edac.c.
| #define i5400_mc_printk | ( | mci, | |
| level, | |||
| fmt, | |||
| arg... | |||
| ) | edac_mc_chipset_printk(mci, level, "i5400", fmt, ##arg) |
Definition at line 47 of file i5400_edac.c.
| #define i5400_printk | ( | level, | |
| fmt, | |||
| arg... | |||
| ) | edac_printk(level, "i5400", fmt, ##arg) |
Definition at line 44 of file i5400_edac.c.
| #define I5400_REVISION " Ver: 1.0.0" |
Definition at line 40 of file i5400_edac.c.
| #define MAX_BRANCHES 2 |
Definition at line 51 of file i5400_edac.c.
| #define MAX_CHANNELS (MAX_BRANCHES * CHANNELS_PER_BRANCH) |
Definition at line 54 of file i5400_edac.c.
| #define MAXCH 0x56 /* Max Channel Number */ |
Definition at line 69 of file i5400_edac.c.
| #define MAXDIMMPERCH 0x57 /* Max DIMM PER Channel Number */ |
Definition at line 70 of file i5400_edac.c.
| #define MCERR_FBD 0xb8 |
Definition at line 97 of file i5400_edac.c.
| #define MIR0 0x80 |
Definition at line 76 of file i5400_edac.c.
| #define MIR1 0x84 |
Definition at line 77 of file i5400_edac.c.
| #define MTR0 0x80 |
Definition at line 112 of file i5400_edac.c.
| #define MTR1 0x82 |
Definition at line 113 of file i5400_edac.c.
| #define MTR2 0x84 |
Definition at line 114 of file i5400_edac.c.
| #define MTR3 0x86 |
Definition at line 115 of file i5400_edac.c.
| #define MTR_DIMM_COLS | ( | mtr | ) | ((mtr) & 0x3) |
Definition at line 294 of file i5400_edac.c.
| #define MTR_DIMM_COLS_ADDR_BITS | ( | mtr | ) | (MTR_DIMM_COLS(mtr) + 10) |
Definition at line 295 of file i5400_edac.c.
| #define MTR_DIMM_RANK | ( | mtr | ) | (((mtr) >> 5) & 0x1) |
Definition at line 290 of file i5400_edac.c.
| #define MTR_DIMM_RANK_ADDR_BITS | ( | mtr | ) | (MTR_DIMM_RANK(mtr) ? 2 : 1) |
Definition at line 291 of file i5400_edac.c.
| #define MTR_DIMM_ROWS | ( | mtr | ) | (((mtr) >> 2) & 0x3) |
Definition at line 292 of file i5400_edac.c.
| #define MTR_DIMM_ROWS_ADDR_BITS | ( | mtr | ) | (MTR_DIMM_ROWS(mtr) + 13) |
Definition at line 293 of file i5400_edac.c.
| #define MTR_DIMMS_ETHROTTLE | ( | mtr | ) | ((mtr) & (1 << 9)) |
Definition at line 286 of file i5400_edac.c.
| #define MTR_DIMMS_PRESENT | ( | mtr | ) | ((mtr) & (1 << 10)) |
Definition at line 285 of file i5400_edac.c.
| #define MTR_DRAM_BANKS | ( | mtr | ) | (((mtr) & (1 << 6)) ? 8 : 4) |
Definition at line 288 of file i5400_edac.c.
| #define MTR_DRAM_BANKS_ADDR_BITS | ( | mtr | ) | ((MTR_DRAM_BANKS(mtr) == 8) ? 3 : 2) |
Definition at line 289 of file i5400_edac.c.
| #define MTR_DRAM_WIDTH | ( | mtr | ) | (((mtr) & (1 << 8)) ? 8 : 4) |
Definition at line 287 of file i5400_edac.c.
| #define NERR_FAT_FBD 0x9c |
Definition at line 85 of file i5400_edac.c.
| #define NERR_NF_FBD 0xa4 |
Definition at line 89 of file i5400_edac.c.
| #define NRECFB_DIMMA 0xc4 |
Definition at line 122 of file i5400_edac.c.
| #define NRECFB_DIMMB 0xc8 |
Definition at line 123 of file i5400_edac.c.
| #define NRECFB_DIMMC 0xcc |
Definition at line 124 of file i5400_edac.c.
| #define NRECFB_DIMMD 0xd0 |
Definition at line 125 of file i5400_edac.c.
| #define NRECFB_DIMME 0xd4 |
Definition at line 126 of file i5400_edac.c.
| #define NRECFB_DIMMF 0xd8 |
Definition at line 127 of file i5400_edac.c.
| #define NRECFGLOG 0x74 |
Definition at line 118 of file i5400_edac.c.
| #define NRECMEMA 0xbe |
Definition at line 120 of file i5400_edac.c.
| #define NRECMEMB 0xc0 |
Definition at line 121 of file i5400_edac.c.
| #define REC_ECC_LOCATOR_ODD | ( | x | ) | ((x) & 0x3fe00) /* bits [17:9] indicate ODD, [8:0] indicate EVEN */ |
Definition at line 75 of file i5400_edac.c.
| #define RECFB_DIMMA 0xf8 |
Definition at line 131 of file i5400_edac.c.
| #define RECFB_DIMMB 0xec |
Definition at line 132 of file i5400_edac.c.
| #define RECFB_DIMMC 0xf0 |
Definition at line 133 of file i5400_edac.c.
| #define RECFB_DIMMD 0xf4 |
Definition at line 134 of file i5400_edac.c.
| #define RECFB_DIMME 0xf8 |
Definition at line 135 of file i5400_edac.c.
| #define RECFB_DIMMF 0xfC |
Definition at line 136 of file i5400_edac.c.
| #define RECFGLOG 0x78 |
Definition at line 119 of file i5400_edac.c.
| #define RECMEMA 0xf0 |
Definition at line 129 of file i5400_edac.c.
| #define RECMEMB 0xf4 |
Definition at line 130 of file i5400_edac.c.
| #define REDMEMA 0xdC |
Definition at line 128 of file i5400_edac.c.
| #define REDMEMB 0x7C |
Definition at line 74 of file i5400_edac.c.
| #define TOLM 0x6C |
Definition at line 73 of file i5400_edac.c.
| enum error_mask |
Definition at line 143 of file i5400_edac.c.
| MODULE_AUTHOR | ( | "Ben Woodard <[email protected]>" | ) |
| MODULE_AUTHOR | ( | "Mauro Carvalho Chehab <[email protected]>" | ) |
| MODULE_AUTHOR | ( | "Red Hat Inc. (http://www.redhat.com)" | ) |
| MODULE_DEVICE_TABLE | ( | pci | , |
| i5400_pci_tbl | |||
| ) |
| module_exit | ( | i5400_exit | ) |
| module_init | ( | i5400_init | ) |
| MODULE_LICENSE | ( | "GPL" | ) |
| module_param | ( | edac_op_state | , |
| int | , | ||
| 0444 | |||
| ) |
| MODULE_PARM_DESC | ( | edac_op_state | , |
| "EDAC Error Reporting state: | 0 = Poll |
||
| ) |
1.8.2