ECC Error Injection on Xeon C5518

ECC Error Injection on Xeon C5518

I am working on Error Detection module and was attempting to test using the error injection implementation mentioned in Intel® Xeon® Processor C5500/C3500 Series Datasheet, Volume 2  in section 4.12.40. It asks to program the MC_CHANNEL_X_ADDR_MATCH, MC_CHANNEL_X_ECC_ERROR_MASK and MC_CHANNEL_X_ECC_ERROR_MASK registers but attempting to write to this has no effect. Realized there is a lock for this space which is indicated by status in MEMLOCK_STATUS register (device 0: function 0: offset 88h), which in my case is reporting 0x40401 as the set value. This means MEM_CFG_LOCKED is set and I am not able to even unlock using the MC_CFG_CONTROL register (device 0:function 0: offset 90h). I am writing 0x2 to this register but that does not help to unlock the ECC injection registers for writing. How can I achieve this? I am running FreeBSD on the bare metal and not as a virtual machine.


4 posts / 0 nouveau(x)
Dernière contribution
Reportez-vous à notre Notice d'optimisation pour plus d'informations sur les choix et l'optimisation des performances dans les produits logiciels Intel.

Maybe lock is being set by the BIOS.

Thanks for reaching out iliyapolak, I needed to clarify one more thing, is it that if MEMLOCK_STATUS shows the current state as 0x40401 which indicates MEM_CFG_LOCKED is set, (and bits 10 and 18 are not documented). So if MEM_CFG_LOCKED is shown set then even if we attempt writing 0x2 to MC_CFG_CONTROL it will not unlock the Memory Controller Control Registers for writes? Is this something only the BIOS can do? Which knobs to tweak to get the MEMLOCK_STATUS to show a 0 for bit 0?

Tell the truth I do not know. I can only suspect that BIOS could be called from OS   or from chipset driver to perform this operation. Another possibility is that unlocking of MC_CFG_CONTROL  could be performed from SMM mode. I am using Win platform and sometimes I try with kernel debugger read pci/pcie configuration space and  it is not unusual that debugger fails to read some registers.

Did you try to set bit 10 and bit 18 and write to MC_CFG_CONTROL? Maybe this is the reason for the unlocking failure.

Laisser un commentaire

Veuillez ouvrir une session pour ajouter un commentaire. Pas encore membre ? Rejoignez-nous dès aujourd’hui