<div dir="ltr"><div><div><div><div><div>After finding out OVMF doesn't do SMM (on the
EDK2-devel list), I decided to try working on a MinnowboardMax (hello
minnow list too!)<br><br></div>I can see with the MinnowboardMax serial port debug output that if I write 0x01 to port 0xB2, it prints some things like <br>"PiSmmCommunicationHandler Enter"<br></div>"PiSmmCommunicationHandler CommunicateHeader - 0"<br>etc<br></div>But when I search through the source code such lines don't seem to be present.<br><br>Eventually I found that they exist in a binary-only package, MinMAX076\Vlv2BinaryPkg\IA32DEBUG\IA32\PiSmmCommunicationSmm.efi<br></div>Running
strings on the binary seems to imply that it was linked against things
like MdePkg\Library\BaseDebugLibSerialPort\DebugLib.c<br><br>As I did
with OVMF, I just put a "DebugPrint (0xFFFFFFFF, "Hi from SMM\n"); into
PiSmmCore.c. I see printout at boot time, but not at runtime upon
forcing an SMI. I assume this is because it's just using some DXE
DebugPrint which goes away at runtime? And I assume the reason the
binary package can continue to DebugPrint into runtime is because it has
(static?) linked against the DebugLib.c and so it contains all the code
it needs internally? Or maybe the serial port configuration gets screwed up at runtime? But then I would expect after the first PiSmmCommunicationHandler print for it to be reconfigured properly.<br><br></div>I can see that PiSmmCode.inf says
MdePkg/MdePkg.dec is under [Packages], and DebugLib is under
[LibraryClasses], so maybe it's some other reason I can't see my
DebugPrint in PiSmmCore.c at runtime only?<br><div><br>So any help on how to
see the print and/or (static?) link against the DebugLib.c that so I can
keep printing at runtime would be very appreciated.<br><br>Ed<br></div></div>