Re: [SeaBIOS] [PATCH RFC] seabios: add OSHP method stub

2012-02-29 Thread Gerd Hoffmann
> diff --git a/src/ssdt-pcihp.dsl b/src/ssdt-pcihp.dsl
> index 442e7a8..3f50169 100644
> --- a/src/ssdt-pcihp.dsl
> +++ b/src/ssdt-pcihp.dsl
> @@ -24,6 +24,7 @@ DefinitionBlock ("ssdt-pcihp.aml", "SSDT", 0x01, "BXPC", 
> "BXSSDTPCIHP", 0x1)
> ACPI_EXTRACT_METHOD_STRING aml_ej0_name  \
> Method (_EJ0, 1) { Return(PCEJ(0x##slot)) }  \
> Name (_SUN, 0x##slot)\
> +   Method (OSHP, 1) { Return(0x0) }  \
>  }


Linux kernel (kernel-3.2.7-1.fc16.x86_64) complains:

ACPI Warning: For \_SB_.PCI0.S10_.OSHP: Insufficient arguments - needs
1, found 0 (20110623/nspredef-321)

cheers,
  Gerd
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [Qemu-devel] [PATCH RFC] seabios: add OSHP method stub

2012-02-14 Thread Michael S. Tsirkin
On Tue, Feb 14, 2012 at 01:47:59PM +, Paul Brook wrote:
> > > > Now an OS can have a standard driver and use it
> > > > to activate hotplug functionality. This is OS hotplug (OSHP).
> > > 
> > > So presumably this will work on targets that don't have ACPI?
> > > Assuming a competent guest OS of course.  Have you tested this?
> > 
> > This being the qemu side of things? I run Linux
> > and verified that it calls OSHP and afterwards,
> > runs the native driver and handles hotplug/unplug
> > without invoking ACPI at all.
> 
> I mean using your shiny new hotplug PCI-PCI bridge on arm/ppc/mips targets 
> (i.e anything other than x86 PC).  From your description it sounds like it 
> *should* work.
>  
> > It seems that at least the SHPC driver in linux
> > doesn't work if you don't have an acpi table
> > with the OSHP method - not many people run with acpi=off
> > nowdays, so it's probably just a bug.
> > I'll check how hard it is to fix this.
> 
> Targets other than x86 don't have ACPI to start with.
> 
> Paul

So

#ifdef CONFIG_ACPI
#include 
static inline int get_hp_hw_control_from_firmware(struct pci_dev *dev)
{
u32 flags = OSC_SHPC_NATIVE_HP_CONTROL;
return acpi_get_hp_hw_control_from_firmware(dev, flags);
}
#else
#define get_hp_hw_control_from_firmware(dev) (0)
#endif

So if you build your guest without acpi, things should work fine.

-- 
MMST
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [Qemu-devel] [PATCH RFC] seabios: add OSHP method stub

2012-02-14 Thread Paul Brook
> > > Now an OS can have a standard driver and use it
> > > to activate hotplug functionality. This is OS hotplug (OSHP).
> > 
> > So presumably this will work on targets that don't have ACPI?
> > Assuming a competent guest OS of course.  Have you tested this?
> 
> This being the qemu side of things? I run Linux
> and verified that it calls OSHP and afterwards,
> runs the native driver and handles hotplug/unplug
> without invoking ACPI at all.

I mean using your shiny new hotplug PCI-PCI bridge on arm/ppc/mips targets 
(i.e anything other than x86 PC).  From your description it sounds like it 
*should* work.
 
> It seems that at least the SHPC driver in linux
> doesn't work if you don't have an acpi table
> with the OSHP method - not many people run with acpi=off
> nowdays, so it's probably just a bug.
> I'll check how hard it is to fix this.

Targets other than x86 don't have ACPI to start with.

Paul
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [Qemu-devel] [PATCH RFC] seabios: add OSHP method stub

2012-02-14 Thread Michael S. Tsirkin
On Tue, Feb 14, 2012 at 12:49:08PM +, Paul Brook wrote:
> > > In a nutshell, I don't know what a SHPC is (nor OSHP), so I'm looking
> > > for an additional Ack.
> > 
> > No problem, I'll get an Ack :)
> > Meanwhile - here's a summary, as far as I understand it.
> > 
> > Originally PCI SIG only defined the electrical
> > and mechanical requirements from hotplug, no standard
> > software interface. So it needed ACPI to drive device-specific registers
> > to actually do hotplug.
> > At some point PCISIG defined standard interfaces
> > for PCI hotplug. There are two of them: standard
> > hot plug controller (SHPC) for PCI and PCIE hotplug
> > for Express.
> > 
> > Now an OS can have a standard driver and use it
> > to activate hotplug functionality. This is OS hotplug (OSHP).
> 
> So presumably this will work on targets that don't have ACPI?
> Assuming a competent guest OS of course.  Have you tested this?
> 
> Paul

This being the qemu side of things? I run Linux
and verified that it calls OSHP and afterwards,
runs the native driver and handles hotplug/unplug
without invoking ACPI at all.

It seems that at least the SHPC driver in linux
doesn't work if you don't have an acpi table
with the OSHP method - not many people run with acpi=off
nowdays, so it's probably just a bug.
I'll check how hard it is to fix this.

-- 
MST
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [Qemu-devel] [PATCH RFC] seabios: add OSHP method stub

2012-02-14 Thread Paul Brook
> > In a nutshell, I don't know what a SHPC is (nor OSHP), so I'm looking
> > for an additional Ack.
> 
> No problem, I'll get an Ack :)
> Meanwhile - here's a summary, as far as I understand it.
> 
> Originally PCI SIG only defined the electrical
> and mechanical requirements from hotplug, no standard
> software interface. So it needed ACPI to drive device-specific registers
> to actually do hotplug.
> At some point PCISIG defined standard interfaces
> for PCI hotplug. There are two of them: standard
> hot plug controller (SHPC) for PCI and PCIE hotplug
> for Express.
> 
> Now an OS can have a standard driver and use it
> to activate hotplug functionality. This is OS hotplug (OSHP).

So presumably this will work on targets that don't have ACPI?
Assuming a competent guest OS of course.  Have you tested this?

Paul
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH RFC] seabios: add OSHP method stub

2012-02-13 Thread Michael S. Tsirkin
On Mon, Feb 13, 2012 at 07:34:55PM -0500, Kevin O'Connor wrote:
> On Mon, Feb 13, 2012 at 11:33:08AM +0200, Michael S. Tsirkin wrote:
> > To allow guests to load the native SHPC driver
> > for a bridge, we must declare an OSHP method
> > for the appropriate device which lets the OS
> > take control of the SHPC.
> > As we don't access SHPC at the moment, we
> > don't need to do anything - just report success.
> 
> The patch is fine with me, but since this is really qemu/kvm specific,
> please provide an ack from one of the qemu/kvm maintainers.
> 
> -Kevin

I expect no problem with this,
though I'm wondering what makes it qemu specific.


--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH RFC] seabios: add OSHP method stub

2012-02-13 Thread Michael S. Tsirkin
On Mon, Feb 13, 2012 at 07:48:37PM -0500, Kevin O'Connor wrote:
> On Tue, Feb 14, 2012 at 02:43:45AM +0200, Michael S. Tsirkin wrote:
> > On Mon, Feb 13, 2012 at 07:34:55PM -0500, Kevin O'Connor wrote:
> > > On Mon, Feb 13, 2012 at 11:33:08AM +0200, Michael S. Tsirkin wrote:
> > > > To allow guests to load the native SHPC driver
> > > > for a bridge, we must declare an OSHP method
> > > > for the appropriate device which lets the OS
> > > > take control of the SHPC.
> > > > As we don't access SHPC at the moment, we
> > > > don't need to do anything - just report success.
> > > 
> > > The patch is fine with me, but since this is really qemu/kvm specific,
> > > please provide an ack from one of the qemu/kvm maintainers.
> > > 
> > > -Kevin
> > 
> > I expect no problem with this,
> > though I'm wondering what makes it qemu specific.
> 
> Only kvm/qemu use the ACPI tables in seabios.
> 
> In a nutshell, I don't know what a SHPC is (nor OSHP), so I'm looking
> for an additional Ack.
> 
> -Kevin

No problem, I'll get an Ack :)
Meanwhile - here's a summary, as far as I understand it.

Originally PCI SIG only defined the electrical
and mechanical requirements from hotplug, no standard
software interface. So it needed ACPI to drive device-specific registers
to actually do hotplug.
At some point PCISIG defined standard interfaces
for PCI hotplug. There are two of them: standard
hot plug controller (SHPC) for PCI and PCIE hotplug
for Express.

Now an OS can have a standard driver and use it
to activate hotplug functionality. This is OS hotplug (OSHP).

But what about older OSes that do not have this
driver? ACPI can support these by driving
the SHPC interface itself. This will work but
then it can conflict with the new driver in the OS.

To solve the problem, OS tells ACPI to leave SHPC
alone. There are two things OS tries to activate to do this,
in this order:
1. _OSC for global switch to native SHPC driver
2. OSHP for switch on the given bridge device

If none of the above are present, or if they fail,
OS assumes ACPI wants control of the SHPC registers
and won't touch them.

Hope above makes sense.

-- 
MST
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH RFC] seabios: add OSHP method stub

