> -----Original Message-----
> From: Qemu-devel
> [mailto:qemu-devel-bounces+shameerali.kolothum.thodi=huawei.com@nongn
> u.org] On Behalf Of Igor Mammedov
> Sent: 01 March 2019 10:34
> To: Shameerali Kolothum Thodi <shameerali.kolothum.th...@huawei.com>
> Cc: peter.mayd...@linaro.org; shannon.zha...@gmail.com;
> qemu-devel@nongnu.org; Linuxarm <linux...@huawei.com>;
> eric.au...@redhat.com; qemu-...@nongnu.org; xuwei (O)
> <xuw...@huawei.com>
> Subject: Re: [Qemu-devel] [RFC PATCH 3/4] hw/arm/virt: Enable pc-dimm
> hotplug support
>
> On Fri, 1 Mar 2019 11:26:35 +0100
> Igor Mammedov <imamm...@redhat.com> wrote:
>
> > On Fri, 1 Mar 2019 09:23:11 +0000
> > Shameerali Kolothum Thodi <shameerali.kolothum.th...@huawei.com>
> wrote:
> >
> > > > -----Original Message-----
> > > > From: Igor Mammedov [mailto:imamm...@redhat.com]
> > > > Sent: 01 March 2019 09:12
> > > > To: Shameerali Kolothum Thodi
> <shameerali.kolothum.th...@huawei.com>
> > > > Cc: eric.au...@redhat.com; shannon.zha...@gmail.com;
> > > > peter.mayd...@linaro.org; qemu-devel@nongnu.org;
> qemu-...@nongnu.org;
> > > > Linuxarm <linux...@huawei.com>; xuwei (O) <xuw...@huawei.com>
> > > > Subject: Re: [Qemu-devel] [RFC PATCH 3/4] hw/arm/virt: Enable pc-dimm
> > > > hotplug support
> > > >
> > > > On Mon, 28 Jan 2019 11:05:45 +0000
> > > > Shameer Kolothum <shameerali.kolothum.th...@huawei.com> wrote:
> > > >
> > > > > pc-dimm memory hotplug is enabled using GPIO(Pin 2) based ACPI
> > > > > event. Hot removal functionality is not yet supported.
> > > > >
> > > > > Signed-off-by: Shameer Kolothum
> <shameerali.kolothum.th...@huawei.com>
> > > > > ---
> > > > > hw/arm/virt.c | 57
> > > > +++++++++++++++++++++++++++++++++++++++++++++++++++++++--
> > > > > 1 file changed, 55 insertions(+), 2 deletions(-)
> > > > >
> > > > > diff --git a/hw/arm/virt.c b/hw/arm/virt.c
> > > > > index 884960d..cf64554 100644
> > > > > --- a/hw/arm/virt.c
> > > > > +++ b/hw/arm/virt.c
> > > > > @@ -62,6 +62,7 @@
> > > > > #include "hw/mem/pc-dimm.h"
> > > > > #include "hw/mem/nvdimm.h"
> > > > > #include "hw/acpi/acpi.h"
> > > > > +#include "hw/acpi/pc-hotplug.h"
> > > > it looks like x86 specific file, what is this here for?
> > >
> > > Yes. That is for ACPI_MEMORY_HOTPLUG_BASE which is only used by x86
> > > at the moment. I guess, it can be moved to hw/acpi/memory_hotplug.h ?
> > it's GPA and pc/q35 impl. specific so you should use it,
> s/should/should not/
>
> > this address will always be board specific one.
> > Makeup a virt specific one
Ok. I was under the impression that the offsets can be reused as it is defined
here docs/specs/acpi_mem_hotplug.txt(though that is GPE and pc/q35 acpi dev
specific). But agree, it doesn't make sense to make it generic.
> > >
> > > > >
> > > > > #define DEFINE_VIRT_MACHINE_LATEST(major, minor, latest) \
> > > > > static void virt_##major##_##minor##_class_init(ObjectClass *oc,
> \
> > > > > @@ -1651,7 +1652,14 @@ static void machvirt_init(MachineState
> > > > *machine)
> > > > > nvdimm_init_acpi_state(acpi_nvdimm_state, sysmem,
> > > > > vms->fw_cfg, OBJECT(vms));
> > > > > }
> > > > > + if (vms->acpi_memhp_state.is_enabled) {
> > > > > + MemHotplugState *state = &vms->acpi_memhp_state;
> > > > > + hwaddr base;
> > > > >
> > > > > + state->hw_reduced_acpi = true;
> > > > > + base = vms->memmap[VIRT_ACPI_IO].base +
> > > > ACPI_MEMORY_HOTPLUG_BASE;
> > well, this is confusing, why adding 2 base addresses?
> > If vms->memmap[VIRT_ACPI_IO].base is already set than why not use it
> > as is without adding an offset?
Well, Eric's work on which this was based had one NVDIMM_ACPI_IO_BASE offset
from what appears to be a generic VIRT_ACPI_IO region. Now I see that, it is
renamed to VIRT_NVDIMM_ACPI_IO. Do we really need two separate regions?
Thanks,
Shameer
> >
> > > > > + acpi_memory_hotplug_init(sysmem, OBJECT(vms), state,
> base);
> > > > > + }
> > > > > vms->bootinfo.ram_size = machine->ram_size;
> > > > > vms->bootinfo.kernel_filename = machine->kernel_filename;
> > > > > vms->bootinfo.kernel_cmdline = machine->kernel_cmdline;
> > > > [...]
> >
> >
>