linux/drivers/edac/amd64_edac.c
<<
>>
Prefs
   1#include "amd64_edac.h"
   2#include <asm/amd_nb.h>
   3
   4static struct edac_pci_ctl_info *amd64_ctl_pci;
   5
   6static int report_gart_errors;
   7module_param(report_gart_errors, int, 0644);
   8
   9/*
  10 * Set by command line parameter. If BIOS has enabled the ECC, this override is
  11 * cleared to prevent re-enabling the hardware by this driver.
  12 */
  13static int ecc_enable_override;
  14module_param(ecc_enable_override, int, 0644);
  15
  16static struct msr __percpu *msrs;
  17
  18/*
  19 * count successfully initialized driver instances for setup_pci_device()
  20 */
  21static atomic_t drv_instances = ATOMIC_INIT(0);
  22
  23/* Per-node driver instances */
  24static struct mem_ctl_info **mcis;
  25static struct ecc_settings **ecc_stngs;
  26
  27/*
  28 * Valid scrub rates for the K8 hardware memory scrubber. We map the scrubbing
  29 * bandwidth to a valid bit pattern. The 'set' operation finds the 'matching-
  30 * or higher value'.
  31 *
  32 *FIXME: Produce a better mapping/linearisation.
  33 */
  34struct scrubrate {
  35       u32 scrubval;           /* bit pattern for scrub rate */
  36       u32 bandwidth;          /* bandwidth consumed (bytes/sec) */
  37} scrubrates[] = {
  38        { 0x01, 1600000000UL},
  39        { 0x02, 800000000UL},
  40        { 0x03, 400000000UL},
  41        { 0x04, 200000000UL},
  42        { 0x05, 100000000UL},
  43        { 0x06, 50000000UL},
  44        { 0x07, 25000000UL},
  45        { 0x08, 12284069UL},
  46        { 0x09, 6274509UL},
  47        { 0x0A, 3121951UL},
  48        { 0x0B, 1560975UL},
  49        { 0x0C, 781440UL},
  50        { 0x0D, 390720UL},
  51        { 0x0E, 195300UL},
  52        { 0x0F, 97650UL},
  53        { 0x10, 48854UL},
  54        { 0x11, 24427UL},
  55        { 0x12, 12213UL},
  56        { 0x13, 6101UL},
  57        { 0x14, 3051UL},
  58        { 0x15, 1523UL},
  59        { 0x16, 761UL},
  60        { 0x00, 0UL},        /* scrubbing off */
  61};
  62
  63static int __amd64_read_pci_cfg_dword(struct pci_dev *pdev, int offset,
  64                                      u32 *val, const char *func)
  65{
  66        int err = 0;
  67
  68        err = pci_read_config_dword(pdev, offset, val);
  69        if (err)
  70                amd64_warn("%s: error reading F%dx%03x.\n",
  71                           func, PCI_FUNC(pdev->devfn), offset);
  72
  73        return err;
  74}
  75
  76int __amd64_write_pci_cfg_dword(struct pci_dev *pdev, int offset,
  77                                u32 val, const char *func)
  78{
  79        int err = 0;
  80
  81        err = pci_write_config_dword(pdev, offset, val);
  82        if (err)
  83                amd64_warn("%s: error writing to F%dx%03x.\n",
  84                           func, PCI_FUNC(pdev->devfn), offset);
  85
  86        return err;
  87}
  88
  89/*
  90 *
  91 * Depending on the family, F2 DCT reads need special handling:
  92 *
  93 * K8: has a single DCT only
  94 *
  95 * F10h: each DCT has its own set of regs
  96 *      DCT0 -> F2x040..
  97 *      DCT1 -> F2x140..
  98 *
  99 * F15h: we select which DCT we access using F1x10C[DctCfgSel]
 100 *
 101 */
 102static int k8_read_dct_pci_cfg(struct amd64_pvt *pvt, int addr, u32 *val,
 103                               const char *func)
 104{
 105        if (addr >= 0x100)
 106                return -EINVAL;
 107
 108        return __amd64_read_pci_cfg_dword(pvt->F2, addr, val, func);
 109}
 110
 111static int f10_read_dct_pci_cfg(struct amd64_pvt *pvt, int addr, u32 *val,
 112                                 const char *func)
 113{
 114        return __amd64_read_pci_cfg_dword(pvt->F2, addr, val, func);
 115}
 116
 117/*
 118 * Select DCT to which PCI cfg accesses are routed
 119 */
 120static void f15h_select_dct(struct amd64_pvt *pvt, u8 dct)
 121{
 122        u32 reg = 0;
 123
 124        amd64_read_pci_cfg(pvt->F1, DCT_CFG_SEL, &reg);
 125        reg &= 0xfffffffe;
 126        reg |= dct;
 127        amd64_write_pci_cfg(pvt->F1, DCT_CFG_SEL, reg);
 128}
 129
 130static int f15_read_dct_pci_cfg(struct amd64_pvt *pvt, int addr, u32 *val,
 131                                 const char *func)
 132{
 133        u8 dct  = 0;
 134
 135        if (addr >= 0x140 && addr <= 0x1a0) {
 136                dct   = 1;
 137                addr -= 0x100;
 138        }
 139
 140        f15h_select_dct(pvt, dct);
 141
 142        return __amd64_read_pci_cfg_dword(pvt->F2, addr, val, func);
 143}
 144
 145/*
 146 * Memory scrubber control interface. For K8, memory scrubbing is handled by
 147 * hardware and can involve L2 cache, dcache as well as the main memory. With
 148 * F10, this is extended to L3 cache scrubbing on CPU models sporting that
 149 * functionality.
 150 *
 151 * This causes the "units" for the scrubbing speed to vary from 64 byte blocks
 152 * (dram) over to cache lines. This is nasty, so we will use bandwidth in
 153 * bytes/sec for the setting.
 154 *
 155 * Currently, we only do dram scrubbing. If the scrubbing is done in software on
 156 * other archs, we might not have access to the caches directly.
 157 */
 158
 159/*
 160 * scan the scrub rate mapping table for a close or matching bandwidth value to
 161 * issue. If requested is too big, then use last maximum value found.
 162 */
 163static int __amd64_set_scrub_rate(struct pci_dev *ctl, u32 new_bw, u32 min_rate)
 164{
 165        u32 scrubval;
 166        int i;
 167
 168        /*
 169         * map the configured rate (new_bw) to a value specific to the AMD64
 170         * memory controller and apply to register. Search for the first
 171         * bandwidth entry that is greater or equal than the setting requested
 172         * and program that. If at last entry, turn off DRAM scrubbing.
 173         *
 174         * If no suitable bandwidth is found, turn off DRAM scrubbing entirely
 175         * by falling back to the last element in scrubrates[].
 176         */
 177        for (i = 0; i < ARRAY_SIZE(scrubrates) - 1; i++) {
 178                /*
 179                 * skip scrub rates which aren't recommended
 180                 * (see F10 BKDG, F3x58)
 181                 */
 182                if (scrubrates[i].scrubval < min_rate)
 183                        continue;
 184
 185                if (scrubrates[i].bandwidth <= new_bw)
 186                        break;
 187        }
 188
 189        scrubval = scrubrates[i].scrubval;
 190
 191        pci_write_bits32(ctl, SCRCTRL, scrubval, 0x001F);
 192
 193        if (scrubval)
 194                return scrubrates[i].bandwidth;
 195
 196        return 0;
 197}
 198
 199static int amd64_set_scrub_rate(struct mem_ctl_info *mci, u32 bw)
 200{
 201        struct amd64_pvt *pvt = mci->pvt_info;
 202        u32 min_scrubrate = 0x5;
 203
 204        if (boot_cpu_data.x86 == 0xf)
 205                min_scrubrate = 0x0;
 206
 207        /* F15h Erratum #505 */
 208        if (boot_cpu_data.x86 == 0x15)
 209                f15h_select_dct(pvt, 0);
 210
 211        return __amd64_set_scrub_rate(pvt->F3, bw, min_scrubrate);
 212}
 213
 214static int amd64_get_scrub_rate(struct mem_ctl_info *mci)
 215{
 216        struct amd64_pvt *pvt = mci->pvt_info;
 217        u32 scrubval = 0;
 218        int i, retval = -EINVAL;
 219
 220        /* F15h Erratum #505 */
 221        if (boot_cpu_data.x86 == 0x15)
 222                f15h_select_dct(pvt, 0);
 223
 224        amd64_read_pci_cfg(pvt->F3, SCRCTRL, &scrubval);
 225
 226        scrubval = scrubval & 0x001F;
 227
 228        for (i = 0; i < ARRAY_SIZE(scrubrates); i++) {
 229                if (scrubrates[i].scrubval == scrubval) {
 230                        retval = scrubrates[i].bandwidth;
 231                        break;
 232                }
 233        }
 234        return retval;
 235}
 236
 237/*
 238 * returns true if the SysAddr given by sys_addr matches the
 239 * DRAM base/limit associated with node_id
 240 */
 241static bool amd64_base_limit_match(struct amd64_pvt *pvt, u64 sys_addr,
 242                                   unsigned nid)
 243{
 244        u64 addr;
 245
 246        /* The K8 treats this as a 40-bit value.  However, bits 63-40 will be
 247         * all ones if the most significant implemented address bit is 1.
 248         * Here we discard bits 63-40.  See section 3.4.2 of AMD publication
 249         * 24592: AMD x86-64 Architecture Programmer's Manual Volume 1
 250         * Application Programming.
 251         */
 252        addr = sys_addr & 0x000000ffffffffffull;
 253
 254        return ((addr >= get_dram_base(pvt, nid)) &&
 255                (addr <= get_dram_limit(pvt, nid)));
 256}
 257
 258/*
 259 * Attempt to map a SysAddr to a node. On success, return a pointer to the
 260 * mem_ctl_info structure for the node that the SysAddr maps to.
 261 *
 262 * On failure, return NULL.
 263 */
 264static struct mem_ctl_info *find_mc_by_sys_addr(struct mem_ctl_info *mci,
 265                                                u64 sys_addr)
 266{
 267        struct amd64_pvt *pvt;
 268        unsigned node_id;
 269        u32 intlv_en, bits;
 270
 271        /*
 272         * Here we use the DRAM Base (section 3.4.4.1) and DRAM Limit (section
 273         * 3.4.4.2) registers to map the SysAddr to a node ID.
 274         */
 275        pvt = mci->pvt_info;
 276
 277        /*
 278         * The value of this field should be the same for all DRAM Base
 279         * registers.  Therefore we arbitrarily choose to read it from the
 280         * register for node 0.
 281         */
 282        intlv_en = dram_intlv_en(pvt, 0);
 283
 284        if (intlv_en == 0) {
 285                for (node_id = 0; node_id < DRAM_RANGES; node_id++) {
 286                        if (amd64_base_limit_match(pvt, sys_addr, node_id))
 287                                goto found;
 288                }
 289                goto err_no_match;
 290        }
 291
 292        if (unlikely((intlv_en != 0x01) &&
 293                     (intlv_en != 0x03) &&
 294                     (intlv_en != 0x07))) {
 295                amd64_warn("DRAM Base[IntlvEn] junk value: 0x%x, BIOS bug?\n", intlv_en);
 296                return NULL;
 297        }
 298
 299        bits = (((u32) sys_addr) >> 12) & intlv_en;
 300
 301        for (node_id = 0; ; ) {
 302                if ((dram_intlv_sel(pvt, node_id) & intlv_en) == bits)
 303                        break;  /* intlv_sel field matches */
 304
 305                if (++node_id >= DRAM_RANGES)
 306                        goto err_no_match;
 307        }
 308
 309        /* sanity test for sys_addr */
 310        if (unlikely(!amd64_base_limit_match(pvt, sys_addr, node_id))) {
 311                amd64_warn("%s: sys_addr 0x%llx falls outside base/limit address"
 312                           "range for node %d with node interleaving enabled.\n",
 313                           __func__, sys_addr, node_id);
 314                return NULL;
 315        }
 316
 317found:
 318        return edac_mc_find((int)node_id);
 319
 320err_no_match:
 321        edac_dbg(2, "sys_addr 0x%lx doesn't match any node\n",
 322                 (unsigned long)sys_addr);
 323
 324        return NULL;
 325}
 326
 327/*
 328 * compute the CS base address of the @csrow on the DRAM controller @dct.
 329 * For details see F2x[5C:40] in the processor's BKDG
 330 */
 331static void get_cs_base_and_mask(struct amd64_pvt *pvt, int csrow, u8 dct,
 332                                 u64 *base, u64 *mask)
 333{
 334        u64 csbase, csmask, base_bits, mask_bits;
 335        u8 addr_shift;
 336
 337        if (boot_cpu_data.x86 == 0xf && pvt->ext_model < K8_REV_F) {
 338                csbase          = pvt->csels[dct].csbases[csrow];
 339                csmask          = pvt->csels[dct].csmasks[csrow];
 340                base_bits       = GENMASK(21, 31) | GENMASK(9, 15);
 341                mask_bits       = GENMASK(21, 29) | GENMASK(9, 15);
 342                addr_shift      = 4;
 343        } else {
 344                csbase          = pvt->csels[dct].csbases[csrow];
 345                csmask          = pvt->csels[dct].csmasks[csrow >> 1];
 346                addr_shift      = 8;
 347
 348                if (boot_cpu_data.x86 == 0x15)
 349                        base_bits = mask_bits = GENMASK(19,30) | GENMASK(5,13);
 350                else
 351                        base_bits = mask_bits = GENMASK(19,28) | GENMASK(5,13);
 352        }
 353
 354        *base  = (csbase & base_bits) << addr_shift;
 355
 356        *mask  = ~0ULL;
 357        /* poke holes for the csmask */
 358        *mask &= ~(mask_bits << addr_shift);
 359        /* OR them in */
 360        *mask |= (csmask & mask_bits) << addr_shift;
 361}
 362
 363#define for_each_chip_select(i, dct, pvt) \
 364        for (i = 0; i < pvt->csels[dct].b_cnt; i++)
 365
 366#define chip_select_base(i, dct, pvt) \
 367        pvt->csels[dct].csbases[i]
 368
 369#define for_each_chip_select_mask(i, dct, pvt) \
 370        for (i = 0; i < pvt->csels[dct].m_cnt; i++)
 371
 372/*
 373 * @input_addr is an InputAddr associated with the node given by mci. Return the
 374 * csrow that input_addr maps to, or -1 on failure (no csrow claims input_addr).
 375 */
 376static int input_addr_to_csrow(struct mem_ctl_info *mci, u64 input_addr)
 377{
 378        struct amd64_pvt *pvt;
 379        int csrow;
 380        u64 base, mask;
 381
 382        pvt = mci->pvt_info;
 383
 384        for_each_chip_select(csrow, 0, pvt) {
 385                if (!csrow_enabled(csrow, 0, pvt))
 386                        continue;
 387
 388                get_cs_base_and_mask(pvt, csrow, 0, &base, &mask);
 389
 390                mask = ~mask;
 391
 392                if ((input_addr & mask) == (base & mask)) {
 393                        edac_dbg(2, "InputAddr 0x%lx matches csrow %d (node %d)\n",
 394                                 (unsigned long)input_addr, csrow,
 395                                 pvt->mc_node_id);
 396
 397                        return csrow;
 398                }
 399        }
 400        edac_dbg(2, "no matching csrow for InputAddr 0x%lx (MC node %d)\n",
 401                 (unsigned long)input_addr, pvt->mc_node_id);
 402
 403        return -1;
 404}
 405
 406/*
 407 * Obtain info from the DRAM Hole Address Register (section 3.4.8, pub #26094)
 408 * for the node represented by mci. Info is passed back in *hole_base,
 409 * *hole_offset, and *hole_size.  Function returns 0 if info is valid or 1 if
 410 * info is invalid. Info may be invalid for either of the following reasons:
 411 *
 412 * - The revision of the node is not E or greater.  In this case, the DRAM Hole
 413 *   Address Register does not exist.
 414 *
 415 * - The DramHoleValid bit is cleared in the DRAM Hole Address Register,
 416 *   indicating that its contents are not valid.
 417 *
 418 * The values passed back in *hole_base, *hole_offset, and *hole_size are
 419 * complete 32-bit values despite the fact that the bitfields in the DHAR
 420 * only represent bits 31-24 of the base and offset values.
 421 */
 422int amd64_get_dram_hole_info(struct mem_ctl_info *mci, u64 *hole_base,
 423                             u64 *hole_offset, u64 *hole_size)
 424{
 425        struct amd64_pvt *pvt = mci->pvt_info;
 426        u64 base;
 427
 428        /* only revE and later have the DRAM Hole Address Register */
 429        if (boot_cpu_data.x86 == 0xf && pvt->ext_model < K8_REV_E) {
 430                edac_dbg(1, "  revision %d for node %d does not support DHAR\n",
 431                         pvt->ext_model, pvt->mc_node_id);
 432                return 1;
 433        }
 434
 435        /* valid for Fam10h and above */
 436        if (boot_cpu_data.x86 >= 0x10 && !dhar_mem_hoist_valid(pvt)) {
 437                edac_dbg(1, "  Dram Memory Hoisting is DISABLED on this system\n");
 438                return 1;
 439        }
 440
 441        if (!dhar_valid(pvt)) {
 442                edac_dbg(1, "  Dram Memory Hoisting is DISABLED on this node %d\n",
 443                         pvt->mc_node_id);
 444                return 1;
 445        }
 446
 447        /* This node has Memory Hoisting */
 448
 449        /* +------------------+--------------------+--------------------+-----
 450         * | memory           | DRAM hole          | relocated          |
 451         * | [0, (x - 1)]     | [x, 0xffffffff]    | addresses from     |
 452         * |                  |                    | DRAM hole          |
 453         * |                  |                    | [0x100000000,      |
 454         * |                  |                    |  (0x100000000+     |
 455         * |                  |                    |   (0xffffffff-x))] |
 456         * +------------------+--------------------+--------------------+-----
 457         *
 458         * Above is a diagram of physical memory showing the DRAM hole and the
 459         * relocated addresses from the DRAM hole.  As shown, the DRAM hole
 460         * starts at address x (the base address) and extends through address
 461         * 0xffffffff.  The DRAM Hole Address Register (DHAR) relocates the
 462         * addresses in the hole so that they start at 0x100000000.
 463         */
 464
 465        base = dhar_base(pvt);
 466
 467        *hole_base = base;
 468        *hole_size = (0x1ull << 32) - base;
 469
 470        if (boot_cpu_data.x86 > 0xf)
 471                *hole_offset = f10_dhar_offset(pvt);
 472        else
 473                *hole_offset = k8_dhar_offset(pvt);
 474
 475        edac_dbg(1, "  DHAR info for node %d base 0x%lx offset 0x%lx size 0x%lx\n",
 476                 pvt->mc_node_id, (unsigned long)*hole_base,
 477                 (unsigned long)*hole_offset, (unsigned long)*hole_size);
 478
 479        return 0;
 480}
 481EXPORT_SYMBOL_GPL(amd64_get_dram_hole_info);
 482
 483/*
 484 * Return the DramAddr that the SysAddr given by @sys_addr maps to.  It is
 485 * assumed that sys_addr maps to the node given by mci.
 486 *
 487 * The first part of section 3.4.4 (p. 70) shows how the DRAM Base (section
 488 * 3.4.4.1) and DRAM Limit (section 3.4.4.2) registers are used to translate a
 489 * SysAddr to a DramAddr. If the DRAM Hole Address Register (DHAR) is enabled,
 490 * then it is also involved in translating a SysAddr to a DramAddr. Sections
 491 * 3.4.8 and 3.5.8.2 describe the DHAR and how it is used for memory hoisting.
 492 * These parts of the documentation are unclear. I interpret them as follows:
 493 *
 494 * When node n receives a SysAddr, it processes the SysAddr as follows:
 495 *
 496 * 1. It extracts the DRAMBase and DRAMLimit values from the DRAM Base and DRAM
 497 *    Limit registers for node n. If the SysAddr is not within the range
 498 *    specified by the base and limit values, then node n ignores the Sysaddr
 499 *    (since it does not map to node n). Otherwise continue to step 2 below.
 500 *
 501 * 2. If the DramHoleValid bit of the DHAR for node n is clear, the DHAR is
 502 *    disabled so skip to step 3 below. Otherwise see if the SysAddr is within
 503 *    the range of relocated addresses (starting at 0x100000000) from the DRAM
 504 *    hole. If not, skip to step 3 below. Else get the value of the
 505 *    DramHoleOffset field from the DHAR. To obtain the DramAddr, subtract the
 506 *    offset defined by this value from the SysAddr.
 507 *
 508 * 3. Obtain the base address for node n from the DRAMBase field of the DRAM
 509 *    Base register for node n. To obtain the DramAddr, subtract the base
 510 *    address from the SysAddr, as shown near the start of section 3.4.4 (p.70).
 511 */
 512static u64 sys_addr_to_dram_addr(struct mem_ctl_info *mci, u64 sys_addr)
 513{
 514        struct amd64_pvt *pvt = mci->pvt_info;
 515        u64 dram_base, hole_base, hole_offset, hole_size, dram_addr;
 516        int ret = 0;
 517
 518        dram_base = get_dram_base(pvt, pvt->mc_node_id);
 519
 520        ret = amd64_get_dram_hole_info(mci, &hole_base, &hole_offset,
 521                                      &hole_size);
 522        if (!ret) {
 523                if ((sys_addr >= (1ull << 32)) &&
 524                    (sys_addr < ((1ull << 32) + hole_size))) {
 525                        /* use DHAR to translate SysAddr to DramAddr */
 526                        dram_addr = sys_addr - hole_offset;
 527
 528                        edac_dbg(2, "using DHAR to translate SysAddr 0x%lx to DramAddr 0x%lx\n",
 529                                 (unsigned long)sys_addr,
 530                                 (unsigned long)dram_addr);
 531
 532                        return dram_addr;
 533                }
 534        }
 535
 536        /*
 537         * Translate the SysAddr to a DramAddr as shown near the start of
 538         * section 3.4.4 (p. 70).  Although sys_addr is a 64-bit value, the k8
 539         * only deals with 40-bit values.  Therefore we discard bits 63-40 of
 540         * sys_addr below.  If bit 39 of sys_addr is 1 then the bits we
 541         * discard are all 1s.  Otherwise the bits we discard are all 0s.  See
 542         * section 3.4.2 of AMD publication 24592: AMD x86-64 Architecture
 543         * Programmer's Manual Volume 1 Application Programming.
 544         */
 545        dram_addr = (sys_addr & GENMASK(0, 39)) - dram_base;
 546
 547        edac_dbg(2, "using DRAM Base register to translate SysAddr 0x%lx to DramAddr 0x%lx\n",
 548                 (unsigned long)sys_addr, (unsigned long)dram_addr);
 549        return dram_addr;
 550}
 551
 552/*
 553 * @intlv_en is the value of the IntlvEn field from a DRAM Base register
 554 * (section 3.4.4.1).  Return the number of bits from a SysAddr that are used
 555 * for node interleaving.
 556 */
 557static int num_node_interleave_bits(unsigned intlv_en)
 558{
 559        static const int intlv_shift_table[] = { 0, 1, 0, 2, 0, 0, 0, 3 };
 560        int n;
 561
 562        BUG_ON(intlv_en > 7);
 563        n = intlv_shift_table[intlv_en];
 564        return n;
 565}
 566
 567/* Translate the DramAddr given by @dram_addr to an InputAddr. */
 568static u64 dram_addr_to_input_addr(struct mem_ctl_info *mci, u64 dram_addr)
 569{
 570        struct amd64_pvt *pvt;
 571        int intlv_shift;
 572        u64 input_addr;
 573
 574        pvt = mci->pvt_info;
 575
 576        /*
 577         * See the start of section 3.4.4 (p. 70, BKDG #26094, K8, revA-E)
 578         * concerning translating a DramAddr to an InputAddr.
 579         */
 580        intlv_shift = num_node_interleave_bits(dram_intlv_en(pvt, 0));
 581        input_addr = ((dram_addr >> intlv_shift) & GENMASK(12, 35)) +
 582                      (dram_addr & 0xfff);
 583
 584        edac_dbg(2, "  Intlv Shift=%d DramAddr=0x%lx maps to InputAddr=0x%lx\n",
 585                 intlv_shift, (unsigned long)dram_addr,
 586                 (unsigned long)input_addr);
 587
 588        return input_addr;
 589}
 590
 591/*
 592 * Translate the SysAddr represented by @sys_addr to an InputAddr.  It is
 593 * assumed that @sys_addr maps to the node given by mci.
 594 */
 595static u64 sys_addr_to_input_addr(struct mem_ctl_info *mci, u64 sys_addr)
 596{
 597        u64 input_addr;
 598
 599        input_addr =
 600            dram_addr_to_input_addr(mci, sys_addr_to_dram_addr(mci, sys_addr));
 601
 602        edac_dbg(2, "SysAdddr 0x%lx translates to InputAddr 0x%lx\n",
 603                 (unsigned long)sys_addr, (unsigned long)input_addr);
 604
 605        return input_addr;
 606}
 607
 608
 609/*
 610 * @input_addr is an InputAddr associated with the node represented by mci.
 611 * Translate @input_addr to a DramAddr and return the result.
 612 */
 613static u64 input_addr_to_dram_addr(struct mem_ctl_info *mci, u64 input_addr)
 614{
 615        struct amd64_pvt *pvt;
 616        unsigned node_id, intlv_shift;
 617        u64 bits, dram_addr;
 618        u32 intlv_sel;
 619
 620        /*
 621         * Near the start of section 3.4.4 (p. 70, BKDG #26094, K8, revA-E)
 622         * shows how to translate a DramAddr to an InputAddr. Here we reverse
 623         * this procedure. When translating from a DramAddr to an InputAddr, the
 624         * bits used for node interleaving are discarded.  Here we recover these
 625         * bits from the IntlvSel field of the DRAM Limit register (section
 626         * 3.4.4.2) for the node that input_addr is associated with.
 627         */
 628        pvt = mci->pvt_info;
 629        node_id = pvt->mc_node_id;
 630
 631        BUG_ON(node_id > 7);
 632
 633        intlv_shift = num_node_interleave_bits(dram_intlv_en(pvt, 0));
 634        if (intlv_shift == 0) {
 635                edac_dbg(1, "    InputAddr 0x%lx translates to DramAddr of same value\n",
 636                         (unsigned long)input_addr);
 637
 638                return input_addr;
 639        }
 640
 641        bits = ((input_addr & GENMASK(12, 35)) << intlv_shift) +
 642                (input_addr & 0xfff);
 643
 644        intlv_sel = dram_intlv_sel(pvt, node_id) & ((1 << intlv_shift) - 1);
 645        dram_addr = bits + (intlv_sel << 12);
 646
 647        edac_dbg(1, "InputAddr 0x%lx translates to DramAddr 0x%lx (%d node interleave bits)\n",
 648                 (unsigned long)input_addr,
 649                 (unsigned long)dram_addr, intlv_shift);
 650
 651        return dram_addr;
 652}
 653
 654/*
 655 * @dram_addr is a DramAddr that maps to the node represented by mci. Convert
 656 * @dram_addr to a SysAddr.
 657 */
 658static u64 dram_addr_to_sys_addr(struct mem_ctl_info *mci, u64 dram_addr)
 659{
 660        struct amd64_pvt *pvt = mci->pvt_info;
 661        u64 hole_base, hole_offset, hole_size, base, sys_addr;
 662        int ret = 0;
 663
 664        ret = amd64_get_dram_hole_info(mci, &hole_base, &hole_offset,
 665                                      &hole_size);
 666        if (!ret) {
 667                if ((dram_addr >= hole_base) &&
 668                    (dram_addr < (hole_base + hole_size))) {
 669                        sys_addr = dram_addr + hole_offset;
 670
 671                        edac_dbg(1, "using DHAR to translate DramAddr 0x%lx to SysAddr 0x%lx\n",
 672                                 (unsigned long)dram_addr,
 673                                 (unsigned long)sys_addr);
 674
 675                        return sys_addr;
 676                }
 677        }
 678
 679        base     = get_dram_base(pvt, pvt->mc_node_id);
 680        sys_addr = dram_addr + base;
 681
 682        /*
 683         * The sys_addr we have computed up to this point is a 40-bit value
 684         * because the k8 deals with 40-bit values.  However, the value we are
 685         * supposed to return is a full 64-bit physical address.  The AMD
 686         * x86-64 architecture specifies that the most significant implemented
 687         * address bit through bit 63 of a physical address must be either all
 688         * 0s or all 1s.  Therefore we sign-extend the 40-bit sys_addr to a
 689         * 64-bit value below.  See section 3.4.2 of AMD publication 24592:
 690         * AMD x86-64 Architecture Programmer's Manual Volume 1 Application
 691         * Programming.
 692         */
 693        sys_addr |= ~((sys_addr & (1ull << 39)) - 1);
 694
 695        edac_dbg(1, "    Node %d, DramAddr 0x%lx to SysAddr 0x%lx\n",
 696                 pvt->mc_node_id, (unsigned long)dram_addr,
 697                 (unsigned long)sys_addr);
 698
 699        return sys_addr;
 700}
 701
 702/*
 703 * @input_addr is an InputAddr associated with the node given by mci. Translate
 704 * @input_addr to a SysAddr.
 705 */
 706static inline u64 input_addr_to_sys_addr(struct mem_ctl_info *mci,
 707                                         u64 input_addr)
 708{
 709        return dram_addr_to_sys_addr(mci,
 710                                     input_addr_to_dram_addr(mci, input_addr));
 711}
 712
 713/* Map the Error address to a PAGE and PAGE OFFSET. */
 714static inline void error_address_to_page_and_offset(u64 error_address,
 715                                                    u32 *page, u32 *offset)
 716{
 717        *page = (u32) (error_address >> PAGE_SHIFT);
 718        *offset = ((u32) error_address) & ~PAGE_MASK;
 719}
 720
 721/*
 722 * @sys_addr is an error address (a SysAddr) extracted from the MCA NB Address
 723 * Low (section 3.6.4.5) and MCA NB Address High (section 3.6.4.6) registers
 724 * of a node that detected an ECC memory error.  mci represents the node that
 725 * the error address maps to (possibly different from the node that detected
 726 * the error).  Return the number of the csrow that sys_addr maps to, or -1 on
 727 * error.
 728 */
 729static int sys_addr_to_csrow(struct mem_ctl_info *mci, u64 sys_addr)
 730{
 731        int csrow;
 732
 733        csrow = input_addr_to_csrow(mci, sys_addr_to_input_addr(mci, sys_addr));
 734
 735        if (csrow == -1)
 736                amd64_mc_err(mci, "Failed to translate InputAddr to csrow for "
 737                                  "address 0x%lx\n", (unsigned long)sys_addr);
 738        return csrow;
 739}
 740
 741static int get_channel_from_ecc_syndrome(struct mem_ctl_info *, u16);
 742
 743/*
 744 * Determine if the DIMMs have ECC enabled. ECC is enabled ONLY if all the DIMMs
 745 * are ECC capable.
 746 */
 747static unsigned long amd64_determine_edac_cap(struct amd64_pvt *pvt)
 748{
 749        u8 bit;
 750        unsigned long edac_cap = EDAC_FLAG_NONE;
 751
 752        bit = (boot_cpu_data.x86 > 0xf || pvt->ext_model >= K8_REV_F)
 753                ? 19
 754                : 17;
 755
 756        if (pvt->dclr0 & BIT(bit))
 757                edac_cap = EDAC_FLAG_SECDED;
 758
 759        return edac_cap;
 760}
 761
 762static void amd64_debug_display_dimm_sizes(struct amd64_pvt *, u8);
 763
 764static void amd64_dump_dramcfg_low(u32 dclr, int chan)
 765{
 766        edac_dbg(1, "F2x%d90 (DRAM Cfg Low): 0x%08x\n", chan, dclr);
 767
 768        edac_dbg(1, "  DIMM type: %sbuffered; all DIMMs support ECC: %s\n",
 769                 (dclr & BIT(16)) ?  "un" : "",
 770                 (dclr & BIT(19)) ? "yes" : "no");
 771
 772        edac_dbg(1, "  PAR/ERR parity: %s\n",
 773                 (dclr & BIT(8)) ?  "enabled" : "disabled");
 774
 775        if (boot_cpu_data.x86 == 0x10)
 776                edac_dbg(1, "  DCT 128bit mode width: %s\n",
 777                         (dclr & BIT(11)) ?  "128b" : "64b");
 778
 779        edac_dbg(1, "  x4 logical DIMMs present: L0: %s L1: %s L2: %s L3: %s\n",
 780                 (dclr & BIT(12)) ?  "yes" : "no",
 781                 (dclr & BIT(13)) ?  "yes" : "no",
 782                 (dclr & BIT(14)) ?  "yes" : "no",
 783                 (dclr & BIT(15)) ?  "yes" : "no");
 784}
 785
 786/* Display and decode various NB registers for debug purposes. */
 787static void dump_misc_regs(struct amd64_pvt *pvt)
 788{
 789        edac_dbg(1, "F3xE8 (NB Cap): 0x%08x\n", pvt->nbcap);
 790
 791        edac_dbg(1, "  NB two channel DRAM capable: %s\n",
 792                 (pvt->nbcap & NBCAP_DCT_DUAL) ? "yes" : "no");
 793
 794        edac_dbg(1, "  ECC capable: %s, ChipKill ECC capable: %s\n",
 795                 (pvt->nbcap & NBCAP_SECDED) ? "yes" : "no",
 796                 (pvt->nbcap & NBCAP_CHIPKILL) ? "yes" : "no");
 797
 798        amd64_dump_dramcfg_low(pvt->dclr0, 0);
 799
 800        edac_dbg(1, "F3xB0 (Online Spare): 0x%08x\n", pvt->online_spare);
 801
 802        edac_dbg(1, "F1xF0 (DRAM Hole Address): 0x%08x, base: 0x%08x, offset: 0x%08x\n",
 803                 pvt->dhar, dhar_base(pvt),
 804                 (boot_cpu_data.x86 == 0xf) ? k8_dhar_offset(pvt)
 805                 : f10_dhar_offset(pvt));
 806
 807        edac_dbg(1, "  DramHoleValid: %s\n", dhar_valid(pvt) ? "yes" : "no");
 808
 809        amd64_debug_display_dimm_sizes(pvt, 0);
 810
 811        /* everything below this point is Fam10h and above */
 812        if (boot_cpu_data.x86 == 0xf)
 813                return;
 814
 815        amd64_debug_display_dimm_sizes(pvt, 1);
 816
 817        amd64_info("using %s syndromes.\n", ((pvt->ecc_sym_sz == 8) ? "x8" : "x4"));
 818
 819        /* Only if NOT ganged does dclr1 have valid info */
 820        if (!dct_ganging_enabled(pvt))
 821                amd64_dump_dramcfg_low(pvt->dclr1, 1);
 822}
 823
 824/*
 825 * see BKDG, F2x[1,0][5C:40], F2[1,0][6C:60]
 826 */
 827static void prep_chip_selects(struct amd64_pvt *pvt)
 828{
 829        if (boot_cpu_data.x86 == 0xf && pvt->ext_model < K8_REV_F) {
 830                pvt->csels[0].b_cnt = pvt->csels[1].b_cnt = 8;
 831                pvt->csels[0].m_cnt = pvt->csels[1].m_cnt = 8;
 832        } else {
 833                pvt->csels[0].b_cnt = pvt->csels[1].b_cnt = 8;
 834                pvt->csels[0].m_cnt = pvt->csels[1].m_cnt = 4;
 835        }
 836}
 837
 838/*
 839 * Function 2 Offset F10_DCSB0; read in the DCS Base and DCS Mask registers
 840 */
 841static void read_dct_base_mask(struct amd64_pvt *pvt)
 842{
 843        int cs;
 844
 845        prep_chip_selects(pvt);
 846
 847        for_each_chip_select(cs, 0, pvt) {
 848                int reg0   = DCSB0 + (cs * 4);
 849                int reg1   = DCSB1 + (cs * 4);
 850                u32 *base0 = &pvt->csels[0].csbases[cs];
 851                u32 *base1 = &pvt->csels[1].csbases[cs];
 852
 853                if (!amd64_read_dct_pci_cfg(pvt, reg0, base0))
 854                        edac_dbg(0, "  DCSB0[%d]=0x%08x reg: F2x%x\n",
 855                                 cs, *base0, reg0);
 856
 857                if (boot_cpu_data.x86 == 0xf || dct_ganging_enabled(pvt))
 858                        continue;
 859
 860                if (!amd64_read_dct_pci_cfg(pvt, reg1, base1))
 861                        edac_dbg(0, "  DCSB1[%d]=0x%08x reg: F2x%x\n",
 862                                 cs, *base1, reg1);
 863        }
 864
 865        for_each_chip_select_mask(cs, 0, pvt) {
 866                int reg0   = DCSM0 + (cs * 4);
 867                int reg1   = DCSM1 + (cs * 4);
 868                u32 *mask0 = &pvt->csels[0].csmasks[cs];
 869                u32 *mask1 = &pvt->csels[1].csmasks[cs];
 870
 871                if (!amd64_read_dct_pci_cfg(pvt, reg0, mask0))
 872                        edac_dbg(0, "    DCSM0[%d]=0x%08x reg: F2x%x\n",
 873                                 cs, *mask0, reg0);
 874
 875                if (boot_cpu_data.x86 == 0xf || dct_ganging_enabled(pvt))
 876                        continue;
 877
 878                if (!amd64_read_dct_pci_cfg(pvt, reg1, mask1))
 879                        edac_dbg(0, "    DCSM1[%d]=0x%08x reg: F2x%x\n",
 880                                 cs, *mask1, reg1);
 881        }
 882}
 883
 884static enum mem_type amd64_determine_memory_type(struct amd64_pvt *pvt, int cs)
 885{
 886        enum mem_type type;
 887
 888        /* F15h supports only DDR3 */
 889        if (boot_cpu_data.x86 >= 0x15)
 890                type = (pvt->dclr0 & BIT(16)) ? MEM_DDR3 : MEM_RDDR3;
 891        else if (boot_cpu_data.x86 == 0x10 || pvt->ext_model >= K8_REV_F) {
 892                if (pvt->dchr0 & DDR3_MODE)
 893                        type = (pvt->dclr0 & BIT(16)) ? MEM_DDR3 : MEM_RDDR3;
 894                else
 895                        type = (pvt->dclr0 & BIT(16)) ? MEM_DDR2 : MEM_RDDR2;
 896        } else {
 897                type = (pvt->dclr0 & BIT(18)) ? MEM_DDR : MEM_RDDR;
 898        }
 899
 900        amd64_info("CS%d: %s\n", cs, edac_mem_types[type]);
 901
 902        return type;
 903}
 904
 905/* Get the number of DCT channels the memory controller is using. */
 906static int k8_early_channel_count(struct amd64_pvt *pvt)
 907{
 908        int flag;
 909
 910        if (pvt->ext_model >= K8_REV_F)
 911                /* RevF (NPT) and later */
 912                flag = pvt->dclr0 & WIDTH_128;
 913        else
 914                /* RevE and earlier */
 915                flag = pvt->dclr0 & REVE_WIDTH_128;
 916
 917        /* not used */
 918        pvt->dclr1 = 0;
 919
 920        return (flag) ? 2 : 1;
 921}
 922
 923/* On F10h and later ErrAddr is MC4_ADDR[47:1] */
 924static u64 get_error_address(struct mce *m)
 925{
 926        struct cpuinfo_x86 *c = &boot_cpu_data;
 927        u64 addr;
 928        u8 start_bit = 1;
 929        u8 end_bit   = 47;
 930
 931        if (c->x86 == 0xf) {
 932                start_bit = 3;
 933                end_bit   = 39;
 934        }
 935
 936        addr = m->addr & GENMASK(start_bit, end_bit);
 937
 938        /*
 939         * Erratum 637 workaround
 940         */
 941        if (c->x86 == 0x15) {
 942                struct amd64_pvt *pvt;
 943                u64 cc6_base, tmp_addr;
 944                u32 tmp;
 945                u8 mce_nid, mce_nid"L945"85L941"t5edac/amd64_edac719c.c#L946" id="L846" class="line" name="L846"> 8469/a>
m->addr &  *mu64 addr 919<4);
u8 u8addr = pvt-><="+href="+code=end_bit" class="sref">end_bit];
amd64_pvt ss="l href="+code=addr"ci">u64 u8  =  900       vt<900">a> addr];
 8529/a>
 942   d64_r      if (!amd64_read_dct_pci_cfga> = pvtpvt(_LOCAL_NODE_LIM*u32="+code=end_bit" class="sref">end_bit>;
mce_nid, u32ode=ede=e 21a href=0xe=end_bit" class="sref">end_bit   = n>,
 935<>);
/* 27] + 3 trail>    its0"> 940         */
u64 u32odhref="+code=addr" class="sref">addr & start_bit =>))
 8189ue;
 940         */
