In my Coreboot build (derived from kblrvp configuration) based on 4.9 label I 
am seeing that MRC test is run on every boot. From what I can tell, what 
happens is:
1) On first boot the MRC cache is not found (correct). MRC test is done and the 
MRC cache is saved successfully. If I pull the BIOS image down, I can see valid 
contents of the MRC cache where they are supposed to be
2) On the second boot MRC verification fails because rdev_mmap does not have 
.mmap method in the rdev ops. Since this rdev is based on 
boot_device_rw_nommap, this seems to be both intended and clearly wrong.
3) At this point MRC test is rerun and is written to the flash *without erasing 
it first* resulting in corrupted data. 
4) Next and all subsequent boots result in reading back corrupt header from MRC 
cache and a failure followed by retrain.

I was able to hack it by replacing 3 calls to mmap with readat and adding erase 
before the MRC update, but clearly it is supposed to work, so what am I missing?

The board is fairly close to KBL RVP3 and the changes to coreboot are minimal. 
FMD file has MRC cache section

I'm open to suggestions

Alex
_______________________________________________
coreboot mailing list -- coreboot@coreboot.org
To unsubscribe send an email to coreboot-le...@coreboot.org

Reply via email to