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 | i7300_dev_info |
struct | i7300_dimm_info |
struct | i7300_pvt |
Macros | |
#define | I7300_REVISION " Ver: 1.0.0" |
#define | EDAC_MOD_STR "i7300_edac" |
#define | i7300_printk(level, fmt, arg...) edac_printk(level, "i7300", fmt, ##arg) |
#define | i7300_mc_printk(mci, level, fmt, arg...) edac_mc_chipset_printk(mci, level, "i7300", fmt, ##arg) |
#define | MAX_SLOTS 8 |
#define | MAX_BRANCHES 2 |
#define | MAX_CH_PER_BRANCH 2 |
#define | MAX_CHANNELS (MAX_CH_PER_BRANCH * MAX_BRANCHES) |
#define | MAX_MIR 3 |
#define | to_channel(ch, branch) ((((branch)) << 1) | (ch)) |
#define | to_csrow(slot, ch, branch) (to_channel(ch, branch) | ((slot) << 2)) |
#define | AMBASE 0x48 /* AMB Mem Mapped Reg Region Base */ |
#define | MAXCH 0x56 /* Max Channel Number */ |
#define | MAXDIMMPERCH 0x57 /* Max DIMM PER Channel Number */ |
#define | MC_SETTINGS 0x40 |
#define | IS_MIRRORED(mc) ((mc) & (1 << 16)) |
#define | IS_ECC_ENABLED(mc) ((mc) & (1 << 5)) |
#define | IS_RETRY_ENABLED(mc) ((mc) & (1 << 31)) |
#define | IS_SCRBALGO_ENHANCED(mc) ((mc) & (1 << 8)) |
#define | MC_SETTINGS_A 0x58 |
#define | IS_SINGLE_MODE(mca) ((mca) & (1 << 14)) |
#define | TOLM 0x6C |
#define | MIR0 0x80 |
#define | MIR1 0x84 |
#define | MIR2 0x88 |
#define | AMBPRESENT_0 0x64 |
#define | AMBPRESENT_1 0x66 |
#define | MTR_DIMMS_PRESENT(mtr) ((mtr) & (1 << 8)) |
#define | MTR_DIMMS_ETHROTTLE(mtr) ((mtr) & (1 << 7)) |
#define | MTR_DRAM_WIDTH(mtr) (((mtr) & (1 << 6)) ? 8 : 4) |
#define | MTR_DRAM_BANKS(mtr) (((mtr) & (1 << 5)) ? 8 : 4) |
#define | MTR_DIMM_RANKS(mtr) (((mtr) & (1 << 4)) ? 1 : 0) |
#define | MTR_DIMM_ROWS(mtr) (((mtr) >> 2) & 0x3) |
#define | MTR_DRAM_BANKS_ADDR_BITS 2 |
#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) |
#define | FERR_FAT_FBD 0x98 |
#define | GET_FBD_FAT_IDX(fbderr) (((fbderr) >> 28) & 3) |
#define | FERR_FAT_FBD_ERR_MASK ((1 << 0) | (1 << 1) | (1 << 2) | (1 << 22)) |
#define | FERR_NF_FBD 0xa0 |
#define | GET_FBD_NF_IDX(fbderr) (((fbderr) >> 28) & 3) |
#define | FERR_NF_FBD_ERR_MASK |
#define | EMASK_FBD 0xa8 |
#define | EMASK_FBD_ERR_MASK |
#define | FERR_GLOBAL_HI 0x48 |
#define | ferr_global_hi_is_fatal(errno) 1 |
#define | FERR_GLOBAL_LO 0x40 |
#define | ferr_global_lo_is_fatal(errno) ((errno < 16) ? 0 : 1) |
#define | NRECMEMA 0xbe |
#define | NRECMEMA_BANK(v) (((v) >> 12) & 7) |
#define | NRECMEMA_RANK(v) (((v) >> 8) & 15) |
#define | NRECMEMB 0xc0 |
#define | NRECMEMB_IS_WR(v) ((v) & (1 << 31)) |
#define | NRECMEMB_CAS(v) (((v) >> 16) & 0x1fff) |
#define | NRECMEMB_RAS(v) ((v) & 0xffff) |
#define | REDMEMA 0xdc |
#define | REDMEMB 0x7c |
#define | IS_SECOND_CH(v) ((v) * (1 << 17)) |
#define | RECMEMA 0xe0 |
#define | RECMEMA_BANK(v) (((v) >> 12) & 7) |
#define | RECMEMA_RANK(v) (((v) >> 8) & 15) |
#define | RECMEMB 0xe4 |
#define | RECMEMB_IS_WR(v) ((v) & (1 << 31)) |
#define | RECMEMB_CAS(v) (((v) >> 16) & 0x1fff) |
#define | RECMEMB_RAS(v) ((v) & 0xffff) |
#define | GET_ERR_FROM_TABLE(table, pos) get_err_from_table(table, ARRAY_SIZE(table), pos) |
Functions | |
MODULE_DEVICE_TABLE (pci, i7300_pci_tbl) | |
module_init (i7300_init) | |
module_exit (i7300_exit) | |
MODULE_LICENSE ("GPL") | |
MODULE_AUTHOR ("Mauro Carvalho Chehab <[email protected]>") | |
MODULE_AUTHOR ("Red Hat Inc. (http://www.redhat.com)") | |
MODULE_DESCRIPTION ("MC Driver for Intel I7300 memory controllers - "I7300_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 131 of file i7300_edac.c.
#define AMBPRESENT_0 0x64 |
Definition at line 162 of file i7300_edac.c.
#define AMBPRESENT_1 0x66 |
Definition at line 163 of file i7300_edac.c.
#define EDAC_MOD_STR "i7300_edac" |
Definition at line 36 of file i7300_edac.c.
#define EMASK_FBD 0xa8 |
Definition at line 236 of file i7300_edac.c.
#define EMASK_FBD_ERR_MASK |
Definition at line 237 of file i7300_edac.c.
#define FERR_FAT_FBD 0x98 |
Definition at line 192 of file i7300_edac.c.
#define FERR_FAT_FBD_ERR_MASK ((1 << 0) | (1 << 1) | (1 << 2) | (1 << 22)) |
Definition at line 201 of file i7300_edac.c.
#define FERR_GLOBAL_HI 0x48 |
Definition at line 249 of file i7300_edac.c.
#define ferr_global_hi_is_fatal | ( | errno | ) | 1 |
Definition at line 256 of file i7300_edac.c.
#define FERR_GLOBAL_LO 0x40 |
Definition at line 258 of file i7300_edac.c.
Definition at line 293 of file i7300_edac.c.
#define FERR_NF_FBD 0xa0 |
Definition at line 203 of file i7300_edac.c.
#define FERR_NF_FBD_ERR_MASK |
Definition at line 229 of file i7300_edac.c.
Definition at line 345 of file i7300_edac.c.
#define GET_FBD_FAT_IDX | ( | fbderr | ) | (((fbderr) >> 28) & 3) |
Definition at line 200 of file i7300_edac.c.
#define GET_FBD_NF_IDX | ( | fbderr | ) | (((fbderr) >> 28) & 3) |
Definition at line 228 of file i7300_edac.c.
#define i7300_mc_printk | ( | mci, | |
level, | |||
fmt, | |||
arg... | |||
) | edac_mc_chipset_printk(mci, level, "i7300", fmt, ##arg) |
Definition at line 41 of file i7300_edac.c.
#define i7300_printk | ( | level, | |
fmt, | |||
arg... | |||
) | edac_printk(level, "i7300", fmt, ##arg) |
Definition at line 38 of file i7300_edac.c.
#define I7300_REVISION " Ver: 1.0.0" |
Definition at line 34 of file i7300_edac.c.
Definition at line 138 of file i7300_edac.c.
Definition at line 137 of file i7300_edac.c.
Definition at line 139 of file i7300_edac.c.
Definition at line 140 of file i7300_edac.c.
Definition at line 307 of file i7300_edac.c.
#define IS_SINGLE_MODE | ( | mca | ) | ((mca) & (1 << 14)) |
Definition at line 143 of file i7300_edac.c.
#define MAX_BRANCHES 2 |
Definition at line 64 of file i7300_edac.c.
#define MAX_CH_PER_BRANCH 2 |
Definition at line 65 of file i7300_edac.c.
#define MAX_CHANNELS (MAX_CH_PER_BRANCH * MAX_BRANCHES) |
Definition at line 66 of file i7300_edac.c.
#define MAX_MIR 3 |
Definition at line 67 of file i7300_edac.c.
#define MAX_SLOTS 8 |
Definition at line 63 of file i7300_edac.c.
#define MAXCH 0x56 /* Max Channel Number */ |
Definition at line 132 of file i7300_edac.c.
#define MAXDIMMPERCH 0x57 /* Max DIMM PER Channel Number */ |
Definition at line 133 of file i7300_edac.c.
#define MC_SETTINGS 0x40 |
Definition at line 136 of file i7300_edac.c.
#define MC_SETTINGS_A 0x58 |
Definition at line 142 of file i7300_edac.c.
#define MIR0 0x80 |
Definition at line 147 of file i7300_edac.c.
#define MIR1 0x84 |
Definition at line 148 of file i7300_edac.c.
#define MIR2 0x88 |
Definition at line 149 of file i7300_edac.c.
#define MTR_DIMM_COLS | ( | mtr | ) | ((mtr) & 0x3) |
Definition at line 182 of file i7300_edac.c.
#define MTR_DIMM_COLS_ADDR_BITS | ( | mtr | ) | (MTR_DIMM_COLS(mtr) + 10) |
Definition at line 183 of file i7300_edac.c.
#define MTR_DIMM_RANKS | ( | mtr | ) | (((mtr) & (1 << 4)) ? 1 : 0) |
Definition at line 178 of file i7300_edac.c.
#define MTR_DIMM_ROWS | ( | mtr | ) | (((mtr) >> 2) & 0x3) |
Definition at line 179 of file i7300_edac.c.
#define MTR_DIMM_ROWS_ADDR_BITS | ( | mtr | ) | (MTR_DIMM_ROWS(mtr) + 13) |
Definition at line 181 of file i7300_edac.c.
#define MTR_DIMMS_ETHROTTLE | ( | mtr | ) | ((mtr) & (1 << 7)) |
Definition at line 175 of file i7300_edac.c.
#define MTR_DIMMS_PRESENT | ( | mtr | ) | ((mtr) & (1 << 8)) |
Definition at line 174 of file i7300_edac.c.
#define MTR_DRAM_BANKS | ( | mtr | ) | (((mtr) & (1 << 5)) ? 8 : 4) |
Definition at line 177 of file i7300_edac.c.
#define MTR_DRAM_BANKS_ADDR_BITS 2 |
Definition at line 180 of file i7300_edac.c.
#define MTR_DRAM_WIDTH | ( | mtr | ) | (((mtr) & (1 << 6)) ? 8 : 4) |
Definition at line 176 of file i7300_edac.c.
#define NRECMEMA 0xbe |
Definition at line 295 of file i7300_edac.c.
Definition at line 296 of file i7300_edac.c.
Definition at line 297 of file i7300_edac.c.
#define NRECMEMB 0xc0 |
Definition at line 299 of file i7300_edac.c.
Definition at line 301 of file i7300_edac.c.
Definition at line 300 of file i7300_edac.c.
Definition at line 302 of file i7300_edac.c.
#define RECMEMA 0xe0 |
Definition at line 309 of file i7300_edac.c.
Definition at line 310 of file i7300_edac.c.
Definition at line 311 of file i7300_edac.c.
#define RECMEMB 0xe4 |
Definition at line 313 of file i7300_edac.c.
Definition at line 315 of file i7300_edac.c.
Definition at line 314 of file i7300_edac.c.
Definition at line 316 of file i7300_edac.c.
#define REDMEMA 0xdc |
Definition at line 304 of file i7300_edac.c.
#define REDMEMB 0x7c |
Definition at line 306 of file i7300_edac.c.
Definition at line 69 of file i7300_edac.c.
#define to_csrow | ( | slot, | |
ch, | |||
branch | |||
) | (to_channel(ch, branch) | ((slot) << 2)) |
Definition at line 71 of file i7300_edac.c.
#define TOLM 0x6C |
Definition at line 145 of file i7300_edac.c.
MODULE_AUTHOR | ( | "Mauro Carvalho Chehab <[email protected]>" | ) |
MODULE_AUTHOR | ( | "Red Hat Inc. (http://www.redhat.com)" | ) |
MODULE_DEVICE_TABLE | ( | pci | , |
i7300_pci_tbl | |||
) |
module_exit | ( | i7300_exit | ) |
module_init | ( | i7300_init | ) |
MODULE_LICENSE | ( | "GPL" | ) |
module_param | ( | edac_op_state | , |
int | , | ||
0444 | |||
) |
MODULE_PARM_DESC | ( | edac_op_state | , |
"EDAC Error Reporting state: | 0 = Poll |
||
) |