/* Max RRL register sets per {,sub-,pseudo-}channel. */ #define NUM_RRL_SET 4 /* Max RRL registers per set. */ #define NUM_RRL_REG 6 /* Max correctable error count registers. */ #define NUM_CECNT_REG 8
/* Modes of RRL register set. */ enum rrl_mode { /* Last read error from patrol scrub. */
LRE_SCRUB, /* Last read error from demand. */
LRE_DEMAND, /* First read error from patrol scrub. */
FRE_SCRUB, /* First read error from demand. */
FRE_DEMAND,
};
/* RRL registers per {,sub-,pseudo-}channel. */ struct reg_rrl { /* RRL register parts. */ int set_num, reg_num; enum rrl_mode modes[NUM_RRL_SET];
u32 offsets[NUM_RRL_SET][NUM_RRL_REG]; /* RRL register widths in byte per set. */
u8 widths[NUM_RRL_REG]; /* RRL control bits of the first register per set. */
u32 v_mask;
u32 uc_mask;
u32 over_mask;
u32 en_patspr_mask;
u32 noover_mask;
u32 en_mask;
struct decoded_addr { struct mce *mce; struct skx_dev *dev;
u64 addr; int socket; int imc; int channel;
u64 chan_addr; int sktways; int chanways; int dimm; int cs; int rank; int channel_rank;
u64 rank_address; int row; int column; int bank_address; int bank_group; bool decoded_by_adxl;
};
struct pci_bdf {
u32 bus : 8;
u32 dev : 5;
u32 fun : 3;
};
struct res_config { enum type type; /* Configuration agent device ID */ unsignedint decs_did; /* Default bus number configuration register offset */ int busno_cfg_offset; /* DDR memory controllers per socket */ int ddr_imc_num; /* DDR channels per DDR memory controller */ int ddr_chan_num; /* DDR DIMMs per DDR memory channel */ int ddr_dimm_num; /* Per DDR channel memory-mapped I/O size */ int ddr_chan_mmio_sz; /* HBM memory controllers per socket */ int hbm_imc_num; /* HBM channels per HBM memory controller */ int hbm_chan_num; /* HBM DIMMs per HBM memory channel */ int hbm_dimm_num; /* Per HBM channel memory-mapped I/O size */ int hbm_chan_mmio_sz; bool support_ddr5; /* SAD device BDF */ struct pci_bdf sad_all_bdf; /* PCU device BDF */ struct pci_bdf pcu_cr3_bdf; /* UTIL device BDF */ struct pci_bdf util_all_bdf; /* URACU device BDF */ struct pci_bdf uracu_bdf; /* DDR mdev device BDF */ struct pci_bdf ddr_mdev_bdf; /* HBM mdev device BDF */ struct pci_bdf hbm_mdev_bdf; int sad_all_offset; /* RRL register sets per DDR channel */ struct reg_rrl *reg_rrl_ddr; /* RRL register sets per HBM channel */ struct reg_rrl *reg_rrl_hbm[2];
};
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.