| .. _edac_ibecc_tests: |
| |
| Testing Error Detection and Correction |
| ###################################### |
| |
| Tests verify API and use error injection method to inject errors. |
| |
| Prerequisites |
| ************* |
| |
| IBECC should be enabled in BIOS. This is usually enabled in the default |
| BIOS configuration. Verify following is enabled:: |
| |
| :menuselection:`Intel Advanced Menu --> Memory Configuration --> In-Band ECC --> Enabled` |
| |
| Verify also operational mode with:: |
| |
| :menuselection:`Intel Advanced Menu --> Memory Configuration --> In-Band ECC Operation Mode --> 2` |
| |
| For injection test Error Injection should be enabled. |
| |
| Error Injection |
| =============== |
| |
| IBECC includes a feature to ease the verification effort such as Error |
| Injection capability. This helps to test the error checking, logging and |
| reporting mechanism within IBECC. |
| |
| In order to use Error Injection user need to use BIOS Boot Guard 0 profile. |
| |
| Additionally Error Injection need to be enabled in the following BIOS menu:: |
| |
| :menuselection:`Intel Advanced Menu --> Memory Configuration --> In-Band ECC Error --> Enabled` |
| |
| .. note:: |
| |
| Due to high security risk Error Injection capability should not be |
| enabled for production. Due to this reason test has production configuration |
| and debug configuration. The main difference is that debug configuration |
| includes Error Injection. |
| |
| Building and Running |
| ******************** |
| |
| This project can be built as follows for the :ref:`intel_ehl_crb` board: |
| |
| .. zephyr-app-commands:: |
| :zephyr-app: tests/subsys/edac/ibecc |
| :board: intel_ehl_crb |
| :goals: build |
| :compact: |
| |
| Sample output |
| ============= |
| |
| .. code-block:: console |
| |
| *** Booting Zephyr OS build zephyr-v3.2.0-747-gd421737f433e *** |
| Running TESTSUITE ibecc |
| =================================================================== |
| START - test_edac_dummy_api |
| PASS - test_edac_dummy_api in 0.001 seconds |
| =================================================================== |
| START - test_ibecc_initialized |
| Test ibecc driver is initialized |
| PASS - test_ibecc_initialized in 0.004 seconds |
| =================================================================== |
| START - test_ibecc_injection |
| SKIP - test_ibecc_injection in 0.001 seconds |
| =================================================================== |
| TESTSUITE ibecc succeeded |