When SOURCE_DEBUG_ENABLE is set, a TimerLib is linked into the SEC Phase to 
support the Debug Agent and the TimerLib is mapped into read-only ROM/FLASH.



The TimerLib in the OvmfPkg uses a global variable called mPmba and depends on 
that global being updated.  This works for modules loaded into memory, but not  
XIP modules in ROM/FLASH.



This patch removes the mPmba global variable and instead reads the PIIX4 Power 
Management Base Address from PCI configuration space when it is needed.  This 
patch also simplifies the initialization logic in the constructor and 
introduces #defines to eliminate hard coded values in the function 
implementations.  According to the PIIX4 documentation, the IO Space enable bit 
in the PCI Command Register does not have to be set for the Power Management 
Base Address to be decoded, so that one op has been removed from the 
constructor.



I have tested this patch with QEMU and verified that the UDK Debugger us 
functional when SOURCE_DEBUG_ENABLE is set.



Contributed-under: TianoCore Contribution Agreement 1.0

Signed-off-by: Michael Kinney 
<michael.d.kin...@intel.com<mailto:michael.d.kin...@intel.com>>

Attachment: AcpiTimerLib.c.patch
Description: AcpiTimerLib.c.patch

------------------------------------------------------------------------------
Don't let slow site performance ruin your business. Deploy New Relic APM
Deploy New Relic app performance management and know exactly
what is happening inside your Ruby, Python, PHP, Java, and .NET app
Try New Relic at no cost today and get our sweet Data Nerd shirt too!
http://p.sf.net/sfu/newrelic-dev2dev
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/edk2-devel

Reply via email to