one comment

On 08/28/14 22:29, Gabriel L. Somlo wrote:
> 
> NOTE: I screwed up the mailing list address in the previous attempt,
> so please use this one to reply with feedback. Sorry about that !
> 
> 
> OvmfPkg/Library/AcpiTimerLib: Access power mgmt regs based on host bridge type
> 
> Pick the appropriate bus:dev.fn for accessing ACPI power management
> registers (00:01.3 on PIIX4 vs. 00:1f.0 on Q35) based on the DID of
> the host bridge (assumed always present at 00:00.0).
> 
> With this patch, OVMF can boot QEMU's "-machine q35" x86 machine type.
> 
> Contributed-under: TianoCore Contribution Agreement 1.0
> Signed-off-by: Gabriel Somlo <so...@cmu.edu>
> ---
> 
> I can boot Fedora20 Live with this patch applied on top of Reza's
> SATA series:
> 
> http://sourceforge.net/p/edk2/mailman/message/32743992/
> 
> using the following command line:
> 
> bin/qemu-system-x86_64 -machine q35 \
>   -device ide-drive,bus=ide.2,drive=HDC \
>   -drive id=HDC,if=none,snapshot=on,file=Fedora-Live-Desktop-x86_64-20-1.iso \
>   -enable-kvm -m 2048 -usb -device usb-kbd -device usb-mouse \
>   -bios OVMF.fd
> 
> Any comments/suggestions/feedback much appreciated.
> 
> Thanks much,
>    Gabriel
> 
>  OvmfPkg/Library/AcpiTimerLib/AcpiTimerLib.c | 59 
> ++++++++++++++++++++++++++++-
>  1 file changed, 57 insertions(+), 2 deletions(-)
> 
> diff --git a/OvmfPkg/Library/AcpiTimerLib/AcpiTimerLib.c 
> b/OvmfPkg/Library/AcpiTimerLib/AcpiTimerLib.c
> index c644128..f824283 100644
> --- a/OvmfPkg/Library/AcpiTimerLib/AcpiTimerLib.c
> +++ b/OvmfPkg/Library/AcpiTimerLib/AcpiTimerLib.c
> @@ -43,11 +43,66 @@
>      )
>  
>  //
> +// PCI Location of Q35 Power Management PCI Configuration Registers
> +//
> +#define Q35_POWER_MANAGEMENT_BUS       0x00
> +#define Q35_POWER_MANAGEMENT_DEVICE    0x1f
> +#define Q35_POWER_MANAGEMENT_FUNCTION  0x00
> +
> +//
> +// Macro to access Q35 Power Management PCI Configuration Registers
> +//
> +#define Q35_PCI_POWER_MANAGEMENT_REGISTER(Register) \
> +  PCI_LIB_ADDRESS (                                 \
> +    Q35_POWER_MANAGEMENT_BUS,                       \
> +    Q35_POWER_MANAGEMENT_DEVICE,                    \
> +    Q35_POWER_MANAGEMENT_FUNCTION,                  \
> +    Register                                        \
> +    )
> +
> +//
> +// PCI Location of Host Bridge PCI Configuration Registers
> +//
> +#define HOST_BRIDGE_BUS       0x00
> +#define HOST_BRIDGE_DEVICE    0x00
> +#define HOST_BRIDGE_FUNCTION  0x00
> +
> +//
> +// Macro to access Host Bridge Configuration Registers
> +//
> +#define HOST_BRIDGE_REGISTER(Register) \
> +  PCI_LIB_ADDRESS (                    \
> +    HOST_BRIDGE_BUS,                   \
> +    HOST_BRIDGE_DEVICE,                \
> +    HOST_BRIDGE_FUNCTION,              \
> +    Register                           \
> +    )
> +
> +//
> +// Host Bridge Device ID (DID) Register
> +//
> +#define HOST_BRIDGE_DID  HOST_BRIDGE_REGISTER (0x02)
> +
> +//
> +// Host Bridge DID Register values
> +//
> +#define PCI_DEVICE_ID_INTEL_82441    0x1237  // DID value for PIIX4
> +#define PCI_DEVICE_ID_INTEL_Q35_MCH  0x29C0  // DID value for Q35
> +
> +//
> +// Access Power Management PCI Config Regs based on Host Bridge type
> +//
> +#define PCI_POWER_MANAGEMENT_REGISTER(Register)                  \
> +  (PciRead16 (HOST_BRIDGE_DID) == PCI_DEVICE_ID_INTEL_Q35_MCH) ? \
> +    Q35_PCI_POWER_MANAGEMENT_REGISTER (Register) :               \
> +    PIIX4_PCI_POWER_MANAGEMENT_REGISTER (Register)

Please wrap the replacement text in a pair of parens, ie. (?:) rather
than ?:. Then you can add-my

Reviewed-by: Laszlo Ersek <ler...@redhat.com>

Thanks
Laszlo

> +
> +//
>  // PIIX4 Power Management PCI Configuration Registers
>  //
> -#define PMBA                PIIX4_PCI_POWER_MANAGEMENT_REGISTER (0x40)
> +#define PMBA                PCI_POWER_MANAGEMENT_REGISTER (0x40)
>  #define   PMBA_RTE          BIT0
> -#define PMREGMISC           PIIX4_PCI_POWER_MANAGEMENT_REGISTER (0x80)
> +#define PMREGMISC           PCI_POWER_MANAGEMENT_REGISTER (0x80)
>  #define   PMIOSE            BIT0
>  
>  //
> 


------------------------------------------------------------------------------
Slashdot TV.  
Video for Nerds.  Stuff that matters.
http://tv.slashdot.org/
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/edk2-devel

Reply via email to