I wasn't very clear in my #12 comment, but what I was trying to say it is something fishy about "reg_block->asRegIndexBuf". It is defined in atombios.h as: ATOM_MEMORY_SETTING_DATA_BLOCK asRegDataBuf[1]; But it is accessed well beyond just the first element and it is after the first access that things start getting weird.