EDAC shell
Overview
This sample demonstrates the EDAC driver API in a simple EDAC shell sample.
Building and Running
This sample can be found under samples/subsys/edac in the Zephyr tree. The sample can be built as follows for the Elkhart Lake CRB board:
west build -b intel_ehl_crb samples/subsys/edac
The Zephyr image that’s created can be run on the Elkhart Lake CRB board as per the instructions in the board documentation. Check out the Elkhart Lake CRB for details.
Sample output
Getting help
After the application has started help can be read with the following command:
uart:~$ edac -h
edac - EDAC information
Subcommands:
info :Show EDAC information
edac info <subcommands>
inject :Inject ECC error commands
edac inject <subcommands>
Help for subcommand info can be read with:
uart:~$ edac info -h
info - Show EDAC information
edac info <subcommands>
Subcommands:
ecc_error :ECC Error Show / Clear commands
parity_error :Parity Error Show / Clear commands
Injection help can be received with:
uart:~$ edac inject -h
inject - Inject ECC error commands
edac inject <subcommands>
Subcommands:
addr :Get / Set physical address
mask :Get / Set address mask
trigger :Trigger injection
error_type :Get / Set injection error type
disable_nmi :Disable NMI
enable_nmi :Enable NMI
test_default :Test default injection parameters
Testing Error Injection
Set Error Injection parameters with:
uart:~$ edac inject addr 0x1000
Set injection address base to: 0x1000
uart:~$ edac inject mask 0x7fffffffc0
Set injection address mask to 7fffffffc0
uart:~$ edac inject error_type correctable
Set injection error type: correctable
Trigger injection with:
uart:~$ edac inject trigger
Triggering injection
Now Read / Write to the injection address to trigger Error Injection with following devmem commands:
uart:~$ devmem 0x1000 32 0xabcd
Mapped 0x1000 to 0x2ffcf000
Using data width 32
Writing value 0xabcd
uart:~$ devmem 0x1000
Mapped 0x1000 to 0x2ffce000
Using data width 32
Read value 0xabcd
We should get the following message on screen indicating an IBECC event:
Got notification about IBECC event