u64 mce_nid, end_bit   = >))
 901,
/* 24n F10h and later ErrAddr is MC4_ADDR[47:1] */);
 942u64 end_bit   = >>;
 8649/a>
 87class="sref">mce_nid, mu64 m->addr & "x4" 937<4);
amd64_read_dct_pci_cfga> = pvtdchr0 &a>(_LOCAL_NODE_BAS"*u32="+code=end_bit" class="sref">end_bit];
 919<>];
>>>>>>>>>>>>>>>>>>>>>>>i"L923" class="line" namefa0; r log2 F10h and later ErrAddr is MC4_ADDR[47:1] */
cc6_base, m->addr & pvtaclass="sref">mce_nid, dclr1,9>))
 8529n>,
);
cc6_base, u32odhref="+code=addr" class="sref">addr & end_bit   = /a>
 935<>))
   [11:0]  its0from original"comment" F10h and later ErrAddr is MC4_ADDR[47:1] */);
cc6_base, m->addr & dclr1,9>);
 8189>))
u64 cc6_base, tmp_addr,
 934      >);
 901<  }
u64 addr}
 903
 8649a>)
dbgread_dlimitmd6gss="sref">pvtdbgread_dlimitmd6gshref=s="sref">amd64_determine_memory_type(struct amd64_pvt *pvtm{
x86 == 0x15a>;
 926        struct cpuinfo_x86 *c = &boot_cpu_data
pvtstart_bit =an>
 919<15)
amd64_read_dct_pci_cfga> = pvtdchr0 &a>(_BAS"_LOef="l+rs="line" name="offc = &mask1 = &pvtpvtu64 900       lo="+code=end_bit" class="sref">end_bit;
amd64_read_dct_pci_cfga> = pvtmask1 = &pvtpvt       limef="f="+code=csels" l> 900       lo="+code=end_bit" class="sref">end_bit 8529a>)
 931        if (c-> 8529aa>
end_bit)
 935;
 87>dbgrrwclass="sref">c<>dbgrrw_cfg" class="sref">amd64_read_dct_pci_cfghref="+code=mask1"   pvt 8529a>;
end_bit
 8189  }
amd64_read_dct_pci_cfga> = pvtdchr0 &a>(_BAS"_HIef="l+rs="line" name="offc = &mask1 = &pvtpvtu64u64="+code=end_bit" class="sref">end_bit

rivers/edac/amd64_ed10/a>>10/a" id="L929" class="line" name="L9d64_r      if (!amd64_read_dct_pci_cfga> = pvtmask1 = &pvtpvt       limef="f="+code=csels" hiss="sref">u64="+c/pre>>code=end_bit" class="sref">end_bit
10/1" id="L901" class="line" name="L901"> 90110/2>
10/2" id="L902" class="line" name="L888"> actorent"CC6 save ad64 by"comm>   dst nls"'s limittrin F10h and later ErrAddr is MC4_ADDR[47:1] */
10/3" id="L893" class="line" name="L931"> 931        if (c->x86 == 0x110/4>
10/4" id="L894" class="lclass="line" name="L92dct_devsref">mask1 ct_devode=cpuinfo_x86" clasfss="sref">pvtpvtboot_cpu_data<10/5>
10/5" id="L945" class="line" name="L945"> 945                u8<c<>dbgrdst_nls"_cfg" class="sref">amd64_read_dct_pci_cfghref="+code=mask1"   pvtboot_cpu_data<10/6>
10/6" id="L876" class="l=ne" name="L945"> 944                boot_cpu_data<10/7>
10/7" id="L937" class="line" name="L937"> 93710/8>
10/8" id="L868" class="line" name="L868fss="sref">pvtu8<"x4"
10/9" id="L849" class="lilass="line" name="WARN_ON4_read_dct_pci_WARN_ONhref= name="L878"> 87fss="sref">pvt 852101a>
10f=" id="L880" class="line" namclass="+code=end_bit" class="sref">end_bit
10f1" id="L901" class="line" name="L901"> 9011012>
10f2" id="L932" class="line" name="L932me="L9d64_r      if (!afss="sref">pvtpvt(_LOCAL_NODE_LIM*       llimef="pan class="string">"x4"
10f3" id="L883" class="line" name="L883"> 88310f4>
10f4" id="L854" class="l+code=mce_nid" s="sref">mask1 = &pvtpvt       limef="f="+code=csels" l> 900       lor *addr & "x4"
10f5" id="L935" class="line" name="L935"> 93510f6>
10f6" id="L866" class="lllllllllllllllllllllllllllllclass="line" name="L888">{[39 27],111b} F10h and later ErrAddr is MC4_ADDR[47:1] */
10f7" id="L897" class="line" name="L897s="sref">mask1 = &pvtpvt       limef="f="+code=csels" l> 900       lor| hr" class="sref">allim 900       llimef="a href=0x1fff)odl=ede=ex= |=0xe)odl=ede=ex16an class="string">"x4"
10f8" id="L818" class="line" name="L818"> 81810f9>
10f9" id="L869" class="line" name="L869s="sref">mask1 = &pvtpvt       limef="f="+code=csels" hiss="sref">u64r *addr & "x4"
10f=" id="L818" class="line" name="L818"> 8181021>
10f1" id="L861" class="line" namllllllllllllllllllllclass="line" name="L888">>/* 40n F10h and later ErrAddr is MC4_ADDR[47:1] */
10f2" id="L932" class="line" name="L932s="sref">mask1 = &pvtpvt       limef="f="+code=csels" hiss="sref">u64r| hef="+code=type"llim 900       llimef="a e=ede=e 1=start_bit" class="sref">start_bit 10f3>
10f3" id="L883" class="line" name="L883"> 8831024>
10f4" id="L854" class="l+code=mce_nid" sct_dev_pu64_read_dct_pci_cct_dev_pu6_cfg" class="sref">afss="sref">pvt"x4"
10f5" id="L945" ="L903" class="line" name="L903"> 903<10f6>
10f6" id="L903" class="line" name="L903"> 903<10f7>
10f7" id="L937" class="line" name="L937"> 9371028>
10f8" id="L841" class="line" name="k8_map_sys64cget_em_ctl900"> 900       _em_ctl900">ode=cpuinfo_x86" clasmciss="sref">u64 943                cc6_base 9371029>
10f9" id="L879" class="line" nam54" class="l+code=mce_nid" u1 class="sref">cpvt 937103a>
10f=;x86 == 0x11031>
10f1" id="L861" ress" class="sref">get_em_ctl900"> 900       _em_ctl900">ode=cpuinfo_x86" classrc_mciss="sref">u64boot_cpu_data<1032>
10f2" id="L861" ress" class="sref">getne_memory_type(struct amd64_pvt l href="+code=addr"ciss="sref">u64 =  900       vt<900">a> addr<10f3>
10f3" id="L893" c href="+code=pvt" cly_cha931"> 931   ly_cha;caddr<10f4>
10f4" id="L854" =ne" name="L945"> 944                pvtamd64_poffses_cfga href="+code=addr" class="sref">addr<10f5>
10f5" id="L935" class="line" name="L935"> 9351036>
10f6" id="L936" class="line" nacode=get_erro_to_pa <_and_offses="sref">amd64_pcode=get_erro_to_pa <_and_offses_cfg" class="sref">asyss="sref">cc6_basepvtamd64_poffses_cfgpan class="string">"x4"
10f7" id="L937" class="line" name="L937"> 9371038>
10f8" id="L938" class="line" name="L938"> 938        /*
10f9" id="L939" class="line" name="L939">Find out which nls"ommencode= et_erro belongs to. This may be> 938        /*
10f=" id="L939" class="line" name="L939">differne"0from 05"> ls"ommat eterctedommencode=.> 938        /*
10f1" id="L939" class="line" name="L939"10h and later ErrAddr is MC4_ADDR[47:1] */
10f2" id="L936" class="line" nasrc_mciss="sref">u64cc6_baseamciss="sref">u64cc6_base"x4"
10f3" id="L893" clas name="L878"> 87src_mciss="sref">u64x86 == 0x11044>
10f4" id="L854" class="l+code=mce_nid" x86(struct amciss="sref">u64afailedomo mapncode= et_e n classlxomo a> ls"  DCSM1[%d]=0x%08x reg: F2x%x\n"
10f5" id="L895" class="line" nammmmmm(unsigneaslong)ef="+code=mask1syss="sref">cc6_base"x4"
10f6" id="L876" class="l=ne" name="L945t;amd64_pc;aHW_EVENT_ERR_CORRECTED="sref">amd64_pHW_EVENT_ERR_CORRECTED;u64
10f7" id="L897" class="llllllllllllllllllllllpvtamd64_poffses_cfghref="+code=mask1syndrompvt
10f8" id="L848" class="llllllllllllllllllllll-1,l-1,l-1,0x%08x reg: F2x%x\n"
10f9" id="L879" class="line" nam54" class="lreamd64_info" class="sref">afailedomo mapncode= et_e mo a> ls"DCSM1[%d]=0x%08x reg: F2x%x\n"
10f=" id="L879" class="line" nam54" class="lreamd64_info" class="sref">aDCSM1[%d]pan class="string">"x4"
10f1" id="L861" class="lclass="+code=end_bit" class="sref">end_bit
10f2" id="L936" ="L903" class="line" name="L903"> 903<1053>
10f3" id="L883" class="line" name="L883"> 8831054>
10f4" id="L938" class="line" name="L938" Now mapnmmensyss="sr mo a>CSROW9"10h and later ErrAddr is MC4_ADDR[47:1] */
10f5" id="L936" class="line" nacsrowclass="sref">ccasrc_mciss="sref">u64cc6_base"x4"
10f6" id="L896" ine"class="line" nacsrowclass="sref">cx86 == 0x11057>
10f7" id="L897" class="line" name="L897t;amd64_pc;aHW_EVENT_ERR_CORRECTED="sref">amd64_pHW_EVENT_ERR_CORRECTED;u64
10f8" id="L848" class="llllllllllllllllllllllpvtamd64_poffses_cfghref="+code=mask1syndrompvt
10f9" id="L879" class="line" nam54" class="lr-1,l-1,l-1,0x%08x reg: F2x%x\n"
10f=" id="L879" class="line" nam54" class="lreamd64_info" class="sref">afailedomo mapncode= et_e mo a>csrowDCSM1[%d]=0x%08x reg: F2x%x\n"
10f1" id="L861" class="line" namllllllllllllleamd64_info" class="sref">aDCSM1[%d]pan class="string">"x4"
10f2" id="L932" class="lclass="+code=end_bit" class="sref">end_bit
10f3" id="L936" ="L903" class="line" name="L903"> 903<1064>
10f4" id="L864" class="line" name="L864"> 86410f5>
10f5" id="L938" class="line" name="L938" CHIPKILL enabla>        /* not used */
10f6" id="L896" ine"class="line" nas="sref">mask1 = &x86 == 0x11067>
10f7" id="L857" class="l 931   ly_cha;pvtamciss="sref">u64pvtend_bit
10f8" id="L848" class="line"class="line" nacly_cha931"> 931   ly_cha;x86 == 0x11069>
10f9" id="L879" class="line" namclass="line" name="L938"> 938        /*
10f=" id="L939" class="line" name="L9399999999999999999* Syndrom< didn't map, so w< don't know which ofnmme> 938        /*
10f1" id="L939" class="line" name="L9399999999999999999* 2 DIMMsss="inncode=. So w< needomo ID 'both' ofnmmem> 938        /*
10f2" id="L939" class="line" name="L9399999999999999999* as suspect.> 938        /*
10f3" id="L923" class="line" name="L9399999999999999999*      /* not used */
10f4" id="L854" class="line" namccode=mce_nid" x86mce_nidasrc_mciss="sref">u64aunknown syndrom< n class04x - DCSM1[%d]pan class="comment">/* not used */
10f5" id="L895" class="line" nammmmmmline" namcamd64_info" class="sref">apossiblancode= report>   rac"  DCSM1[%d]=0x%08x reg: F2x%x\n"
10f6" id="L866" class="lllllllllllllllllllllllef="+code=mask1syndrompvtend_bit
10f7" id="L897" class="llllllllline" name="L897t;amd64_pc;aHW_EVENT_ERR_CORRECTED="sref">amd64_pHW_EVENT_ERR_CORRECTED;u64
10f8" id="L848" class="lllllllllllllllllllllllllllllline" name="L897pa pvtamd64_poffses_cfghref="+code=mask1syndrompvt
10f9" id="L879" class="line" nam54" class="lrlllllllline" name="L897csrowclass="sref">c
10f=" id="L879" class="line" nam54" class="lrlllllllliamd64_info" class="sref">aunknown syndrom< - possiblancode= report>   rac"DCSM1[%d]=0x%08x reg: F2x%x\n"
10f1" id="L861" class="line" namllllllllllllllllllllleamd64_info" class="sref">aDCSM1[%d]pan class="string">"x4"
10f2" id="L932" class="lllllllllclass="+code=end_bit" class="sref">end_bit
10f3" id="L873" class="l="L903" class="line" name="L903"> 903<1084>
10f4" id="L934" c else"+code=x86" class="sref">x86 == 0x11085>
10f5" id="L945" class="lilass="line" name="L938"> 938        /*
10f6" id="L923" class="line" name="L93999999999"> 9n-chipkill ecc mls"_c938        /*
10f7" id="L923" class="line" name="L93999999999"_c938        /*
10f8" id="L923" class="line" name="L93999999999">The k8 docuine"ationss="unclear about how mo eterrmdacnmme> 938        /*
10f9" id="L939" class="line" name="L93999999999"> ly_cha number when us>    9n-chipkill memory.  This methocomment">         * Erratum 637 workaround
10f=" id="L939" class="line" name="L93999999999">was obtaineasfrom email ="liunicationswith someoacnat AMD.> 938        /*
10f1" id="L939" class="line" name="L93999999999* (Wishommencmail was plac"d"innthis ="line" - norsk)> 938        /*
10f2" id="L939" class="line" name="L93999999999*      /* not used */
10f3" id="L853" class="lme="L942"> 942 931   ly_cha;asyss="sref">cc6_basecc6_base"x4"
10f4" id="L934" class="line" name="L934"> 934     10f5>
10f5" id="L935" class="line" name="L935"> 9351096>
10f6" id="L936" class="line" nac;amd64_pc;aHW_EVENT_ERR_CORRECTED="sref">amd64_pHW_EVENT_ERR_CORRECTED;u64
10f7" id="L897" class="lllllllllllllline" name="L897pa pvtamd64_poffses_cfghref="+code=mask1syndrompvt
10f8" id="L848" class="lllllllllllllline" name="L897csrowclass="sref">c 931   ly_cha;
10f9" id="L879" class="line" nam54" ceamd64_info" class="sref">aDCSM1[%d]hreamd64_info" class="sref">aDCSM1[%d]pan class="string">"x4"

rivers/edac/amd64_ed11/a>>11/a" idclass="line" name="L934"> 934     11/1>
11/1" id="L901" class="line" name="L901"> 90111/2>
11/2" id="L841"c href="+code=pvt" "sr2_cs_sizpvtu64 931  booa" id=ef="+code=pvt" "ct_widths="sref">pvt 90111/3>
11/3" id+code=x86" class="sref">x86 == 0x111/4>
11/4" id="L894" unsigneass="line" name="shifsref">GENMASKhifs;"x4"
1105" id="L935" class="line" name="L935"> 93511/6>
1106" id="L896" ine"class="line" naiss="sref">u64 90111/7>
1107" id="L857" class="lGENMASKhifs;u64"x4"
11/8" id="L868" else"clas "class="line" naiss="sref">u64 85211/9>
11/9" id="L849" class="lGENMASKhifs;u64"x4"
11f=" id="L880" elsen class="string">"x4"
1111" id="L871" class="lode=cc6_base" cshifsref">GENMASKhifs;u64"x4"
1112" id="L852" class="line" name="L852"> 8521113>
1113" id="L853" class="128odl=ede=ex" class="sref">ashifsref">GENMASKhifs; 87>ct_widths="sref">pvt"x4"
11f4" idclass="line" name="L934"> 934     1115>
11f5" id="L935" class="line" name="L935"> 93511f6>
11f6" id="L841"c href="+code=pvt" k8_dbam_to_chip_selecsref">GENMASKamd64_determine_memory_type(struct amd64_pvt * 945                GENMASK
11f7" id="L897" class="lllllllllllllllllllunsigneass="line" name="cs_mls"class="sref">c 9011118>
11f8" id+code=x86" class="sref">x86 == 0x111f9>
11f9" id="L869" e=amd64_pvt" cl"> 944                amd64_pdcl=;GENMASKmask1 = &pvtmask1 = &pvt"x4"
11f=" id="L818" class="line" name="L818"> 8181121>
11f1" id="L861" ine"class="line" nas="sref">mask1 = & 931  ext_mls"a; 931  K8_REV_Fef="="+code=x86" class="sref">x86 == 0x111f2>
11f2" id="L932" class="line" name="L932WARN_ON4_read_dct_pci_WARN_ONhref=s="line" name="cs_mls"class="sref">cdclr1,11f3>
1123" id="L853" class="lclass="line" name="L90"sr2_cs_sizpvtcamd64_pdcl=; 945       WIDTH_12>;"x4"
1124" id="L934" class="line" name="L934"> 934     1125>
11f5" id="L945" else"clasclass="line" nas="sref">mask1 = & 931  ext_mls"a;amd64_pK8_REV_Def="="+code=x86" class="sref">x86 == 0x111f6>
1126" id="L866" class="lunsigneass="line" name="diff="sref">amd64_pdiffef="an class="string">"x4"
1127" id="L857" class="lc"x4"
112>;"x4"
11f9" id="L879" class="lilass="line" name="L938"> 938        /*
113=" id="L939" class="line" name="L93999999999">mmenbelow calculation,nbesides try>   to win an obfuscatedoC> 938        /*
1131" id="L939" class="line" name="L93999999999* contest, maps cs_mls" values to DIMM chip selecs siz 938        /*
1132" id="L939" class="line" name="L93999999999* mappings are:> 938        /*
1133" id="L923" class="line" name="L93999999999"> 938        /*
11f4" id="L939" class="line" name="L93999999999* cs_mls"      CS siz< (mb)> 938        /*
11f5" id="L939" class="line" name="L93999999999* =======999999============> 938        /*
1136" id="L923" class="line" name="L93999999999">0L9399999999932" 938        /*
1137" id="L923" class="line" name="L93999999999" 1L93999999999f4" 938        /*
1138" id="L923" class="line" name="L93999999999">2L9399999999912>;<938        /*
11f9" id="L939" class="line" name="L93999999999">3L9399999999912>;<938        /*
11f=" id="L939" class="line" name="L93999999999">4L939999999992f6" 938        /*
11f1" id="L939" class="line" name="L93999999999">5L93999999999512" 938        /*
1142" id="L939" class="line" name="L93999999999* 6L939999999992f6" 938        /*
1143" id="L923" class="line" name="L93999999999" 7L93999999999512" 938        /*
1144" id="L939" class="line" name="L93999999999* 8L9399999999910f4" 938        /*
1145" id="L939" class="line" name="L93999999999* 9L9399999999910f4" 938        /*
1146" id="L923" class="line" name="L93999999999">109399999999920f8" 938        /*
1147" id="L923" class="line" name="L93999999999"_c938        /*
1148" id="L923" class="line" name="L93999999999">Basically, it calculates a valueswith which to >hifsnmme> 938        /*
1149" id="L939" class="line" name="L93999999999">smallest CS siz< of932MB.> 938        /*
115=" id="L939" class="line" name="L93999999999"> 938        /*
1151" id="L939" class="line" name="L93999999999">ddr[23]_cs_siz< have a similar purpose.> 938        /*
1152" id="L939" class="line" name="L93999999999*      /* not used */
1153" id="L853" class="lme="L942"> 942amd64_pdiffef="l hclass="line" nacs_mls"class="sref">cc"x4"
1154" id="L864" class="line" name="L864"> 8641155>
1155" id="L945" class="lclass="32odl=ede=ex" class="sref">acs_mls"class="sref">c 942amd64_pdiffef="pan class="string">"x4"
11f6" id="L896" class="line" name="L934"> 934     1157>
11f7" id="L897" else"+code=x86" class="sref">x86 == 0x11158>
11f8" id="L848" class="lc"x4"
11f9" id="L879" class="lclass="32odl=ede=exs="line" name="cs_mls"class="sref">c"x4"
11f=" id="L879" class="line" name="L934"> 934     1161>
11f1" idclass="line" name="L934"> 934     1162>
1162" id="L852" class="line" name="L852"> 8521163>
1163" id="L923" class="line" n8"> 938        /*
1164" id="L939" class="line" na* Get 05"> umber of9DCT> ly_cha="innuse.> 938        /*
1165" id="L939" class="line" na"> 938        /*
1166" id="L923" class="line" na* Rlass=:> 938        /*
1167" id="L923" class="line" na*L879"  umber of9Memory Cly_cha="innoperation> 938        /*
1168" id="L923" class="line" na* Paro back:> 938        /*
1169" id="L939" class="line" na*L879" contents ofnmme9DCL0_LOWtrinister> 938        /*
11f=" id="L939" class="line" na*      /* not used */
11f1" id="L841"c href="+code=pvt" f1x_early+rly_chancoun"sref">mask1f1x_early+rly_chancoun"srfg"s="sref">amd64_determine_memory_type(struct amd64_pvt * 9ne" na hr11flignea)=s   ly_a>   ly_a>   ly_a>   ly9"L942"> 9ne" na hr11flignea)=s  s_mls"_ca  7 na4 ly_a> 464_ed11f=">11f1" id="L841"c hrefinfo" class="sref">aunknown syndrom< n class04x - DCSM1[%d]pan claa hr11f="drivers/edac/amd64_1s="co17">"x4"
/* not u864"> 86410f5>
11f=" id="L9939" classc"  DCSM1[%d]=0x%18x re17line" name="L935"> 93511/6>
pvt
11f5" id="L945" es_cfg :line" name="L932s="sreass="sref">camd64_pype(struct end_bit
2known syndrom< n class04x - DCSM1[%d]Cly_cha="i">u64"x4"
1vt 8521163>
1163" id="s="sref">c1csrow_cfg,l-1,l-1,0x%18x re18 class="comment">/*
/*
1163" id="sclass="sre">aDCSM1[%d]pan class1"stri18 class="comment">/*
 umber oL932" clas1="lllllllllclass="+code=e1d_bit18 class="comment">/*
1163" id="span claa hd="L873" class="l="L903" 1lass=18 class="comment">/*
    only  nam9999999 hasa hr11f="drivers/edac/amd64_ed11f=">1163" id="s< n class1id="L934" c else"+code=x81" cla18 class="comment">/*
 umber oass="line"1name="L938"> 938     1  /*
11f=" id="L> 9n-chipk1ll ecc mls"_c938     1  f5" id="L945" elf="_dbine"class="line"lf="_dbie=pvt0"L879" class="line" nam54" ceData >GENM0f8"not15211bedslinee d1 cd11de45"" nmmmline" namcam_WARN_ONhref=s="line" name="cs_mls"class=e" name="L13999999999"_c938     1  "x4"
 8521163>
1163" id="l memory. 1This methocomment">      1  * E1ratum 637 workaround
    dacr4a hr11f="drivers/edac/amd64_ed11f=">1163" id="l39" class=oacnat AMD.> 938     1  /*
ngL   d1 cla."Nlass="lchecka hr11f="drivers/edac/amd64_ed11f=">1163" id="lclass="sree" - norsk)> 938     1  /*
 umber o" name="L91999999999*      /*
11f=" id="Lcc6_base"x4&qufor 1" id="L871" class="lode=cc6_base" cshaunk/9" id="L849" class="l10f4" id="L934" class="l1ne" n19="sref">x86 == 0x1> == 0x111f9>
11f9"balimef="f="+code="bal" cshau1" id="L871" class="lode=cc6_base" csh=="sref">amd64_pdcl=;GENMASKmask1 = &pvtc 942c 942haunk/9" id="L849" cl_mls"_ca  7 na4 ly_a>hh="dr4k/9" id="L849" cl_mls"_ca  7 na4 ly_a>++t_mls"a; 93511/6>
 464_ed11f=">11f1"balimef="f="+code="bal" csref">G8" class="line"class="line" nacly_cha931"> 11"> 931
 == 0x111f9>
" id="L841"c hrefinfo" class="sref"++s="sref">c 9422class="sre2">aDCSM1[%d]pan class2"stri20 F2x%x\n"
c 9422c1ass="sre2"acnat AMD.> 938     2ne" n20 F2x%x\n"
<34"> 934     1161>
11/1" id="L901"2class20="sref">x86 == 0x34"> 934     1161>
end_bit
11/3" id+code=x82" cla20">"x4"
GENMA2Khifs;x86
f">G81/=">1106" id="L896" ine"class="line" na2s/edac/amd24_ed11/=">1105" id="L935"2class20">"x4"
au2known syndrom< n class04x - DCSM1[%2ss="sref">264"x4"
u64"x4&quarly+rly_chancoun"sre l href="+code=addrun"sre l h11f8" 79" class="line" nam54" ceMc/amd64_ed "+cod: ef">udmmmline" namcamdan1046>
c 9422"sref">u642/i;c 9422"sref">u642/i;"x4&qu,11f3>
c 9422_ed11f=">12f=" id="L880" elsen class2"stri21e="L934"> 934     1161>
u64"x4"
1112" id="L852"2class2"line" name="L901"> 90111/2>
pvtu64 931  booa" id=ef="+code=pvt" "ct_widt2="sref">pv2&qulass="line"class="line" nacly_cha931"> 2/edac/amd62_ed11f=">11f4" idclass="l2ne" n21="sref">x86 == 0x111/4>
11/4" id="L894" unsigneass="line" name="shif2s/edac/amd24_ed11f=">11f5" id="L935"2class21line" name="L9f">addr<10f3>
11/2" id=1/4" id="L894" unsigneass="line" name="shif2ss="sref">2GENMASK"x4"
cx86
  booa" id=ef="+code=pvt" "ct_widt2=sref">u642_ed11f=">11f8" id+code=x82" cla21line" name="L852"> 85211/9>
11/2" id=1/4-Khifs;pvt"x4" 93511/6>
1106" id="L896" ine"class="line" na2s/edac/amd24_ed11f=">11f=" id="L818"2class22">"x4"
111> 93511/6>
hifs;x86 93511/6>
1106" id="L896" ine"class="line" na2s/edac/amd2mls"_ca  de=e 1ef="+code=2clr1"2class="sref">dclr1n1111>
1117hifs;pv2   WIDTH_12>;"x4"
11/8" id="L868" else"clas "class="line" naiss2d64_ed11f=2>1124" id="L934" class="l2ne" n22="sref">x86 == 0x1> == 0x111f9>
="drivers/edac/amd64_ed11/=">11/9" id="L849" class="lGENMASKhifs;amd24_pK8_REV_Def="="+code=x82" cla2s="sref">x86
amd64_pdiffef="an class2"stri2g">"x4"
1111" id="L871" class="lode=cc6_base" cshifsref">GENMASKhifs;c"x4"
112>;"x4"
11/2" id=1!/4-Kid="L868" else"clas "class="line" naiss2ass="line"2name="L938"> 938     2  
11/2" id=1/4(5211*4(5 hr11f="drclass="128odl=ede=ex" class="sref">ashifsref">GENMASKhifs; 934     11/1>
 938     2  x86
11/2" id=hifs; 934     1161>
 938     2  "x4"
 938     2  
11fhr011f="drivers/edac/ame=pvt" f1x_early+rly_chancoun"sref">mask1f1x_early+rly_chancoun"srfg"s="sref">amd64_determine_memory_type(struct amd64_pvt * 945                0L9299999999932" 938     2   299999" 1L92999999999f4" 938     2  "x4&quarly+rly_chanco11f9" id="L869" e=amd64_pvt" cl"> 944                amd64_pdcl=;GENMASKmask1 = &pvtmask1 = &2L9329999999912>;<938     2  c 94229999">3L9329999999912>;<938     2  "x4&quarly+rly_chanco="drivers/edac/amd64_ed11f=">11f2" id="L932" class="line" name="L932WARN_ON4_read_dct_pci_WARN_ONhref=s="line" name="cs_mls"class=29999">4L932999999992f6" 938     2   934     11/1>
5L93299999999512" 938     2  x86
11f5" id="L945" edchfg :line" name="L93hs="sreass="sref">cc     2  dclr1,11f3>
1123" id3=">11/2" id=" id="L932" class="line" name="L932WARN_ON4_read_camd64_pdcl=;29999" 7L93299999999512" 938     2  "x4"29ls"      2999999910f4" 938     2   8641155>
1123" id="L853" class="lclass="line" name="L90"sr2_cs_sizpvtcamd64_pdcl=;2999* 9L9392999999910f4" 938     2   934     1161>
109392999999920f8" 938     2  "x4"
     2  /*
1163" id=2ith which 2o >hifsnmme> 938     2  /*
* F15h suplllls only 64bed1ac/auseerfacesa hr11f="drivers/edac/amd64_ed11f=">1163" id=2llest CS s2z< of932MB.> 938     2  /*
11f=" id="2e" name="L23999999999"> 938     2  /* not used */
11fhr511f="drivers/edac/ame=pvt" f1x_early+rly_chancoun"sref">mask1f1x_early+rly_chancoun"srfg"s="sref">amd64_determine_memory_type(struct amd64_pvt * 945                "x4"
11f7" id="L897" class="lllllllllllllllllllunsigneass="line" name="cs_m2" name="L92999999999*       90111/3>
c"x4&quarly+rly_chanco="drivers/edac/amd64_ed11f=">11f2" id="L932" class="line" name="L932WARN_ON4_read_dct_pci2pdcl=;2s/edac/amd24_ed11f=">1154" id="L864"2class25e="L934"> 934     1115>
amd64_pdiffef="pan class2"stri2g">"x4&qu,11f3>
1123" id3=">11/2" id=" id="L932" class="line" name="L932WARN_ON4_read_11fhat;2d64_ed11f=2>11f6" id="L896" class="l2ne" n2me="L934"> 934     1161>
11f2" id="L897" else"+code=x82" cla25">"x4"
c&qu/* not voiedac/amd64_ed11f=read_dr="dctl_1f=">116d64_ed11f=">11fread_dr="dctl_1f=">116e=pvt" f1x_early+rly_chancoun"sref">mask1f1x_early+rly_chancoun"srfg"s="sref">amd64_determine_memory_tlllllllllllunsigneass="line" name="cs_m2s"class="s2ef">c&qu name="L901"> 90111/3>
11f=" id="L879" class="l2ne" n26e="L934"> 934     11/1>
x86
pvt1162" id="L852"2class26lass="sref">dclr1,11f3>dcl=;2L923" clas2="line" n8"> 938     2  "x4"
 938     2  x86amd64_determine_memory_type(struct  90111/3>
 938     2  "x4"
u68x, High rL     931s at:"sref">uxmmmline" namcamd64_info" class="sref">apossiblancode= 2ass="line"2na* Rlass=:> 938     2  
 942amd64_determine_memory_t)pdcl=;2 Cly_cha="2nnoperation> 938     2  "x4"
 938     2   85211/9>
1167"11f="ef">us1 clammmline" namcamd64_info" class="sref">apossiblancode= 2nmme9DCL0_2OWtrinister> 938     2  
 942amd64_determine_memory_t)l=="79" class="line" nam54" cegL   dmline" namcamf">m79" class="line" nam54" ce>ngL   dmline" namcam_pdcl=;2939" class2"line" na*       934     11/1>
amd64_pvt *"x4" 942amd64_determine_memory_t)lllllllllllunsigneass="line" name="cs_m2f=" 205 -l2e="L942"> 9ne" na hr11fli2nea)=27lass="sref">dclr1852"> 85211/9>
usmmmline" namcamd64_info" class="sref">apossiblancode= 2n923" clas2r11f="drivers/edac/amd64_2s="co274F2x%x\n"

 942amd64_determine_memory_t)l=="79" class="line" nam54" ceyesmline" namcamf">m79" class="line" nam54" cenomline" namcam_pdcl=;299DCT> ly_24x - DCSM1[%d]pan cla2s="co27e="L934"> 934     1115>
"x4"
11for ECC: ef">us,LaRAM d="L9ed f9"ce4asst warm id=st: ef">usmmmline" namcamd64_info" class="sref">apossiblancode= 2nss="line"2tend_bit
 942amd64_determine_memory_t)l=="79" class="line" nam54" ceeac/amdmline" namcamf">m79" class="line" nam54" cedisc/amdmline" namcam)d64_info" class="sref">apossiblancode= 2nCly_cha="2">u64
 942amd64_determine_memory_t)l=="79" class="line" nam54" ceyesmline" namcamf">m79" class="line" nam54" cenomline" namcam_pdcl=;29"line" na2vtc 9422s="sref">c2csrow_cfg,l-1,l-1,0x%28x re28 F2x%x\n"
1: ef">us,Lmline" namcam="sref">c 9422s39" class2rac"DCSM1[%d]=0x%28x re28 F2x%x\n"
11bedsldac/amor:"sref">uxmmmline" namcamd64_info" class="sref">apossiblancode= 2sclass="sr2">aDCSM1[%d]pan class2"stri28">"x4"
1_eac/amd"> 9421_eac/amd id=" id="L932" clas>amd64_determine_memory_t)l=="79" class="line" nam54" ceeac/amdmline" namcamf">m79" class="line" nam54" cedisc/amdmline" namcam)d64_info" class="sref">apossiblancode= 2L932" clas2="lllllllllclass="+code=e2d_bit28lass="sref">dclr1852"> 85/a"sr2_cs_siz<_cfgtedac_useerle">1_L942"> 9421_L942 id=" id="L932" clas>amd64_determine_memory_t)pdcl=;2span claa 2d="L873" class="l="L903" 2lass=28">"x4"
 934     1115>
 938     2  "x4&quass="128odl=edeamd64_determine_memory_type(struct 2> 9n-chipk2ll ecc mls"_c938     2   934     1161>
     2  "x4"
/*
1163" id=2l memory. 2This methocomment">      2  * E2ratum 637 workaround
* Deeermmme md64_ed (Dc/) based onedac/useerle">/am3 cla: F10h BKDG, 2.8.9s/edac/a hr11f="drivers/edac/amd64_ed11f=">1163" id=2l39" class2oacnat AMD.> 938     2  /*
* Iseerle">/am3Mclas64" id="L939" class="line" na* Get 05"> umber 2lclass="sr2e" - norsk)> 938     2  /*
11f=" id="2" name="L92999999999*      am" iddeeermmme1"c hrefd64_ed11f=">11fhriddeeermmme1"c hrefe=pvt" f1x_early+rly_chancoun"sref">mask1f1x_early+rly_chancoun"srfg"s="sref">amd64_determine_memory_type(struct &qurivers/edac/amd6=ys_L942"> 942 945                

<1125>
u6hi_rL   _sefd64_ed11f=">11fhi_rL   _sefry_type(struct amuselv_earef="+code=amd6uselv_eary_tlllllllllllunsigneass="line" name="cs_m2d64_ed10f=2>10f4" id="L934" class="l2ne" n29="sre name="L901"> 90111/3>
"x4&quass="128odl=ede href="+code=amd64_pvt" class="sref">amd64edac_hsgss="sref">ashifsref"dac_hsgsname="  1125>
11f5" id="L945" edctedac_lhref="+code=addrdctedac_lhASKGENMASK)ass="srKhifs;"x4"
x86
 942amd64_determine_memory_t)lllllllllllunsigneass="line" name="cs_m21"> 931
" id="L894" unsigneass="line" name="shif3class="sre3">aDCSM1[%d]pan class3"stri30">"x4"
 938     3ne" n30line" name="L818"> 8181121>
11/1" id="L901"3class30="sref">x86 == 0x,11f3>
ashifsref"dac_hsgsname id="L894" unsigneass="line" name="shif3c3edac/amd3499999999*      "x4&qua="comment">/*
1163" id=3ref">GENMA3Khifs;/*
 F2x110[DctSelIseLvA" i] - md64_ed useerle">1 N4_reahr11f="drivers/edac/amd64_ed11f=">1163" id=3r6f">GENMA3K_ed10f=">10f5" id="L935"3class30 class="comment">/*
11f=" id="3ss="sref">364x86
1_eac/amd"> 9421_eac/amd id=" id="L932" clas>amd64_determine_memory_t))  name="L901"> 90111/3>
u64x86 == 0x11158>
amuselv_L942"> 9421_L942"> 9421_L942 id=" id="L932" clas>amd64_determine_memory_t) id="L894" unsigneass="line" name="shif3c9e" naiss3"  ly_cha;c 9423"sref">u643/i; 86410f5>
11f=" id="3_ed11f=">13f=" id="L880" elsen class3"stri31 F2x%x\n" 942u64"x4"
<,11f3>
 942GENMAS6ass="srKhifs;1112" id="L852"3class31classid="L894" unsigneass="line" name="shif3="sref">pv3 93511/6>
 94211/82)  name="L901"> 90111/3>
 86a> == 0x11158>
am="drivers/edac/amd64_ed11/=">11/9" id="L849" claselv_L942"> 94211/81 ? 9 : 6hifs;GENMA34_ed11f=">11f5" id="L935"3class31 F2x%x\n"
<11158>
11f9temphr11f="drivers/temp/=">11/9" id="L849" clhwesgst_lhnine"class="line"hwesgst_lhni id=""> 93511/6>
 93511/6>
 942GENMAS16)=/=">11/81F/) hf">uu2known syndrom< n class04x - DCSM1[%3ss="sref">3GENMASK"x4"
c
<,11f3>
""> 93511/6>
 942GENMASclass="sref">am="drivers/edac/amd64_ed11/=">)ass="srK) ^d64_ed11f=">11f9temphr11f="drivers/temp/=">known syndrom< n class04x - DCSM1[%3s9e" naiss3_ed11f=">11f8" id+code=x83" cla31line" name="L852"> 8534"> 934     1161>
pvt"x4"
11f=" id="L818"3class32">"x4"
"> 93511/6>
 942GENMAS(12 +/9" id="L849" clhwesgsthref="+code=amd6hwesgsth id=" id="L932" clasuselv_earef="+code=amd6uselv_eary_tl))ass="srKhifs;x86 934     1161>
pv3   WIDTH_12>;"x4&qu/1068>
 942amd64_determine_memory_t)lllllllllllunsigneass="line" name="cs_m3d64_ed11f=3>1124" id="L934" class="l3ne" n32="sref">x86 == 0x,11f3>
~class="sref">amd64edac_hsgss="sref">ashifsref"dac_hsgsname=ss="srKhifs;GENMA34_pK8_REV_Def="="+code=x83" cla32line"="sref">c 9423"diff="sre3">amd64_pdiffef="an class3"stri3g">"x4&qu,11f3>
" id="L894" unsigneass="line" name="shif3sref">c 934     1161>
c 9423ass="line"3name="L938"> 938     3  f="Conmlsr11f="=ys_L942s="l1f="dormalize"Lac/  931d="L11f=" id="3to win an 3bfuscatedoC> 938     3  /* not e(struct &qurivers/edac/amd6hridget_dorm_dct_L942"> 942mask1f1x_early+rly_chancoun"srfg"s="sref">amd64_determine_memory_typrivers/edac/amd64_ed11f=rL   d64_determine_mrL   _pvt" cl"> 945                "x4"
&qurivers/edac/amd6=ys_L942"> 942
u6hi_rnine"class="line"hi_rni_pvt" cl"> 945                dclr1852"> 85/ hr10f="e(struct 11f9" tedac_base_L942"> 942 938     3  &qulass="line"class="line" nacly_cha931"> 3mls"      3S siz< (mb)> 938     3  /* not u8(struct &qurivers/edac/amd6md64_o class="sref">acsmd64_o c/=">known syndrom< n class04x - DCSM1[%3====9999993===========> 938     3  "x4&quass="128odl=ede ="line" n8"e=amd646">&qurivers/edac/amd6dr="dbase"> 942dclr1/9" id="L849" clget_dr="dbase"> 942amd64_determine_memory_type(struct 0L9399999999932" 938     3  f5" id="L945" e ="line" n8"e=amd646">&qurivers/edac/amd6hole_o class="sref">acshole_o cass="sref">dclr11/9" id="L849" clhr011har_o csemd64_ed11f=">11fhr011har_o csem id=" id="L932" clas>amd64_determine_memory_t) id="L894" unsigneass="line" name="shif399999" 1L93999999999f4" 938     3  "x4&quarly+rly_chanco<="line" n8"e=amd646">&qurivers/edac/amd6dgtedac_base_o class="sref">acsdgtedac_base_o c>"x"  1125>
11f5" id="L945" edctedac_hss="lode=cc6_basdctedac_hsd64_=/=">11/8FFFFFC00) hr11f="dr16hifs;2L9339999999912>;<938     3  c 94239999">3L9339999999912>;<938     3  "x4&qu818"> 8181121>
 90111/3>
4L933999999992f6" 938     3  "x4"/*
1163" id=39999">5L93399999999512" 938     3  /*
1163" id=39/edac/amd3999999992f6" 938     3  /*
     3  /*
1163" id=39ls"      3999999910f4" 938     3  /*
11d/abovee4Gb ass="sss="sa hr11f="drivers/edac/amd64_ed11f=">1163" id=39===9999993999999910f4" 938     3  /*
1163" id=399999">0L93999999920f8" 938     3  /*
1163" id=399999" 1L933999999999"_c938     3  /*
1163" id=39999">2L933o >hifsnmme> 938     3  /*
1163" id=3llest CS s3z< of932MB.> 938     3  /*
1163" id=3e" name="L33999999999"> 938     3  /*
11f=" id="3ave a simi3ar purpose.> 938     3  "x4"
 942GENMAS16)=||"drivers/edac/amd64_ed11f=">11f=" id="3a/edac/amd3999999999*      dclr1852">/8>
 942 942amd64_determine_memory_t)) ss="sss="s"drivers/edac/amd64_ed11f=">11f=" id="3a" name="L3_mls"_ca  de=e 5pan class3"stri354F2x%x\n" 942amd64_determine_memory_t) ss="sss="s"drivers/edac/amd64_ed11f=">11f=" id="3als"      34_ed11f=">1154" id="L864"3class35line" name="L864"> 86a> ="> 93511/6>
 942G1/9" id="L849" clBIT_="line" n8"e=amd6BIT_=" id="32))lllllllllllunsigneass="line" name="cs_m3diff="sref3>amd64_pdiffef="pan class3"stri35 F2x%x\n"
<11158>
acsmd64_o c/=">11/9" id="L849" clhole_o class="sref">acshole_o cass=s"drivers/edac/amd64_ed11f=">11f=" id="3a9999">0L93>11f6" id="L896" class="l3ne" n35class="sref">end_bit3d11f=">11f3" id="L897" else"+code=x83" cla35 F2x%x\n"
<11158>
acsmd64_o c/=">11/9" id="L849" cldgtedac_base_o class="sref">acsdgtedac_base_o c>&qus"drivers/edac/amd64_ed11f=">11f=" id="3a999">2L933_mls"_ca  de=e 6pan class3"stri35line" name="L}uot; 90111/3>
c 86410f5>
11f=" id="3d64_ed11f=3>11f=" id="L879" class="l3ne" n36 class="comment">/*
1163" id=3/edac/amd63_ed11f=">11f1" idclass="l3ne" n36 class="comment">/*
1 a validehole         ss="sss="sa hr11f="drivers/edac/amd64_ed11f=">1163" id=3s name="L934_ed11f=">1162" id="L852"3class36 class="comment">/*
1163" id=3L923" clas3="line" n8"> 938     3  /*
1163" id=3Lls"      3ha="innuse.> 938     3  /*
1163" id=3Liff="sref3="line" na"> 938     3  /*
1163" id=3ass="line"3na* Rlass=:> 938     3  /*
11f3nnoperation> 938     3  /*
11f=" id="3="line" na3 Paro back:> 938     3   85/1068>
 942amd64_determine_memory_t) ss="sss="s="> 93511/6>
 942G1/9" id="L849" clBIT_="line" n8"e=amd6BIT_=" id="32))lllllllllllunsigneass="line" name="cs_m3nmme9DCL0_3OWtrinister> 938     3  
<11158>
acsmd64_o c/=">11/9" id="L849" clhole_o class="sref">acshole_o cass=s"drivers/edac/amd64_ed11f=">11f=" id="3939" class3"line" na*      "x4"3 class="sr3f">amd64_pvt *"x4"
<11158>
acsmd64_o c/=">11/9" id="L849" cldr="dbase"> 942 9ne" na hr11fli3nea)=37class="sref">end_bit
"x4"
 93511/6>
 942c 942acsmd64_o c/=">1fs="sref">c 942 934     1161>
"x4"
u64/*
1163" id=39"line" na3vt/*
* checks5/101f="csrow pnt"ed1f="is mark1d/as SPARED,5/10soL,11f3>sl1f="dewa hr11f="drivers/edac/amd64_ed11f=">1163" id=3s="sref">c3csrow_cfg,l-1,l-1,0x%38x re38atum 637 workaround
* 37 re rowa hr11f="drivers/edac/amd64_ed11f=">1163" id=3s39" class3rac"DCSM1[%d]=0x%38x re38 class="comment">/*
*a hr11f="drivers/edac/amd64_ed11f=">11f=" id="3sclass="sr3">aDCSM1[%d]pan class3"stri38">&qu/* not used */
11fhr01procd="_possible_37 ree=pvt" f1x_early+rly_chancoun"sref">mask1f1x_early+rly_chancoun"srfg"s="sref">amd64_determine_memory_typarly+rly_chancoamd64_pvt *addr<10f3>
acsmsrowa melllllllllllunsigneass="line" name="cs_m3L932" clas3="lllllllllclass="+code=e3d_bit38line" name="L901"> 90111/3>
"x4&qu9f">addr<10f3>
11f=" id="3s< n class3id="L934" c else"+code=x83" cla38e="L934"> 934     1115>
 938     3  "x4&qu/1068>
11fon> 93_37 re_swap_done id=" id="L932" clas>amd64_determine_memory_type(struct  *     3  end_addr<10f3>
acsmsrowa me="L98>
 93_37 re_bad_dr="c8 id=" id="L932" clas>amd64_determine_memory_type(struct  * 90111/3>
     3  "x4"
 85211/9>
(struct  *(struct amd64_determine_memory_t)  name="L901"> 90111/3>
      3  * E39 F2x%x\n"

 942(struct  *(struct amd64_determine_memory_t) /=">11/82)  name="L901"> 90111/3>
 938     3  
end_addr<10f3>
acsmsrowa me=">addr<10f3>
11f=" id="3lclass="sr3e" - norsk)> 938     3  "x4"
11f=" id="3l932" clas3999999999*      dclr1852"> 8534"> 934     1161>
 934     1161>
 934     1161>
"x4&qu,11f3>
acsmsrowa mes"drivers/edac/amd64_ed11f=">11f=" id="3l 9n-chipk34 934     1161>
"x4"
 931/*
1163" id=4class="sre4">aDCSM1[%d]pan class4"stri40atum 637 workaround
* It167"11oc/al1f="aRAM ac/ mline"base54" ce and mline"mask54" ce 1f=">116s look/am3for aa hr11f="drivers/edac/amd64_ed11f=">1163" id=4c1ass="sre4"acnat AMD.> 938     4ne" n40 class="comment">/*
* Sy>11mA" i match onedac/specifi1d/'Cd64_edSac/am' and m#39;NrivIDm#39;a hr11f="drivers/edac/amd64_ed11f=">1163" id=4c2ass="sre4"" - norsk)> 938     4class40 class="comment">/*
1163" id=4c3ass="sre4"99999999*      /*
* R11f3>:a hr11f="drivers/edac/amd64_ed11f=">1163" id=4c4ass="sre4"IT_cfg"3spo!a hpan class4" cla40 class="comment">/*
*uuuuuu-EINVAL:  NOT FOUNDa hr11f="drivers/edac/amd64_ed11f=">1163" id=4c5ass="sre4"10f4" id="L934" class="l4"stri40 class="comment">/*
*uuuuuu0..csrow = Crs/-Sac/am Rowa hr11f="drivers/edac/amd64_ed11f=">1163" id=4r6f">GENMA4K_ed10f=">10f5" id="L935"4class40 class="comment">/*
*a hr11f="drivers/edac/amd64_ed11f=">11f=" id="4ss="sref">464
 *&qurivers/edac/amd6in_L942"> 942
11f9nid"> 942amd64_pvt *u64 90111/3>
u644/i;mask1f1x_early+rly_chancoun"srfg"s="sref">amd64_determine_memory_ts"drivers/edac/amd64_ed11f=">11f=" id="4"1ass="sre4f=" id="L880" elsen class4"stri41 F2x%x\n& id="L932" clas<="line" n8"e=amd646">&qurivers/edac/amd6csdbase"> 942 942"x4&qu9f">addr<10f3>
 942 9421112" id="L852"4class413>"x4&qu9f">addr<10f3>
acsmsrowa mes"drivers/edac/amd64_ed11f=">11f=" id="4="sref">pv4"x4"
11f4" idclass="l4ne" n41ent">/* not u8(struct  94211f=" id="4=6f">GENMA44_ed11f=">11f5" id="L935"4class41">"x4&qu/106lass="128odl=edemcss="lode=cc6_basmcsa melllllllllllunsigneass="line" name="cs_m4ss="sref">4GENMASKend_bit<,11f3>
 942c"x4"
amd64_determine_memory_t=">addr<10f3>
11f5" id="L945" eemo_infhref="+code=addremo_infha mes"drivers/edac/amd64_ed11f=">11f=" id="4cl=0s="sre4">pvt"x4"
11f=" id="L818"4class42 F2x%x\n& id="L932" clas1f="_dbine"class="line"lf="_dbie=pvt1"L879" class="line" nam54" ceinput  931:"sref">ullx,1ac/: ef">udmmmline" namcamdrivers/edac/amd6in_L942"> 942
 *  K8_REV_Fef="="+code=x84" cla4s="sre"drivers/edac/amd64_ed11f=">11f=" id="4c3ass="sre4mls"_ca  de=e 1ef="+code=4clr1"423F2x%x\n& id="L932" clasfor_eachvers/edac/amd64_ed11f=">11fhor_eachvers/edac/am id=" id="L932" clasrcrowlass="sref">acsmsrowa meype(struct  *(struct amd64_determine_memory_t)  name="L901"> 90111/3>
pv4   WIDTH_12>; 942acsmsrowa meype(struct  *(struct amd64_determine_memory_t)lllllllllllunsigneass="line" name="cs_m4d64_ed11f=4>1124" id="L934" class="l4ne" n42="sref">x86 == 0xxxxxxxxxcontinues"drivers/edac/amd64_ed11f=">11f=" id="4c6f">GENMA44_pK8_REV_Def="="+code=x84" cla42line"="sref">c 9424"diff="sre4">amd64_pdiffef="an class4"stri42class="sref">end_bit(struct  942amd64_determine_memory_type(struct acsmsrowa meype(struct  * 942 942"x4"
 85211/9>
 85CSROW=ef">ud5CSBase=sref">ullx5CSMask=sref">ullxmmmline" namcamd64_info" class="sref">apossiblancode= 4ass="line"4name="L938"> 938     4  
(struct acsmsrowa meype(struct  942 942 934     11/1>
 938     4  "x4" 942~class="sref">amN_ONask"> 942 938     4  
 85(InputA" i /=">11~CSMask)=sref">ullx5(CSBase /=">11~CSMask)=sref">ullxmmmline" namcamd64_info" class="sref">apossiblancode= 4a64_ed11f=4S siz< (mb)> 938     4  x86 == 0xxxxxxxxx5"> 93511/6>
 942c 942
 942c 942GENMA4===========> 938     4  c 942499999">0L9499999999932" 938     4  end_bit<818"n> 93511/6>
 942c 942
 942c 942 90111/3>
     4  
<11158>
 942amd64_determine_memory_type(struct  *(struct acsmsrowa mels"drivers/edac/amd64_ed11f=">11f=" id="4t9e" naiss49999999912>;<938     4  c 94249999">3L9349999999912>;<938     4  
<11158>
MATCH"csrow=ef">udmmmline" namcamdrivers/edac/amd6mc_found"> 9424L934999999992f6" 938     4  "x4"5L93499999999512" 938     4  "x4" 934     1161>
     4  end_bit
     4  
 942     4  
GENMA4999999910f4" 938     4  c 942499999">0L94999999920f8" 938     4  /*
1163" id=499999" 1L943999999999"_c938     4  /*
* Se> F2x10C. Non-useerle">1d graphics fra> buffer s="lin und/al1f="16G i"d6hr11f="drivers/edac/amd64_ed11f=">1163" id=49999">2L934o >hifsnmme> 938     4  /*
* swapp1d with a 1f="on loca11d/ar11f="bottomLof s="lin s"l1far11f="GPU ccomu; 938     4  /*
*edac/useerle">1d/1f="on and thus two md64_eds64" id="L939" class="line" na* Get 05"> umber 4e" name="L43999999999"> 938     4  /*
*a hr11f="drivers/edac/amd64_ed11f=">11f=" id="4ave a simi4ar purpose.> 938     4  &qu/* not  id="L932" clas<="line" n8"e=amd646">&qurivers/edac/amd6hrx_swap_useerle">1d_1f="on_pvt *1d_1f="one=pvt" f1x_early+rly_chancoun"sref">mask1f1x_early+rly_chancoun"srfg"s="sref">amd64_determine_memory_type(struct &qurivers/edac/amd6=ys_L942"> 942 90111/3>

11f9swap_1f="> 942(struct  942(struct (struct  942(struct  942 934     1115>
amd64_pdiffef="pan class4"stri45">"x4&qu/1068>
 942&qu.8>
&quo"L90x10l  name="L901"> 90111/3>
0L94>11f6" id="L896" class="l4ne" n45class="sref">end_bit<637 workaroundf="only/1fvC3 and 1fvEeh">1 1far1fea1f3e
*a hr11f="drivers/edac/amd64_ed11f=">11f=" id="4a9999" 1L94" id="L897" else"+code=x84" cla45 F2x%x\n"
 942&qu.8>
11f=" id="4a999">2L934_mls"_ca  de=e 6pan class4"stri45line" name="L852"> 85555568>
 942&qu.8>
c
 942&qu.8>
 942"x4"
 94211f1" idclass="l4ne" n46="sref">x86 934     1161>
 938     4  
amd64_determine_memory_type(struct  934     1115>
 938     4  "x4&qu/106l"> 93511/6>
 94211/81)lllllllllllunsigneass="line" name="cs_m4d9999">0L94na* Rlass=:> 938     4  end_bit<,11f3>
 942 938     4  "x4"
 938     4   942
 942GENMAS3) /=">11/87fs"drivers/edac/amd64_ed11f=">11f=" id="4nmme9DCL0_4OWtrinister> 938     4  (struct  942GENMAS11) /=">11/87fs"drivers/edac/amd64_ed11f=">11f=" id="4n64_ed11f=4"line" na*       942 942GENMAS20) /=">11/87fs"drivers/edac/amd64_ed11f=">11f=" id="4nve a simi4f">amd64_pvt *"x4&que(struct  942 942GENMAS27s"drivers/edac/amd64_ed11f=">11f=" id="4n name="L94e="L942"> 9ne" na hr11fli4nea)=47classid="L894" unsigneass="line" name="shif4n923" clas4r11f="drivers/edac/amd64_4s="co47">"x4&qu/106l"> 93511/6>
 942GENMAS34) ss="sss="s"drivers/edac/amd64_ed11f=">11f=" id="499DCT> ly_44x - DCSM1[%d]pan cla4s="co47="sref">x86 =("n> 93511/6>
 942G1/9" id="L849" cl=wap_base"> 942 93511/6>
 942G1/9" id="L849" cl=wap_limiivers/edac/amd64_wap_limiiry_t))=||"drivers/edac/amd64_ed11f=">11f=" id="4nss="line"4tend_bn> 93511/6>
 942G& id="L932" clasrgn_size"> 942u64
 942 93511/6>
&qu)n"srfg"s="sref"=wap_base"> 942c 9424s="sref">c4csrow_cfg,l-1,l-1,0x%48x re48 F2x%x\n&,11f3>
 942 934     1161>
aDCSM1[%d]pan class4"stri48="sre"drivers/edac/amd64_ed11f=">11f=" id="4L932" clas4="lllllllllclass="+code=e4d_bit48 class="comment">/*/* For a gc/an @fr="drL   , checku/10@=ys_L942sfalls withf="it.
*a hr11f="drivers/edac/amd64_ed11f=">11f=" id="4span claa 4d="L873" class="l="L903" 4lass=48">&qu/* not used */
 *mask1f1x_early+rly_chancoun"srfg"s="sref">amd64_determine_memory_typrivers/edac/amd64_ed11f=rL   d64_determine_mrL   _pvt" cl"> 945                x86 == 0xxxxxxxxx5555555555e(struct &qurivers/edac/amd6=ys_L942"> 942un"srfg"s="sref"nid"> 942un"srfg"s="sref"md64_srfg"unsigneass="lmd64_srf_pvtlllllllllllunsigneass="line" name="cs_m4ass="line"4name="L938"> 938     4  &qu name="L901"> 90111/3>
 9n-chipk4ll ecc mls"_c938     4  9f">addr<10f3>
 942 942     4  "x4&quarly+rly_chanco<="line" n8"e=amd646">&qurivers/edac/amd6md64_L942"> 942 938     4  11f9" tedac_base_pvt *      4  * E49 F2x%x\n&e(struct ammd64_ed"> 942 938     4  u6high_rL   g"unsigneass="lhigh_rL   a me="> */
 * 938     4  amn
 942amd64_determine_memory_type(struct 
amuselv_earef="+code=amd6uselv_eary_t37;1/9" id="L849" cldr="duselv_earef="+code=amd6dr="duselv_ea id=" id="L932" clas>amd64_determine_memory_type(struct /* not u8(struct 11f9uselv_srfg"unsigneass="luselv_srfa me="> */
amd64_determine_memory_type(struct c 9424l 9n-chipk44f5" id="L945" e/="d_dbine"class="line"lf="_dbie=pvt1"L879" class="line" nam54" ce(rL    ef">ud) Sy>11mA" i="sref">ullx Limii=sref">ullxmmmline" namcamd64_info" class="sref">apossiblancode= 4d" name="L4vt 942amd64_determine_memory_type(struct c 9425class="sre5">aDCSM1[%d]pan class5"stri500>"x4&qu818"> 8181121>
 942amd64_determine_memory_t) ss="sss="s"drivers/edac/amd64_ed11f=">11f=" id="5c1ass="sre5"acnat AMD.> 938     5ne" n50">"x4"<> 8181121>
 942amd64_determine_memory_t) fl>G1/9" id="L849" cl=ys_L942"> 942 938     5class50">"x4"<9" id="L849" cl=ys_L942"> 942G& id="L932" clasBIT_="line" n8"e=amd6BIT_=" id="32))  name="L901"> 90111/3>
dclr1arly+rly_chancoun"srewararef="+code=amd6un"srewara id=" 79" class="line" nam54" ceHuh? A931d="Lis1f="dac/MMIOehole:"sref">u016llxmmmline" namcamd64_info" class="sref">apossiblancode= 5c4ass="sre5"IT_cfg"3spo!a hpan class5" cla504F2x%x\n" 942x86 == 0x,11f3>
-addr<10f3>
 942GENMA5K_ed10f=">10f5" id="L935"5class50 F2x%x\n&34"> 934     1161>
564"x4"
u64"x4&qu818"> 8181121>
 93511/6>
 93511/6>
 942GENMAS12)1fs="sref">c 85,11f3>
-addr<10f3>
 942u645/i;"x4"
 942 */
1d_1f="on_pvt *1d_1f="one=pvt id="L932" clas>amd64_determine_memory_type(struct  9421112" id="L852"5class513F2x%x\n& id="L932" clas" tedac_base_pvt * 942amd64_determine_memory_t) id="L894" unsigneass="line" name="shif5="sref">pv5"x4"
11f4" idclass="l5ne" n51ent">/* not u8="comment">/*
1163" id=5=6f">GENMA54_ed11f=">11f5" id="L935"5class51 class="comment">/*
G1/DctSelBaseA931[47:27] are to"bemu;1163" id=5=s="sref">5GENMASK/*
 umber 5=ne" naiss5ef">c/*
11f=" id="5s9e" naiss5_ed11f=">11f8" id+code=x85" cla51line" name="L818"> 8181121>
 942amd64_determine_memory_t) ss="sss="s"drivers/edac/amd64_ed11f=">11f=" id="5cl=0s="sre5">pvt 942amd64_determine_memory_t) ss="sss="s"drivers/edac/amd64_ed11f=">11f=" id="5c1ass="sre54_ed11f=">11f=" id="L818"5class52">"x4""n> 93511/6>
 942GENMAS27) f">G1/1/8>
 *GENMAS11))lllllllllllunsigneass="line" name="cs_m5c2ass="sre5>  K8_REV_Fef="="+code=x85" cla52">"x4" */
pv5   WIDTH_12>;
 942 */
 942amd64_determine_memory_type(struct  942(struct 11f=" id="5cedac/amd65>1124" id="L934" class="l5ne" n52e="L934"> 934     1115>
GENMA54_pK8_REV_Def="="+code=x85" cla526F2x%x\n&1125>
 942 */
 942amd64_determine_memory_type(struct (struct  942 934     1115>
5">amd64_pdiffef="an class5"stri52class="sref">end_bit<<<<<<<<<<<<<<<<<<<<<<<<<<(struct  *"x4"
/*/* Removeen
" n, dae F1x120f*a hr11f="drivers/edac/amd64_ed11f=">11f=" id="5ass="line"5name="L938"> 938     5  "x4&qu818"> 8181121>
 938     5  "x4"
 942"n> 93511/6>
 942GENMAS(12 +(struct "x4" 93511/6>
 94211/8fff)s"drivers/edac/amd64_ed11f=">11f=" id="5c/edac/amd5ppings are:> 938     5   938     5  /*/* removeemd64_ed/useerle">1f*a hr11f="drivers/edac/amd64_ed11f=">11f=" id="5aedac/amd65S siz< (mb)> 938     5  x86 8181121>
1_eac/amd"> 9421_eac/amd id=" id="L932" clas>amd64_determine_memory_t) ss="sss="s"drivers/edac/amd64_ed11f=">11f=" id="5t6f">GENMA5===========> 938     5   942amd64_determine_memory_t) ss="sss="s"drivers/edac/amd64_ed11f=">11f=" id="599999">0L9599999999932" 938     5  endlass="128odl=ede1gtegL  " n_eac/amd"> 942amd64_determine_memory_t))  name="L901"> 90111/3>
     5  "x4"
;<938     5   85/1068>
1_L942"> 9421_L942 id=" id="L932" clas>amd64_determine_memory_t) != 1)  name="L901"> 90111/3>
3L9359999999912>;<938     5  

1_L942"> 9421_L942 id=" id="L932" clas>amd64_determine_memory_t) "L90x3)"drivers/edac/amd64_ed11f=">11f=" id="59999">4L935999999992f6" 938     5  "x4"/*/* hash 9f*a hr11f="drivers/edac/amd64_ed11f=">11f=" id="59999">5L93599999999512" 938     5  "x4"
 942"n> 93511/6>
 942GENMAS10l hr11f="dr9)1|"drivers/edac/amd64_ed11f=">11f=" id="59/edac/amd5999999992f6" 938     5  dclr1852"> 85555555555555555555555n> 93511/6>
 94211/81ff)s"drivers/edac/amd64_ed11f=">11f=" id="59" name="L599999999512" 938     5  59ls"      5999999910f4" 938     5  x86 == 0xxxxxxxxx55555555s="comment">/*/* A[6] or hash 6f*a hr11f="drivers/edac/amd64_ed11f=">11f=" id="596f">GENMA5999999910f4" 938     5  
 942"n> 93511/6>
 942GENMAS7l hr11f="dr6)1|"drivers/edac/amd64_ed11f=">11f=" id="599999">0L95999999920f8" 938     5  end_bit<<<<<<<<<<<<<<<<<<<<<<<<<<<555n> 93511/6>
 94211/83f)s"drivers/edac/amd64_ed11f=">11f=" id="599999" 1L953999999999"_c938     5  599e" naiss5o >hifsnmme> 938     5   8555555555s="comment">/*/* A[12]f*a hr11f="drivers/edac/amd64_ed11f=">11f=" id="5llest CS s5z< of932MB.> 938     5  
<11158>
 942"n> 93511/6>
 942GENMAS13lnhr11f="dr12)1|"drivers/edac/amd64_ed11f=">11f=" id="5e" name="L53999999999"> 938     5  "x4" 93511/6>
 94211/8fff)s"drivers/edac/amd64_ed11f=">11f=" id="5ave a simi5ar purpose.> 938     5  x86 934     1161>

ullxmmmline" namcamdrivers/edac/amd6md64_L942"> 942 934     1115>
amd64_pdiffef="pan class5"stri556F2x%x\n&1125>
 942 942 942 9420L95>11f6" id="L896" class="l5ne" n55">"x4"
"x4&qu818"> 8181121>
 942G1/0l  name="L901"> 90111/3>
2L935_mls"_ca  de=e 6pan class5"stri55line" name="L852"> 85un"srfg"s="sref"nid"> 942 */
 942c */
 942"x4&qu34"> 934     1161>
11f1" idclass="l5ne" n56="sref">x86
 942 934     1161>
 938     5  "x4"

mask1f1x_early+rly_chancoun"srfg"s="sref">amd64_determine_memory_type(struct &qurivers/edac/amd6=ys_L942"> 942 934     1115>
 938     5  un"srfg"s="sref"n
 *un"srfg"s="sref"md64_srfg"unsigneass="lmd64_srf_pvtlllllllllllunsigneass="line" name="cs_m5d9999">0L95na* Rlass=:> 938     5   90111/3>
 938     5  "x4&qu8f">addr<10f3>
 942 942 938     5  "x4"
 8181121>
G& id="L932" clasaRAM_RANGESd64_determine_maRAM_RANGES_pvts& id="L932" clasrL   d64_determine_mrL   _pvt++l  name="L901"> 90111/3>
amd64_pvt * 9ne" na hr11fli5nea)=57lass="sref">dclr1/106lass="128odl=edefr="drwlass="sref">acsfr="drw id=" id="L932" clas>amd64_determine_memory_type(struct  934     1115>
 93511/6>
amd64_determine_memory_type(struct G1/9" id="L849" cl=ys_L942"> 942end_bbbbbbbbn> 93511/6>
amd64_determine_memory_type(struct G1/9" id="L849" cl=ys_L942"> 942 90111/3>
u64"x4"
 8555555555s125>
 942amd64_determine_memory_type(struct 
c5csrow_cfg,l-1,l-1,0x%58x re58 F2x%x\n"
 942 */
 *
"x4" 8555555555s125>
11f=" id="5sclass="sr5">aDCSM1[%d]pan class5"stri58">"x4" 8181121>
 942G1/0l"drivers/edac/amd64_ed11f=">11f=" id="5s name="L95="lllllllllclass="+code=e5d_bit58lass="sref">dclr1852"> 8555555555breaks"drivers/edac/amd64_ed11f=">11f=" id="5span claa 5d="L873" class="l="L903" 5lass=584F2x%x\n" 934     1161>
x86 934     1161>
 938     5  
 942     5   934     1161>
     5  "x4"
 938     5  /*
1163" id=5l memory. 5This methocomment">      5  * E59 class="comment">/*
*eFor vererence dae mline"2.8.5 Routing aRAM Requests54" ce\in F10 BKDG. Tais driv map"d6hr11f="drivers/edac/amd64_ed11f=">1163" id=5l39" class5oacnat AMD.> 938     5  /*
* a0@=ys_L942sto NrivID,1ac/ (md64nrf) and ers/ dac/am"(CSROW)64" id="L939" class="line" na* Get 05"> umber 5lclass="sr5e" - norsk)> 938     5  /*
*4" id="L939" class="line" na* Get 05"> umber 5l name="L95999999999*      /*
* The0@=ys_L942sis usually an error  931d=" vecei>1d/from"dac/hardw ree= id="L939" class="line" na* Get 05"> umber 5lpan claa 5BIT_cfg"3spo!a hpan class5"stri594F2x&s="comment">/*
* (MCX_ADDR)64" id="L939" class="line" na* Get 05"> umber 5l< n class5>10f4" id="L934" class="l5ne" n59ent">s="comment">/*
*a hr11f="drivers/edac/amd64_ed11f=">11f=" id="5css="line"54_ed10f=">10f5" id="L935"5class59line"/* not voiedac/amd64_ed11f=hrx_map_sysL942_to_c8rowlass="sref">acshrx_map_sysL942_to_c8row id="" f1x_early+rly_chancomem_ctc_usfolass="sref">acsmem_ctc_usfohancoun"srfg"s="sref"mcilass="sref">acsmciry_type(struct &qurivers/edac/amd6=ys_L942"> 942 934     1115>
end_bit<<<<<<<<<<<<<<<<<<<<<(struct  * 90111/3>
mask1f1x_early+rly_chancoun"srfg"s="sref">amd64_determine_memory_t="> */
acsmciry_t-f">Gn"srfg"s="sref">am_usfolass="sref">acs>am_usfoa mes"drivers/edac/amd64_ed11f=">11f=" id="6class="sre6">aDCSM1[%d]pan class6"stri60 F2x%x\n&e(struct 11f9pa  d64_determine_mpa  ry_type(struct  938     6ne" n60">"x4&qu8f">addr<10f3>
 942acsmsrowa meype(struct 0G"drivers/edac/amd64_ed11f=">11f=" id="6c2ass="sre6"" - norsk)> 938     6class60="sre"drivers/edac/amd64_ed11f=">11f=" id="6c3ass="sre6"99999999*       942ss="s9" id="L849" clpa  d64_determine_mpa  ry_typss="s9" id="L849" cloffsemd64_determine_moffsema mels"drivers/edac/amd64_ed11f=">11f=" id="6c4ass="sre6"IT_cfg"3spo!a hpan class6" cla60">"x4"
x86acsmsrowa me="> */
amd64_determine_memory_type(struct  942ss="s9" id="L849" clnid"> 942c 9426ss="sref">664918"> 8181121>
acsmsrowa me=f="dr0l  name="L901"> 90111/3>
u64(struct acsmciry_typ1y34"> 934     1115>
 85<<<<<<<<<<<<<<<<<<<<(struct (struct (struct  * 934     1115>
u646/i;
 934     1115>
"x4"apossiblancode= 6"2ass="sre6  +refa e=ede=e 1an class6"stri61">"x4"1112" id="L852"6class61lass="sref">dclr1,11f3>s"drivers/edac/amd64_ed11f=">11f=" id="6"4ass="sre6 934     1161>
11f4" idclass="l6ne" n61e="L934"> 934     1115>
GENMA64_ed11f=">11f5" id="L935"6class616F2x%x\n&1="comment">/*
1163" id=6=s="sref">6GENMASK/*
 umber 6=ne" naiss6ef">c/*
 umber 6=9e" naiss6_ed11f=">11f8" id+code=x86" cla61 class="comment">/*
 umber 6cl=0s="sre6">pvt/*
11f=" id="6c1ass="sre64_ed11f=">11f=" id="L818"6class62">"x4&qu/1068>
 942amd64_determine_memory_t))"drivers/edac/amd64_ed11f=">11f=" id="6c2ass="sre6>  K8_REV_Fef="="+code=x86" cla62">"x4"> 93511/6>
 *acsmciry_type(struct  *pv6   WIDTH_12>;
(struct acsmciry_typ1y34"> 934     1115>
x86 == 0xxxxxxxxx55555e(struct (struct (struct  * 934     1115>
GENMA64_pK8_REV_Def="="+code=x86" cla62 F2x%x\n"spaaaaaaaaa#37;xacsmsrowa meype(struct  934     1115>
6">amd64_pdiffef="an class6"stri62class="sref">end_bit<<<<<<<<<<<<<<879" class="line" nam54" cemline" namcam"L879" class="line" nam54" cemline" namcamls"drivers/edac/amd64_ed11f=">11f=" id="6cne" naiss6mls"_ca  de=e 1hpan class6"stri62">&qu34"> 934     1161>
c 9426ass="line"6name="L938"> 938     6  /*
1163" id=6a1ass="sre6bfuscatedoC> 938     6  /*
* debug routine to"display"dac/memory sizes of all logical DIMMs and it"d6hr11f="drivers/edac/amd64_ed11f=">1163" id=6chip selec6 siz 938     6  /*
* CSROW"d6hr11f="drivers/edac/amd64_ed11f=">1163" id=6c3ass="sre6ppings are:> 938     6  /*
*a hr11f="drivers/edac/amd64_ed11f=">11f=" id="6e" name="L63999999999"> 938     6  &qu/* not voiedac/amd64_ed11f=1f=">1debug_display_dimm_size841"c hrefinfo" 1f=">1debug_display_dimm_size8 id="" f1x_early+rly_chancoun"sref">mask1f1x_early+rly_chancoun"srfg"s="sref">amd64_determine_memory_type(struct ammtrfg"unsigneass="lmtrf_pvtlllllllllllunsigneass="line" name="cs_m6aedac/amd66S siz< (mb)> 938     6   90111/3>
GENMA6===========> 938     6  addr<10f3>
 942(struct  *(struct  *(struct 0G"drivers/edac/amd64_ed11f=">11f=" id="699999">0L9699999999932" 938     6  f5" id="L945" e 942> 93511/6>
Gn"srfg"s="sref"csel841"c hrefinfo" csel8ry_t[1].n"srfg"s="sref"csbase841"c hrefinfo" csbase8_pvt :5e(struct Gn"srfg"s="sref"csel841"c hrefinfo" csel8ry_t[0].n"srfg"s="sref"csbase841"c hrefinfo" csbase8_pvtG"drivers/edac/amd64_ed11f=">11f=" id="69ne" naiss6999999999f4" 938     6  "x4&quarly+rly_chanco11f9"bam"> 942"">> 93511/6>
Gn"srfg"s="sref"1bam1_pvt *(struct Gn"srfg"s="sref"1bam0_pvt *;<938     6  c 94269999">3L9369999999912>;<938     6  "x4&qu818"> 8181121>
 *&qu.n"srfg"s="sref"x8ame="L938"y_cha9x8 F2x&#"L90xfl  name="L901"> 90111/3>
4L936999999992f6" 938     6  "x4" 8181121>
Gn"srfg"s="sref"1clr0_pvt *c5L93699999999512" 938     6  "x4"(struct 1G"drivers/edac/amd64_ed11f=">11f=" id="69/edac/amd6999999992f6" 938     6       6  /*/* K8 families f="drrevF not supported yet
*a hr11f="drivers/edac/amd64_ed11f=">11f=" id="69ls"      6999999910f4" 938     6  x86 == 0818"> 8181121>
Gn"srfg"s="sref"ext_mreffg"unsigneass="lext_mreffa me=f="drn"srfg"s="sref"K8_REV_Fg"unsigneass="lK8_REV_F_pvtlllllllllllunsigneass="line" name="cs_m696f">GENMA6999999910f4" 938     6  s"drivers/edac/amd64_ed11f=">11f=" id="699999">0L96999999920f8" 938     6  end_bitot;699999" 1L963999999999"_c938     6  (struct hifsnmme> 938     6   934     1161>
"x4"
 938     6   942&quo1/1/8>
 942amd64_determine_memory_t)) ?5e(struct Gn"srfg"s="sref"1bam1_pvt *(struct Gn"srfg"s="sref"1bam0_pvt *x86 9421/8>
 942amd64_determine_memory_t)) ?5e(struct Gn"srfg"s="sref"csel841"c hrefinfo" csel8ry_t[1].n"srfg"s="sref"csbase841"c hrefinfo" csbase8_pvt"drivers/edac/amd64_ed11f=">11f=" id="6a/edac/amd6999999999*      dclr1852"> 85555555555555555555555555555:5e(struct Gn"srfg"s="sref"csel841"c hrefinfo" csel8ry_t[0].n"srfg"s="sref"csbase841"c hrefinfo" csbase8_pvtG"drivers/edac/amd64_ed11f=">11f=" id="6a" name="L6_mls"_ca  de=e 5pan class6"stri65">"x4"
x86ud80 (aRAM Bank A931d="LMapp" n):"sref">u08xmmmline" namcamd64_info" class="sref">apossiblancode= 6diff="sref6>amd64_pdiffef="pan class6"stri65 F2x%x\n"spaa/8>
 942&quls"drivers/edac/amd64_ed11f=">11f=" id="6a9999">0L96>11f6" id="L896" class="l6ne" n65">"x4"
"x4&quarly+rly_chancolf="_pe" tkne"class="line"lf="_pe" tk id=" id="L932" clasKERN_DEBUGg"unsigneass="lKERN_DEBUG_pvtdrivers/edac/amd6EDAC_MCg"unsigneass="lEDAC_MC_pvtdri79" class="line" nam54" ceDCTef">ud ers/ dac/ams:mmmline" namcamdrivers/edac/amd6mtrfg"unsigneass="lmtrf_pvtls"drivers/edac/amd64_ed11f=">11f=" id="6a9e" naiss6_mls"_ca  de=e 6pan class6"stri65line"="sref">c 9426s"class="s6ef">c/*/* Dump/memory sizes for DIMM and it" CSROW"
*a hr11f="drivers/edac/amd64_ed11f=">11f=" id="6d64_ed11f=6>11f=" id="L879" class="l6ne" n66 F2x%x\n&for "> 8181121>
 942 942 942 90111/3>
dclr1arly+rly_chanco=ize0_pvt * 938     6  
 942 942c 942x86 == 0xxxxxxxxxarly+rly_chanco=ize0_pvt *Gn"srfg"s="sref"op841"c hrefinfo" opsry_t-f">Gn"srfg"s="sref"1bam_to_c841"c hrefinfo" 1bam_to_c8 id=" id="L932" clas>amd64_determine_memory_tdrivers/edac/amd6mtrfg"unsigneass="lmtrf_pvtd64_info" class="sref">apossiblancode= 6Liff="sref6="line" na"> 938     6   942 942(struct  942&qulls"drivers/edac/amd64_ed11f=">11f=" id="6d9999">0L96na* Rlass=:> 938     6  "x4"
 938     6   * 938     6   85/1068>
 942 942c 942e(struct Gn"srfg"s="sref"op841"c hrefinfo" opsry_t-f">Gn"srfg"s="sref"1bam_to_c841"c hrefinfo" 1bam_to_c8 id=" id="L932" clas>amd64_determine_memory_tdrivers/edac/amd6mtrfg"unsigneass="lmtrf_pvtd64_info" class="sref">apossiname="cs_m6n64_ed11f=6"line" na*      "x4" 85555arly+rly_chancoDBAM_DIMM"> 942 942(struct  942&qulls"drivers/edac/amd64_ed11f=">11f=" id="6nve a simi6f">amd64_pvt * 9ne" na hr11fli6nea)=67lass="sref">dclr1arly+rly_chancoun"sreusfolass="sref">acsun"sreusfo id=" id="L932" clasEDAC_MCg"unsigneass="lEDAC_MC_pvtri79" class="line" nam54" ce: ef">ud: ef">u5dMB ef">ud: ef">u5dMBmmmline" namcamd64_info" class="sref">apossiblancode= 6n923" clas6r11f="drivers/edac/amd64_6s="co674F2x%x\n"arly+rly_chancodimm"> 942
<11158>
 *(struct apossiblancode= 6nls"      64x - DCSM1[%d]pan cla6s="co67="sref">x86 == 0xxxxxxxxx55555555srly+rly_chancodimm"> 942(struct  *(struct  934     1161>
 934     1161>
u64"x4"
 * name="L901"> 90111/3>
c6csrow_cfg,l-1,l-1,0x%68x re68 F2x%x\n&[ id="L932" clasK8_CPUSd64_determine_mK8_CPUSF2x&]="> name="L901"> 90111/3>
"x4"apossiblancode= 6sclass="sr6">aDCSM1[%d]pan class6"stri68">"x4" 942 942apossiblancode= 6s name="L96="lllllllllclass="+code=e6d_bit68lass="sref">dclr1.n"srfg"s="sref"f3_id"> 942apossiblancode= 6s923" clas6d="L873" class="l="L903" 6lass=684F2x%x\n" 90111/3>
x86 == 0xxxxxxxxx.n"srfg"s="sref"early_md64_ed_counmd64_determine_mearly_md64_ed_counm"sref">x">e(struct apossiblancode= 6siff="sref6name="L938"> 938     6  acsmap_sysL942_to_c8row id=">x">e(struct acsk8_map_sysL942_to_c8row_pvtd64_info" class="sref">apossiblancode= 6sss="line"6ll ecc mls"_c938     6  end_bit<<<<<<<<<.n"srfg"s="sref"1bam_to_c841"c hrefinfo" 1bam_to_c8 id=_bit<<<<<<<<<">e(struct acsk8_1bam_to_chip_dac/am_pvtd64_info" class="sref">apossiblancode= 6s9999" 1L963999999999"_c938     6  "xpcn_cS clasa hr11f=i name="cs_ F29s="sref"readsen p_dac/am_pvtd64_info" class="sref">apossiblan"drive6n"line" na5errmdacnmme> 938<6a>   686   934     1161>
    6968x re68 F2x&}c/am_pvtd64_info" class="sref">apossibla63" id=5l36" class5oacnat AMD.> 938<6a>   6918x re68 F2x%x\n&[ id="L9F10" clasK8_CPUSd64_detF10" clamK8_CPUSF2x&]="> name="L901"> 90111/3>
 938<6a>   696"stri68">"x4"apossibla umber 5l 6ame="L95999999999*      <6pan c696d_bit68lass="sref">dclr1.n"srfg"s="sref"f1_id"> 942 942apossibla umber 5lp6n claa 5BIT_cfg"3spo!a hp6n cla696lass=684F2x%x\n" 942apossibla driver6slsn class5>10f4" id="L934" 6lass=696" cla68="sref">x86 90111/3>
x">e(sefins="sref"early_md64_ed_counmd64_detefins="sref"early_md64_p_dac/am_pvtd64_info" class="sref">apossibla code= 6sssn-chipk54end_bitacsmap_sysL942_to_c8row id=">x">e(s4_ed11f=hrx_map_sysL942_to_c8rowlass="sref">acshrx_map_sysL942_to_cc/am_pvtd64_info" class="sref">apossibla code= 6s99name="L5vte(sf10"ct apossibla "drive6n"line" na5   ly_cha; 85aaaaaaa<.n"srfg"s="sref"readsen class6"stri61">"xpcn_cS clasa hr11f=i name="cs_ f10"s="sref"readsen to_cc/am_pvtd64_info" class="sref">apossibl7=" id="6cl7ss="sre6">aDCSM1[%d]p7n cla706   934     1161>
 938<7a>   7 6ne" n60">&qu}c/am_pvtd64_info" class="sref">apossibl7=" id="6c27ss="sre6"" - norsk)> 938<7a>   7028x re68 F2x%x\n&[ id="L9F15" clasK8_CPUSd64_detF15" clamK8_CPUSF2x&]="> name="L901"> 90111/3>
dclr1.n"srfg"s="sref"ctl_=0x&g"unsigneass="lmtl_=0x&a me=">e79" class="line" nF15h54" ceK8mline" namcamd64_info" class="sref">apossibl7=" id="6c47ss="sre6"IT_cfg"3spo!a hp7n cla706lass=684F2x%x\n" 942apossibl7=5 id="6c47s class5>10f4" id="L934" 7lass=706" cla68="sref">x86 942apossibl7=6 id="6c47s"line"54_ed10f=">10f5" i7="L93706   90111/3>
 9426ss7"sref">664end_bitx">e(sefins="sref"early_md64_ed_counmd64_detefins="sref"early_md64_p_dac/am_pvtd64_info" class="sref">apossibl7"driver6in7" naiss6"sref">u64acsmap_sysL942_to_c8row id=">x">e(s4_ed11f=hrx_map_sysL942_to_c8rowlass="sref">acshrx_map_sysL942_to_cc/am_pvtd64_info" class="sref">apossibl7="drive6c97" naiss6"  ly_cha; 85aaaaaaa<.n"srfg"s="sref"1bam_to_c841"c hrefinfo" 1bam_to_c8 id=_bit<<<<<<<<<">e(sf15"ct apossibl7="drive6"s7ef">u646/i;"xpcn_cS clasa hr11f=i name="cs_ f15"s="sref"readsen to_cc/am_pvtd64_info" class="sref">apossibl7=" id="6c17ss="sre6f=" id="L880" els7n cla7s6"stri61">"x4&qut67class34"> 934     1161>
&qu}c/am_pvtd64_info" class="sref">apossibl7=" id="6"37ss="sre64_ed11f=">1112" i7="L857"6clas}tor_pvtls"drivers/edac/amd64_ed11f=">117=" id="6"47ss="sre6"x4"
amd64_deteadsdevcha91i " f1x_early+rleads> *amd64_deteads> *addr<10vendt apossibl7=6 id="6c47">GENMA64_ed11f=">11f5" i7="L93716  addr<10devic"ctl_=0x&g"unsigdevic"to_cc/am_pvtd64_info" class="sref">apossibl7="> 9426ss7"sref">6GENMASKend_bit<<<<<<<<<<<<<<<<<<<<<<<<<"/* not " f1x_early+rleadsdev clas>amd64_deteadsdevcha91i " f1x_early+rlrerx_tdclass6"stri61">&qrx_tdS_ENABLE_pvtlllllllllllunsigneass="line" na7 umber 6=n7" naiss6ef">c 90111/3>
amd64_deteadsdevcha91i " f1x_early+rldev clas>amd64_detdevcha91 name="cs_  942pvt"x4"
11f=" i7="L81726   * *addr<10devic"ctl_=0x&g"unsigdevic"to_cc%x\n& id="L93ev clas>amd64_detdevcha9ctor_pvtls"drivers/edac/amd64_ed11f=">117=" id="6c27ss="sre6>  K8_REV_Fef="="7code=786" cla62">&quwhile2"> 85/1068>
amd64_detdevcha9cpsry_t="> name="L901"> 90111/3>
dclr1"> 85/1068>
amd64_detdevcha9 opsry_t-f">Gn"srfg"bubam_to_c841"c hrbubcha9 opsry_t-f">Gn"srfg"numbe &qrx_tdS_EN opsry_t-f">Gn"srfg"bubam_to_c841"c hrbubcha9 opsry_t-f">Gn"srfg"numbe pv6   WIDTH_12>; 85/1068>
amd64_detdevcha9 opsry_t-f">Gn"srfg"devfd clas>amd64_detdevfdcha9L9  name="cs_ &qrx_tdS_EN opsry_t-f">Gn"srfg"devfd clas>amd64_detdevfdcha9Lmemory_t))"drivers/edac/amd64_ed11f=">117="drive6ce7ac/amd66>1124" id="L934" 7lass=7l6ne" n62="sref">x86 == 0x55555555breaks"drivers/edac/amd64_ed11f=">117="drive6c67">GENMA64_pK8_REV_Def="="7code=786" cla62 F2x%x\n%x\n& id="L93ev clas>amd64_detdevcha91 name="cs_  * *addr<10devic"ctl_=0x&g"unsigdevic"to_cc%x\n& id="L93ev clas>amd64_detdevcha9ctor_pvtls"drivers/edac/amd64_ed11f=">117="> 9426ss7"sref">6">amd64_pdiffef="7n cla7s6"stri62classt67class34"> 934     1161>
"x4"

amd64_detdevcha9tor_pvtls"drivers/edac/amd64_ed11f=">1172"> 9426as7="line"6name="L938"> 938<7a>   7 6   934     1161>
 938<7a>   7 6   934     1161>
/*
1763" id=6c37ss="sre6ppings are:> 938<7a>   7 6  /*
176="shif6c"7name="L63999999999"> 938<7a>   735"stri594F2x&s="comment">/*
176"drive6ce7ac/amd66S siz< (mb)> 938<7a>   735ne" n59ent">s="comment">/*GENMA6===========> 938<7a>   7 6  /*
*4" id="L939" class="line" na* Get 05"7=" id="699799">0L9699999999932" 938<7a>   7368x re61 class="comment">/*<* Algorithmscourtesyeef Ross LaFetravecei>AMDis po8f"64" id="L939" class="line" na* Get 05"7"" id="6cn7" naiss6999999999f4" 938<7a>   736class61 class="comment">/*< CSROW"
*a hr11f="drivers/edac/amd64_ed11f=">117=" id="6997" naiss69999999912>;<938<7a>   7368x re67line&,11f3>
 name="L901"> 90111/3>
 94269979">3L9369999999912>;<938<7a>   7 6  &qu0x2f57,u0x1afe,u0x66cc,u0xdd88c/am_pvtd64_info" class="sref">apossibl7"driver69979">4L936999999992f6" 938<7a>   7 6  &qu0x11eb,u0x3396,u0x7f4c,u0xeac8c/am_pvtd64_info" class="sref">apossibl7"" id="6c279">5L93699999999512" 938<7a>   7 6  &qu0x0001,u0x0002,u0x0004,u0x0008c/am_pvtd64_info" class="sref">apossibl7"3" id=6c37dac/amd6999999992f6" 938<7a>   743  &qu0x1013,u0x3032,u0x4044,u0x8088c/am_pvtd64_info" class="sref">apossibl7"="shif6c"7name="L699999999512" 938<7a>   7 6  apossibl7""drive6ce7"      6999999910f4" 938<7a>   7 6  apossibl7"driver6t67">GENMA6999999910f4" 938<7a>   7 6  apossibl7"" id="699799">0L96999999920f8" 938<7a>   7 6  apossibl7"" id="6cn799" 1L963999999999"_c938<7a>   7 6  apossibl7"" id="6997" naiss6o >hifsnmme> 938<7a>   7 6  apossibl7"driver6ll7st CS s6z< of932MB.> 938<7a>   750  apossibl7"driver6997name="L63999999999"> 938<7a>   756  &qu0x8ba7,u0x465e,u0x244c,u0x1cc8c/am_pvtd64_info" class="sref">apossibl7=" id="6av7 a simi6ar purpose.> 938<7a>   752  apossibl7=3" id=6c37dac/amd6999999999*      <7pan c753  &qu0x40b9,u0x80de,u0x1094,u0x20e8c/am_pvtd64_info" class="sref">apossibl7=" id="6a"7name="L6_mls"_ca  de=e 5p7n cla756  apossibl7="drive6al7"      64_ed11f=">1154" i7="L86755  &qu0x11c1,u0x2242,u0x84ac,u0x4c58c/am_pvtd64_info" class="sref">apossibl7=driver6t67f="sref6>amd64_pdiffef="p7n cla756  apossibl7=" id="699799">0L96>11f6" id="L896" 7lass=756  apossibl7="drive6a9799" 1L96" id="L897" else"7code=756  apossibl7=" id="6a97" naiss6_mls"_ca  de=e 6p7n cla756  apossibl72"> 9426s"7lass="s6ef">capossibl7=" id="6d67_ed11f=6>11f=" id="L879" 7lass=766  &qu0x1e2f,u0x391a,u0x5cac,u0xf858c/am_pvtd64_info" class="sref">apossibl7"driver6sv7 a simi6_ed11f=">11f1" id7lass=762  apossibl7=3" id=6c37ame="L964_ed11f=">1162" i7="L85763  &qu0x15f5,u0x2a5a,u0x5264,u0xa3b8c/am_pvtd64_info" class="sref">apossibl7=" id="6a"7name="L6="line" n8"> 938<7a>   766  apossibl7="drive6al7"      6ha="innuse.> 938<7a>   766  apossibl72driver6t67f="sref6="line" na"> 938<7a>   766  apossibl7=" id="699799">0L96na* Rlass=:> 938<7a>   766  apossibl7="drive6s9799" 1L96nnoperation> 938<7a>   766  apossibl7=" id="6a97" naiss6 Paro back:> 938<7a>   766  apossibl7e="cs_m6nm7e9DCL0_6OWtrinister> 938<7a>   770  apossibl7e="cs_m6n67_ed11f=6"line" na*      <7pan c776  &qu0x4199,u0x82ee,u0x19f4,u0x2e58c/am_pvtd64_info" class="sref">apossibl7=" id="6nv7 a simi6f">amd64_pvt 7apossibl7=" id="6n 7ame="L96e="L942"> 9ne" na7hr11f773  &qu0x1905,u0x2e0a,u0x5804,u0xac08c/am_pvtd64_info" class="sref">apossibl7=" id="6a"73" clas6r11f="drivers/eda7/amd6776  apossibl7ncode= 6nl7"      64x - DCSM1[%d7pan c775  &qu0x19a9,u0x2efe,u0xb5cc,u0x6f88c/am_pvtd64_info" class="sref">apossibl7=" id="6ni7f="sref6c"  DCSM1[%d]70x%68x r}tor_pvtls"drivers/edac/amd64_ed11f=">117"driver6ns7="line"6t"x4"
u64
 name="L901"> 90111/3>
apossibl7"driver6s=7sref">c6csrow_cfg,l-1,l-170xໄ  apossibl7"="cs_m6n67_ed11f=6rac"DCSM1[%d]70x໊  &qu0x1011,u0x0116,u0x022c,u0x0458c"0x08b0,u0x8c60,u0x2740,u0x4e80c/am_pvtd64_info" class="sref">apossibl7"" id="6nv7ass="sr6">aDCSM1[%d]p7n cla786  &qu0x0411,u0x0822,u0x1044,u0x0158c"0x02b0,u0x2360,u0x46c0,u0xab80c/am_pvtd64_info" class="sref">apossibl7"" id="6n 7ame="L96="lllllllllclass=7+code783  &qu0x0811,u0x1022,u0x012c,u0x0258c"0x04b0,u0x4660,u0x8cc0,u0x2780c/am_pvtd64_info" class="sref">apossibl7"" id="6a"73" clas6d="L873" class="l7"L903786  apossibl7"code= 6nl7"      6id="L934" c else"7code=786  apossibl7"" id="6ni7f="sref6name="L938"> 938<7a>   786  apossibl7"driver6ns7="line"6ll ecc mls"_c938<7a>   787  apossibl7"driver6n9799" 1L963999999999"_c938<7a>   788  apossibl7""drive6n"7ine" na5errmdacnmme> 938<7a>   786  apossibl763" id=5l 7emory. 5This methocomment7>    790  apossibl76="cs_m6n67" class5oacnat AMD.> 938<7a>   791  apossibl76" id="6nv7ass="sr5e" - norsk)> 938<7a>   796  &qu0x0801,u0x012e,u0x025c,u0x04b8c"0x1370,u0x26e0,u0x57c0,u0xb580c/am_pvtd64_info" class="sref">apossibl7 umber 5l 7ame="L95999999999*      <7pan c793  &qu0x0401,u0x0802,u0x015c,u0x02b8,u0x22b0,u0x13e0,u0x7140,u0xe280c/am_pvtd64_info" class="sref">apossibl76" id="6a"7n claa 5BIT_cfg"3spo!a hp7n cla794  apossibl76code= 6nl7n class5>10f4" id="L934" 7lass=795  apossibl7=" id="5cs7="line"54_ed10f=">10f5" i7="L93796  apossibl7=driver6ns7n-chipk54apossibl7=driver6n97name="L5vtcaDCSM1[%d]p8n cla806  addr<10dedr<1from_ecc_=yndroma_pvt *
Gn"srfg"num_vemsct apossibl8=" id="6c18ss="sre6"acnat AMD.> 938<8a>   806s="co67">"x4"Gn"srfg"v_disct  938<8a>   8028x rpvt[]="> name="L901"> 90111/3>
addr<10uct 
"x4"
 81811errfrosct 0G& id="L9errfrosct (snum_vemsct Gn"srfg"v_disct 0G& id="L9errfrosct  90111/3>
cha91 name="cs_  * name="Lry_t-f">Gn"srfg"v_idxct 0G& id="L9errfrosct Gn"srfg"v_disct Gn"srfg"v_endclass6"stri61">v_endcha91 nx\n&for "> 81811errfrosct Gn"srfg"v_disct cu646/i;/*sizes16 bIMM ef We ne118=" id="6c18ss="sre6f=" id="L880" els8n cla8s6"stri61">"x4&qu#37;x\n&for "> 81811uct addr<10uct addr<10uct  90111/3>
1112" i8="L85816s="co65lass="sref">dclr1#37;x\n&s="comment">/*118=" id="6c48ss="sre6 85/1068>
(sv_endclass6"stri61">v_endcha91trf_pvt ss= " f1x_early+rlveminesct c 90111/3>
11f4" id8lass=816s="co67="sref">x86 == 0xxxxxxxxx55555555srly+rltruct GENMA64_ed11f=">11f5" i8="L938"y_chaor_pvtls"drivers/edac/amd64_ed11f=">118=7 id="6c48"sref">6GENMASKend_bit<<<<<<<<<#37;x\n&s="comment">/*118=8 id="6c48" naiss6ef">c 85/1068>
cha91*2 + 1]=fs="sref">c 90111/3>
 85end_bit<<<<<<<<<#37;x\n&s="comment">/*118 umber 6cl80s="sre6">pvt
cha91^ name="cs_  934     1161>
"x4"cha9ABLE_pvtlllllllllllunsigneass="line" na8=" id="6c38ss="sre6mls"_ca  de=e 1ef8"+cod825nea)=57lass="sref">ddddddddddddddddddddddddddddddddd#37;x\n&,11f3>
pv6   WIDTH_12>; 934     1161>
 934     1161>
GENMA64_pK8_REV_Def="="8code=886" cla62 F2x%x\n&ttttttttt">ends852"> 85/1068>
cha91*2 + 1]=fs="sref">c 934     1161>
6">amd64_pdiffef="8n cla8258x re59class="sref">end_bit<<<<<<<<<#37;x\n&s="comment">/*118 8 id="6c48" naiss6mls"_ca  de=e 1hp8n cla826"stri60 F2x%x\n&end_bit 934     1161>
 9426as8="line"6name="L938"> 938<8a>   8368x re68 F2x&}67class34"> 934     1161>
 938<8a>   8 6   934     1161>
x86ux) notu#3unddac/ams:mmmline" namcamdrivers/etruct  * 938<8a>   835nea)=57lass=#37;x\n-1tor_pvtls"drivers/edac/amd64_ed11f=">1186="shif6c"8name="L63999999999"> 938<8a>   835"str}67class34"> 934     1161>
 938<8a>   836ne" 67class34"> 934     1161>
GENMA6===========> 938<8a>   8 6  addr<10map_errfrosak8_1bearly=yndroma_pvtaddr<10errfrosct addr<10rosa> *<=yndroma_pvt sa> *<=ynd)67class34"> 934     1161>
0L9699999999932" 938<8a>   8368x ra me++l  name="L901"> 90111/3>
   836"stri60 F2x&852"> 85/1068>
 *<=yndroma_pvt sa> *<=ynd9  n4)67class34"> 934     1161>
;<938<8a>   836   81811errfrosct  90111/3>
 94269989">3L9369999999912>;<938<8a>   846"stri61 F2x%x\n&cands0x20: me++l  name="L901"> 90111/3>
4L936999999992f6" 938<8a>   846"stri61">"x4&qucands0x21: me++l  name="L901"> 90111/3>
5L93699999999512" 938<8a>   846  "x4"   845nea)=57lass="sref">ddddddddd55555555breaks"drivers/edac/amd64_ed11f=">118"="shif6c"8name="L699999999512" 938<8a>   846s="co674F2x%x\n&cands0x22: me++l  name="L901"> 90111/3>
   846s="co67="sref">x86 90111/3>
GENMA6999999910f4" 938<8a>   846" cla62 F2x%x\n&tttttttt#37;x\n1tor_pvtls"drivers/edac/amd64_ed11f=">118"" id="699899">0L96999999920f8" 938<8a>   8458x re59class="sref">end_bit<55555555breaks"drivers/edac/amd64_ed11f=">118"" id="6cn899" 1L963999999999"_c938<8a>   846"stri60 F2x%x\n&default: me++l  name="L901"> 90111/3>
hifsnmme> 938<8a>   846class60line" name="L852"> 85#37;x\n&,11f3>
 938<8a>   856"stri61 F2x%x\n" 938<8a>   856"stri61">"x4&qut67class34"> 934     1161>
 938<8a>   852  /*118=3" id=6c38dac/amd6999999999*      <8pan c853  &qu>enda hr11f="drivers/edac/amd64_ed11f=">118=="shif6c"8name="L6_mls"_ca  de=e 5p8n cla856s="co674F2x%x\n&switchnx\n&for "> 81811errfrosct  90111/3>
x86/*118=driver6t68f="sref6>amd64_pdiffef="p8n cla856" cla62 F2x%x\n&cands0x10: me++l  name="L901"> 90111/3>
0L96>11f6" id="L896" 8lass=8558x re59class="sref">end_bit<\n&for "> 81811WARNct (sKERN_ERRct uxf">u5dMBmmmline" namcamd64_info" class="sref">apossibl8="drive6a9899" 1L96" id="L897" else"8code=856"stri60 F2x%x\n&end_bitend_bit<\n&for "> 81811errfrosct  85#37;x\n-1tor_pvtls"drivers/edac/amd64_ed11f=">1182"> 9426s"8lass="s6ef">c 934     1161>
"x4&qucands0x11: me++l  name="L901"> 90111/3>
1162" i8="L85865nea)=57lass="sref">ddddddddd#37;x\n1a me=">0G"drivers/edac/amd64_ed11f=">118=" id="6a"8name="L6="line" n8"> 938<8a>   866s="co674F2x%x\n"tttt55555555breaks"drivers/edac/amd64_ed11f=">118="drive6al8"      6ha="innuse.> 938<8a>   866s="co67="sref">x86 90111/3>
 938<8a>   866" cla62 F2x%x\n&tttttttt#37;x\n1tor_pvtls"drivers/edac/amd64_ed11f=">118=" id="699899">0L96na* Rlass=:> 938<8a>   8658x re59class="sref">end_bit<55555555breaks"drivers/edac/amd64_ed11f=">118="drive6s9899" 1L96nnoperation> 938<8a>   866"stri60 F2x%x\n&default: me++l  name="L901"> 90111/3>
 938<8a>   866class60line" name="L852"> 85#37;x\n&,11f3>
 938<8a>   876"stri61 F2x%x\n""x4&qut67class34"> 934     1161>
amd64_pvt 8 9ne" na8hr11f873   934     1161>
"x4"
addr<10> * * * 934     1161>
 90111/3>
Gn"srfg"pvisinfo=yndroma_pvtu64addr<10errfrosct cc6csrow_cfg,l-1,l-180x༨   85/1068>
Gn"srfg"eccfrom_szct  934     1161>
"x4&qux\n&8f">addr<10errfrosct addr<10dedr<1from_ecc_=yndroma_pvt *
apossibl8"" id="6nv8ass="sr6">aDCSM1[%d]p8n cla886  "x4"addr<10ARRAY_SIZEct apossibl8"" id="6n 8ame="L96="lllllllllclass=8+code885nea)=57lass="sref">ddddddddddddddddddddddddddd> 85/1068>
Gn"srfg"eccfrom_szct ends852"> 85/1068>
Gn"srfg"eccfrom_szct  934     1161>
x86addr<10errfrosct addr<10dedr<1from_ecc_=yndroma_pvt *
apossibl8"" id="6ni8f="sref6name="L938"> 938<8a>   886" cla62 F2x%x\n&ttttttttend_bitaddr<10ARRAY_SIZEct apossibl8"driver6ns8="line"6ll ecc mls"_c938<8a>   8858x re59class="sref">end_bit<<<<<<<<<<<<<<<<<<<> 85/1068>
Gn"srfg"eccfrom_szct    888  endsa me++l  name="L901"> 90111/3>
 938<8a>   886  amd64_dety_chanward"sreusC_pvtdri79" class="line" nIllegalneuudac/ams:mmmline" namcamdrivers/epvip_dac/amlass="spvicha9 opsry_t-f">Gn"srfg"eccfrom_szct     896"stri61 F2x%x\n%x\n&,11f3>
 938<8a>   891   934     1161>
 938<8a>   89639las67="sre"drivers/edac/amd64_ed11f=">118 umber 5l 8ame="L95999999999*      <8pan c895nea)=57lass=#37;x\nx\n&8f">addr<10map_errfrosak8_1bearly=yndroma_pvtaddr<10errfrosct Gn"srfg"eccfrom_szct  934     1161>
10f4" id="L934" 8lass=896ne" 67class34"> 934     1161>
/*
18=driver6ns8n-chipk54/*<* Handle any Corremi  "  Eto ms (CEs)4thatshave occurred. Checku#37;valid4ERRORs115a>
18=driver6n98name="L5vt/*<  ADDRESS pn* processis po8f"64" id="L939" class="line" na* Get 05"8 "drive6n"8ine" na5   ly_cha;/*< CSROW"
*a hr11f="drivers/edac/amd64_ed11f=">119=" id="6cl9ss="sre6">aDCSM1[%d]p9n cla906  Gn"srfg"md64_ehandle_c"ctl_=0x&g"unsigmd64_ehandle_c"lf="_ name="L" f1x_early+rlmem_neasinfo=yndroma_pvt 934     1161>
 938<9a>   906s="ca me++l  name="L901"> 90111/3>
 938<9a>   9028x re68 F2x&"/* not " f1x_early+rly_chanpvip_dac/amlass="sy_chanpvicha91*L" f1x_early+rlpvip_dac/amlass="spvicha91 name="cs_ Gn"srfg"pvisinfo=yndroma_pvt
 s__mapcha9tor_pvtls"drivers/edac/amd64_ed11f=">119=4 id="6c39s claa 5BIT_cfg"3spo!a hp9n cla906lass=684F2x&&,11f3>
 *10f4" id="L934" 9lass=906ne" 67class34"> 934     1161>
/*119=7 id="6c49s-chipk54addr<10mctl_=0x&g"unsigm=ynd opsry_t-f">Gn"srfg"e67lubam_to_c841"c hre67lubcha9 o2 + 1]=fs="sref">c 90111/3>
addr<10mcuct Gn"srfg"e11fnmc_handle_ to mct addr<10HW_EVENT_ERR_CORRECTEDct apossibl9="drive6"s9ef">u646/i;apossibl9=" id="6c19ss="sre6f=" id="L880" els9n cla9s6"stri61">"x4&quuuuuuuuuuuuuuuuuuuuuu-1,u-1,u-1, namcamd64_info" class="sref">apossibl9=" id="6c29ss="sre6  +refa e=ede=e 19n cla916  "x4"u5dMBmmmline" namcamd64_info" class="sref">apossibl9=" id="6"39ss="sre64_ed11f=">1112" i9="L85916s="co65lass="sref">dclr1end_bit 934     1161>
GENMA64_ed11f=">11f5" i9="L939"y_chaor_pvtls"drivers/edac/amd64_ed11f=">119=7 id="6c49"sref">6GENMASK s__mapcha91 name="cs_  *< to m__mapess=yndroma_pvt *< to m__mapesslf="_x\n&8f">addr<10mctl_=0x&g"unsigm=ynd)555breaks"drivers/edac/amd64_ed11f=">119=8 id="6c49" naiss6ef">c *addr<10mctl_=0x&g"unsigm=ynd opsry_t-f">Gn"srfg"e67lubam_to_c841"c hre67lubcha9)555breaks"drivers/edac/amd64_ed11f=">119=9 id="6c49" naiss6_ed11f=">11f8" id9code=916"stri65line"="sref">cpvtaddr<10mcuct ullxf">u5dMBmmmline"ssfo id=" id="L9trs__map=yndroma_pvt s__mapcha9)555breaks"drivers/edac/amd64_ed11f=">119=" id="6c19ss="sre64_ed11f=">11f=" i9="L81926   934     1161>
x86Gn"srfg"opbam_to_c841"c hropbcha9 opsry_t-f">Gn"srfg"map_> s_mapak8_1srow=yndroma_pvt s_mapak8_1srowlf="_x\n&8f">addr<10mcuct  s__mapcha9" namcamdrivers/etruct  * 934     1161>
pv6   WIDTH_12>;"x4"
s="comment">/*/* Handle any Un-corremi  "  Eto ms (UEs)4 CSROW"
*a hr11f="drivers/edac/amd64_ed11f=">119=6 id="6c49">GENMA64_pK8_REV_Def="="9code=926  Gn"srfg"md64_ehandle_u"ctl_=0x&g"unsigmd64_ehandle_u"lf="_ name="L" f1x_early+rlmem_neasinfo=yndroma_pvt 934     1161>
6">amd64_pdiffef="9n cla9268x ra me++l  name="L901"> 90111/3>
addr<101srow=yndroma_pvt 9426as9="line"6name="L938"> 938<9a>   936"stri61 F2x& " f1x_early+rltname="L6="le="L93866s="cosfo id=" id="L9trs__map=yndroma_pvt s__mapcha9tor_pvtls"drivers/edac/amd64_ed11f=">1192" id="6c19ss="sre6bfuscatedoC> 938<9a>   931"stri61 F2x& " f1x_early+rltp selec6 sie="L93836  x86 938<9a>   936d_bit68lass=&,11f3>
 938<9a>   936"stri65">"x4"
 938<9a>   936s="co67="sre852""_x\n&8f">addr<10mctl_=0x&g"unsigm=ynd opsry_t-f">Gn"srfg"e67lubam_to_c841"c hre67lubcha9 o2 + 1]=fs="sref">c 90111/3>
GENMA6===========> 938<9a>   936  addr<10mcuct 0L9699999999932" 938<9a>   9358x re59class="sref">y_t-f">Gn"srfg"e11fnmc_handle_ to mct addr<10HW_EVENT_ERR_UNCORRECTEDct apossibl9"" id="6cn9" naiss6999999999f4" 938<9a>   936"stri60 F2x%x\n&end_bitend0,u0,u0, namcamd64_info" class="sref">apossibl9=driver6c99" naiss69999999912>;<938<9a>   936  apossibl92"> 94269999">3L9369999999912>;<938<9a>   946"stri61 F2x%x\n&&&&&&&&&&&&&&&&&&&&&&&C_pvtdri79" class="line" nHWshaM no4ERROR_ADDRESS pvail  " >u5dMBmmmline" namcamd64_info" class="sref">apossibl92" id="6c199">4L936999999992f6" 938<9a>   946"stri61">"x4&qu&&&&&&&&&&&&&&&&&&&&&&C_pvtdri79" class="line" nc/ams:mmmline)555breaks"drivers/edac/amd64_ed11f=">1192" id="6c299">5L93699999999512" 938<9a>   946  "x4&qu#37;x\555breaks"drivers/edac/amd64_ed11f=">119"3" id=6c39dac/amd6999999992f6" 938<9a>   945nea)=57lass=t67class34"> 934     1161>
   946"stri65">"x4"
   946s="co67="sresfo id=" id="L9trs__map=yndroma_pvt s__mapcha91 name="cs_  *< to m__mapess=yndroma_pvt *< to m__mapesslf="_x\n&8f">addr<10mctl_=0x&g"unsigm=ynd)555breaks"drivers/edac/amd64_ed11f=">1192driver6t69">GENMA6999999910f4" 938<9a>   946" cla62 F2x&x\n&8f">addr<10err m__mapessak8_pag"_and_offseip_dac/amlass="serr m__mapessak8_pag"_and_offseilf="_x\n&8f">addr<10trs__map=yndroma_pvt s__mapcha9" o2 + f">x86x860L96999999920f8" 938<9a>   946  "x4"
   946"stri60 F2x&p59="sres="comment">/*
192driver6c99" naiss6o >hifsnmme> 938<9a>   946"strs61 class="comment">/*<<<<<<<<<* Find out which nodesth43 to ma_mapess belongs to. This may bes115a>
19"driver6ll9st CS s6z< of932MB.> 938<9a>   956"strs61 class="comment">/*<<<<<<<<<* differt"> eceisth43nodesthat detectedsth43 to mis po8f"64" id="L939" class="line" na* Get 05"9"driver6999name="L63999999999"> 938<9a>   956"strs61 class="comment">/*<<<<<<<<<*CSROW"
*a hr11f="drivers/edac/amd64_ed11f=">119=" id="6av9 a simi6ar purpose.> 938<9a>   956  x86addr<10mcuct  s__mapcha9)555breaks"drivers/edac/amd64_ed11f=">119=3" id=6c39dac/amd6999999999*      <9pan c953  &qu852""sss="s=lass="12trc_mcuct  90111/3>
addr<10mcuct ulx) NOT mappedsto a MCf">u5dMBmmmline" namcamd64_info" class="sref">apossibl9="drive6al9"      64_ed11f=">1154" i9="L86956s="co67="sref">x86 s__mapcha9)555breaks"drivers/edac/amd64_ed11f=">119=driver6t69f="sref6>amd64_pdiffef="p9n cla956" cla62 F2x%x\n&y_t-f">Gn"srfg"e11fnmc_handle_ to mct addr<10HW_EVENT_ERR_UNCORRECTEDct apossibl9=" id="699999">0L96>11f6" id="L896" 9lass=9558x re59class="sref">end_bit< F2x%x\n&y_t-f">Gn"srfg"pag"ctl_=0x&g"unsigpag"cha9" namcamdrivers/eoffseip_dac/amlass="soffseicha9,u0, namcamd64_info" class="sref">apossibl9="drive6a9999" 1L96" id="L897" else"9code=956"stri60 F2x%x\n&end_bitend-1,u-1,u-1, namcamd64_info" class="sref">apossibl9"driver6c99" naiss6_mls"_ca  de=e 6p9n cla956class60line" name="L852"> 85 F2x%x\n&yC_pvtdri79" class="line" nERROR ADDRESS NOT mappedsto a MC>u5dMBmmmline" namcamd64_info" class="sref">apossibl92"> 9426s"9lass="s6ef">c"x4&qu#37;x\555breaks"drivers/edac/amd64_ed11f=">119"driver6sv9 a simi6_ed11f=">11f1" id9lass=966  &qut67class34"> 934     1161>
1162" i9="L85965nea)67class34"> 934     1161>
 938<9a>   966lass=684F2x&&,11f3>
 934     1161>
 938<9a>   966" cla62 F2x&x\n&8f">addr<101srow=yndroma_pvtaddr<10log_mcuct  s__mapcha9)555breaks"drivers/edac/amd64_ed11f=">119=" id="699999">0L96na* Rlass=:> 938<9a>   9658x re59class852"x\n&8f">addr<101srow=yndroma_pvt 90111/3>
 938<9a>   966"stri60 F2x%x\n&sfo id=" id="L9y_chanmc_errp_dac/amlass="sy_chanmc_errlf="_x\n&8f">addr<10mcuct ulx) NOT mappedsto CSf">u5dMBmmmline" namcamd64_info" class="sref">apossibl9=" id="6a99" naiss6 Paro back:> 938<9a>   966class60line" name="L852"> 855555555555( name="Lrlong)&fo id=" id="L9trs__map=yndroma_pvt s__mapcha9)555breaks"drivers/edac/amd64_ed11f=">119e="cs_m6nm9e9DCL0_6OWtrinister> 938<9a>   976"stri61 F2x%x\n&y_t-f">Gn"srfg"e11fnmc_handle_ to mct addr<10HW_EVENT_ERR_UNCORRECTEDct apossibl9e="cs_m6n69_ed11f=6"line" na*      <9pan c976"stri61">"x4&quuuuuuuuuuuuuuuuuuuuuuy_t-f">Gn"srfg"pag"ctl_=0x&g"unsigpag"cha9" namcamdrivers/eoffseip_dac/amlass="soffseicha9,u0, namcamd64_info" class="sref">apossibl9=" id="6nv9 a simi6f">amd64_pvt 9"x4"apossibl9=" id="6n 9ame="L96e="L942"> 9ne" na9hr11f976s="co65lass="sref">dclr1end_bitu5dMBmmmline" namcamd64_info" class="sref">apossibl9=" id="6a"93" clas6r11f="drivers/eda9/amd6976s="co674F2x%x\n"ttttttttttttquot;&C_pvtdri79" class="line" nc/ams:mmmline)555breaks"drivers/edac/amd64_ed11f=">119ncode= 6nl9"      64x - DCSM1[%d9pan c976s="co67="sre}">endsa me++l  name="L901"> 90111/3>
Gn"srfg"e11fnmc_handle_ to mct addr<10HW_EVENT_ERR_UNCORRECTEDct aposr11/9=" id="6999="line"6tend_bit< F2x%x\n&y_t-f">Gn"srfg"pag"ctl_=0x&g"unsigpag"cha9" namcamdrivers/eoffseip_dac/amlass="soffseicha9,u0, namcamd64_info" class="sref">apossibl9"driver6n9999" 1L96">u64endx\n&8f">addr<101srow=yndroma_pvtapossibl9=" id="6a99ine" na6vt 85 F2x%x\n&yC_pvtdri79" class="line" n>u5dMBmmmline"ssC_pvtdri79" class="line" nc/ams:mmmline)555breaks"drivers/edac/amd64_ed11f=">119"driver6s=9sref">c6csrow_cfg,l-1,l-190x鮼x re68 F2x&}67class34"> 934     1161>
 934     1161>
aDCSM1[%d]p9n cla98639las67="sre"drivers/edac/amd64_ed11f=">119"" id="6n 9ame="L96="lllllllllclass=9+code985nea)e67linex\n&8f">addr<10inllllllndroma_pvtGn"srfg"__md64_ededr<1fbus_ to mct  934     1161>
 90111/3>
 938<9a>   986" cla62 F2x&x\n&8f">addr<10truct addr<10mctl_=0x&g"unsigm=ynd opsry_t-f">Gn"srfg"e67lubam_to_c841"c hre67lubcha9)555breaks"drivers/edac/amd64_ed11f=">119"driver6ns9="line"6ll ecc mls"_c938<9a>   9858x re59classsfo id=" id="L9u8ct addr<10mctl_=0x&g"unsigm=ynd opsry_t-f">Gn"srfg"e67lubam_to_c841"c hre67lubcha9,s0x1f)555breaks"drivers/edac/amd64_ed11f=">119"driver6n9999" 1L963999999999"_c938<9a>   986"stri60 F2x&u1 clasrivers/eu8ct addr<10mctl_=0x&g"unsigm=ynd opsry_t-f">Gn"srfg"e67lubam_to_c841"c hre67lubcha9 opsropsr 45) o2 + 10x3555breaks"drivers/edac/amd64_ed11f=">119""drive6n"9ine" na5errmdacnmme> 938<9a>   986"stri65line"="sref">c    996"stri61 F2x&n59ent">s="comment">/*/* Bail early out if Weis was ent'observed'3 to ma*CSROW"
*a hr11f="drivers/edac/amd64_ed11f=">1196="cs_m6n69" class5oacnat AMD.> 938<9a>   991  addr<10PPam_to_c841"c hrPPlf="_x\n&8f">addr<10ecct addr<10NBSL_PP_OBSct  934     1161>
 938<9a>   996  "x4&qu#37;x\555breaks"drivers/edac/amd64_ed11f=">119 umber 5l 9ame="L95999999999*      <9pan c995nea)67class34"> 934     1161>
s="comment">/*/* Do only ECC3 to mst CSROW"
*a hr11f="drivers/edac/amd64_ed11f=">1196code= 6nl9n class5>10f4" id="L934" 9lass=996s="co67="sre852"u1 clasrivers/execct addr<10F10_NBSL_EXT_ERR_ECCct  934     1161>
"x4"
 85/1068>
 934     1161>
addr<10mcuct 120=" id="6c20=" i na5   ly_cha;ends852"> 85/1068>
5breaks"drivers/edac/amd64_ed11f=">120=1 id="6c20= class5oacnat AMD.> 93820= c>20=68x re68">"x4&qux\n&8f">addr<10md64_ehandle_u"ctl_=0x&g"unsigmd64_ehandle_u"lf="_x\n&8f">addr<10mcuct 120=2 id="6c20=ss="sr5e" - norsk)> 93820=ss>20=28x r}67class34"> 934     1161>
20=5nea)67class34"> 934     1161>
20=4"strvoiLry_t-f">Gn"srfg"md64_ededr<1fbus_ to mct addr<10node_idct  934     1161>
20=6s="ca me++l  name="L901"> 90111/3>
addr<10__md64_ededr<1fbus_ to mct addr<10mcubam_to_c841"c hrmcublf="[x\n&8f">addr<10node_idct 120=7 id="6c20=-chipk5420=78x r}67class34"> 934     1161>
20=8nea)67class34"> 934     1161>
20=6"strs61 class="comment">/*
201" id="6c20ef">u646/i;20ef"strs61 class="comment">/* * Undspvt opsrF2 which containssth43F2 CPU PCI devic" to gettth43relateds115a>
2011 id="6c20ss="sre6f=" id="L880" el20ss=>20e6"strs61 class="comment">/*<* F1 (AmapMap) pn* F3 (Misc) devic"s. R37;x\nnegative;value on3 to mis po8f"64" id="L939" class="line" na* Get 0520e2 id="6c20ss="sre6  +refa e=ede=e 20ss=>20e2"strs61 class="comment">/*<*CSROW"
*a hr11f="drivers/edac/amd64_ed11f=">120e3 id="6c20ss="sre64_ed11f=">1112" 20ss=>20e5nea)e67line837;x\n&8f">addr<10reservenmc_sibd11gedevbam_to_c841"c hrreservenmc_sibd11gedevblf="_ name="L" f1x_early+rlmd64_epvip_dac/amlass="sy_chanpvicha91*L" f1x_early+rlpvip_dac/amlass="spvicha9re&,11f3>
 934     1161>
20e4s="ca me++l  name="L901"> 90111/3>
11f4" i20ac/>20e6s="co67="sres59ent">s="comment">/*/* Reservetth43ADDRESS MAP Devic" *CSROW"
*a hr11f="drivers/edac/amd64_ed11f=">120e6 id="6c20">GENMA64_ed11f=">11f5" 20">G>20e6" cla62 F2x&x\n&8f">addr<10pvip_dac/amlass="spvicha9 opsry_t-f">Gn"srfg"F1p_dac/amlass="sF1lf="1 name="cs_  *amd64_detpci_> *addr<10pvip_dac/amlass="spvicha9 opsry_t-f">Gn"srfg"F selec6 sie="L93F2cha9 opsry_t-f">Gn"srfg"vend mct 
Gn"srfg"F selec6 sie="L93F2cha9)555breaks"drivers/edac/amd64_ed11f=">12017 id="6c20"sref">6GENMASK20e58x re59class852""x\n&8f">addr<10pvip_dac/amlass="spvicha9 opsry_t-f">Gn"srfg"F1p_dac/amlass="sF1lf=")1a me++l  name="L901"> 90111/3>
c20e6"stri60 F2x%x\n&sfo id=" id="L9y_chanerrp_dac/amlass="sy_chanerrlf="_xC_pvtdri79" class="line" n to ma_mapess map devic" notufound: c/ams:mmmline me++l  name="L901"> 90111/3>
20e6class60line" name="L852"> 85 FxC_pvtdri79" class="line" nvend m ef">ux devic" 0xef">ux (broken BIOS?)f">u5dMBmmmline" namcamd64_info" class="sref">apossib202" id="6c200s="sre6">pvt200sclass60line" name="L852"> 85 Fx\n&8f">addr<10PCI_VENDOR_ID_AMDct 11f=" 20ss=>2006"stri61">"x4&qu#37;x\ -ame="cs_ 2006  &qut67class34"> 934     1161>
2005nea)67class34"> 934     1161>
pv6   WIDTH_12>;2004"stri61 F2x&n59ent">s="comment">/*/* Reservetth43MISC Devic" *CSROW"
*a hr11f="drivers/edac/amd64_ed11f=">12025 id="6c20ac/amd66>1124" id="L934"20ac/>2006s="co67="sresfo id=" id="L9pvip_dac/amlass="spvicha9 opsry_t-f">Gn"srfg"F3p_dac/amlass="sF3lf="1 name="cs_  *amd64_detpci_> *addr<10pvip_dac/amlass="spvicha9 opsry_t-f">Gn"srfg"F selec6 sie="L93F2cha9 opsry_t-f">Gn"srfg"vend mct 
Gn"srfg"F selec6 sie="L93F2cha9)555breaks"drivers/edac/amd64_ed11f=">12026 id="6c20">GENMA64_pK8_REV_Def="=20">G>20068x re59class852""x\n&8f">addr<10pvip_dac/amlass="spvicha9 opsry_t-f">Gn"srfg"F3p_dac/amlass="sF3lf=")1a me++l  name="L901"> 90111/3>
6">amd64_pdiffef=20"sr>20058x re59class="sref">y_t-f">Gn"srfg"pci_dev_puip_dac/amlass="spci_dev_puilf="_x\n&8f">addr<10pvip_dac/amlass="spvicha9 opsry_t-f">Gn"srfg"F1p_dac/amlass="sF1lf=")555breaks"drivers/edac/amd64_ed11f=">12028 id="6c20" naiss6mls"_ca  de=e 1h20" n>2006"stri60 F2x%x\n&sfo id=" id="L9pvip_dac/amlass="spvicha9 opsry_t-f">Gn"srfg"F1p_dac/amlass="sF1lf="1 name="cs_ 2006"stri65line"="sref">c 93820="l>20=""stri60 F2x%x\n&sfo id=" id="L9y_chanerrp_dac/amlass="sy_chanerrlf="_xC_pvtdri79" class="line" n to maF3 devic" notufound: c/ams:mmmline me++l  name="L901"> 90111/3>
 93820ss=>20=6"stri61">"x4&quuuuuuuuuuuxC_pvtdri79" class="line" nvend m ef">ux devic" 0xef">ux (broken BIOS?)f">u5dMBmmmline" namcamd64_info" class="sref">apossib2032 id="6c20p selec6 siz 93820p s>20=6  "x4"addr<10PCI_VENDOR_ID_AMDct  934     1161>
 93820nam>20=6s="co674F2x%x\n%x\ -ame="cs_  93820ac/>20=6s="co67="sre}67class34"> 934     1161>
GENMA6===========> 93820">G>20=6" cla62 F2x&x\n&8f">addr<10e11fndbgct usdac/ams:mmmline" namcamdrivers/epci_==> p_dac/amlass="spci_==> lf="_x\n&8f">addr<10pvip_dac/amlass="spvicha9 opsry_t-f">Gn"srfg"F1p_dac/amlass="sF1lf="))tor_pvtls"drivers/edac/amd64_ed11f=">12037 id="6c2099">0L9699999999932" 9382099">20=58x re59classsfo id=" id="L9e11fndbgct usdac/ams:mmmline" namcamdrivers/epci_==> p_dac/amlass="spci_==> lf="_x\n&8f">addr<10pvip_dac/amlass="spvicha9 opsry_t-f">Gn"srfg"F selec6 sie="L93F2cha9))tor_pvtls"drivers/edac/amd64_ed11f=">12038 id="6c20" naiss6999999999f4" 93820" n>20=6"stri60 F2x&u1 clasrivers/ee11fndbgct usdac/ams:mmmline" namcamdrivers/epci_==> p_dac/amlass="spci_==> lf="_x\n&8f">addr<10pvip_dac/amlass="spvicha9 opsry_t-f">Gn"srfg"F3p_dac/amlass="sF3lf="))tor_pvtls"drivers/edac/amd64_ed11f=">12039 id="6c20" naiss69999999912>;<93820" n>20=6"stri65line"="sref">c3L9369999999912>;<938209">>209""stri60 F2x%x\ 0tor_pvtls"drivers/edac/amd64_ed11f=">12041 id="6c209">4L936999999992f6" 938209">>20968x r}67class34"> 934     1161>
5L93699999999512" 938209">>209639las67="sre"drivers/edac/amd64_ed11f=">12093 id="6c20dac/amd6999999992f6" 93820dac>2095nea)e67linevoiLry_t-f">Gn"srfg"freenmc_sibd11gedevbam_to_c841"c hrfreenmc_sibd11gedevblf="_ name="L" f1x_early+rlmd64_epvip_dac/amlass="sy_chanpvicha91*L" f1x_early+rlpvip_dac/amlass="spvicha9)67class34"> 934     1161>
2094s="ca me++l  name="L901"> 90111/3>
2096s="co67="sresfo id=" id="L9pci_dev_puip_dac/amlass="spci_dev_puilf="_x\n&8f">addr<10pvip_dac/amlass="spvicha9 opsry_t-f">Gn"srfg"F1p_dac/amlass="sF1lf=")555breaks"drivers/edac/amd64_ed11f=">12046 id="6c20">GENMA6999999910f4" 93820">G>2096" cla62 F2x&x\n&8f">addr<10pci_dev_puip_dac/amlass="spci_dev_puilf="_x\n&8f">addr<10pvip_dac/amlass="spvicha9 opsry_t-f">Gn"srfg"F3p_dac/amlass="sF3lf=")555breaks"drivers/edac/amd64_ed11f=">12047 id="6c2099">0L96999999920f8" 9382099">20978x r}67class34"> 934     1161>
2098nea)67class34"> 934     1161>
hifsnmme> 93820" n>2096"strs61 class="comment">/*
205" id="6c20st CS s6z< of932MB.> 93820st >20st"strs61 class="comment">/*<* Relasevetth43hardwar43registers oftth43memory controller (Weis includessth4s115a>
2051 id="6c20name="L63999999999"> 93820nam>20s6"strs61 class="comment">/*<* 'Amapess Map'3pn* 'Misc'3devic" regs)s115a>
2052 id="6c20 a simi6ar purpose.> 93820 a >20s2"strs61 class="comment">/*<*CSROW"
*a hr11f="drivers/edac/amd64_ed11f=">12053 id="6c20dac/amd6999999999*      20dac>20s5nea)e67linevoiLry_t-f">Gn"srfg"readnmc_regsam_to_c841"c hrreadnmc_regslf="_ name="L" f1x_early+rlmd64_epvip_dac/amlass="sy_chanpvicha91*L" f1x_early+rlpvip_dac/amlass="spvicha9)67class34"> 934     1161>
20s4s="ca me++l  name="L901"> 90111/3>
20s6s="co67="sre name="L" f1x_early+rlcpuinfo_x8uct x86addr<10tname="L6="le="L93866s="cosfo id=" id="L9msr_vay=yndroma_pvt0L96>11f6" id="L896"2099">20s58x re59classsfo id=" id="L9up selec6 sie="L93836  x8620s6"stri60 F2x& name="Lry_t-f">Gn"srfg"rang"ctl_=0x&g"unsigrang""str555breaks"drivers/edac/amd64_ed11f=">12059 id="6c20" naiss6_mls"_ca  de=e 620" n>20s6"stri65line"="sref">cc20la"stri61 F2x&n59ent">s="comment">/*/*SROW"
*a hr11f="drivers/edac/amd64_ed11f=">12061 id="6c20_ed11f=6>11f=" id="L879"20_ed>20l6"strs61 class="comment">/*<<<<<<<<<* RelasevetTOP_MEM3pn* TOP_MEM2; no4mask11g off oftreserved bits sinc4s115a>
2062 id="6c20 a simi6_ed11f=">11f1" i20 a >20l2"strs61 class="comment">/*<<<<<<<<<* those ar43Read-As-Zeros115a>
2063 id="6c20ame="L964_ed11f=">1162" 20ame>20l3"strs61 class="comment">/*<<<<<<<<<*CSROW"
*a hr11f="drivers/edac/amd64_ed11f=">12064 id="6c20name="L6="line" n8"> 93820nam>20l6lass=684F2x&&,11f3>
addr<10MSR_K8_TOP_MEM1p_dac/amlass="sMSR_K8_TOP_MEM1cha9re&,11f3>
Gn"srfg"top_memselec6 sie="L93top_memlf=")555breaks"drivers/edac/amd64_ed11f=">12065 id="6c20"      6ha="innuse.> 93820"  >20l6s="co67="sresfo id=" id="L9e11fndbgct u016llxf">u5dMBmmmline"ssfo id=" id="L9pvip_dac/amlass="spvicha9 opsry_t-f">Gn"srfg"top_memselec6 sie="L93top_memlf=")555breaks"drivers/edac/amd64_ed11f=">12066 id="6c20f="sref6="line" na"> 93820f=">20ly_chaor_pvtls"drivers/edac/amd64_ed11f=">120l7 id="6c2099">0L96na* Rlass=:> 9382099">20l7"stri61 F2x&n59ent">s="comment">/*/* checku#irst wheth4r TOP_MEM2 is en  " d<*CSROW"
*a hr11f="drivers/edac/amd64_ed11f=">12068 id="6c2099" 1L96nnoperation> 9382099">20l6"stri60 F2x&u1 clasrivers/erdmsry=yndroma_pvtaddr<10MSR_K8_SYSCFGp_dac/amlass="sMSR_K8_SYSCFGcha9re&,11f3>
12069 id="6c20" naiss6 Paro back:> 93820" n>20l6   85/1068>
 90111/3>
addr<10MSR_K8_TOP_MEM selec6 sie="L93MSR_K8_TOP_MEM cha9re&,11f3>
Gn"srfg"top_mem selec6 sie="L93top_mem "str)555breaks"drivers/edac/amd64_ed11f=">12071 id="6c20_ed11f=6"line" na*      20_ed>20e68x re68">"x4&qux\n&8f">addr<10e11fndbgct u016llxf">u5dMBmmmline"ssfo id=" id="L9pvip_dac/amlass="spvicha9 opsry_t-f">Gn"srfg"top_mem selec6 sie="L93top_mem "str)555breaks"drivers/edac/amd64_ed11f=">12072 id="6c20 a simi6f">amd64_pvt20 a >20e6  &qut">end55breaks"drivers/edac/amd64_ed11f=">12073 id="6c20ame="L96e="L942"> 9ne" n20ame>20e6s="co65lass="sref">dx\n&8f">addr<10e11fndbgct 20e6"stri65">"x4"
20e6s="co67="sresfo id=" id="L9an1154readnpci_cfgct addr<10pvip_dac/amlass="spvicha9 opsry_t-f">Gn"srfg"F3p_dac/amlass="sF3lf=""ssfo id=" id="L9NBCAPam_to_c841"c hrNBCAPlf=""so2 + f">x86Gn"srfg"nbcapselec6 sie="L93nbcap"str)555breaks"drivers/edac/amd64_ed11f=">12076 id="6c20f="sref6c"  DCSM1[%d20f=">20ey_chaor_pvtls"drivers/edac/amd64_ed11f=">12077 id="6c20="line"6taddr<10pvip_dac/amlass="spvicha9)555breaks"drivers/edac/amd64_ed11f=">12078 id="6c2099" 1L96">u6420e8nea)67class34"> 934     1161>
20e6   85/1068>
 90111/3>
c6csrow_cfg,l-1,l-20sre>20srs="co65lass="sref">dx\n&8f">addr<10u8ct 20s6   934     1161>
aDCSM1[%d]20ass>20s6  "x4&qun59ent">s="comment">/*/* read settings for2Weis DRAM rang"<*CSROW"
*a hr11f="drivers/edac/amd64_ed11f=">12083 id="6c20ame="L96="lllllllllclass20ame>20s6s="co65lass="sref">dx\n&8f">addr<10readndram_base_limit_regsam_to_c841"c hrreadndram_base_limit_regslf="_x\n&8f">addr<10pvip_dac/amlass="spvicha9"ssfo id=" id="L9rang"ctl_=0x&g"unsigrang""str)555breaks"drivers/edac/amd64_ed11f=">12084 id="6c203" clas6d="L873" class="203" >20s6"stri65">"x4"
20s6s="co67="sref">x86addr<10pvip_dac/amlass="spvicha9"ssfo id=" id="L9rang"ctl_=0x&g"unsigrang""str)555breaks"drivers/edac/amd64_ed11f=">12086 id="6c20f="sref6name="L938"> 93820f=">20s6" cla62 F2x%x\n&852""x\n&8f">addr<10rw=yndroma_pvt 934     1161>
end_bit20s8nea)67class34"> 934     1161>
 93820ine>20s6  ud], base: 0xef">u016llx; limit: 0xef">u016llxf">u5dMBmmmline"67class34"> 934     1161>
end_bit 934     1161>
 93820" c>20e6"stri61">"x4&quuuuuuuuuusfo id=" id="L9> * *addr<10pvip_dac/amlass="spvicha9"ssfo id=" id="L9rang"ctl_=0x&g"unsigrang""str)"67class34"> 934     1161>
 93820ass>20e6  "x4" * *addr<10pvip_dac/amlass="spvicha9"ssfo id=" id="L9rang"ctl_=0x&g"unsigrang""str))555breaks"drivers/edac/amd64_ed11f=">12093 id="6c20ame="L95999999999*      20ame>20e5nea)67class34"> 934     1161>
20e6s="co674F2x%x\n&sfo id=" id="L9e11fndbgct us; Rang"usef">us IntlvSel=ef">ud DstN="L9ef">udf">u5dMBmmmline"67class34"> 934     1161>
20e6s="co67="sref">x86amd64_detdram_intlv_edlf="_x\n&8f">addr<10pvip_dac/amlass="spvicha9"ssfo id=" id="L9rang"ctl_=0x&g"unsigrang""str) ?;&C_pvtdri79" class="line" nEn  " d>u5dMBmmmline :;&C_pvtdri79" class="line" nDis  " d>u5dMBmmmline"67class34"> 934     1161>
 85/1068>
u5dMBmmmline :;&C_pvtdri79" class="line" n->u5dMBmmmline"67class34"> 934     1161>
20e58x re59class="sref">end_bit< "> 85/1068>
u5dMBmmmline :;&C_pvtdri79" class="line" n->u5dMBmmmline"67class34"> 934     1161>
20e6"stri60 F2x%x\n&end_bitaddr<10pvip_dac/amlass="spvicha9"ssfo id=" id="L9rang"ctl_=0x&g"unsigrang""str)"67class34"> 934     1161>
20e6class60line" name="L852"> 85 ame="cs_ addr<10pvip_dac/amlass="spvicha9"ssfo id=" id="L9rang"ctl_=0x&g"unsigrang""str))555breaks"drivers/edac/amd64_ed11f=">121=" id="6c21=" i na5   ly_cha; 934     1161>
 934     1161>
 93821=ss>2106  x86addr<10pvip_dac/amlass="spvicha9)555breaks"drivers/edac/amd64_ed11f=">121=3 id="6c21=me="L95999999999*      21=me>21=5nea)67class34"> 934     1161>
2106lass=684F2x&&,11f3>
addr<10pvip_dac/amlass="spvicha9 opsry_t-f">Gn"srfg"F1p_dac/amlass="sF1lf=""ssfo id=" id="L9DHARct x86Gn"srfg"dharam_to_c841"c hrdharcha9)555breaks"drivers/edac/amd64_ed11f=">121=5 id="6c21= class5>10f4" id="L934"21= c>2106s="co67="sresfo id=" id="L9an1154readndct_pci_cfgct addr<10pvip_dac/amlass="spvicha9"ssfo id=" id="L9DBAM0ct x86Gn"srfg"dbam0ct 21058x re59classsfo id=" id="L9an1154readnpci_cfgct addr<10pvip_dac/amlass="spvicha9 opsry_t-f">Gn"srfg"F3p_dac/amlass="sF3lf=""ssfo id=" id="L9F10_ONLINE_SPAREp_dac/amlass="sF10_ONLINE_SPARElf=""so2 + f">x86Gn"srfg"onllll_mlir"ctl_=0x&g"unsigonllll_mlir"cha9)555breaks"drivers/edac/amd64_ed11f=">121=8 id="6c21=ame="L5vt21=8nea)67class34"> 934     1161>
2109s="co67="sresfo id=" id="L9an1154readndct_pci_cfgct addr<10pvip_dac/amlass="spvicha9"ssfo id=" id="L9DCLR0ct x86Gn"srfg"dclr0ct u646/i;2110s="co67="sresfo id=" id="L9an1154readndct_pci_cfgct addr<10pvip_dac/amlass="spvicha9"ssfo id=" id="L9DCHR0ct x86Gn"srfg"dchr0ct 2116   934     1161>
2116  addr<10dct_gang11geen  " dct addr<10pvip_dac/amlass="spvicha9))1a me++l  name="L901"> 90111/3>
2116s="co65lass="sref">dx\n&8f">addr<10an1154readndct_pci_cfgct addr<10pvip_dac/amlass="spvicha9"ssfo id=" id="L9DCLR1p_dac/amlass="sDCLR1lf=""so2 + f">x86Gn"srfg"dclr1p_dac/amlass="sdclr1cha9)555breaks"drivers/edac/amd64_ed11f=">12114 id="6c21ss="sre62116s="co674F2x%x\n&sfo id=" id="L9y_chanreadndct_pci_cfgct addr<10pvip_dac/amlass="spvicha9"ssfo id=" id="L9DCHR1p_dac/amlass="sDCHR1lf=""so2 + f">x86Gn"srfg"dchr1p_dac/amlass="sdchr1cha9)555breaks"drivers/edac/amd64_ed11f=">12115 id="6c21ac/amd66_ed11f=">11f4" i21ac/>2116s="co67="sre}67class34"> 934     1161>
GENMA64_ed11f=">11f5" 21">G>211y_chaor_pvtls"drivers/edac/amd64_ed11f=">12117 id="6c21"sref">6GENMASK21158x re59classsfo id=" id="L9pvip_dac/amlass="spvicha9 opsry_t-f">Gn"srfg"eccfsym_szct c2118nea)67class34"> 934     1161>
2116   85/1068>
Gn"srfg"x8uct  90111/3>
pvt210sclass60line" name="Lsfo id=" id="L9an1154readnpci_cfgct addr<10pvip_dac/amlass="spvicha9 opsry_t-f">Gn"srfg"F3p_dac/amlass="sF3lf=""ssfo id=" id="L9EXT_NB_MCA_CFGp_dac/amlass="sEXT_NB_MCA_CFGlf=""so2 + f">x8611f=" 21ss=>2106"stri61">"x4&qusfo id=" id="L9y_chanreadndct_pci_cfgct addr<10pvip_dac/amlass="spvicha9"ssfo id=" id="L9DBAM1p_dac/amlass="sDBAM1lf=""so2 + f">x86Gn"srfg"dbam1p_dac/amlass="sdbam1"str)555breaks"drivers/edac/amd64_ed11f=">12122 id="6c21ss="sre6>  K8_REV_Fef="=21ss=>212639las67="sre"drivers/edac/amd64_ed11f=">12103 id="6c21ss="sre6mls"_ca  de=e 1e21ss=>2126s="co65lass="sref">dx59ent">s="comment">/*/* F10h, revD3pn* later centdo x8 ECC3too<*CSROW"
*a hr11f="drivers/edac/amd64_ed11f=">12124 id="6c21ref">pv6   WIDTH_12>;2126s="co674F2x%x\n&852""> 85/1068>
Gn"srfg"x8uct Gn"srfg"x8u_mrfgy=yndroma_pvt 934     1161>
2126s="co67="sref">x86Gn"srfg"eccfsym_szct GENMA64_pK8_REV_Def="=21">G>21068x re59class}67class34"> 934     1161>
6">amd64_pdiffef=21"sr>21258x re59classsfo id=" id="L9dump_misc_regsam_to_c841"c hrdump_misc_regslf="_x\n&8f">addr<10pvip_dac/amlass="spvicha9)555breaks"drivers/edac/amd64_ed11f=">12128 id="6c21" naiss6mls"_ca  de=e 1h21" n>2106"str}67class34"> 934     1161>
2106"stri65line"="sref">c 93821="l>213t"strs61 class="comment">/*/*SROW"
*a hr11f="drivers/edac/amd64_ed11f=">12131 id="6c21ss="sre6bfuscatedoC> 93821ss=>2136"strs61 class="comment">/*<* NOTE: CPU Revision Dependt"> codelfOW"
*a hr11f="drivers/edac/amd64_ed11f=">12132 id="6c21p selec6 siz 93821p s>2132"strs61 class="comment">/*<*lfOW"
*a hr11f="drivers/edac/amd64_ed11f=">12133 id="6c21ss="sre6ppings are:> 93821ss=>2133"strs61 class="comment">/*<* Input:lfOW"
*a hr11f="drivers/edac/amd64_ed11f=">12134 id="6c21name="L63999999999"> 93821nam>21=6s="cs61 class="comment">/*<*      @1srow_nr ChipSelect Row Number (0..NUM_CHIPSELECTS-1)s115a>
2135 id="6c21ac/amd66S siz< (mb)> 93821ac/>21=6s="cs61 class="comment">/*<*      k8 private pointer to - opsry115a>
2136 id="6c21">GENMA6===========> 93821">G>21=6" cls61 class="comment">/*<*                      DRAM Bank Amapess mapp11g registerlf15a>
2137 id="6c2199">0L9699999999932" 9382199">21=58x rs61 class="comment">/*<*                      node_id=y15a>
2138 id="6c21" naiss6999999999f4" 93821" n>21=6"strs61 class="comment">/*<*                      DCL register where dual_channel_active;ublf15a>
2139 id="6c21" naiss69999999912>;<93821" n>2136"strs61 class="comment">/*<*lfOW"
*a hr11f="drivers/edac/amd64_ed11f=">1214" id="6c219">3L9369999999912>;<938219">>214t"strs61 class="comment">/*<* The DBAM register consists oft4 sets oft4 bits each definitiods:lfOW"
*a hr11f="drivers/edac/amd64_ed11f=">12141 id="6c219">4L936999999992f6" 938219">>2146"strs61 class="comment">/*<*lfOW"
*a hr11f="drivers/edac/amd64_ed11f=">12142 id="6c219">5L93699999999512" 938219">>2142"strs61 class="comment">/*<* Bits:        CSROWblf15a>
2193 id="6c21dac/amd6999999992f6" 93821dac>2143"strs61 class="comment">/*<* 0-3          CSROWb 03pn* 1lf15a>
2194 id="6c21name="L699999999512" 93821nam>2146s="cs61 class="comment">/*<* 4-7          CSROWb 23pn* 3lf15a>
2195 id="6c21"      6999999910f4" 93821"  >2146s="cs61 class="comment">/*<* 8-11         CSROWb 43pn* 5lf15a>
2196 id="6c21">GENMA6999999910f4" 93821">G>2146" cls61 class="comment">/*<* 12-15        CSROWb 63pn* 7lf15a>
2197 id="6c2199">0L96999999920f8" 9382199">21458x rs61 class="comment">/*<*lf15a>
2198 id="6c2199" 1L963999999999"_c9382199">2146"strs61 class="comment">/*<* Values rang"
2199 id="6c21" naiss6o >hifsnmme> 93821" n>2196"strs61 class="comment">/*<* The mean11g oftth43values depends on3CPU revision pn* dual-channel e67le,lf15a>
215" id="6c21st CS s6z< of932MB.> 93821st >21st"strs61 class="comment">/*<* se43releva"> BKDG more infois po8f"64" id="L939" class="line" na* Get 052151 id="6c21name="L63999999999"> 93821nam>21s6"strs61 class="comment">/*<*s po8f"64" id="L939" class="line" na* Get 052152 id="6c21 a simi6ar purpose.> 93821 a >21s2"strs61 class="comment">/*<* The memory controller providessfor2Wotal oftonly 8 CSROWb in its currt">s po8f"64" id="L939" class="line" na* Get 052153 id="6c21dac/amd6999999999*      21dac>2153"strs61 class="comment">/*<* architecture. Each >u5dMBpairine" n oftCSROWb normally represents justtone DIMM ins po8f"64" id="L939" class="line" na* Get 052154 id="6c21name="L6_mls"_ca  de=e 521nam>2156s="cs61 class="comment">/*<* s11gle channel or2Wwo (2) DIMMb in dual channel mrfgis po8f"64" id="L939" class="line" na* Get 052155 id="6c21"      64_ed11f=">1154" 21"  >2156s="cs61 class="comment">/*<*s po8f"64" id="L939" class="line" na* Get 052156 id="6c21f="sref6>amd64_pdiffef="21f=">2156" cls61 class="comment">/*<* The follow11g code logic collapsessth43variousst  " ssfor2CSROW based on3CPUs po8f"64" id="L939" class="line" na* Get 052157 id="6c2199">0L96>11f6" id="L896"2199">21558x rs61 class="comment">/*<* revisionis po8f"64" id="L939" class="line" na* Get 052158 id="6c2199" 1L96" id="L897" else2199">2156"strs61 class="comment">/*<*s po8f"64" id="L939" class="line" na* Get 052159 id="6c21" naiss6_mls"_ca  de=e 621" n>2156"strs61 class="comment">/*<* R37;x\s:lfOW"
*a hr11f="drivers/edac/amd64_ed11f=">1216" id="6c21lass="s6ef">c216t"strs61 class="comment">/*<*      The number oftPAGE_SIZE pages on3th43specified CSROW number i>s po8f"64" id="L939" class="line" na* Get 052161 id="6c21_ed11f=6>11f=" id="L879"21_ed>21l6"strs61 class="comment">/*<*      enmmeps="eblf15a>
2162 id="6c21 a simi6_ed11f=">11f1" i21 a >21l2"strs61 class="comment">/*<*s po8f"64" id="L939" class="line" na* Get 052163 id="6c21ame="L964_ed11f=">1162" 21ame>21l3"strs61 class="comment">/*<*CSROW"
*a hr11f="drivers/edac/amd64_ed11f=">12164 id="6c21name="L6="line" n8"> 93821nam>21l6lasse67linex\n&8f">addr<10up selec6 sie="L93836  x86addr<101srow_nrct 2166s="ca me++l  name="L901"> 90111/3>
 93821f=">2166" cla62 F2x&x\n&8f">addr<10tp selec6 sie="L93836  x860L96na* Rlass=:> 9382199">21658x re59classsfo id=" id="L9tp selec6 sie="L93836  x86x86Gn"srfg"dbam1p_dac/amlass="sdbam1"str :;&">x86Gn"srfg"dbam0ct  9382199">2168nea)67class34"> 934     1161>
 93821" n>21l6  /*/*SROW"
*a hr11f="drivers/edac/amd64_ed11f=">1217" id="6c21e9DCL0_6OWtrinister> 93821e9D>217t"strs61 class="comment">/*<<<<<<<<<* The math on3this doesn't look right on3th43surface because x/2*4 cenSROW"
*a hr11f="drivers/edac/amd64_ed11f=">12171 id="6c21_ed11f=6"line" na*      21_ed>2176"strs61 class="comment">/*<<<<<<<<<* b43simplified to x*2 but3this expression makes use oftth43fact3tha>s po8f"64" id="L939" class="line" na* Get 052172 id="6c21 a simi6f">amd64_pvt21 a >2172"strs61 class="comment">/*<<<<<<<<<* it is integral math where 1/2=0. This intermediate value becomessth4s115a>
2173 id="6c21ame="L96e="L942"> 9ne" n21ame>2173"strs61 class="comment">/*<<<<<<<<<* number oftbits to shifttth43DBAM register to extract3the proper2CSROWs115a>
2174 id="6c213" clas6r11f="drivers/ed213" >2176s="cs61 class="comment">/*<<<<<<<<<* fieldis po8f"64" id="L939" class="line" na* Get 0521e5 id="6c21"      64x - DCSM1[%21"  >2176s="cs61 class="comment">/*<<<<<<<<<*CSROW"
*a hr11f="drivers/edac/amd64_ed11f=">12176 id="6c21f="sref6c"  DCSM1[%d21f=">2176" cla62 F2x&x\n&8f">addr<10cs_mrfgct  85/1068>
 85/1068>
u642176"stri60 F2x&u1 clasrivers/enr_pagesct Gn"srfg"opsct Gn"srfg"dbam_to41sp_dac/amlass="sdbam_to41slf="_x\n&8f">addr<10pvip_dac/amlass="spvicha9"ssfo id=" id="L9dcip_dac/amlass="sdcicha9rex\n&8f">addr<10cs_mrfgct addr<10PAGE_SHIFTselec6 sie="L93PAGE_SHIFTcha9)555breaks"drivers/edac/amd64_ed11f=">12179 id="6c21ine" na6vt2176"stri65line"="sref">cc6csrow_cfg,l-1,l-21sre>2180s="co67="sresfo id=" id="L9 -lmndbgct ud)3DBAM map index= ef">udf">u5dMBmmmline";x\n&8f">addr<101srow_nrct addr<10cs_mrfgct 2181s="co67="sresfo id=" id="L9 -lmndbgct uu  channel-cou37;= ef">udf">u5dMBmmmline"55breaks"drivers/edac/amd64_ed11f=">121s2 id="6c21ass="sr6">aDCSM1[%d]21ass>21s6  "x4&qu&u1 clasrivers/enr_pagesct Gn"srfg"channel_cou37ct 2185nea)67class34"> 934     1161>
2186s="co674F2x%x\ &,11f3>
21s6s="c}67class34"> 934     1161>
 93821f=">218y_chaor_pvtls"drivers/edac/amd64_ed11f=">12187 id="6c21="line"6ll ecc mls"_c93821="l>21858x rs61 class="comment">/*/*SROW"
*a hr11f="drivers/edac/amd64_ed11f=">12188 id="6c2199" 1L963999999999"_c9382199">2186"strs61 class="comment">/*<* Initializetth43array oftcsrow atlasbute instances, based on3th43valuesSROW"
*a hr11f="drivers/edac/amd64_ed11f=">12189 id="6c21ine" na5errmdacnmme> 93821ine>2186"strs61 class="comment">/*<* from pci config3hardwar43registersis po8f"64" id="L939" class="line" na* Get 05219" id="6c21emory. 5This methocommen21emo>219t"strs61 class="comment">/*<*CSROW"
*a hr11f="drivers/edac/amd64_ed11f=">12191 id="6c21" class5oacnat AMD.> 93821" c>21e6"stre67line837;x\n&8f">addr<10init41srowsct  93821ass>21e6   90111/3>
2196s="co65lass= name="L" f1x_early+rlcsrow_infoct 21e6s="co674F2x& name="L" f1x_early+rldimm_infoct 10f4" id="L934"21n c>21e6s="co67="sre name="L" f1x_early+rlmd64_epvip_dac/amlass="sy_chanpvicha91*L" f1x_early+rlpvip_dac/amlass="spvicha91 name="cs_ Gn"srfg"pvi_infoct addr<10tname="L6="le="L93866s="cosfo id=" id="L9basectl_=0x&g"unsigbaself="re&,11f3>
x86addr<10ict 

21e6class60line"enum"L" f1x_early+rlmem_typectl_=0x&g"unsigmem_type  x86x86 93822= c>2201"stri60 F2x&837;x\n&8f">addr<10nr_pagesct  93822=ss>220639las67="sre"drivers/edac/amd64_ed11f=">122=3 id="6c22=me="L95999999999*      22=me>22038x re59classsfo id=" id="L9an1154readnpci_cfgct addr<10pvip_dac/amlass="spvicha9 opsry_t-f">Gn"srfg"F3p_dac/amlass="sF3lf=""ssfo id=" id="L9NBCFGp_dac/amlass="sNBCFGlf=""so2 + f">x862206"stri65">"x4"
2206s="co67="sresfo id=" id="L9pvip_dac/amlass="spvicha9 opsry_t-f">Gn"srfg"nbcfgct 122=6 id="6c22="line"54_ed10f=">10f5" 22="l>220y_chaor_pvtls"drivers/edac/amd64_ed11f=">122=7 id="6c22=-chipk5422058x re59classsfo id=" id="L9 -lmndbgct ud, NBCFG=0xef">u08x[ChipKillEccCap: ef">ud|DramEccEn: ef">ud]f">u5dMBmmmline"55breaks"drivers/edac/amd64_ed11f=">122=8 id="6c22=ame="L5vt2206"stri60 F2x%x\n&esfo id=" id="L9pvip_dac/amlass="spvicha9 opsry_t-f">Gn"srfg"mc_node_idct 122=9 id="6c22=ne" na5   ly_cha;2206class60line" name="L8!!_x\n&8f">addr<10vay=yndroma_pvtaddr<10vay=yndroma_pvtu646/i;2210s="c55breaks"drivers/edac/amd64_ed11f=">12211 id="6c22ss="sre6f=" id="L880" el22ss=>2211s="co67="sresfo id=" id="L9for_each_chip_seyecip_dac/amlass="sfor_each_chip_seyecilf="_x\n&8f">addr<10ict  90111/3>
2216  "x4&qun" f1x_early+rlcsrowct Gn"srfg"1srowsct addr<10ict 1112" 22ss=>2215nea)67class34"> 934     1161>
2216s="co674F2x%x\n&852""x\n&8f">addr<10csrow_en  " dct addr<10ict addr<10csrow_en  " dct addr<10ict  90111/3>
11f4" i22ac/>2216s="co67="sref">x86ud VALIDsfor2MC node ef">udf">u5dMBmmmline"55breaks"drivers/edac/amd64_ed11f=">122e6 id="6c22">GENMA64_ed11f=">11f5" 22">G>2216" cla62 F2x%x\n&&&&&&&&&&////////sfo id=" id="L9ict 
Gn"srfg"mc_node_idct 6GENMASK22158x re59classsssssssssssssssscontinue555breaks"drivers/edac/amd64_ed11f=">12218 id="6c22" naiss6ef">c2216"stri60 F2x%x\n&}67class34"> 934     1161>
2216"stri65line"="sref">cpvt220sclass60line" name="Lsfo id=" id="L9emptyct 11f=" 22ss=>2206"stri61">"x4&qu852"> 85/1068>
addr<10ict 2226  "x4"addr<10pvip_dac/amlass="spvicha9"s0"ssfo id=" id="L9ict 2226s="co65lass="sref">d852"> 85/1068>
addr<10ict pv6   WIDTH_12>;2226s="co674F2x%x\n&ot;addr<10pvip_dac/amlass="spvicha9"s1"ssfo id=" id="L9ict 1124" id="L934"22ac/>2226s="c55breaks"drivers/edac/amd64_ed11f=">12206 id="6c22">GENMA64_pK8_REV_Def="=22">G>2226" cla62 F2x%x\n&sfo id=" id="L9> * *addr<10pvip_dac/amlass="spvicha9"sx\n&8f">addr<10ict x86x866">amd64_pdiffef=22"sr>22258x re59classssssssssx59ent">s="comment">/*/* 8 bytes oftresolutiod<*CSROW"
*a hr11f="drivers/edac/amd64_ed11f=">12228 id="6c22" naiss6mls"_ca  de=e 1h22" n>2228nea)67class34"> 934     1161>
2226  addr<10pvip_dac/amlass="spvicha9"sx\n&8f">addr<10ict  93822="l>2230s="c55breaks"drivers/edac/amd64_ed11f=">12231 id="6c22ss="sre6bfuscatedoC> 93822ss=>22368x re68">"x4&qux\n&8f">addr<10e11fndbgct udtcsrow ef">ud:f">u5dMBmmmline"ssfo id=" id="L9pvip_dac/amlass="spvicha9 opsry_t-f">Gn"srfg"mc_node_idct  93822p s>2236  "x4&qun" f1x_early+rle11fndbgct uuf">u5dMBmmmline"55breaks"drivers/edac/amd64_ed11f=">12233 id="6c22ss="sre6ppings are:> 93822ss=>2236s="co65lass="sref">d&ot;Gn"srfg"channel_cou37ct  93822nam>2236"stri65">"x4"
x86/*/*SROW"
*a hr11f="drivers/edac/amd64_ed11f=">12236 id="6c22">GENMA6===========> 93822">G>22=6" cls61 class="comment">/*<<<<<<<<<<<<<<<<<* determlll whether2CHIPKILL or2JUST ECC3or2NO ECC3is operatingSROW"
*a hr11f="drivers/edac/amd64_ed11f=">12237 id="6c2299">0L9699999999932" 9382299">22=58x rs61 class="comment">/*<<<<<<<<<<<<<<<<<*CSROW"
*a hr11f="drivers/edac/amd64_ed11f=">12238 id="6c22" naiss6999999999f4" 93822" n>2236"stri60 F2x%x\n&852"> 85/1068>
Gn"srfg"nbcfgct 12239 id="6c22" naiss69999999912>;<93822" n>2236class60line" name="L852"> 85f">x86 85/1068>
Gn"srfg"nbcfgct 1224" id="6c229">3L9369999999912>;<938229">>224m8x re59class="sref">end_bit 85f">x86x864L936999999992f6" 938229">>22468x re68">"x4&quelse55breaks"drivers/edac/amd64_ed11f=">12242 id="6c229">5L93699999999512" 938229">>2246  "x4"x862245nea)67class34"> 934     1161>
2246s="co674F2x%x\n&for2"> 85/1068>
Gn"srfg"channel_cou37ct  90111/3>
2246s="co67="sref">x86x86Gn"srfg"channelsct addr<10jct Gn"srfg"dimmct GENMA6999999910f4" 93822">G>2246" cla62 F2x%x\n&&&&&&&&&y_t-f">Gn"srfg"dimmct Gn"srfg"mtypectl_=0x&g"unsigmtype  0L96999999920f8" 9382299">22458x re59classssssssssssssssssy_t-f">Gn"srfg"dimmct Gn"srfg"e11fnmrfgct x862246"stri60 F2x%x\n&end_bit121l8 id="6c2199" 1L96nnoperation> 9u11f="> me=h " f1x_early+36vers/edac&&y_76=6"li9eed11f=">215" id="6c21st CS s6z< of932MB.> 93c2196"strs61 class="comment">/2<* Th2510pvip_dac/amlass="spvicha9"ssfo id=" id="L9rang"ctl2_ed11f=">225" id="6c21st CS s6z< of922MB.>25pvip_dac/amlass="spvicha9 opsry_t-f">Gn"srf2"64" id="L239" class="line" na* Get 25215125f=">12241 id=64_ed11f=">121s3 id="622" naiss6_ed11f=">11f8" i22"&end_bit121l8 id="6c2199" 3821 a >2122"strs61 class="comment">2*<* T2e memolass="spvicha9"ssfo id=" id="L9rang"ctl2_NEp_dac/amlass="comment">/*<* archi2ectur25"spvicha9 opsry_t-f">Gn"srfg"channel_cou37cte="L6_mls"2ca  de=e 521nam>2156s="cs21 cla2s="comment">/*<* s11gle chan/* get all cor37;x\s:lac/DCTECC3or2NO ECC3is operatingSROW"
*a hr11f="drivers"64" id="L239" class="line" na* Get 2521552id="6c1emory.voidf=">12205 id="6c22ac/pus_on_:lacs"dri/pu id="L934"22ac/>2226s="cpus_on_:lacs"dri/pu id=93ilf4_ed11f=">12192 id="6c2pu id="L934"22ac/>222/pu id=93ilat AMD.> 93821" c>klf="_x\n&8f">addr<10pvip_, unsignedf=">12205 id="6cnfndbglf="_1"ssC_pn2x%ECC3is operatingSROW"
*a hr11f="drivers"t /*<*2The f2llow113jlf="  me=h " f1x_early+rlpvip_dac/amla939" class2"line" na* Get 052157 id=26c21925=" id="L9tp selec6 sie="L93836  /pu"L934"22ac/>222/pui22"&end_bit121l8 id="6c2199" 3L96nnopera39" class="line" na* Get 25215825d11f=">12218 id="6c22" naiss6ef">c2210fo id="/pu"L934"22ac/>2222ef">2210fo id="/pu" n>2226  222/pui22";ECC3is operatingSROW"
*a hr11f="driversmls"_ca21l2s>216t"strs61 class="comm2nt">/26s=>220sclass60line" name="Lsfo id=" id="a h_6s="nb1fndbglf="_1"ssC_pa h_6s="nb1fn" n>2226  222/pui22"; =9" 1L963999999999"fndbglf="_1"ssC_pn2x%ECC3is operatingSROW"
*a hr11f="driversass="line"2na* Get 052161 id="6c21_e211f=626f=">12241 id="6c229">4L936999999992f6" 93822/pu id=_ss="cpu"L934"22ac/>222/pu id=_ss="cpu" n>2226  222/pui22"c/amd64_ed11f=">12196 id="6c21="line"54_ed10au1 clasrivers/enr_pagesct Gn"srfg"channel_cou37ct8ct /*<* s11gle chan/* check MCG_CTL;x\sall rs/ecpus;x\s:lac/>1223CC3or2NO ECC3is operatingSROW"
*a hr11f="drivers_nrct  9nb1mce_bank")555bre_on_=0x&g"unsigrang""st34"> 9nb1mce_bank")555bre_on_=0x&" n>2unsignedf=">12205 id="6cnfndbglf="_1"ssC_pn2x%ECC3is operatingSROW"
*a hr11f="driversc6 sie="L92836  x86x862/n"sr26vers/edac/amd64_ed11f=">1217/pu id=_var_r2"> 85/1068>
122228nea)67class2196 id="6c21="line"54_ed10f=">10f5" 21="l>2196" cla62 F2x&x\n&8f"2g"dbam0ct 2a 1ame="L93dbam0cha9555br2aks"d2ivers/edac/amdelec6 sie="L93836  /pu"L934"22ac/>222/pui22"/3>
 934     1161>
1217coo206class60line" coo2=">122228nea)67class64_06class60line" 64_6c2299" 1L963999999999fal_base_and_maskam_fal_bed10f=">10f5" 21="l>2196" cla62 F2x&x\n&8f"23ls"_ca21l2 class="comment">/*<<<<<<2<<* T27pvip_dac/amlass="spvicha9 opsry_t-f">Gn"srf21_ed>2176"2trs61 class="comment">/*<2<<<<<27vers/edac/amd64_ed11f=">12111 id=zalloc_ pu id=_varase_and_maskam_zalloc_ pu id=_var" n>2hr> *addr<10pvip_/3>
2172"s2rs61 class="comment">/*<<2<<<<<27ame="L93dct_gang11geen  " dlf="_x\n&8f">adwarng"unsigrang""st34"> 9warn" n>2255breaks"drivers/edac/amd62 id=s: Error alloc4_ed1 <10puscatedoC> 93822ss=>22368x re68"__func__g"unsigrang""st__func__ed10au1 clasrivers/enr_pagesct /*<<<2<<<<<27vers/edac/amd64_ed11f64_ed11f=">121s3 id="6fal_base_and_maskam_fal_bed10f=">10f5" 21="l>2196" cla62 F2x&x\n&8f"23ct Gn"srfg"dchr1p_2L939" clas2="line" na* Get 0521e5 id2"6c2127fg"nbcfgct 
2226s="cpus_on_:lacs"dri/pu id=93ilfaddr<10pvip_/3>
s="comment">/*/*\n&8f">add2<10cs_mrfgct 121=rdmsr_on_cpus06class60line" 6dmsr_on_cpus93ilfaddr<10pvip_/3>
addrMSR_IA32_MCG_CTLi22"c/amd64_ed11f=">12srs06class60line" 2srs%f=">10f5" 21="l>2196" cla62 F2x&x\n&8f"2Tselec6 si2="L93PAGE_SHIFTcha9)555br2aks"d288f">addr<10pvip_dac/amlass="spvicha9"sx\n&8fdf">u5dMBm2mline";x\n&8f">addr<101sr2w_nrc2 2210spu"L934"22ac/>2222ef">2210cpu" n>2226  222/pui22"c/amd64_ed11f=">12196 id="6c21="line"54_ed10a93jlf="  me=h " f1x_early+rlpvip_dac/amla1ame="L93e21fndbglf="_0"ssC_pvtdri792 clas2="line" n    nr_pages/"
*a hr11f="drivers/edasrase_and_maskam_asr93ilat AMD.> 93821" cre822" n>2236classre86c2299" 1L963999999999per0cpu_ptrase_and_maskam_per0cpu_ptr93ilf222/pui22";f=">10f5" 21="l>2196" cla62 F2x&x\n&8f"2Ta >2172"s2"ssfo id=" id="L9pvip_dac2amlas28ame="L93dct_gang11geen  " dlf="_x\n&db&g"unsigrang""stdb&ed1099" 1L963999999999re822" n>2236classre86c22  addr<10vayMSR_MCGCTL_NB1f=">12242 id="6MSR_MCGCTL_NB1ed10f=">10f5" 21="l>2196" cla62 F2x&x\n&8f"2 Gn"srfg"channel_cou37ctr112184 id2"6c213" clas6d="L873" cla2s="2128vers/edac/amd64_ed11f=96999999920f8" 9382"6c22="line"54_ed10f=">10f5" 22="l>220y_chaor_pvtls"drivers/ecor3232 id=", MCG_CTL: 22=7 idllxd11f MSRdac/2 id=s6c22p selec6 siz 93822p s>2236  "x4gesct 222/pui22"c/amd64_ed11f=">1re822" n>2236classre86c22  2236classqi22"c 93822p s>2236  "x4g68>
21s6s="c}67cl2ss34"28typectl_=0x&g"unsigmtype  220y_chaor_pvtls"drivers/e)555bre22p selec6 si64_e220y_chaor_pvtls"drivers/edis55bre22p selec6 siHIPKILLp_dac/amlass="sNBCFG_CHIPKILL"str),aor_pvtls"2rivers/edac/amd64_ed11f="212187288x re59classssssssssx59ent">s="comment">/*/*c9382199">2186"strs61 class="comment2>/*<*286vers/edac&&y_76=6"li64_ed11f=">12111 id=db&g"unsigrang""stdb&ed10;ECC3is operatingSROW"
*a hr11f="drivers>12189 id=26c21ine" na5errmdacnmme> 23821i29cha91vt ss= " f1x_early+rlNBCgoto/amd64_ed11f=">1ou_06class60line" ou_ed10f=">10f5" 21="l>2196" cla62 F2x&x\n&8f"264" id="L929" class="line" na* Get 02219" 29Gn"srfg"dchr1p_241srowslf=2_ name="L" f1x_early+rlme2_neas292a 1ame="L93csrow_nrcha9rex\64_06class60line" 64_6c2299" 1L963999999999
*a&g"unsigrang""st
*a&ed10f=">10f5" 21="l>2196" cla62 F2x&x\n&8f"26a >2172"s2x86x86addr<10pvip_IPKILLp_dac/amlass="sNBCFG_CHIPKILL"str),_dac/amlas2="spvicha91 name="cs_ 121s3 id="664_06class60line" 64_6c22PKILLp_dac/amlass="sNBCFG_CHIPKILL"str),_68>
Gn"srfg"dchr1p_24or_pvtls"2f="hr21n-c>21958x re59cla2ssfo 298x re59classssssssssx59ent">s="comment">/*/*f">addr<102ct 
<2 hr11j1emory. 5This methocommen2toggle_125 err_repor_ed1g"unsigrang""st
oggle_125 err_repor_ed193ilf4_ed11f=">12192 id="6c125 iet_ed1s06class60line" 125 iet_ed1s93ilat AMD.> 93821" cs06class60line" s% 1ame="L93e11fndbsct  85/1068>
122228nea)67classc id="L934"22ac/>222/"54_ed10f=">10f5" 21="l>2196" cla62 F2x&x\n&8f"3>122=1 id=36c22= class5oacnat AMD.> 33822=30vers/edac/amd6lec6 sie="L93836  /pu"L934"22ac/>222/pui22"&end_bit121l8 id="6c2199"3ct x862hr> *222/"54_ed10/3>
adwarng"unsigrang""st34"> 9warn" n>2255breaks"drivers/edac/amd62 id=s: error alloc4_ed1 <10puscatedoC> 93822ss=>22368x re68"__func__g"unsigrang""st__func__ed10au1 clasrivers/enr_pagesct Gn"30i79" class="line" n--64_ed11f=">121s3 id="6fal_base_and_maskam_fal_bed10f=">10f5" 21="l>2196" cla62 F2x&x\n&8f"3Gn"srfg"dchr1p_3="_0"ssC_p3tdri79" class="line" nnod3 ef">308x re59classssssssssx59ent">s="comment">/*/3c/amlass="3pvicha9 opsry_t-f">Gn"srf3"mc_n30vers/edac/amd64_ed11f=">121=22ac/pus_on_:lacs"dri/pu id="L934"22ac/>2226s="cpus_on_:lacs"dri/pu id=93ilf222/"54_ed10/3>
addr<10vay=yndroma_pvt1221rdmsr_on_cpus06class60line" 6dmsr_on_cpus93ilf222/"54_ed10/3>
addrMSR_IA32_MCG_CTLi22"c/amd64_ed11f=">12srs06class60line" 2srs%f=">10f5" 21="l>2196" cla62 F2x&x\n&8f"3c/amlass="3for_each_chip_seyecilf="_3\n&8f31>2201"stri60 F2x&837;x\n&8f">addr<10nr_page3sp68 mcict331vers/edac/amd64_ed11f=">122=2ef">2210spu"L934"22ac/>2222ef">2210cpu" n>2226  222/pui22"c/amd64_ed11f=">1c id="L934"22ac/>222/"54_ed10a93jlf="  me=h " f1x_early+rlpvip_dac/aml3">addr<10i3t Gn"srfg"channel_cou37c3 dct 2236classre86c2299" 1L963999999999per0cpu_ptrase_and_maskam_per0cpu_ptr93ilf222/pui22";f=">10f5" 21="l>2196" cl"channel_cou37c3 9pvip_dac31ame="L93e11fndbglf="_1"s3C_pvt31fg"nbcfgct 
6GENMASK2236classre86c22  addr<10vayMSR_MCGCTL_NB1f=">12242 id="6MSR_MCGCTL_NB1ed10;ECC3is operatingSROW"
*a hr11f="driver3sssssscont3nue555breaks"drivers/edac3amd6431a91vt ss= " f1x_early+rlNBCFGedac/amd64_ed11f=">122=s06class60line" s%  21e6"stri60 F2x&837;x\n&3a22" n>2213"stri60 F2x%x\n&}67cl3ss34"32 vt ss= " f1x_early+rlNBCFG_ECC_ENABLEp_dac3e="L222" i3="6c220s="sre6">pvt220sclass60line" nedac/amd64_ed11f=">1221re822" n>2236classre86c22  addr<10ict x8693jlf="  me=h " f1x_early+rlpvip_dac/aml3addr<10pvip_dac/amlaedac/amd6">12234 id="6c22name="L63999999999"> 93822nam>2236"stri65">"x4&3 " dct amd64_pvt232176s="cs61 clgggggggggggggggg*C3or2NO ECC3is operatingSROW"
*a hr11f="driver3=" id="L9i3t x862236classre86c22  12242 id="6MSR_MCGCTL_NB1ed10f=">10f5" 21="l>2196" cla62 F2x&x\n&8f"3 "_0"ssC_p3sref">6">amd64_pdiffef=223sr>2232"6c22"sref">6GENMASK22158x re59classsssssssss3 8 bytes o3tresolutiod<*CSROW"
*a hr31f="d3ivers/edac/amd/adcs_cf22"sr>22158x re59classsssssssss3&g"unsigmd34_edetermlll_memoryntypel3="_x\33vers/edac/amd64_ed11f=">1217wrmsr_on_cpus06class60line" wrmsr_on_cpus93ilf222/"54_ed10/3>
addrMSR_IA32_MCG_CTLi22"c/amd64_ed11f=">12srs06class60line" 2srs%f=">10f5" 21="l>2196" cla62 F2x&x\n&8f"3">addr<10i3t Gn"srf3_dac/amlas3="spvicha9 opsry_t-f">Gn"3rfg"m332a 1ame="L93csrow_nrcha9rex\2ree_ pu id=_varase_and_maskam_2ree_ pu id=_var93ilf222/"54_ed10af=">10f5" 21="l>2196" cla62 F2x&x\n&8f"3"a 1ame="L3arly+rle11fndbgct x86c2186s="co674F2x%x\ &,11f3>

G>22=6" c3s61 class="comment">/*<<<3<<<<<3<<<<<<1emory.id=" id="L9> * 93821" cs06class60line" s% 1ame="L93e11fndbsct "_0"ssC_p3_ed11f=">12237 id="6c22993>0L9639999999932" 9382299">2222222222222222222222224_ed11f=">12192 id="6c39ladevase_and_maskam_p9ladev93ilat AMD.> 93821" c      22=me>22038x re59;ECC3is operatingSROW"
*a hr11f="driver3sry_t-f">G3"srfg"nbcfgct 1217coo206class60line" coo2=">122228nea)67class64_06class60line" 64_6c2299" 1L963999999999
*a&g"unsigrang""st
*a&ed10f=">10f5" 21="l>2196" cla62 F2x&x\n&8f"3f">x861221f="re&,11f3>
addr<10pvip_22dax3;laedac/amd6ent">/*<* s11gle chan/* UECC/Cs/ed)555brg*C3or2NO ECC3is operatingSROW"
*a hr11f="driver3_SECDED"st3555breaks"drivers/edac/am364_ed34>2201"stri60 F2x&837;x\n&8f">addr<10nr_page34"addr<10pvip_ame="Lsfo id=" id="toggle_125 err_repor_ed1g"unsigrang""st
oggle_125 err_repor_ed193ilf AMD.> 93821" cs06class60line" s% 1ame="L93e11fndbnfndbglf="_1"ssC_pn2x% 1ame="L93e11fndbONdbglf="_1"ssC_pONco65la93jlf="  me=h " f1x_early+rlpvip_dac/aml3ONEp_dac/a3lass="sEDAC_NONE"str555br3aks"d3ivers/edac/amd64_ed11f=96999999920f8"8f">adwarng"unsigrang""st34"> 9warn" n>2255breaks"drivers/edac/amd6Error )555bed1 s/edrepor_ed1 o f1 MCGCTL!uscatedoC> 9382af=">10f5" 21="l>2196" cla62 F2x&x\n&8f"3ss="spvich39 opsry_t-f">Gn"srfg"chan3el_co337ct 121s3 id="6fal_base_and_maskam_fal_bed10f=">10f5" 21="l>2196" cla62 F2x&x\n&8f"3hannelsct 3a 1ame="L931hannelslf="[x3n&8f"3addr<10jct G3"srfg34r1""> 85/1068>
Gn"srfg"e11fnmrfg3t  93822=ss>220639las67="sre"drivers/edac/a      22=me>22038x re59classsfo id=" id="L9TL="_x\n&8f">addr"L9TLre59cl="L93an1154readnpci_cfga&g"unsigrang""stskla&i22"af=">10f5" 21="l>2196" cla62 F2x&x\n&8f"3sry_t-f">G3tion> 9u11f="> me=h " f1x3early34d11f=">12218 id="6c22" naiss6ef">c 93c2193"strs61 class="comment">/3<* Th35vers/edac/amd64_ed11f=">1217s06class60line" s%  
addr<10vay2196 id="6c21="line"54_ed10f=">10f5" 21="l>2196" cla62 F2x&x\n&8f"3_ed11f=">235" id="6c21st CS s6z< of932MB.>35vers/edac/amd64_ed11f=">1221s06class60line" s%  2201"stri60 F2x&837;x\n&8f">addr<10nr_page33821 a >2132"strs61 class="comment">3*<* T35vers/edac/amd64_ed11f=">122=="6a&g"unsigrang""stskla&i22"8|9" 1L9639999999992196 id="6c21="line"54_ed10f=">10f5" 21="l>2196" cla62 F2x&x\n&8f"3_NEp_dac/a3lass="comment">/*<* archi3ectur354ers/edac/amd64_ed11f=">1217t  93822=sswrite=ss="sr5="sre"drivers/edac/a      22=me>22038x re59classsfo id=" id="L9TL="_x\n&8f">addr"L9TLre59clan1154readnpci_cfga&g"unsigrang""stskla&i22"af=">10f5" 21="l>2196" cla62 F2x&x\n&8f"3e="L6_mls"3ca  de=e 521nam>2156s="cs31 cla35>addr<10pvip_dac/amlass="spvicha9"s1"ssfo i3"64" id="L339" class="line" na* Get 35215535  93822=ss>220639las67="sre"drivers/edac/a      22=me>22038x re59classsfo id=" id="L9an1154readnpci_cfgct /*<*3The f35r1""> 85/1068>
1217ame=2"6c22="line"54_ed10f=">10f5" 22="l>220y_chaor_pvtls"drivers/e1: dac/amd64_ed11f=">122=7 id="6c"hr22=-c>22058x re59classsfo id=" id="L9 -lmndbgct 22a&g"unsigrang""stskla&i22"8!!_x\n&8f">addr<10vay=yndroma_pvt216t"strs61 class="comm3nt">/36s=>220sclass664_ed_cha;22a&g"unsigrang""stskla&i22"8!!_x\n&8f">addr<10vay=yndroma_pvt12241 id="6c229">=96999999920f8"8f">adwarng"unsigrang""st34"> 9warn" n>2255breaks"drivers/edac/amd6DRAM s/eddis55bre;x\s:lac/>122, )555bed1...uscatedoC> 9382af=">10f5" 21="l>2196" cla62 F2x&x\n&8f"3
216236me="L93e11fnmrfg  x8610f5" 21="l>2196" cla62 F2x&x\n&8f"3
="L6_mls"3="L9388_cha9u1 clasrivers3edcip36>addr<10pvip_dac/amlass="spvicha9"s1"ssfo i3_nrct /*<* s11gle chan/* Att1f8" to _ed11x\sDRAM s/edE555brg*C3or2NO ECC3is operatingSROW"
*a hr11f="driver3c6 sie="L93836  x86122=="6a&g"unsigrang""stskla&i22"8|9" 1L963999999999=yndroma_pvt10f5" 21="l>2196" cla62 F2x&x\n&8f"3
39" class3lass="sdbam1"str :;&">x863/n"sr36999999932" 9382299">264_ed11f=">1217t  93822=sswrite=ss="sr5="sre"drivers/edac/a      22=me>22038x re59classsfo id=" id="L9an1154readnpci_cfgct c 934     1161>
 93822=ss>220639las67="sre"drivers/edac/a      22=me>22038x re59classsfo id=" id="L9an1154readnpci_cfgct /*<<<<<<3<<* T37pvip_dac/amlass="spvicha9 opsry_t-f">Gn"srf31_ed>2176"3trs61 class="comment">/*<3<<<<<37f=">12241 id="6c229">64_ed_cha;22a&g"unsigrang""stskla&i22"8!!_x\n&8f">addr<10vay=yndroma_pvt2172"s3rs61 class="comment">/*<<3<<<<<37ame="L93dct_gang11gee"6c229">=96999999920f8"8f">adwarng"unsigrang""st34"> 9warn" n>2255breaks"drivers/edac/amd6Hardware rejectre;DRAM s/ed)555br,catedoC> 9382jlf="  me=h " f1x_early+rlpvip_dac/aml3 4" id="L93s61 class="comment">/*<<<3<<<<<37vers/edac/amd64_ed11ft_gang11gee"6c229">=220y_chaor_pvtls"drivers/echeck =">112 DIMMn"srfigu64_eon.uscatedoC> 9382af=">10f5" 21="l>2196" cla62 F2x&x\n&8f"33ct =96999999920f8"64_06class60line" 64_6c2299" 1L963999999999fal_base_and_maskam_fal_bed10f=">10f5" 21="l>2196" cla62 F2x&x\n&8f"3L939" clas3="line" na* Get 0521e5 id3"6c2137vers/edac/amd64_ed11f}">x8693jlf="  me=h " f1x_early+rlpvip_dac/aml3068>
adinfog"unsigrang""st34"> 9info" n>2255breaks"drivers/edac/amd6Hardware acceptre;DRAM s/edE555bruscatedoC> 9382af=">10f5" 21="l>2196" cla62 F2x&x\n&8f"3339" class3/ 2) * 4))1o2 + 10xF555br3aks"d37"6c22"sref">6GENMASK22158x re59classsssssssss3\n&8f">add3<10cs_mrfgct x8693jlf="  me=h " f1x_early+rlpvip_dac/aml3Tselec6 si3="L93PAGE_SHIFTcha9)555br3aks"d38934     1161>
u5dMBm3mline";x\n&8f">addr<101sr3w_nrc38Gn"srfg"dchr1p_31ame="L93e31fndbglf="_0"ssC_pvtdri793 clas38>2201"stri60 F2x&837;x\n&8f">addr<10nr_page3Ta >2172"s3"ssfo id=" id="L9pvip_dac3amlas38vers/edac/amd64_ed11f=">122=ame=2"6c22="line"54_ed10f=">10f5" 22="l>220y_chaor_pvtls"drivers/e2: dac/amd64_ed11f=">122=7 id="6c"hr22=-c>22058x re59classsfo id=" id="L9 -lmndbgct 22a&g"unsigrang""stskla&i22"8!!_x\n&8f">addr<10vay=yndroma_pvt121s3 id="664_06class60line" 64_6c22PKILLp_dac/amlass="sNBCFG_CHIPKILL"str)3g68>
21s6s="c}67cl3ss34"38="L9bss="spvicha9 opsry_t-f">Gn"srfg"dchr1p_3aor_pvtls"3rivers/edac/amd64_ed11f="312187388x re59classssssssssx59ent">s="comment">/*/3c9382199">3186"strs61 class="comment3>/*<*38hr11j1emory.voidf=">12205 id="6crestorr_125 error_repor_ed1g"unsigrang""strestorr_125 error_repor_ed193ilf4_ed11f=">12192 id="6c125 iet_ed1s06class60line" 125 iet_ed1s93ilat AMD.> 93821" cs06class60line" s% 1ame="L93e11fndbsct 12189 id=36c21ine" na5errmdacnmme> 33821i39cha91vt ss= " f1x_early+rlNBCCCCCCCCCCCCCCCCC4_ed11f=">12192 id="6c39ladevase_and_maskam_p9ladev93ilat AMD.> 93821" c      22=me>22038x re59;ECC3is operatingSROW"
*a hr11f="driver364" id="L939" class="line" na* Get 03219" 39
addr<10pvip_22dax3;laedac/amd6ent">/*<* s11gle chan/* UECC/Cs/ed)555brg*C3or2NO ECC3is operatingSROW"
*a hr11f="driver36a >2172"s3x86Gn"srfg"channel_cou37c3s112184 id34F2x& name="L" f1x_early+3ldimm3infoct 
 85/1068>
1217t  93822=ss>220639las67="sre"drivers/edac/a      22=me>22038x re59classsfo id=" id="L9TL="_x\n&8f">addr"L9TLre59cl="L93an1154readnpci_cfga&g"unsigrang""stskla&i22"af=">10f5" 21="l>2196" cla62 F2x&x\n&8f 399382199">3ct 
<39vers/edac/amd64_ed11f=">121=>22a&g"unsigrang""stskla&i22"8!!_x\= ~ 1L9639999999992196 id="6c21="line"54_ed10f=">10f5" 21="l>2196" cla62 F2x&x\n&8f"4ne>21e6cla4s60line"enum"L" f1x_early4rlmem40vers/edac/amd64_ed11f=">1217="6a&g"unsigrang""stskla&i22"8|9" 1L963999999999s06class60line" s%  21e6cla4s" class="line" na* Get 04ectl_40pvip_dac/amlass="spvicha9 opsry_t-f">Gn"srf4>122=1 id=46c22= class5oacnat AMD.> 43822=402a 1ame="L93csrow_nrcha9rex\t  93822=sswrite=ss="sr5="sre"drivers/edac/a      22=me>22038x re59classsfo id=" id="L9TL="_x\n&8f">addr"L9TLre59clan1154readnpci_cfga&g"unsigrang""stskla&i22"af=">10f5" 21="l>2196" cla62 F2x&x\n&8f"4ct x86/*<* s11gle chan/* restorr previous BIOS;DRAM s/edclasssoffc/amd64iet_ed1 wef=">ce-)555breg*C3or2NO ECC3is operatingSROW"
*a hr11f="driver4srfg"vay=y4droma_pvtGn"40i79" class="line" n--64_ed11f=">1217t  93822=ss>220639las67="sre"drivers/edac/a      22=me>22038x re59classsfo id=" id="L9an1154readnpci_cfgct 122=="6a&g"unsigrang""stskla&i22"8!!_x\= ~ 1L963999999999=yndroma_pvt10f5" 21="l>2196" cla62 F2x&x\n&8f"4="_0"ssC_p4tdri79" class="line" nnod4 ef">40999999932" 9382299">264_ed11f=">1217t  93822=sswrite=ss="sr5="sre"drivers/edac/a      22=me>22038x re59classsfo id=" id="L9an1154readnpci_cfgct 22158x re59classsssssssss48!!_x\n&8f4>addr<10vay=yndroma_pvt/*<* s11gle chan/* restorr rs/eNBdE555brgMCGCTL bitg*C3or2NO ECC3is operatingSROW"
*a hr11f="driver4c/amlass="4for_each_chip_seyecilf="_4\n&8f41vers/edac/amd64_ean1154readnpci_toggle_125 err_repor_ed1g"unsigrang""st
oggle_125 err_repor_ed193ilf AMD.> 93821" cs06class60line" s% 1ame="L93e11fndbnfndbglf="_1"ssC_pn2x% 1ame="L93e11fndbOFFdbglf="_1"ssC_pOFFFG_CHIECC3is operatingSROW"
*a hr11f="driver4ct 41ame="L93dct_gang11gee=96999999920f8"8f">adwarng"unsigrang""st34"> 9warn" n>2255breaks"drivers/edac/amd6Error restored1 1f MCGCTL iet_ed1s!uscatedoC> 9382af=">10f5" 21="l>2196" cla62 F2x&x\n&8f"4">addr<10i4t 22158x re59classsssssssss48rfg"vay=y4e="L93csrow_en  " dlf="_x4n&8f"41>addr<10pvip_dac/amlass="spvicha9"s1"ssfo i4 9pvip_dac41ame="L93e11fndbglf="_1"s4C_pvt41fg"nb6">12234 id="6c22name="L63999999999"> 93822nam>2236"stri65">"x4&4
2176s=* c229 requir37;that rs/eBIOS;have s/ed)555brd1be2ef* Get 052172 id="6c21 a simi6f">amd64_pvt24""_0"ssC_p4vers/edac/amd64_ed11f=">14217 i4="6c22"drivers/ed213" >2176s=* taked1 o f1 rs/eprocessed1 of s/ed)rrors. A 3" >and md64 Get 052172 id="6c21 a simi6f">amd64_pvt24"9_0"ssC_p4nue555breaks"drivers/edac4amd6441a91vt"drivers/ed213" >2176s=* op_eon allows to =">ce-)555br;hardware s/edlatf1 in Get 052172 id="6c21 a simi6f">amd64_pvt24a22" n>2214"stri60 F2x%x\n&}67cl4ss34"42 vt s"drivers/ed213" >2176s=* )555br_125 error_repor_ed1(). Get 052172 id="6c21 a simi6f">amd64_pvt24amlass="sN4="6c220s="sre6">pvt22"drivers/ed213" >2176s=*C3or2NO ECC3is operatingSROW"
*a hr11f="driver4 " dct addr1emory.const charat AMD.> 93821" c125 msc22="line"54_ed1025 mscvip_22ECC3is operatingSROW"
*a hr11f="driver4 t addr<10pvip_255breaks"drivers/edac/amd6E/eddis55bre;in rs/eBIOS;or no s/edcapability, modubr;will not load.uscatedoC> 9382ECC3is operatingSROW"
*a hr11f="driver4 >addr<10i4ame="L93csrow_en  " dlf="4x\n&842vers/edac/amd6ent">/*<* s1vers/edac/amd6 Eirs/rd)555brgs/edchecked1 or =">ce modubr;loaded1 by4iet_ed1 catedoC> 9382ECC3is operatingSROW"
*a hr11f="driver4 rfg"vay=y43an11541srow_nr_pageslf="4x\n&8425ers/edac/amd6ent">/*<* s1vers/edac/amd6'125 e555br_o f1ride'.uscatedoC> 9382ECC3is operatingSROW"
*a hr11f="driver4 9pvip_dac4t /*<* s1vers/edac/amd6 (Note;that use of rs/eo f1ride maydcause unknown side effects.)uscatedoC> 9382f=">10f5" 21="l>2196" cla62 F2x&x\n&8f"4x86 85/1068>
6">amd64_pdiffef=224sr>2242"6c221emory.id=" id="L9> * 93821" c      22=me>22038x re59 1ame="L93e11fndbsct 1217f="re&,11f3>
addr<10i4t Gn"4rfg"m432a 1ame="L93csrow_nrcha9rex\coo206class60line" coo2=">122228nea)67classdb1mce_)5ase_and_maskam_db1mce_)56c2299" 1L963999999999fal_base_and_maskam_fal_bed10f=">10f5" 21="l>2196" cla62 F2x&x\n&8f"4"a 1ame="L4arly+rle11fndbgct x86 93822=ss>220639las67="sre"drivers/edac/a      22=me>22038x re59classsfo id=" id="L9an1154readnpci_cfgct addr<10pvip_dac/amlass="spvicha9"s1"ssfo i4uot;
22a&g"unsigrang""stskla&i22"8!!_x\n&8f">addr<10vay=yndroma_pvt10f5" 21="l>2196" cla62 F2x&x\n&8f"4 a 1ame="L4s61 class="comment">/*<<<4<<<<<43vers/edac/amd64_ed11f=">122=8f">adinfog"unsigrang""st34"> 9info" n>2255breaks"drivers/edac/amd6DRAM s/edc id=s.uscatedoC> 9382,_ean1154readnpci_)25 e5dbglf="_1"ssC_p)25 e5vip_2?l>220y_chaor_pvtls"drivers/e)555bre22p selec6 si64_e220y_chaor_pvtls"drivers/edis55bre22p selec6 siHIPKILLp_dac/amlass="sNBCFG_CHIPKILL"str)4>"_0"ssC_p4_ed11f=">12237 id="6c22994>0L96438x re59classssssssssx59ent">s="comment">/*/4sry_t-f">G4"srfg"nbcfgct 121=db1mce_)5ase_and_maskam_db1mce_)56c2299" 1L963999999999s="comnb1mce_bank")555bre_on_=0x&g"unsigrang""st34"> 9nb1mce_bank")555bre_on_=0x&" n>2row_nr_pageslf=nfndbglf="_1"ssC_pn2x%IPKILLp_dac/amlass="sNBCFG_CHIPKILL"str)4opsry_t-f"4Gn"srfg"nbcfgct 12111 id=db1mce_)5ase_and_maskam_db1mce_)56c22IECC3is operatingSROW"
*a hr11f="driver4f">x86 9noory&" n>2255breaks"drivers/edac/amd61f MCE bankddis55bre,4iet MSRdcatedoC> 9382ECC3is operatingSROW"
*a hr11f="driver4_SECDED"st4555breaks"drivers/edac/am464_ed44f=">12241 id="6c229">lass60line" n 55breaks"drivers/edac/amd622=7 id="6c4]1x\sdac/amd64_e to )555br.uscatedoC> 9382,ECC3is operatingSROW"
*a hr11f="driver4_a 1ame="L4au1 clasrivers/ee11fnmrfg4t ne" n 1L963999999999MSR_IA32_MCG_CTL="_x\n&8f">addrMSR_IA32_MCG_CTLi22"c/amd64_ed11f=">1nfndbglf="_1"ssC_pn2x%IPKILLp_dac/amlass="sNBCFG_CHIPKILL"str)4opageslf="4lass="sEDAC_NONE"str555br4aks"d44"spvicha9 opsry_t-f">Gn"srfg"channel_cou37c4ss="spvich49 opsry_t-f">Gn"srfg"chan4el_co44nfoct  9noory&" n>2255breaks"drivers/edac/amd6c id=scatedoC> 93822ss=>22368x re68"125 msc22="line"54_ed1025 mscvip_IPKILLp_dac/amlass="sNBCFG_CHIPKILL"str)4oa 1ame="L4"L93dimmlf=" opsry_t-f">G4"srfg44sectl_=0x&g"unsigbase64_ed11f=">121s3 id="6fal_base_and_maskam_fal_bed10f=">10f5" 21="l>2196" cla62 F2x&x\n&8f"4immlf=" op4ry_t-f">Gn"srfg"e11fnmrfg4t 22158x re59classsssssssss4sry_t-f">G4tion> 9u11f="> me=h " f1x4early44vers/edac/amd64_ed11f=">121s3 id="6
*a&g"unsigrang""st
*a&ed10f=">10f5" 21="l>2196" cla62 F2x&x\n&8f"4B.> 93c2194"strs61 class="comment">/4<* Th45vers//adcs_cf22"sr>22158x re59classsssssssss4_ed11f=">245" id="6c21st CS s6z< of942MB.>45pvip_dac/amlass="spvicha9 opsry_t-f">Gn"srf4"64" id="L439" class="line" na* Get 45215145>addr1emory.6lec6 sie="L93836  iet1mc_sysfs_attrs06class60line" iet1mc_sysfs_attrs93ilf4_ed11f=">12192 id="6cmem_ct2_infog"unsigrang""stmem_ct2_info93ilat AMD.> 93821" cmcig"unsigrang""stmci6c22IECC3is operatingSROW"
*a hr11f="driver43821 a >2142"strs61 class="comment">4*<* T45vers/3jlf="  me=h " f1x_early+rlpvip_dac/aml4_NEp_dac/a4lass="comment">/*<* archi4ectur454ers/edac/amd6lec6 sie="L93836  rcg"unsigrang""strced10f=">10f5" 21="l>2196" cla62 F2x&x\n&8f"4Bs="spvich4ca  de=e 521nam>2156s="cs41 cla45>addr<10pvip_dac/amlass="spvicha9"s1"ssfo i4"64" id="L439" class="line" na* Get 45215545 2row_nr_pageslf=mcig"unsigrang""stmci6c22If=">10f5" 21="l>2196" cla62 F2x&x\n&8f"4Ba 1ame="L4ls61 class="comment">/*<*4The f457foct 264_ed11f=">121s3 id="66cg"unsigrang""strced10f=">10f5" 21="l>2196" cla62 F2x&x\n&8f"4Bry_t-f">G439" class="line" na* Get 45215845d11f=">12218 id="6c22" naiss6ef">c216t"strs61 class="comm4nt">/46s=>220sclass60line" n 1L963999999999rcg"unsigrang""strced1099" 1L963999999999s="comc>22te_sysfs_inject_files06class60line" s="comc>22te_sysfs_inject_files" n>2row_nr_pageslf=mcig"unsigrang""stmci6c22If=">10f5" 21="l>2196" cla62 F2x&x\n&8f"4ass="line"4na* Get 052161 id="6c21_e411f=646f=">12241 id="6c229">64_emcicha9 opsry_trcg"unsigrang""strced109< 0IECC3is operatingSROW"
*a hr11f="driver4
216246ame="L93dct_gang11gee"6c229">64_ed11f=">121s3 id="66cg"unsigrang""strced10f=">10f5" 21="l>2196" cla62 F2x&x\n&8f"464" id="L949" class="line" na* Get 042163 46vers/edac/amd/adcs_cf22"sr>22158x re59classsssssssss4
="L6_mls"4="L9388_cha9u1 clasrivers4edcip46>addr<10pvip_dac/amlass="spvicha9"s1"ssfo i4_nrct 10f5" 21="l>2196" cla62 F2x&x\n&8f"4c6 sie="L94836  x86Gn"srfg"dchr1p_4
39" class4lass="sdbam1"str :;&">x864/n"sr468x re59classssssssssx59ent">s="comment">/*/4g"dbam0ct 4a 1ame="L93dbam0cha9555br4aks"d46hr11j1emory.voidf=">12205 id="6cdel1mc_sysfs_attrs06class60line" del1mc_sysfs_attrs93ilf4_ed11f=">12192 id="6cmem_ct2_infog"unsigrang""stmem_ct2_info93ilat AMD.> 93821" cmcig"unsigrang""stmci6c22IECC3is operatingSROW"
*a hr11f="driver434"> 934     1161>
/*<<<<<<4<<* T47vers/edac/amd64_ed11f=">1221822=ss>2move_sysfs_dbg_files06class60line" s="com>2move_sysfs_dbg_files" n>2row_nr_pageslf=mcig"unsigrang""stmci6c22If=">10f5" 21="l>2196" cla62 F2x&x\n&8f"41_ed>2176"4trs61 class="comment">/*<4<<<<<47>2201"stri60 F2x&837;x\n&8f">addr<10nr_page4 a >2172"s4rs61 class="comment">/*<<4<<<<<47ame="L93dct_g64_esrow_nrcha9rex\coori/pu_data06class60line" coori/pu_data%.11f=">12111 id=xme="L93nr_pline" x8 addr<10nr_page4 4" id="L94s61 class="comment">/*<<<4<<<<<47vers/edac/amd64_ed11f64_ed11f=">1221822=ss>2move_sysfs_inject_files06class60line" s="com>2move_sysfs_inject_files" n>2row_nr_pageslf=mcig"unsigrang""stmci6c22If=">10f5" 21="l>2196" cla62 F2x&x\n&8f"41="L6_mls"4d64_ed11f=">2174 id="6c214" cla47 >2186s="co674F2x%x\ &,11f3>

 93821" cmcig"unsigrang""stmci6c22,ECC3is operatingSROW"
*a hr11f="driver4339" class4/ 2) * 4))1o2 + 10xF555br4aks"d47"6c22"sref">6GENMASK<<<<<<<<<<<<<<<<<<4_ed11f=">12192 id="6ca hr11family_typ&g"unsigrang""st34"> 9family_typ&93ilat AMD.> 93821" cfamase_and_maskam_fam6c22IECC3is operatingSROW"
*a hr11f="driver43"dbam0ct 4<10cs_mrfgct      14_ed11f=">12192 id="6ca hr11pv_06class60line" a hr11pv_93ilat AMD.> 93821" cpv_06class60line" pv_93ila9" 1L9639999999992cig"unsigrang""stmci6c22  10f5" 21="l>2196" cla62 F2x&x\n&8f"4df">u5dMBm4mline";x\n&8f">addr<101sr4w_nrc48pvip_dac/amlass="spvicha9 opsry_t-f">Gn"srf41ame="L93e41fndbglf="_0"ssC_pvtdri794 clas482a 1ame="L93csrow_nrcha9rex\2cig"unsigrang""stmci6c22  6GE9" 1L963999999999MEM_FLAG_DDR"re&,11f3>

2172"s4"ssfo id=" id="L9pvip_dac4amlas48vers/edac/amd64_ed11f=">122=2cig"unsigrang""stmci6c22  10f5" 21="l>2196" cla62 F2x&x\n&8f"4d4" id="L9493channel_cou37cha9)555br4aks"d48"spvicha9 opsry_t-f">Gn"srfg"channel_cou37c4r112184 id4"6c213" clas6d="L873" cla4s="2148nfoct  93821" cpv_06class60line" pv_93il  addr<10vay=ynAP_SECDEDay"str vt ss= " f1AP_SECDED6c22IECC3is operatingSROW"
*a hr11f="driver4gesct 10f5" 21="l>2196" cla62 F2x&x\n&8f"4d68>
21s6s="c}67cl4ss34"48r1""> 85/1068>
addr<10vay=ynAP_CHIPKILL="_x\n&8f">addr"L9AP_CHIPKILL6c22IECC3is operatingSROW"
*a hr11f="driver4g"dbam0ct 4186"strs61 class="comment4>/*<*48a91vt ss= " f1x_early64_ed11f=">12172cig"unsigrang""stmci6c22  10f5" 21="l>2196" cla62 F2x&x\n&8f"4>12189 id=46c21ine" na5errmdacnmme> 43821i49 vt ss= " f1x_early+rlNBCFG_ECC_ENABLEp_dac464" id="L949" class="line" na* Get 04219" 49vers/edac/amd64_ed11f=">12212cig"unsigrang""stmci6c22  6GE99" 1L963999999999s="comdetermne"_x&x\_capg"unsigrang""sts="comdetermne"_x&x\_cap" n>2row_nr_pageslf=pv_06class60line" pv_93ilIf=">10f5" 21="l>2196" cla62 F2x&x\n&8f"441srowslf=4_ name="L" f1x_early+rlme4_neas492a 1ame="L93csrow_nrcha9rex\2cig"unsigrang""stmci6c22  6GE99" 1L963999999999c229_MOD_STRay"str vt ss= "c229_MOD_STRvip_f=">10f5" 21="l>2196" cla62 F2x&x\n&8f"4>a >2172"s42g"unsigrang""stmod_l>291vt ss= " f1x_e9" 1L963999999999c229_AMD F2VERSIONdbglf="_1"ssC_pc229_AMD F2VERSIONvip_f=">10f5" 21="l>2196" cla62 F2x&x\n&8f"4>4" id="L94= name="L" f1x_early+rlcs4ow_in494ers/edac/amd64_ed11f=">12172cig"unsigrang""stmci6c22  6GE99" 1L963999999999famase_and_maskam_fam6c22  10f5" 21="l>2196" cla62 F2x&x\n&8f"4>112184 id44F2x& name="L" f1x_early+4ldimm4infoct 6GE99" 1L96399999999939larly+g"unsigrang""st39larly+" n>2row_nr_pageslf=pv_06class60line" pv_93il  
addr"ULL6c22f=">10f5" 21="l>2196" cla62 F2x&x\n&8f"4468>
 85/1068>
/*<* s11gle chan/* =">112 scrubbf1 interfacrg*C3or2NO ECC3is operatingSROW"
*a hr11f="driver499382199">4ct 
<49vers/edac/amd64_ed11f=">121=2cig"unsigrang""stmci6c22  10f5" 21="l>2196" cla62 F2x&x\n&8f"5ne>21e6cla5s60line"enum"L" f1x_early5rlmem50vers/edac/amd64_ed11f=">12172cig"unsigrang""stmci6c22  10f5" 21="l>2196" cla62 F2x&x\n&8f"5n1>21e6cla5s" class="line" na* Get 05ectl_50pvip_6s="co674F2x%x\ &,11f3>
122=1 id=56c22= class5oacnat AMD.> 53822=50>2201"stri60 F2x&837;x\n&8f">addr<10nr_page5ct 12234 id="6c22name="L63999999999"> 93822nam>2236"stri65">"x4&5g"F3p_dac/5mlass="sF3lf=""ssfo id=" 5d="L950vers/"drivers/ed213" >2176s=* 64_ed1s a pointer to _he family descriptor1x\ssuccess, "ULL ors/rwise. Get 052172 id="6c21 a simi6f">amd64_pvt25srfg"vay=y5droma_pvt2176s=*C3or2NO ECC3is operatingSROW"
*a hr11f="driver5L9pvip_dac5amlass="spvicha9 opsry_t-5">Gn"50i79" 1emory.4_ed11f=">12192 id="6ca hr11family_typ&g"unsigrang""st34"> 9family_typ&93ilat AMD.> 93821" ca hr11per9family_ini_06class60line" a hr11per9family_ini_93ilf4_ed11f=">12192 id="6ca hr11pv_06class60line" a hr11pv_93ilat AMD.> 93821" cpv_06class60line" pv_93ilIECC3is operatingSROW"
*a hr11f="driver550vers/edac/amd64_ed11f=">1217fct  9family_typ&93ilat AMD.> 93821" cfam_typ&g"unsigrang""stfam_typ&6c2299" 1L963999999999=ULL="_x\n&8f">addr"ULL6c22f=">10f5" 21="l>2196" cla62 F2x&x\n&8f"58!!_x\n&8f5>addr<10vay=yndroma_pvt 93821" cfamase_and_maskam_fam6c22I93jlf="  me=h " f1x_early+rlpvip_dac/aml5c/amlass="5for_each_chip_seyecilf="_5\n&8f51vers/edac/amdcase 0xf:jlf="  me=h " f1x_early+rlpvip_dac/aml5ct 51ame="L93dct_gang11gee=96999999920f8"fam_typ&g"unsigrang""stfam_typ&6c229999999999999999=e="L93an1154readnpci_34"> 9family_typ&s06class60line" s="comfamily_typ&s6c22[an1154readnpci_K8_CPUS06class60line" K8_CPUS6c22]f=">10f5" 21="l>2196" cla62 F2x&x\n&8f"58"F3p_dac/5t  9family_typ&s06class60line" s="comfamily_typ&s6c22[an1154readnpci_K8_CPUS06class60line" K8_CPUS6c22].11f=">12111 id=ops06class60line" ops6c22f=">10f5" 21="l>2196" cla62 F2x&x\n&8f"58rfg"vay=y5e="L93csrow_en  " dlf="_x5n&8f"517ct 10f5" 21="l>2196" cla62 F2x&x\n&8f"589pvip_dac51ame="L93e11fndbglf="_1"s5C_pvt51fg"nbcfgct 
264_ed11f=">1217fam_typ&g"unsigrang""stfam_typ&6c229999999999999999=e="L93an1154readnpci_34"> 9family_typ&s06class60line" s="comfamily_typ&s6c22[an1154readnpci_F10_CPUS06class60line" F10_CPUS6c22]f=">10f5" 21="l>2196" cla62 F2x&x\n&8f"589_0"ssC_p5nue555breaks"drivers/edac5amd6451a91vt ss= " f1x_early64_ed11f=">1217pv_06class60line" pv_93il   9family_typ&s06class60line" s="comfamily_typ&s6c22[an1154readnpci_F10_CPUS06class60line" F10_CPUS6c22].11f=">12111 id=ops06class60line" ops6c22f=">10f5" 21="l>2196" cla62 F2x&x\n&8f"5a22" n>2215"stri60 F2x%x\n&}67cl5ss34"52cha91vt ss= " f1x_earbreakf=">10f5" 21="l>2196" cla62 F2x&x\n&8f"5amlass="sN5="6c220s="sre6">pvtGn"srf5 " dct  9family_typ&s06class60line" s="comfamily_typ&s6c22[an1154readnpci_F15_CPUS06class60line" F15_CPUS6c22]f=">10f5" 21="l>2196" cla62 F2x&x\n&8f"5 >addr<10i5ame="L93csrow_en  " dlf="5x\n&852vers/edac/amd64_ed11f64_ed11f=">1221pv_06class60line" pv_93il   9family_typ&s06class60line" s="comfamily_typ&s6c22[an1154readnpci_F15_CPUS06class60line" F15_CPUS6c22].11f=">12111 id=ops06class60line" ops6c22f=">10f5" 21="l>2196" cla62 F2x&x\n&8f"5arfg"vay=y53an11541srow_nr_pageslf="5x\n&8527ct 10f5" 21="l>2196" cla62 F2x&x\n&8f"5 9pvip_dac5t x866">amd64_pdiffef=225sr>2252999999932" 9382299">264_ed11f=">1217t 2r55breaks"drivers/edac/amd6Unsuppor_ed family!uscatedoC> 9382af=">10f5" 21="l>2196" cla62 F2x&x\n&8f"5 8 bytes o5tresolutiod<*CSROW"
*a hr51f="d52a91vt ss= " f1x_early64_ed11f=">121s3 id="6=ULL="_x\n&8f">addr"ULL6c22f=">10f5" 21="l>2196" cla62 F2x&x\n&8f"5&g"unsigmd54_edetermlll_memoryntypel5="_x\53vers/edac/amd6s="co674F2x%x\ &,11f3>
addr<10i5t Gn"srf5"" dct Gn"5rfg"m532a 1ame="L93csrow_nrcha9rex\pv_06class60line" pv_93il  x86 9info" n>2255breaks"drivers/edac/amd6c id=sdc id=sdetectre;(dac/amd64_e).uscatedoC> 9382,_=96999999920f8"fam_typ&g"unsigrang""stfam_typ&6c22   93821" cfamase_and_maskam_fam6c22 =2daxf ?ECC3is operatingSROW"
*a hr11f="driver5 9pvip_dac5154>
 93821" cpv_06class60line" pv_93il  220y_chaor_pvtls"drivers/erevF or latf1 catedoC> 9382ECC3is operatingSROW"
*a hr11f="driver5 a 1ame="L5s61 class="comment">/*<<<5<<<<<53sectl_=0x&g"unsigbasedac/amlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4_e220y_chaor_pvtls"drivers/erevE or earlif1 catedoC> 9382IECC3is operatingSROW"
*a hr11f="driver5>"_0"ssC_p5_ed11f=">12237 id="6c22995>0L9653"6c22"sref">6GENMASK<<<<<<<<<<<<<<<<<<4_e220y_chaor_pvtls"drivers/ecatedoC> 9382I,_=96999999920f8"pv_06class60line" pv_93il  10f5" 21="l>2196" cla62 F2x&x\n&8f"5sry_t-f">G5"srfg"nbcfgct 121s3 id="6fam_typ&g"unsigrang""stfam_typ&6c22f=">10f5" 21="l>2196" cla62 F2x&x\n&8f"5opsry_t-f"5Gn"srfg"nbcfgct 22158x re59classsssssssss5f">x86Gn"srf5_SECDED"st5555breaks"drivers/edac/am564_ed54>addr1emory.6lec6 sie="L93836  34"> 9init_on&_fn1emny&g"unsigrang""st34"> 9init_on&_fn1emny&93ilf4_ed11f=">12192 id="6c39ladevase_and_maskam_p9ladev93ilat AMD.> 93821" c "re&,11f3>
Gn"srf5_t  93821" cpv_06class60line" pv_93ila9" 1L963999999999=ULL="_x\n&8f">addr"ULL6c22f=">10f5" 21="l>2196" cla62 F2x&x\n&8f"5ss="spvich59 opsry_t-f">Gn"srfg"chan5el_co54nfoct  9family_typ&93ilat AMD.> 93821" cfam_typ&g"unsigrang""stfam_typ&6c2299" 1L963999999999=ULL="_x\n&8f">addr"ULL6c22f=">10f5" 21="l>2196" cla62 F2x&x\n&8f"5hannelsct 5a 1ame="L931hannelslf="[x5n&8f"54i79" class="l4_ed11f=">12192 id="6cmem_ct2_infog"unsigrang""stmem_ct2_info93ilat AMD.> 93821" cmcig"unsigrang""stmci6c2299" 1L963999999999=ULL="_x\n&8f">addr"ULL6c22f=">10f5" 21="l>2196" cla62 F2x&x\n&8f"5ha 1ame="L5"L93dimmlf=" opsry_t-f">G5"srfg54sectl_=0x&g"u4_ed11f=">12192 id="6c1&x\_mc_lay>2g"unsigrang""st1&x\_mc_lay>21541srow_nr_pageslf=lay>2s06class60line" lay>2s6c22[2]f=">10f5" 21="l>2196" cla62 F2x&x\n&8f"5immlf=" op5ry_t-f">Gn"srfg"e11fnmrfg5t 22da,_=96999999920f8"64_06class60line" 64_6c22PKILLp_dac/amlass="sNBCFG_CHIPKILL"str)5sry_t-f">G5tion> 9u11f="> me=h " f1x5early54vers/edac/amd64_ed11f=">121=sct 22AMD.> 93821" c "re&,11f3>
 93c2195"strs61 class="comment">/5<* Th55 vt ss= " f1x_early+rlNBCFG_ECC_ENABLEp_dac5_ed11f=">255" id="6c21st CS s6z< of952MB.>55vers/edac/amd64_ed11f=">122164_06class60line" 64_6c2299"-64_ed11f=">1221ENOMEM06class60line" ENOMEM6c22PKILLp_dac/amlass="sNBCFG_CHIPKILL"str)5"64" id="L539" class="line" na* Get 552151552a 1ame="L93csrow_nrcha9rex\pv_06class60line" pv_93il99" 1L963999999999kzallocg"unsigrang""stkzalloc93ilf4izeoff4_ed11f=">12192 id="6ca hr11pv_06class60line" a hr11pv_93ilI,_=96999999920f8"GFP_KERNEL="_x\n&8f">addrGFP_KERNEL93ilIPKILLp_dac/amlass="sNBCFG_CHIPKILL"str)5Bt 5*<* T55ame="L93dct_g64_ed11f=">12111 id=pv_06class60line" pv_93ilIECC3is operatingSROW"
*a hr11f="driver5_NEp_dac/a5lass="comment">/*<* archi5ectur55vers/edac/amd64_ed11fgotoc6 sie="L93836  er2_64_06class60line" er2_64_6c22PKILLp_dac/amlass="sNBCFG_CHIPKILL"str)5"s="spvich5ca  de=e 521nam>2156s="cs51 cla55>addr<10pvip_dac/amlass="spvicha9"s1"ssfo i5"64" id="L539" class="line" na* Get 55215555 /*<*5The f55vers/edac/amd64_ed11f=">122=pv_06class60line" pv_93il  

s="comment">/*/5Bry_t-f">G539" class="line" na* Get 55215855vers/edac/amd64_ed11f=">121=64_06class60line" 64_6c2299"-64_ed11f=">1221EINVAL="_x\n&8f">addrEINVAL93ilPKILLp_dac/amlass="sNBCFG_CHIPKILL"str)5L939" clas5="line" na* Get 052159 id5"6c2156vers/edac/amd64_ed11f=">1217fam_typ&g"unsigrang""stfam_typ&6c2299" 1L963999999999a hr11per9family_ini_06class60line" a hr11per9family_ini_93ilf11f=">12111 id=pv_06class60line" pv_93ilIPKILLp_dac/amlass="sNBCFG_CHIPKILL"str)5Led11f=">25s>216t"strs61 class="comm5nt">/56s=>220sclass664_ed11f=">12111 id=fam_typ&g"unsigrang""stfam_typ&6c22IECC3is operatingSROW"
*a hr11f="driver5ass="line"5na* Get 052161 id="6c21_e511f=656f=">12241 id="6c229">gotoc6 sie="L93836  er2_fre&g"unsigrang""ster2_fre&93ilPKILLp_dac/amlass="sNBCFG_CHIPKILL"str)5Lt 216256me="L93e11fnmrfg  x8622d64_ed11f=">121764serve1mc_sib9u1gadevs06class60line" 64serve1mc_sib9u1gadevs93ilf11f=">12111 id=pv_06class60line" pv_93il,_=96999999920f8"fam_typ&g"unsigrang""stfam_typ&6c22  IECC3is operatingSROW"
*a hr11f="driver5aa 1ame="L5836  x86x865/n"sr568x re59classssssssssx59ent">s="comment">/*/5g"dbam0ct 5a 1ame="L93dbam0cha9555br5aks"d56vers/edac/amd64_ed11f=">121=64ad1mc_re1s06class60line" 64ad1mc_re1s93ilf11f=">12111 id=pv_06class60line" pv_93ilIPKILLp_dac/amlass="sNBCFG_CHIPKILL"str)534"> 934     1161>
/*<<<<<<5<<* T57vers/edac/amd6ent">/*<* s11gle chan/*C> 9382ECC3is operatingSROW"
*a hr11f="driver51_ed>2176"5trs61 class="comment">/*<5<<<<<57>2201"drivers/ed213" >2176s=========* We neee to determne" how many =">112 channel7;there are. Then useC> 9382ECC3is operatingSROW"
*a hr11f="driver51t /*<<5<<<<<57me="L6">12234 id="6c22name==========* that informa_eon for calcula_ed1 _he 4ize of rs/edynt"ry.6l1emny&93 9382ECC3is operatingSROW"
*a hr11f="driver514" id="L95s61 class="comment">/*<<<5<<<<<57vers/"drivers/ed213" >2176s=========* t55brs;in rs/e'mci'u4_ed11ure. Get 052172 id="6c21 a simi6f">amd64_pvt251="L6_mls"5d64_ed11f=">2174 id="6c215" cla57nfoct"drivers/ed213" >2176s=========*C3or2NO ECC3is operatingSROW"
*a hr11f="driver5L939" clas5="line" na* Get 0521e5 id5"6c2157 addrEINVAL93ilPKILLp_dac/amlass="sNBCFG_CHIPKILL"str)5068>
22d64_ed11f=">1217pv_06class60line" pv_93il   93821" cpv_06class60line" pv_93il  2< 0IECC3is operatingSROW"
*a hr11f="driver53"dbam0ct 5<10cs_mrfgct u5dMBm5mline";x\n&8f">addr<101sr5w_nrc58vers/edac/amd64_ed11f=">122164_06class60line" 64_6c2299"-64_ed11f=">1221ENOMEM06class60line" ENOMEM6c22PKILLp_dac/amlass="sNBCFG_CHIPKILL"str)51ame="L93e51fndbglf="_0"ssC_pvtdri795 clas582a 1ame="L93csrow_nrcha9rex\lay>2s06class60line" lay>2s6c22[0].11f=">12111 id=typ&g"unsigrang""sttyp&6c2299" 1L963999999999c229_MC_LAYER_CHIP_SELECT06class60line" E229_MC_LAYER_CHIP_SELECT6c22PKILLp_dac/amlass="sNBCFG_CHIPKILL"str)51t 2s6c22[0].11f=">12111 id=4ize06class60line" 4ize" n>22d64_ed11f=">1217pv_06class60line" pv_93il  2s6c22[0].11f=">12111 id=is_virt_csrow06class60line" is_virt_csrow" n>22d64_ed11f=">1217
*a&g"unsigrang""st
*a&ed10f=">10f5" 21="l>2196" cla62 F2x&x\n&8f"5r112184 id5"6c213" clas6d="L873" cla5s="2158nfoct 2s6c22[1].11f=">12111 id=typ&g"unsigrang""sttyp&6c2299" 1L963999999999c229_MC_LAYER_CHANNEL="_x\n&8f">addrc229_MC_LAYER_CHANNELed10f=">10f5" 21="l>2196" cla62 F2x&x\n&8f"5r939" clas5me="L93nr_pageslf="555bre5ks"dr58 2s6c22[1].11f=">12111 id=4ize06class60line" 4ize" n>22d64_ed11f=">1217pv_06class60line" pv_93il  f=">10f5" 21="l>2196" cla62 F2x&x\n&8f"5r68>
21s6s="c}67cl5ss34"58vers/edac/amd64_ed11f=">122=lay>2s06class60line" lay>2s6c22[1].11f=">12111 id=is_virt_csrow06class60line" is_virt_csrow" n>22d64_ed11f=">1217fal_base_and_maskam_fal_bed10f=">10f5" 21="l>2196" cla62 F2x&x\n&8f"5aor_pvtls"5rivers/edac/amd64_ed11f="51218758vers/edac/amd64_ed11f=">1217mcig"unsigrang""stmci6c2299" 1L9639999999991&x\_mc_allocg"unsigrang""st1&x\_mc_alloc93ilf11f=">12111 id=nfndbglf="_1"ssC_pn2x%,_=96999999920f8"ARRAY_SIZEdbglf="_1"ssC_pARRAY_SIZE93ilf11f=">12111 id=lay>2s06class60line" lay>2s6c22I,_=96999999920f8"lay>2s06class60line" lay>2s6c22, 0If=">10f5" 21="l>2196" cla62 F2x&x\n&8f"5a"dbam0ct 5186"strs61 class="comment5>/*<*58a91vt ss= " f64_ed11f=">12111 id=mcig"unsigrang""stmci6c22IECC3is operatingSROW"
*a hr11f="driver5>12189 id=56c21ine" na5errmdacnmme> 53821i59cha91vt ss= " f1x_eargotoc6 sie="L93836  er2_sib9u1gs06class60line" er2_sib9u1gs93ilPKILLp_dac/amlass="sNBCFG_CHIPKILL"str)564" id="L959" class="line" na* Get 05219" 59pvip_dac/amlass="spvicha9 opsry_t-f">Gn"srf541srowslf=5_ name="L" f1x_early+rlme5_neas592a 1ame="L93csrow_nrcha9rex\2cig"unsigrang""stmci6c22  1217pv_06class60line" pv_93ilPKILLp_dac/amlass="sNBCFG_CHIPKILL"str)56t 

Gn"srfg"channel_cou37c5>112184 id54F2x& name="L" f1x_early+5ldimm5infoct 10f5" 21="l>2196" cla62 F2x&x\n&8f"54esct 
264_ed11f=">12172cig"unsigrang""stmci6c22  10f5" 21="l>2196" cla62 F2x&x\n&8f"599382199">5ct 
<59d11f=">12218 id="6c22" naiss6ef">c21e6cla6s60line"enum"L" f1x_early6rlmem60vers/edac/amd64_ed11f=">121764_06class60line" 64_6c2299"-64_ed11f=">1221ENODEV06class60line" ENODEV93ilPKILLp_dac/amlass="sNBCFG_CHIPKILL"str)6n1>21e6cla6s" class="line" na* Get 06ectl_60s=>220sclass664_e 1L9639999999991&x\_mc_add1mcg"unsigrang""st1&x\_mc_add1mc93ilf64_ed11f=">122=2cig"unsigrang""stmci6c22)I93jlf="  me=h " f1x_early+rlpvip_dac/aml6>122=1 id=66c22= class5oacnat AMD.> 63822=60f=">12241 id="6c229"> 1L9639999999991&x\_dbc22="line"54_ed10&x\_dbc93ilf1,_e220y_chaor_pvtls"drivers/efailed 1&x\_mc_add1mc()uscatedoC> 9382af=">10f5" 21="l>2196" cla62 F2x&x\n&8f"6ct 22158x re59classsssssssss6srfg"vay=y6droma_pvt 93821" ciet1mc_sysfs_attrs06class60line" iet1mc_sysfs_attrs93ilf64_ed11f=">122=2cig"unsigrang""stmci6c22)I93jlf="  me=h " f1x_early+rlpvip_dac/aml6>6fg"vay=y6d"spvicha91 name="cs_ Gn"60i79" class="line" n--64_ed11f=">12171&x\_dbc22="line"54_ed10&x\_dbc93ilf1,_e220y_chaor_pvtls"drivers/efailed 1&x\_mc_add1mc()uscatedoC> 9382af=">10f5" 21="l>2196" cla62 F2x&x\n&8f"6c7fg"vay=y6d="L6="le="L93866s="cosfo6aks"d60sectl_=0x&g"unsigbasegotoc6 sie="L93836  er2_add1sysfsg"unsigrang""st1r2_add1sysfs93ilPKILLp_dac/amlass="sNBCFG_CHIPKILL"str)6n8fg"vay=y6d="hr21n-c>21958x re59cla6 ef">60vers/edac/amd/adcs_cf22"sr>22158x re59classsssssssss6n9_0"ssC_p6tt caddr<10vay=yndroma_pvt/*<* s11gle chan/* registf1 stuff with c229 MCE *C3or2NO ECC3is operatingSROW"
*a hr11f="driver6amlass="sN6CFG_ECC_ENABLE"str))555br6aks"d61s=>220sclass664_e 1L963999999999repor__gar__1r2ors06class60line" repor__gar__1r2ors6c22IECC3is operatingSROW"
*a hr11f="driver6c/amlass="6for_each_chip_seyecilf="_6\n&8f61f=">12241 id="6c229"> 1L963999999999a h_repor__gar__1r2ors06class60line" a h_repor__gar__1r2ors93ilf64_ed11f=">122=
*a&g"unsigrang""st
*a&ed10af=">10f5" 21="l>2196" cla62 F2x&x\n&8f"6ct 61me="L93e11fnmrfg  x86121293ilf64_ed11f=">122=6121_bus_1r2org"unsigrang""stt 121_bus_1r2ored10af=">10f5" 21="l>2196" cla62 F2x&x\n&8f"6crfg"vay=y6e="L93csrow_en  " dlf="_x6n&8f"61>addr<10pvip_dac/amlass="spvicha9"s1"ssfo i689pvip_dac61ame="L93e11fndbglf="_1"s6C_pvt61 
 85/1068>
1217atomic_incg"unsigrang""statomic_inc93ilf="L93an1154readnpci_drv_fn1emny&s06class60line" drv_fn1emny&sed10af=">10f5" 21="l>2196" cla62 F2x&x\n&8f"6c9_0"ssC_p6nue555breaks"drivers/edac6amd6461d11f=">12218 id="6c22" naiss6ef">c2216"stri60 F2x%x\n&}67cl6ss34"62cha91vt ss= "64_ed11af=">10f5" 21="l>2196" cla62 F2x&x\n&8f"6amlass="sN6="6c220s="sre6">pvtGn"srf6 " dct 122=1&x\_mc_del1mcg"unsigrang""st1&x\_mc_del1mc93ilf64_ed11f=">122=2cig"unsigrang""stmci6c22  10f5" 21="l>2196" cla62 F2x&x\n&8f"6 >addr<10i6ame="L93csrow_en  " dlf="6x\n&862vers/6 sie="L93836  er2_add1mcg"unsigrang""st1r2_add1mc93il:jlf="  me=h " f1x_early+rlpvip_dac/aml6 rfg"vay=y63an11541srow_nr_pageslf="6x\n&862nfoct x866">amd64_pdiffef=226sr>2262vers/edac/amd64_ed11f=">1217fre&1mc_sib9u1gadevs06class60line" fre&1mc_sib9u1gadevs93ilf64_ed11f=">122=pv_06class60line" pv_93ilIPKILLp_dac/amlass="sNBCFG_CHIPKILL"str)6 8 bytes o6tresolutiod<*CSROW"
*a hr61f="d62d11f=">12218 id="6c22" naiss6ef">caddr<10i6t Gn"6rfg"m63>2201"stri60 F2x&837;x\n&8f">addr<10nr_page6&t addr<10i6*ssfo id=" id="L9pvip_dac6amlas634ers/edac/amd64_ed11f=">121s3 id="664_06class60line" 64_6c22PKILLp_dac/amlass="sNBCFG_CHIPKILL"str)6 2186s="co674F2x%x\ &,11f3>

/*<<<6<<<<<637r11j1emory.6lec6 sie="L93836  _adevini_06class60line" _adevini_ers/e64_ed11f=">122=6 9probe_on&_fn1emny&93ilf4_ed11f=">12192 id="6c39ladevase_and_maskam_p9ladev93ilat AMD.> 93821" cpdevase_and_maskam_pdev93il,ECC3is operatingSROW"
*a hr11f="driver6>"_0"ssC_p6_ed11f=">12237 id="6c22996>0L9663"6c22"sref">6GENMASK<<<<<<<<<<<<<<<<<<<<<<<<<<<<<12192 id="6cp9ladevic&_fndbglf="_1"ssC_pp9ladevic&_fn93ilat AMD.> 93821" cmc_typ&g"unsigrang""stmc_typ&6c22IECC3is operatingSROW"
*a hr11f="driver6sry_t-f">G6"srfg"nbcfgct 1217sct 22AMD.> 93821" cpdevase_and_maskam_pdev93ilaf=">10f5" 21="l>2196" cla62 F2x&x\n&8f"6f">x8612192 id="6c39ladevase_and_maskam_p9ladev93ilat AMD.> 93821" c 3ase_and_maskam_F3໗" 1L963999999999=0x&_to_t <_nbdbglf="_1"ssC_pn0x&_to_t <_nb93ilf11f=">12111 id=nfndbglf="_1"ssC_pn2x%)   93821" cs06class60line" i6c22PKILLp_dac/amlass="sNBCFG_CHIPKILL"str)6_t Gn"srfg"channel_cou37c6ss="spvich69 opsry_t-f">Gn"srfg"chan6el_co64nfoct 22AMD.> 93821" cpdevase_and_maskam_pdev93ilaf=">10f5" 21="l>2196" cla62 F2x&x\n&8f"6f9pvip_dac6a 1ame="L931hannelslf="[x6n&8f"64 G6"srfg64sectl_=0x&g"unsigbase64_ed11f=">12171&x\_dbc22="line"54_ed10&x\_dbc93ilf0,_e220y_chaor_pvtls"drivers/e64_=md64_euscatedoC> 9382,_=96999999920f8"64_06class60line" 64_6c22af=">10f5" 21="l>2196" cla62 F2x&x\n&8f"6f"_0"ssC_p6ry_t-f">Gn"srfg"e11fnmrfg6t 6GENMASK<64_ed11-64_ed11f=">1221EIO06class60line" EIO6c22PKILLp_dac/amlass="sNBCFG_CHIPKILL"str)6_ry_t-f">G6tion> 9u11f="> me=h " f1x6early64vers/edac/amd6s="co674F2x%x\ &,11f3>
 93c2196"strs61 class="comment">/6<* Th65 vt ss= " f1x_early+rlNBCFG_ECC_ENABLEp_dac6_ed11f=">265" id="6c21st CS s6z< of962MB.>65vers/edac/amd64_ed11f=">122164_06class60line" 64_6c2299"-64_ed11f=">1221ENOMEM06class60line" ENOMEM6c22PKILLp_dac/amlass="sNBCFG_CHIPKILL"str)6"64" id="L639" class="line" na* Get 652151652a 1ame="L93csrow_nrcha9rex\s06class60line" i6c2299" 1L963999999999kzallocg"unsigrang""stkzalloc93ilf4izeoff4_ed11f=">12192 id="6c025 settu1gs06class60line" e25 settu1gs93ilI,_=96999999920f8"GFP_KERNEL="_x\n&8f">addrGFP_KERNEL93ilIPKILLp_dac/amlass="sNBCFG_CHIPKILL"str)6Bt 6*<* T65ame="L93dct_g64_ed11f=">12111 id=s06class60line" i6c22IECC3is operatingSROW"
*a hr11f="driver6_NEp_dac/a6lass="comment">/*<* archi6ectur65vers/edac/amd64_ed11fgotoc6 sie="L93836  er2_ou_06class60line" er2_ou_6c22PKILLp_dac/amlass="sNBCFG_CHIPKILL"str)6"s="spvich6ca  de=e 521nam>2156s="cs61 cla65>addr<10pvip_dac/amlass="spvicha9"s1"ssfo i6"64" id="L639" class="line" na* Get 65215565 /*<*6The f65r1""> 85/1068>
22AMD.> 93821" c 3ase_and_maskam_F3%,_=96999999920f8"nfndbglf="_1"ssC_pn2x%)I93jlf="  me=h " f1x_early+rlpvip_dac/aml6Bry_t-f">G639" class="line" na* Get 65215865a91vt ss= " f1x_early64_ed11f=">121764_06class60line" 64_6c2299"-64_ed11f=">1221ENODEV06class60line" ENODEV93ilPKILLp_dac/amlass="sNBCFG_CHIPKILL"str)6L939" clas6="line" na* Get 052159 id6"6c2166 vt ss= " f1x_early+rlNBCFG_ECC_ENABLEp_dac6Led11f=">26s>216t"strs61 class="comm6nt">/66s=>220sclass6 12241 id="6c229">64_ed11fgotoc6 sie="L93836  er2_en55br06class60line" er2_en55br93ilPKILLp_dac/amlass="sNBCFG_CHIPKILL"str)6Lt 216266me="L93e11fnmrfg  x86 9warn" n>22220y_chaor_pvtls"drivers/eForced1 ECC on!uscatedoC> 9382af=">10f5" 21="l>2196" cla62 F2x&x\n&8f"6Ls="spvich6="L9388_cha9u1 clasrivers6edcip66>addr<10pvip_dac/amlass="spvicha9"s1"ssfo i6_nrct 22AMD.> 93821" cs06class60line" i6c22,_=96999999920f8"nfndbglf="_1"ssC_pn2x%,_=96999999920f8" 3ase_and_maskam_F3%)IECC3is operatingSROW"
*a hr11f="driver6aa 1ame="L6836  x86x866/n"sr66vers/edac/amd/adcs_cf22"sr>22158x re59classsssssssss6g"dbam0ct 6a 1ame="L93dbam0cha9555br6aks"d66d11f=">12218 id="6c22" naiss6ef">c 934     1161>
121764_06class60line" 64_6c2299"64_ed11f=">122=6 9init_on&_fn1emny&93ilf2AMD.> 93821" cpdevase_and_maskam_pdev93ilaf=">10f5" 21="l>2196" cla62 F2x&x\n&8f"63ls"_ca21l6 class="comment">/*<<<<<<6<<* T67s=>220sclass664_e 1L963999999999re_06class60line" 64_6c229< 0I93jlf="  me=h " f1x_early+rlpvip_dac/aml61_ed>2176"6trs61 class="comment">/*<6<<<<<67f=">12241 id="6c229"> 1L963999999999a hpvipr2g"unsigrang""stt 2r55breaks"drivers/edac/amd6Er2or probed1 fn1emny&: md64_euscatedoC> 9382,_=96999999920f8"nfndbglf="_1"ssC_pn2x%)f=">10f5" 21="l>2196" cla62 F2x&x\n&8f"63t /*<<6<<<<<67ame="L93dct_gang11gee=96999999920f8"restorr_e25 er2or_repor_s"dr6class60line" restorr_e25 er2or_repor_s"d" n>22AMD.> 93821" cs06class60line" i6c22,_=96999999920f8"nfndbglf="_1"ssC_pn2x%,_=96999999920f8" 3ase_and_maskam_F3%)f=">10f5" 21="l>2196" cla62 F2x&x\n&8f"634" id="L96s61 class="comment">/*<<<6<<<<<67vers/edac/amd/adcs_cf22"sr>22158x re59classsssssssss61="L6_mls"6d64_ed11f=">2174 id="6c216" cla67>addr<10pvip_dac/amlass="spvicha9"s1"ssfo i6L939" clas6="line" na* Get 0521e5 id6"6c2167 121s3 id="664_06class60line" 64_6c22PKILLp_dac/amlass="sNBCFG_CHIPKILL"str)6068>
 85/1068>
121=kfre&g"unsigrang""stkfre&93ilf64_ed11f=">122=s06class60line" i6c22IPKILLp_dac/amlass="sNBCFG_CHIPKILL"str)6Tselec6 si6="L93PAGE_SHIFTcha9)555br6aks"d68vers/edac/amd64_ed11f=">1217e25 st1gs06class60line" e25 st1gs93il[11f=">12111 id=nfndbglf="_1"ssC_pn2x%]a9" 1L963999999999=ULL="_x\n&8f">addr"ULL6c22f=">10f5" 21="l>2196" cla62 F2x&x\n&8f"6df">u5dMBm6mline";x\n&8f">addr<101sr6w_nrc68pvip_dac/amlass="spvicha9 opsry_t-f">Gn"srf61ame="L93e61fndbglf="_0"ssC_pvtdri796 clas68vers/6 sie="L93836  er2_ou_06class60line" er2_ou_6c22:jlf="  me=h " f1x_early+rlpvip_dac/aml61t 22158x re59classsssssssss6r112184 id6"6c213" clas6d="L873" cla6s="2168>addr<10pvip_dac/amlass="spvicha9"s1"ssfo i6r939" clas6me="L93nr_pageslf="555bre6ks"dr68i79" 1emory.voidc6 sie="L93836  _adevexi_06class60line" _adevexi_ers/e64_ed11f=">122=6 9remoy+_on&_fn1emny&93ilf4_ed11f=">12192 id="6c39ladevase_and_maskam_p9ladev93ilat AMD.> 93821" cpdevase_and_maskam_pdev93ilIECC3is operatingSROW"
*a hr11f="driver6r68>
21s6s="c}67cl6ss34"68sectl3jlf="  me=h " f1x_early+rlpvip_dac/aml6aor_pvtls"6rivers/edac/amd64_ed11f="61218768vers/edac/amd4_ed11f=">12192 id="6cmem_ct2_infog"unsigrang""stmem_ct2_info93ilat AMD.> 93821" cmcig"unsigrang""stmci6c22PKILLp_dac/amlass="sNBCFG_CHIPKILL"str)61"dbam0ct 6186"strs61 class="comment6>/*<*68vers/edac/amd4_ed11f=">12192 id="6ca hr11pv_06class60line" a hr11pv_93ilat AMD.> 93821" cpv_06class60line" pv_93ilPKILLp_dac/amlass="sNBCFG_CHIPKILL"str)6>12189 id=66c21ine" na5errmdacnmme> 63821i69vers/edac/amd64_ed11f=">1217sct 22AMD.> 93821" cpdevase_and_maskam_pdev93ilaf=">10f5" 21="l>2196" cla62 F2x&x\n&8f"664" id="L969" class="line" na* Get 06219" 69vers/edac/amds_ed11f=">12192 id="6c39ladevase_and_maskam_p9ladev93ilat AMD.> 93821" c 3ase_and_maskam_F3໗" 1L963999999999=0x&_to_t <_nbdbglf="_1"ssC_pn0x&_to_t <_nb93ilf11f=">12111 id=nfndbglf="_1"ssC_pn2x%)  ame="L93e6_ name="L" f1x_early+rlme6_neas692ers/edac/amds_ed11f=">12192 id="6c025 settu1gs06class60line" e25 settu1gs93ilat AMD.> 93821" cs06class60line" i6c2299" 1L963999999999125 st1gs06class60line" e25 st1gs93il[11f=">12111 id=nfndbglf="_1"ssC_pn2x%]PKILLp_dac/amlass="sNBCFG_CHIPKILL"str)6>t x86
/*<* s11gle chan/* Remoy+ from c229 CORE tracked1 list *C3or2NO ECC3is operatingSROW"
*a hr11f="driver6468>
122=mcig"unsigrang""stmci6c2299" 1L9639999999991&x\_mc_del1mcg"unsigrang""st1&x\_mc_del1mc93ilf="L93an1154readnpci_pdevase_and_maskam_pdev93il  
12111 id=mcig"unsigrang""stmci6c22IECC3is operatingSROW"
*a hr11f="driver699382199">6ct 
<69a91vt ss= " f1x_early64_ed1f=">10f5" 21="l>2196" cla62 F2x&x\n&8f"7ne>21e6cla7s60line"enum"L" f1x_early7rlmem70 vt ss= " f1x_early+rlNBCFG_ECC_ENABLEp_dac7n1>21e6cla7s" class="line" na* Get 07ectl_70vers/edac/amd64_ed11f=">1221pv_06class60line" pv_93il99" 1L9639999999992cig"unsigrang""stmci6c22  10f5" 21="l>2196" cla62 F2x&x\n&8f"7n2>21e6cla7s name="L" f1x_early+rlme73822=70>2201"stri60 F2x&837;x\n&8f">addr<10nr_page7ct 22AMD.> 93821" cs06class60line" i6c22,_=96999999920f8"nfndbglf="_1"ssC_pn2x%,_=96999999920f8" 3ase_and_maskam_F3%)f=">10f5" 21="l>2196" cla62 F2x&x\n&8f"7n4 Gn"srfg"channel_cou37c7srfg"vay=y7droma_pvt6fg"vay=y7d"spvicha91 name="cs_ Gn"70fg"nbcfgct /*<* s11gle chan/* unregistf1 from c229 MCE *C3or2NO ECC3is operatingSROW"
*a hr11f="driver7n8fg"vay=y7d="hr21n-c>21958x re59cla7 ef">70vers/edac/amd64_ed11f=">1217a h_repor__gar__1r2ors06class60line" a h_repor__gar__1r2ors93ilf64_ed11f=">122=fal_base_and_maskam_fal_bed10IPKILLp_dac/amlass="sNBCFG_CHIPKILL"str)7>9fg"vay=y7dt 121293ilf64_ed11f=">122=6121_bus_1r2org"unsigrang""stt 121_bus_1r2ored10af=">10f5" 21="l>2196" cla62 F2x&x\n&8f"78!!_x\n&8f7>addr<10vay=yndroma_pvt1221kfre&g"unsigrang""stkfre&93ilf64_ed11f=">122=125 st1gs06class60line" e25 st1gs93il[11f=">12111 id=nfndbglf="_1"ssC_pn2x%]af=">10f5" 21="l>2196" cla62 F2x&x\n&8f"782>21e6cla7for_each_chip_seyecilf="_7\n&8f712a 1ame="L93csrow_nrcha9rex\e25 st1gs06class60line" e25 st1gs93il[11f=">12111 id=nfndbglf="_1"ssC_pn2x%]a9" 1L963999999999=ULL="_x\n&8f">addr"ULL6c22f=">10f5" 21="l>2196" cla62 F2x&x\n&8f"7ct 71me="L93e11fnmrfg  x86/*<* s11gle chan/* Fre& rs/ec229 CORE resources *C3or2NO ECC3is operatingSROW"
*a hr11f="driver7crfg"vay=y7e="L93csrow_en  " dlf="_x7n&8f"71nfoct addr"ULL6c22f=">10f5" 21="l>2196" cla62 F2x&x\n&8f"7c6fg"vay=y71ame="L93e11fndbglf="_1"s7C_pvt71 addr"ULL6c22f=">10f5" 21="l>2196" cla62 F2x&x\n&8f"7c7fg"vay=y73ilf="re&,11f3>
 85/1068>
1217kfre&g"unsigrang""stkfre&93ilf64_ed11f=">122=pv_06class60line" pv_93ilIPKILLp_dac/amlass="sNBCFG_CHIPKILL"str)7c9_0"ssC_p7nue555breaks"drivers/edac7amd6471vers/edac/amd64_ed11f=">121=1&x\_mc_fre&g"unsigrang""ste&x\_mc_fre&93ilf64_ed11f=">122=2cig"unsigrang""stmci6c22)f=">10f5" 21="l>2196" cla62 F2x&x\n&8f"7a22" n>2217"stri60 F2x%x\n&}67cl7ss34"72vers//adcs_cf22"sr>22158x re59classsssssssss7amlass="sN7="6c220s="sre6">pvtGn"srf7 " dct 2176s/*C> 9382ECC3is operatingSROW"
*a hr11f="driver7 t 12234 id="6c22name==* This t55br is par_ of rs/eintf1face for loaded1 ratingS for PC""s&8f"6df">u5dMBm6mline";t">/*2176s=========* t55brs;i*MBm6mcr_s"L95brifi opwr caline";t382E on a syilfm duprob boot, and loanatingSROW"
*a hr11f="driver7 t 2176s=========*C3or2NO E*dedquiry lof rs/eintto sesoif lof r1f="drtf1fu5dMa g="dnaline";fu5undc21 a simi6f">amd64_pvt251="L6_mls"5d64_ed7me="L93ilf7")555br6aks"d62fg"nbcfgct7x86121_bus_1r2org"> 93t er2_en55br93il:jlfr2org"> 93t er2"l>21=UL_early+rlpvip_dac/aml6aor_pvtls"6rivers7">amd64_pd7ffef=226sr>2262vers/edac/7md64_7d11f=">1217fre_early+rlpvip_dac/aml6aor_pvtls"6rivers7"eaks"drive"
*a hr61f="d62d11f=">12278 id=72rly64_ed1f=">10f5" 21_virt_csrow06cla"dnd 121_bus_1"dnd 1ULL="_x\n&8f">addBm6_VENDOR_ID_AMDn"sde>121_bus_1Bm6_VENDOR_ID_AMDf8" 3early+rlpvip_dac/aml6aor_pvtls"6rivers7rmlll_memo7yntypel6="_x\63vers/6 sie7"L93873eargotoc6 sie="L93836_virt_csrow06claam_p9laen55bradevic&"93821" cpd_ed1f=">1ULL="_x\n&8f">addBm6_DEVICE_ID_AMD_K8_NB_MEMCTLL6c22f=">10f5" Bm6_DEVICE_ID_AMD_K8_NB_MEMCTLf8" 3early+rlpvip_dac/aml6aor_pvtls"6rivers7r="sre6">pv")555br6aks"d63vers/edac/7md64_73ame64_ed11f=">12111 ize06class60line" ub"dnd 121_bus_1 ub"dnd addBm6_ANY_IDL6c22f=">10f5" Bm6_ANY_IDf8" 3early+rlpvip_dac/aml6aor_pvtls"6rivers7rcsrow_en  -f">Gn"6rfg"m63>2201"stri70 F2x739"> 1L963999999999a hze06class60line" ubam_p9laen55bradevic&" ubam_p9lme64_ed11fULL="_x\n&8f">addBm6_ANY_IDL6c22f=">10f5" Bm6_ANY_IDf8" 3early+rlpvip_dac/aml6aor_pvtls"6rivers7rsrow_nr_pa10f5" c22f=ee=96999999920= 03early+rlpvip_dac/aml6aor_pvtls"6rivers7re="L93ilf=vip_dac6amlas634ers/edac/7md64_7d11f=">121s3 i20f8"resze06class60line"ame6"_maskL6c22f=">10f5" c22f=_mask1f=">121s= 03early+rlpvip_dac/aml6aor_pvtls"6rivers7rrow_en  " 9)555br6aks"d63 >2186s="c7674F27311f=">12172ci}3early+rlpvip_dac/aml6aor_pvtls"6rivers7re="L93ilf7="6c22a6/amd663fg"nbcfgct7/*<<<6<<<<<637r11j1emor7.6lec73ase64_ed11fgotoc6 sie_virt_csrow06cla"dnd 121_bus_1"dnd 1ULL="_x\n&8f">addBm6_VENDOR_ID_AMDn"sde>121_bus_1Bm6_VENDOR_ID_AMDf8" 3early+rlpvip_dac/aml6aor_pvtls"6rivers7r>amd64_pd7"6c22996>0L9663"6c22"sref7>6GEN7ASK<<<<<<<<<<<<<<<<<<<_virt_csrow06claam_p9laen55bradevic&"93821" cpd_ed1f=">1ULL="_x\n&8f">addBm6_DEVICE_ID_AMD_10H_NB_DRAOMEM6c22PKILLp_dBm6_DEVICE_ID_AMD_10H_NB_DRAOf8" 3early+rlpvip_dac/aml6aor_pvtls"6rivers7reaks"driveame="L96nbcfg63a91vt3jlf=7  me=73rly64_ed1f=">10f5" 21_virt_csrow06cla ub"dnd 121_bus_1 ub"dnd addBm6_ANY_IDL6c22f=">10f5" Bm6_ANY_IDf8" 3early+rlpvip_dac/aml6aor_pvtls"6rivers7"nbcfgct <7 1ame="693nbc64vers/edac/7md64_74eargotoc6 sie="L93836_virt_csrow06cla ubam_p9laen55bradevic&" ubam_p9lme64_ed11fULL="_x\n&8f">addBm6_ANY_IDL6c22f=">10f5" Bm6_ANY_IDf8" 3early+rlpvip_dac/aml6aor_pvtls"6rivers7C_S4ECD4ED7_dac/am6ass="64vers/edac/7mds_e74ame64_ed11f=">12111 ize06class60line"ame6"L6c22f=">10f5" c22f=ee=96999999920= 03early+rlpvip_dac/aml6aor_pvtls"6rivers7ks"drivers7edac/am664_ed642ers/edac/7mds_e749"> 1L963999999999a hze06class60line"ame6"_maskL6c22f=">10f5" c22f=_mask1f=">121s= 03early+rlpvip_dac/aml6aor_pvtls"6rivers7srivers/ee71fnmrfg6t Gn"s7fg"chan6el_co64nfoct 121_bus_1"dnd 1ULL="_x\n&8f">addBm6_VENDOR_ID_AMDn"sde>121_bus_1Bm6_VENDOR_ID_AMDf8" 3early+rlpvip_dac/aml6aor_pvtls"6rivers7"L931hanne7slf="[x6n&8f"64 12111 i_virt_csrow06claam_p9laen55bradevic&"93821" cpd_ed1f=">1ULL="_x\n&8f">addBm6_DEVICE_ID_AMD_15H_NB_293il  G6"srfg64sectl_=0x&7"unsi7base64_ed11f=">12171&x_virt_csrow06cla ub"dnd 121_bus_1 ub"dnd addBm6_ANY_IDL6c22f=">10f5" Bm6_ANY_IDf8" 3early+rlpvip_dac/aml6aor_pvtls"6rivers7">amd64_pd71fnmrfg6t 6GEN7ASK<64_ed11-64_ed11f="_virt_csrow06cla ubam_p9laen55bradevic&" ubam_p9lme64_ed11fULL="_x\n&8f">addBm6_ANY_IDL6c22f=">10f5" Bm6_ANY_IDf8" 3early+rlpvip_dac/aml6aor_pvtls"6rivers7Ceaks"driveh " f1x6early64vers/edac/7md6s=74rly64_ed1f=">10f5" 21_virt_csrow06claame6"L6c22f=">10f5" c22f=ee=96999999920= 03early+rlpvip_dac/aml6aor_pvtls"6rivers7 class="co7ment">/6<* Th65 vt ss= " 71x_ea75eargotoc6 sie="L93836_virt_csrow06claame6"_maskL6c22f=">10f5" c22f=_mask1f=">121s= 03early+rlpvip_dac/aml6aor_pvtls"6rivers76c21st CS 76z< of962MB.>65vers/edac/7md64_7d11f=">122164_}3early+rlpvip_dac/aml6aor_pvtls"6rivers7ss="line" 7a* Get 652151652a 1ame="L73csro7537;x\n&8f">addr<10nr_page7ct 6*<* T65ame="L93dc7_g64_7d11f=">12111 i{0,58x re59classsssssssss61="L6_mls"6d64_ed7omment">/*7* archi6ectur65vers/edac/7md64_7d11fgo}96" cla62 F2x&x\n&8f"7a22" n>2217"stri60e 521nam>2756s="cs61 cla65>addr<10pv7p_dac7amlassvirt_csrow06claMODULE_DEVICE_TABLE6c22)f=">10f5" MODULE_DEVICE_TABLE2=pv_06class60line" pci6c22)f=">10f5" p20f8"fam_typ&g"unsigranr2org"> 93t er2_en55br93il:jlfr2org"> 93t er2"l>2196" cla62 F2x&x\n&8f"7a22" n>2217"stri60eL931hanne7a* Get 65215565 /*<*6The f65r1""> 85/1768>
<75sie="L93836 ="6c39ladevase_and_maskam_pname=6c22)f=">10f5" p20_pname=1f=">_typ&g"unsigranr2org"> 93pname=6c22)f=">10f5" r2org"> 93pname=1217=UL_early+rlpvip_dac/aml6aor_pvtls"6rivers7na* Get 057157 id=66c219658foct 10f5" p3ilfee=96999999920= _typ&g"unsigranr2org">"unsigrang""st34"> 9probe_on&_fn1emny&93ilf4_ed11f=">12192 i3early+rlpvip_dac/aml6aor_pvtls"6rivers7 na* Get 072159 id6"6c2166 vt ss= " 71x_ea760ly64_ed11f="_virt_csrow06cla&93ilftorr_e25 er2or_re3ilf cpd_ed1f=">1ULL="_x\n&8f">addd11f=">12_x\_cap6c22"9" 1Ld11f=">12_x2=6121_bus_1r2org"&g"unsigrang""st34"> 9remoy+_on&_fn1emny&93ilf4_ed11f=">12192 i)3early+rlpvip_dac/aml6aor_pvtls"6rivers7 c21st CS 7s="comm6nt">/66s=>220scla7s6  93t er2_en55br93il:jlfr2org"> 93t er2"l>23early+rlpvip_dac/aml6aor_pvtls"6rivers7 s="line" 7"6c21_e611f=666f=">12241 7d="6c729">64}96" cla62 F2x&x\n&8f"7a22" n>2217"stri60/edac/amd67_ed11f=6>216266me="L93e117nmrfg7 x86 93aen55bradevic&" s93ilt AMD.> 932=66ct addr<10pv7p_dac7amlass_early+rlpvip_dac/aml6aor_pvtls"6rivers7csrow_nrch79)a hr16f="dr66i79" class7"line7 n--64_ed11f="="6cmem_ct2_infog"unsigrang""stmem_ct2_info93ilat AMD.> 93821" cmcig"unsigrang""stmci6c22PKILLp_dac/amlass="sNBCFG_CHIPKILL"str)61"dbam0ct 6186"st7pf">x86 93821" cpv_06class60line" pv_93ilPKILLp_dac/amlass="sNBCFG_CHIPKILL"str)6>12189 id=66c21in7dbam1"str 7;&">x866/n"sr66vers/edac/7md/ad7s_cf22sNBCFG_CHIPKILL"str)6>12189 id=66c21in7ds="line" 7a9555br6aks"d66d11f=">12278 id=7611f=">12111 id=mcr11pv_06class60line" .> 9pci6c22)f=">10f5" line" .> 9pci92 i)sNBCFG_CHIPKILL"str)6>12189 id=66c21in7161>
21e6cla7s60line"comment">7*<<<<<<6<<* T67s=>220scla7s664_77pvicha9 opsry_t-f">Gn"srf7 " dct /*<6<<<<<67f=">12241 7d="6c77nrcha9rex\e25 st1gs06class60mci6c2299" 1L9639999999991&x\_mc_del1mcg"un 2cis6c22[11f=">12111 id=nfn0="sNBCFG_CHIPKILL"str)6>t /*<<6<<<<<67ame="L93dc7_gang71gee=969999999d=mcr11pv_06class60mci6c22)f=">10f5" 21="l>21L_early+rlpvip_dac/aml6aor_pvtls"6rivers7ss="commen7">/*<<<6<<<<<67vers/edac/7md/ad77f">Gn"srfg"channel_cou37c7srfg"vay=y7droma_p1f=">2174 7d="6c216" cla67>addr<10pv7p_dac7711f=">121764_99999a h06class60line" pv_93ilPKILLp_dac/amlass=2cig"unsigrang""stmci6c22  10f5" 21="l>2196" cla62 F2x&x\n&8f"7n2>21e6cla7s name= na* Get 0721e5 id6"6c2167 12111 ir11pv_06class60line" .> 9pci6c22)f=">10f5" line" .> 9pci92 i =6" cla62 F2x&x\n&8f"7n2>21e6cla7s name= f">x86 85/1768>
<77ase64_ed11fgotoc6 sie="L93836\_mc_fre&g"unsigrangt AMcreate_generic .> \_mc_fre&93ilf64_ed1t AMcreate_generic .> 2=6

2217"stri604))1o2 + 17xF555br6aks"d678foct6 sie7"L93877_cf22sNBCFG_CHIPKILL"str)6>12189 id=66c21in7rfgct 10f5" 21d=mcig"unsigrang""stline" .> 9pci6c22)f=">10f5" line" .> 9pci92 i)L_early+rlpvip_dac/aml6aor_pvtls"6rivers7GE_SHIFTch79)555br6aks"d68vers/edac/7md64_78eargotoc6 sie="L9383699999a h06class60line" praor_prestorr_e25 er2or_praor_pres2=67r<101sr6w_nrc68pvip_dac/a7lass=78ame64_ed11f=">12111 isie="L9383699999a h06class60line" __func__\_cap6c22"9" 1Ld1func__f8" 196" cla62 F2x&x\n&8f"7a22" n>2217"stri60f="_0"ssC_7vtdri796 clas68vers/6 sie7"L9387837;x\n&8f">addr<10nr_page7ct 2217"stri60ff=">2174 773" cla6s="2168>addr<10pv7p_dac7811f=">121764_99999a hhhhhhhhh8x re59classsssssssss61="L6_mls"6d64_ed7nr_pageslf7"555bre6ks"dr68i79" 1emor7.void78n--64_ed11f="8x re59classsssssssss61="L6_mls"6d64_ed7nf">x8612189 id=66c21in7s61 class=7comment6>/*<*68vers/edac/7md4_e711f=">L93836  _adevini_06class60li _adevini_ers/e64_ed1">122=66ct  63821i69vers/edac/7md64_7d11f="_early+rlpvip_dac/aml6aor_pvtls"6rivers7s="line" n7* Get 06219" 69vers/edac/7mds_e711f=">12192 id _adevini_06class60t 2r55bdrivers1ENODEV06class60line" ENODEV93ilPKILLp_dac/amlass="sNBCFG_CHIPKILL"str)6L939" clas6="line7"L" f1x_ea7ly+rlme6_neas692ers/edac/7mds_e7937;x\n&8f">addr<10nr_page7ct 121_bus_1dac/_INFO6c22PKILLp_dac/dac/_INFO2=62217"stri60"L" f1x_ea7ly+rlcs6ow_in694ers/edac/7md64_79f">Gn"srfg"channel_cou37c7srfg"vay=y7droma_pame="L" f17_early+6ldimm6infoct 2217"stri60"r_pageslf7cs_ 2217"stri60"61 class=7="re&,16f3>
<69a91vt ss= 7 f1x_79c22" naiss6ef">c 934     8"enum"L" f8x_early7rlmem70 vt ss= " 81x_ea8011f=">1217e25 st1gs06class60l 2r55bdrivers1ENODEV06class60line" ENOMEM6c22PKILLp_dac/amlass="sNBCFG_CHIPKILL"str)6"64" id="L639" cl8s="line" n8* Get 07ectl_70vers/edac/8md64_8d11f=">1221pv_06class60line"  2cis6c22[11f=">12111 id=nf221pv_zallocg"unsigrang""stkzalloc93ilf4izeoff4_ed11f=">1r11pv_06class60lin_nb_num_fn1emny&sed10alin_nb_num2=612111 id=nfn0=GFP_KERNEL="_x\n&8f">addrGFP_KERNEL93ilIPKILLp_dac/amlass="sNBCFG_CHIPKILL"str)6Bt 2201"stri80 F2x80nrcha9rex\e25 st1gs06class60line" e25 st1gs93il[11f=">12111 id=nf_zallocg"unsigrang""stkzalloc93ilf4izeoff4_ed11f=">1r11pv_06class60lin_nb_num_fn1emny&sed10alin_nb_num2=612111 id=nfn0=GFP_KERNEL="_x\n&8f">addrGFP_KERNEL93ilIPKILLp_dac/amlass="sNBCFG_CHIPKILL"str)6Bt Gn"70fg"nbcfgct82217"stri68le="L938668="cosfo7aks"d70sectl_=0x&8"umen8011f=">122=mcid=mcig"unsigrang""stms h_repor__gar__1r s hass=ROW"
*a hr11f="driver6aa 1ame="L6836  <8"8="L938668=e59cla6ssfo 698foct 
<69a91vt ss= 8md64_80c22" naiss6ef">c 934     80vay=yndro8a_pvt1217e25 st1gs06class60l 2r55bdrivers1ENadevase_and_maskam_1293ilf64pname=6c22)f=">10f5" p20_1293ilf64pname=2=6 93pname=6c22)f=">10f5" r2org"> 93pname=1217196" cla62 F2x&x\n&8f"7a22" n>2217"stri68_ENABLE"st8))555br7aks"d71vers/edac/8md64_811L963999999999re_06class60line" l 2r55bdriversROW"
*a hr11f="driver6aa 1ame="L6836  <8h_chip_sey8cilf="_7\n&8f712a 1ame="L83csro819"> 1L963999999999a h  er2_en55br06class60linpci6c22)f=">10f5" 0linpci f1x"sNBCFG_CHIPKILL"str)6Bt 71me="L93e118nmrfg8 x86/*<* s11gle cvini_06class60t 2r55bdrivers1ENODEV06class60line" ENODEV93ilPKILLp_dac/amlass="sNBCFG_CHIPKILL"str)6L939" clas6="line8srow_en  "8dlf="_x7n&8f"71nfoct 121ld=nfSROW"
*a hr11f="driver6aa 1ame="L6836  <893e11fndbg8f="_1"s7C_pvt71 12111 i  er2_en55br06class60linno11f=">121l1mc_sysfs_attrs0linno11f=">121lass="sNBCFG_CHIPKILL"str)6L939" clas6="line8se="L938668 hr11pv7p_dac71r1""> 85/1868>
<8 hcsrow_nrct 1217kfre&g"unsigrang""rs93ilt AMD.> 93aen55bradevic&" s93ilt AMD.> 932=62217"stri68_9="L938668rs/edac7amd6471vers/edac/8md64_8d11f=">121=1&xd="664_196" cla62 F2x&x\n&8f"6opageslf="6lass="8 F2x%x8n&}67cl7ss34"72vers//adcs8cf22"82y+rlNBCFG_ECC_ENABLEp_dac7amlass="sN7CFG_EC8s="sre6">p8t121l1mc_sysfs_attrs0linno11f=">121lass=_early+rlpvip_dac/aml61t 10f5" p20_121293ilf64pname=2=6 93pname=6c22)f=">10f5" r2org"> 93pname=1217196" cla62 F2x&x\n&8f"7a22" n>2217"stri681srow_nr_p8geslf="7x\n&872me="L6">12834 id82x8621en55br06class60linpci6c22)f=">10f5" 0linpci f1x_early+rlpvip_dac/aml61t 12172cig"unsigrang""stms h_ter2_fre&93il:jlf="ms h_ter2f=">1r11pv_06class60ms h_repor__gar__1r s hass=R96" cla62 F2x&x\n&8f"7a22" n>2217"stri6813e11fndbg8")555br6aks"d62fg"nbcfgct810f5" 21="l>2196" cla62 F2x&x\n&8f"7c7fg"vay=y73ilf="8e0"so2 + f8>x86amd64_pd8ffef=226sr>2262vers/edac/8md64_82  er2_en55br06class60linter2_fre&93il:jlf="  me=h " f1x_early+rlpvip_dac/aml61t 12288 id=8211f=">121=1&x\_mc_fre&g"unsistkfre&93ilf64_ed11f=">122=pv_06class60line"  2cis6c22[11f=">12111 id=nfR96" cla62 F2x&x\n&8f"7a22" n>2217"stri68rmlll_memo8yntypel6="_x\63vers/6 sie8"L9388311f=">1217e25 st1gs06class60 2cis6c22[11f=">12111 id=nf cig"unsigrang""str"ULL6c22f=">10f5" 21="l>2196" cla62 F2x&x\n&8f"7c7fg"vay=y73ilf="8r="sre6">p8")555br6aks"d63vers/edac/8md64_83pvicha9 opsry_t-f">Gn"srf7 " dct Gn"6rfg"m63>2201"stri80 F2x83nrcha9rex\e25 st1gs06class60stkfre&93ilf64_ed11f=">122=125 st1gs06class60line" e25 st1gs93il[11f=">12111 id=nfR96" cla62 F2x&x\n&8f"7a22" n>2217"stri68rsrow_nr_p8Gn"srfg"channel_cou37c7srfg"vay=y7droma_8rrow_en  "89)555br6aks"d63 >2186s="c8674F283mlassvirt_csrow06cla0liner2_64_6c22:jlf="  me=h " f1x_early+rlpvip_dac/aml61t 2r55bdrivers96" cla62 F2x&x\n&8f"7c7fg"vay=y73ilf="8r0"so2 + f8">/*<<<6<<<<<637r11j1emor8.6lec83" f1x8x re59classsssssssss61="L6_mls"6d64_ed8r>amd64_pd8"6c22996>0L9663"6c22"sref8>6GEN83_cf22sNBCFG_CHIPKILL"str)6>12189 id=66c21in8reaks"driv8ame="L96nbcfg63a91vt3jlf=8  me=831f=">L93836   _adevexi_06class60li _adevexi_ers/e64_ed1">122=66ct  9pci6c22)f=">10f5" line" .> 9pci92 i)sNBCFG_CHIPKILL"str)6>12189 id=66c21in8ks"drivers8edac/am664_ed642ers/edac/8mds_e849"> 1L963999999999a h06class60line" tded1t AMrelease_generic .> \_mc_fre&93ilf64_ed1t AMrelease_generic .> f=">1r11pv_06class60line" .> 9pci6c22)f=">10f5" line" .> 9pci92 i)96" cla62 F2x&x\n&8f"7c7fg"vay=y73ilf="8srivers/ee81fnmrfg6t x86/*<* s11gle cvini_06class60t AM121293ilf64pname=6c22)f=">10f5" p20_121293ilf64pname=2=6 93pname=6c22)f=">10f5" r2org"> 93pname=1217196" cla62 F2x&x\n&8f"7a22" n>2217"stri68_t-f">Gn"s8fg"chan6el_co64nfoct 2217"stri68"s="commen8_t-f">G6"srfg64sectl_=0x&8"unsi8411f=">122=mcig"unsigrang""stline" e25 st1gs93il[11f=">12111 id=nf_zallocg"unsigrangr"ULL6c22f=">10f5" 21="l>2196" cla62 F2x&x\n&8f"7c7fg"vay=y73ilf="8">amd64_pd81fnmrfg6t 6GEN84_cf22sNBCFG_CHIPKILL"str)6>12189 id=66c21in8Ceaks"driv8h " f1x6early64vers/edac/8md6s=8411f=">121=1&x\_mc_fre&g"unsistkfre&93ilf64_ed11f=">122=pv_06class60line"  2cis6c22[11f=">12111 id=nfR96" cla62 F2x&x\n&8f"7a22" n>2217"stri68 class="co8ment">/6<* Th65 vt ss= " 81x_ea8511f=">1217e25 st1gs06class60 2cis6c22[11f=">12111 id=nf cig"unsigrang""str"ULL6c22f=">10f5" 21="l>2196" cla62 F2x&x\n&8f"7c7fg"vay=y73ilf="86c21st CS 86z< of962MB.>65vers/edac/8md64_85pvicha9 opsry_t-f">Gn"srf7 " dct 2217"stri681 class="c8mment">6*<* T65ame="L93dc8_g64_859999920f8"restorr_e25 er2or_ s h_repor__gar__1r s hass=2cig"unsigrang""str"ULL6c22f=">10f5" 21="l>2196" cla62 F2x&x\n&8f"7c7fg"vay=y73ilf="8omment">/*8* archi6ectur65vers/edac/8md64_85>22158x re59classsssssssss6r112184 id6"6c2138e 521nam>2856s="cs61 cla65>addr<10pv8p_dac85mlass="spvicha9"s1"ssfo i6r939" clas6me="L98eL931hanne8a* Get 65215565 2217"stri681s="commen8t">/*<*6The f65r1""> 85/1868>
<85sie="torr_e25 er2or_ odule1 _adevexi_ers/e64_e odule1 _adf=">1r11pv_06class60line" 4_ed1 _adevexi_ers/e64_en1emny4_ed1 _ad2=62217"stri681>amd64_pd8157 id=66c219658foct 12189 id=66c21in8ss="line" 8a* Get 65215865a91vt ss= 8 f1x_8arly64r11pv_06class60MODULE_LICENSEevexi_ers/e64_eMODULE_LICENSEf=">1rdac/amd6Er2or probed1 fn1eGPL999999920f8"nR96" cla62 F2x&x\n&8f"7a22" n>2217"stri68 na* Get 082159 id6"6c2166 vt ss= " 81x_ea860ly64r11pv_06class60MODULE_AUTHOR%]a9" 1L9639MODULE_AUTHORf=">1rdac/amd6Er2or probed1 fn1eSoftwareBitMaker: Doug Thompson, 999999920f8"n6" cla62 F2x&x\n&8f"7a22" n>2217"stri68 c21st CS 8s="comm6nt">/66s=>220scla8s6 12111 irdac/amd6Er2or probed1 fn1eDave Pelf6son, Thayne Harbaugh999999920f8"nR96" cla62 F2x&x\n&8f"7a22" n>2217"stri68 s="line" 8"6c21_e611f=666f=">12241 8d="6c86  er2_ou_06class60liMODULE_DESCRIPTION%]a9" 1L9639MODULE_DESCRIPTIONf=">1rdac/amd6Er2or probed1 fn1eMC supilf6 u5dMAMD64ememorymcrntroll\n& - 999999920f8"n6" cla62 F2x&x\n&8f"7a22" n>2217"stri68  class="c8_ed11f=6>216266me="L93e118nmrfg86gee=96999999920f8"restorr_e25 er2or_NEL="AMD64_VERSION%]a9" 1L9639NEL="AMD64_VERSIONf8" 196" cla62 F2x&x\n&8f"7a22" n>2217"stri68s="line" n8* Get 062163 66vers/edac/8md64_86f">Gn"srfg"channel_cou37c7srfg"vay=y7droma_8_cha9u1 cl8srivers6edcip66>addr<10pv8p_dac86mlassvirt_csrow06cla odule1param_fn1emny&sed10a odule1param2=125 st1gs06class60l_ed1op_L938e\_mc_fre&93ilf64_ed1op_L938e2=12,d _a, 0444196" cla62 F2x&x\n&8f"7a22" n>2217"stri68sL931hanne89)a hr16f="dr66i79" class8"line86="L93torr_e25 er2or_MODULE_PARM_DESC%]a9" 1L9639MODULE_PARM_DESC2=125 st1gs06class60l_ed1op_L938e\_mc_fre&93ilf64_ed1op_L938e2=12,drdac/amd6Er2or probed1 fn1es *C3E 21= R> 93821" L938e: 0=Poll,1=NMI999999920f8"nR96" cla62 F2x&x\n&8f"7a22" n>2217"stri68 s="commen8srfg"cs6mrfgc66sectl_=0x&8"unsi8base64


The original LXR software by load" cla62 Fhttp://CC3is u5dge.net/projects/lx6">LXR *C3ou_ady2=12,dlof rexperior2Nal x\n&ion by " cla62 Fmailto:lx6@gc6ux.no">lx6@gc6ux.no2=12.
lx6.gc6ux.no kindly hosted by " cla62 Fhttp://www.redpill-gc6pro.no">Redpill Lc6pro AS2=12,dproviderfor Lc6uxmcrnsul821" and operations serne";t3since 1995.