2012-02-13 Thread Kevin O'Connor
On Tue, Feb 14, 2012 at 02:43:45AM +0200, Michael S. Tsirkin wrote:
> On Mon, Feb 13, 2012 at 07:34:55PM -0500, Kevin O'Connor wrote:
> > On Mon, Feb 13, 2012 at 11:33:08AM +0200, Michael S. Tsirkin wrote:
> > > To allow guests to load the native SHPC driver
> > > for a bridge, we must declare an OSHP method
> > > for the appropriate device which lets the OS
> > > take control of the SHPC.
> > > As we don't access SHPC at the moment, we
> > > don't need to do anything - just report success.
> > 
> > The patch is fine with me, but since this is really qemu/kvm specific,
> > please provide an ack from one of the qemu/kvm maintainers.
> > 
> > -Kevin
> 
> I expect no problem with this,
> though I'm wondering what makes it qemu specific.

Only kvm/qemu use the ACPI tables in seabios.

In a nutshell, I don't know what a SHPC is (nor OSHP), so I'm looking
for an additional Ack.

-Kevin
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH RFC] seabios: add OSHP method stub

2012-02-13 Thread Kevin O'Connor
On Mon, Feb 13, 2012 at 11:33:08AM +0200, Michael S. Tsirkin wrote:
> To allow guests to load the native SHPC driver
> for a bridge, we must declare an OSHP method
> for the appropriate device which lets the OS
> take control of the SHPC.
> As we don't access SHPC at the moment, we
> don't need to do anything - just report success.

The patch is fine with me, but since this is really qemu/kvm specific,
please provide an ack from one of the qemu/kvm maintainers.

-Kevin
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH RFC] seabios: add OSHP method stub

2012-02-13 Thread Michael S. Tsirkin
To allow guests to load the native SHPC driver
for a bridge, we must declare an OSHP method
for the appropriate device which lets the OS
take control of the SHPC.
As we don't access SHPC at the moment, we
don't need to do anything - just report success.

Signed-off-by: Michael S. Tsirkin 

---

diff --git a/src/ssdt-pcihp.dsl b/src/ssdt-pcihp.dsl
index 442e7a8..3f50169 100644
--- a/src/ssdt-pcihp.dsl
+++ b/src/ssdt-pcihp.dsl
@@ -24,6 +24,7 @@ DefinitionBlock ("ssdt-pcihp.aml", "SSDT", 0x01, "BXPC", 
"BXSSDTPCIHP", 0x1)
ACPI_EXTRACT_METHOD_STRING aml_ej0_name  \
Method (_EJ0, 1) { Return(PCEJ(0x##slot)) }  \
Name (_SUN, 0x##slot)\
+   Method (OSHP, 1) { Return(0x0) }  \
 }
 
 hotplug_slot(03)
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html