Page MenuHomeFreeBSD

Pondicherry2 memory controller (ECC) driver
AbandonedPublic

Authored by stevek on Apr 18 2023, 6:06 PM.
Tags
None
Referenced Files
Unknown Object (File)
Sun, Sep 28, 6:54 AM
Unknown Object (File)
Sun, Sep 28, 5:58 AM
Unknown Object (File)
Sun, Sep 28, 5:33 AM
Unknown Object (File)
Sun, Sep 28, 3:59 AM
Unknown Object (File)
Jul 7 2025, 12:49 PM
Unknown Object (File)
Jul 6 2025, 12:50 AM
Unknown Object (File)
Jul 3 2025, 11:27 AM
Unknown Object (File)
Jan 14 2025, 8:11 AM
Subscribers

Details

Reviewers
None
Summary

Address decoding implemented by reading MCH registers to get the
mapping bet ween address bits and physical location in RAM

Decoding has two stages:

  1. Convert physical address to PMI.
  2. Convert PMI to location in DRAM.

Only single channel and slice memory configuration.

Correctable errors:
Process a CMC(correctable machine check) by decoding the faulty
address and printing its location in DRAM (bank,rank etc.) to
the console.

Uncorrectable errors:
If the board was rebooted due to an UCE log that in dmesg.

Device sysctls:

  1. Read correctable ECC error count: sysctl dev.pnd2_edac.0.ce_count
  2. Enable/Disable patrol scrub: sysctl dev.pnd2_edac.0.patrol_scrub=1/0

Errors are injected by writing to a newly created sysctl, 2 for
UCE and 1 for CE.

Note: the error injection feature must be enabled in firmware.

Usage:

  1. Inject uncorrectable ECC error: sysctl dev.pnd2_edac.0.err_inject=1
  2. Inject correctable ECC error: sysctl dev.pnd2_edac.0.err_inject=2

Note: error injection feature must be enabled in BIOS by enabling
"Security relaxation".

Submitted by: Lakshman Likith Nudurupati <lnlakshman@juniper.net>
Sponsored by: Juniper Networks, Inc.
Obtained from: Semihalf

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Skipped
Unit
Tests Skipped
Build Status
Buildable 51010
Build 47901: arc lint + arc unit