📄 readme.mpc83xx.ddrecc
字号:
Overview========The overall usage pattern for ECC diagnostic commands is the following: * (injecting errors is initially disabled) * define inject mask (which tells the DDR controller what type of errors we'll be injecting: single/multiple bit etc.) * enable injecting errors - from now on the controller injects errors as indicated in the inject maskIMPORTANT NOTICE: enabling injecting multiple-bit errors is potentiallydangerous as such errors are NOT corrected by the controller. Therefore cautionshould be taken when enabling the injection of multiple-bit errors: it is onlysafe when used on a carefully selected memory area and used under control ofthe 'ecc testdw' 'ecc testword' command (see example 'Injecting Multiple-BitErrors' below). In particular, when you simply set the multiple-bit errors ininject mask and enable injection, U-Boot is very likely to hang quickly as theerrors will be injected when it accesses its code, data etc.Use cases for DDR 'ecc' command:================================Before executing particular tests reset target board or clear status registers:=> ecc captureclear=> ecc errdetectclr all=> ecc sbecnt 0Injecting Single-Bit Errors---------------------------1. Set 1 bit in Data Path Error Inject Mask=> ecc injectdatahi 12. Run test over some memory region=> ecc testdw 200000 103. Check ECC status=> ecc status...Memory Data Path Error Injection Mask High/Low: 00000001 00000000...Memory Single-Bit Error Management (0..255): Single-Bit Error Threshold: 255 Single Bit Error Counter: 16...Memory Error Detect: Multiple Memory Errors: 0 Multiple-Bit Error: 0 Single-Bit Error: 0...16 errors were generated, Single-Bit Error flag was not set as Single Bit ErrorCounter did not reach Single-Bit Error Threshold.4. Make sure used memory region got re-initialized with 0x0123456789abcdef=> md 20000000200000: 01234567 89abcdef 01234567 89abcdef .#Eg.....#Eg....00200010: 01234567 89abcdef 01234567 89abcdef .#Eg.....#Eg....00200020: 01234567 89abcdef 01234567 89abcdef .#Eg.....#Eg....00200030: 01234567 89abcdef 01234567 89abcdef .#Eg.....#Eg....00200040: 01234567 89abcdef 01234567 89abcdef .#Eg.....#Eg....00200050: 01234567 89abcdef 01234567 89abcdef .#Eg.....#Eg....00200060: 01234567 89abcdef 01234567 89abcdef .#Eg.....#Eg....00200070: 01234567 89abcdef 01234567 89abcdef .#Eg.....#Eg....00200080: deadbeef deadbeef deadbeef deadbeef ................00200090: deadbeef deadbeef deadbeef deadbeef ................Injecting Multiple-Bit Errors-----------------------------1. Set more than 1 bit in Data Path Error Inject Mask=> ecc injectdatahi 1=> ecc injectdatalo 12. Run test over some memory region=> ecc testword 200000 13. Check ECC status=> ecc status...Memory Data Path Error Injection Mask High/Low: 00000001 00000001...Memory Error Detect: Multiple Memory Errors: 0 Multiple-Bit Error: 1 Single-Bit Error: 0...The Multiple Memory Errors flags not set and Multiple-Bit Error flags are set.4. Make sure used memory region got re-initialized with 0x0123456789abcdef=> md 20000000200000: 01234567 89abcdef 01234567 89abcdef .#Eg.....#Eg....00200010: 01234567 89abcdef 01234567 89abcdef .#Eg.....#Eg....00200020: 01234567 89abcdef 01234567 89abcdef .#Eg.....#Eg....00200030: 01234567 89abcdef 01234567 89abcdef .#Eg.....#Eg....00200040: 01234567 89abcdef 01234567 89abcdef .#Eg.....#Eg....00200050: 01234567 89abcdef 01234567 89abcdef .#Eg.....#Eg....00200060: 01234567 89abcdef 01234567 89abcdef .#Eg.....#Eg....00200070: 01234567 89abcdef 01234567 89abcdef .#Eg.....#Eg....00200080: deadbeef deadbeef deadbeef deadbeef ................00200090: deadbeef deadbeef deadbeef deadbeef ................Test Single-Bit Error Counter and Threshold-------------------------------------------1. Set 1 bit in Data Path Error Inject Mask=> ecc injectdatahi 12. Enable error injection=> ecc inject en3. Let u-boot run for a with Single-Bit error injection enabled4. Disable error injection=> ecc inject dis4. Check status=> ecc status...Memory Single-Bit Error Management (0..255): Single-Bit Error Threshold: 255 Single Bit Error Counter: 199Memory Error Detect: Multiple Memory Errors: 1 Multiple-Bit Error: 0 Single-Bit Error: 1...Observe that Single-Bit Error is 'on' which means that Single-Bit Error Counterreached Single-Bit Error Threshold. Multiple Memory Errors bit is also 'on', thatis Counter reached Threshold more than one time (it wraps back after reachingThreshold).
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -