I am using OVMF2018 (https://github.com/tianocore/tianocore.github.io/wiki/OVMF) build with smm functionality. Run qemu with "-machine smm=on" option. When SMI handler starts working, cpu_memory_rw_debug() function reads from tseg_blackhole device mem and function returns ffff... instead of actual data. Same situation when using remote gdb debugging, guess because cpu_memory_rw_debug() is in use also. But code of SMI handler executes normally, so cpu can access actual data and not tseg_blackhole.
Can anybody explain please, what is the difference in this context between, for example, x86_ldub_code() and cpu_memory_rw_debug()? Is such behavior intended? (guess no) What is tseg at all? I can't find similar terminology in intel manuals.