Hi there, I am working on an EDK-I based x86-64 firmware (BIOS) running on x86 platform. The firmware uses DEBUG() macro to print all of its debug output. I have briefly looked at EDK-II SDK and it seems that DEBUG() macro remains same. Please bear with me if that's inaccurate. I need your help with very simple problem.
On our system, we want to keep the firmware output to console (serial port) minimum. As a solution, we do not want to print any debug output. Instead, we want to save it to a ring-buffer stored somewhere in memory (and not send it to console) and then dump it to console whenever there's a need for it - usually when there is some failure and the firmware cannot proceed. The difficulty that I've ran in to is this: I see there are 3 implementations of DEBUG() for each DXE, SMM and Runtime mode. From some testing, it looks like the firmware invokes all 3 of them all over the place during boot. Unless I misunderstood how these are compiled, it looks like all 3 DEBUG()s are dumping output to console independently. In other words, I cannot declare a global ring-buffer (of say 2K size) along with global head/tail pointers in the ring-buffer and save output from each of these DEBUG()s in it and retrieve it at later stages. Is there any way by which, starting from DXE phase, I can store output of DEBUG() in some common ring-buffer which I can retrieve anytime up to right before OS boot? Thanks for your help. Tejas
------------------------------------------------------------------------------
_______________________________________________ edk2-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel