Re: [Qemu-devel] [PATCH 2/3] acpi_piix4: Add stub functions for CPU eject callback

2012-01-16 Thread Avi Kivity
On 01/16/2012 01:32 PM, Vasilis Liaskovitis wrote:
> On Sun, Jan 15, 2012 at 02:38:52PM +0200, Avi Kivity wrote:
> > On 01/13/2012 01:11 PM, Vasilis Liaskovitis wrote:
> > > Signed-off-by: Vasilis Liaskovitis 
> > > ---
> > >  hw/acpi_piix4.c |   15 +++
> > >  1 files changed, 15 insertions(+), 0 deletions(-)
> > >
> > > diff --git a/hw/acpi_piix4.c b/hw/acpi_piix4.c
> > > index d5743b6..8bf30dd 100644
> > > --- a/hw/acpi_piix4.c
> > > +++ b/hw/acpi_piix4.c
> > > @@ -37,6 +37,7 @@
> > >  
> > >  #define GPE_BASE 0xafe0
> > >  #define PROC_BASE 0xaf00
> > > +#define PROC_EJ_BASE 0xaf20
> > >
> > 
> > We're adding stuff to piix4 which was never there.  At a minimum this
> > needs to be documented.  Also needs to be -M pc-1.1 and later only.
>
> Where should this be documented? PCI/ACPI hotplug addresses are documented in
> docs/specs/acpi_pci_hotplug.txt 

A pleasant surprise

> but for CPU hotplug documentation (i.e.
> for the existing PROC_BASE) I don't see relevant documentation. I will
> create a docs/specs/acpi_cpu_hotplug.txt if that sounds reasonable.

I suggest renaming it to acpi_hotplug.txt, so it covers both cases.

> For pc-1.1, a new QEMUmachine type will be needed I assume. Should a check be
> made against the machine version in the piix4 code? any relevant examples? 
>

The standard practice is to set a property.  See for example
pc_machine_v0_14 in hw/pc_piix.c, it autosets properties for devices
(erroneously called "drivers" in the code).

btw, I notice the I/O ports are write only and don't remember their
state.  I can't think offhand if there's anything bad about it (in fact
not having state makes live migration more robust), but perhaps someone
else will.


-- 
error compiling committee.c: too many arguments to function




Re: [Qemu-devel] [PATCH 2/3] acpi_piix4: Add stub functions for CPU eject callback

2012-01-16 Thread Vasilis Liaskovitis
On Sun, Jan 15, 2012 at 02:38:52PM +0200, Avi Kivity wrote:
> On 01/13/2012 01:11 PM, Vasilis Liaskovitis wrote:
> > Signed-off-by: Vasilis Liaskovitis 
> > ---
> >  hw/acpi_piix4.c |   15 +++
> >  1 files changed, 15 insertions(+), 0 deletions(-)
> >
> > diff --git a/hw/acpi_piix4.c b/hw/acpi_piix4.c
> > index d5743b6..8bf30dd 100644
> > --- a/hw/acpi_piix4.c
> > +++ b/hw/acpi_piix4.c
> > @@ -37,6 +37,7 @@
> >  
> >  #define GPE_BASE 0xafe0
> >  #define PROC_BASE 0xaf00
> > +#define PROC_EJ_BASE 0xaf20
> >
> 
> We're adding stuff to piix4 which was never there.  At a minimum this
> needs to be documented.  Also needs to be -M pc-1.1 and later only.

Where should this be documented? PCI/ACPI hotplug addresses are documented in
docs/specs/acpi_pci_hotplug.txt but for CPU hotplug documentation (i.e.
for the existing PROC_BASE) I don't see relevant documentation. I will
create a docs/specs/acpi_cpu_hotplug.txt if that sounds reasonable.

For pc-1.1, a new QEMUmachine type will be needed I assume. Should a check be
made against the machine version in the piix4 code? any relevant examples? 

thanks,

- Vasilis




Re: [Qemu-devel] [PATCH 2/3] acpi_piix4: Add stub functions for CPU eject callback

2012-01-15 Thread Avi Kivity
On 01/13/2012 01:11 PM, Vasilis Liaskovitis wrote:
> Signed-off-by: Vasilis Liaskovitis 
> ---
>  hw/acpi_piix4.c |   15 +++
>  1 files changed, 15 insertions(+), 0 deletions(-)
>
> diff --git a/hw/acpi_piix4.c b/hw/acpi_piix4.c
> index d5743b6..8bf30dd 100644
> --- a/hw/acpi_piix4.c
> +++ b/hw/acpi_piix4.c
> @@ -37,6 +37,7 @@
>  
>  #define GPE_BASE 0xafe0
>  #define PROC_BASE 0xaf00
> +#define PROC_EJ_BASE 0xaf20
>

We're adding stuff to piix4 which was never there.  At a minimum this
needs to be documented.  Also needs to be -M pc-1.1 and later only.

-- 
error compiling committee.c: too many arguments to function




[Qemu-devel] [PATCH 2/3] acpi_piix4: Add stub functions for CPU eject callback

2012-01-13 Thread Vasilis Liaskovitis

Signed-off-by: Vasilis Liaskovitis 
---
 hw/acpi_piix4.c |   15 +++
 1 files changed, 15 insertions(+), 0 deletions(-)

diff --git a/hw/acpi_piix4.c b/hw/acpi_piix4.c
index d5743b6..8bf30dd 100644
--- a/hw/acpi_piix4.c
+++ b/hw/acpi_piix4.c
@@ -37,6 +37,7 @@
 
 #define GPE_BASE 0xafe0
 #define PROC_BASE 0xaf00
+#define PROC_EJ_BASE 0xaf20
 #define GPE_LEN 4
 #define PCI_BASE 0xae00
 #define PCI_EJ_BASE 0xae08
@@ -493,6 +494,17 @@ static void pcihotplug_write(void *opaque, uint32_t addr, 
uint32_t val)
 PIIX4_DPRINTF("pcihotplug write %x <== %d\n", addr, val);
 }
 
+static uint32_t cpuej_read(void *opaque, uint32_t addr)
+{
+PIIX4_DPRINTF("cpuej read %x\n", addr);
+return 0;
+}
+
+static void cpuej_write(void *opaque, uint32_t addr, uint32_t val)
+{
+PIIX4_DPRINTF("cpuej write %x <== %d\n", addr, val);
+}
+
 static uint32_t pciej_read(void *opaque, uint32_t addr)
 {
 PIIX4_DPRINTF("pciej read %x\n", addr);
@@ -553,6 +565,9 @@ static void piix4_acpi_system_hot_add_init(PCIBus *bus, 
PIIX4PMState *s)
 register_ioport_write(PROC_BASE, 32, 1, gpe_writeb, s);
 register_ioport_read(PROC_BASE, 32, 1,  gpe_readb, s);
 
+register_ioport_write(PROC_EJ_BASE, 32, 1, cpuej_write, s);
+register_ioport_read(PROC_EJ_BASE, 32, 1,  cpuej_read, s);
+
 register_ioport_write(PCI_BASE, 8, 4, pcihotplug_write, pci0_status);
 register_ioport_read(PCI_BASE, 8, 4,  pcihotplug_read, pci0_status);
 
-- 
1.7.7.3