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)
May 17 2024, 6:25 PM
Unknown Object (File)
Dec 20 2023, 7:32 AM
Unknown Object (File)
Nov 14 2023, 11:26 AM
Unknown Object (File)
Jul 5 2023, 4:50 PM
Unknown Object (File)
Jun 19 2023, 8:58 PM
Unknown Object (File)
Jun 19 2023, 8:45 PM
Unknown Object (File)
May 3 2023, 8:24 PM
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