From: "Edgar E. Iglesias" <edgar.iglesias@xilinx.com>
To: Alistair Francis <alistair.francis@xilinx.com>
Cc: qemu-devel@nongnu.org, peter.maydell@linaro.org,
alistair23@gmail.com, edgar.iglesias@gmail.com
Subject: Re: [Qemu-devel] [PATCH v1 2/5] xlnx-zcu102: Manually create the machines
Date: Wed, 23 Aug 2017 00:26:17 +0700 [thread overview]
Message-ID: <20170822172617.GA3958@toto> (raw)
In-Reply-To: <27222215579bf5d179393e24bb11140846c62948.1502993370.git.alistair.francis@xilinx.com>
On Thu, Aug 17, 2017 at 11:52:04AM -0700, Alistair Francis wrote:
> In preperation for future work let's manually create the Xilnx machines.
> This will allow us to set properties for the machines in the future.
>
> Signed-off-by: Alistair Francis <alistair.francis@xilinx.com>
> ---
>
> hw/arm/xlnx-zcu102.c | 75 +++++++++++++++++++++++++++++++++++++++++++++++-----
> 1 file changed, 68 insertions(+), 7 deletions(-)
>
> diff --git a/hw/arm/xlnx-zcu102.c b/hw/arm/xlnx-zcu102.c
> index 133a6a31a8..71261313b5 100644
> --- a/hw/arm/xlnx-zcu102.c
> +++ b/hw/arm/xlnx-zcu102.c
> @@ -26,15 +26,25 @@
> #include "qemu/log.h"
>
> typedef struct XlnxZCU102 {
> +
Looks like a stray newline here.
> + MachineState parent_obj;
> +
> XlnxZynqMPState soc;
> MemoryRegion ddr_ram;
> } XlnxZCU102;
>
> +#define TYPE_ZCU102_MACHINE MACHINE_TYPE_NAME("xlnx-zcu102")
> +#define ZCU102_MACHINE(obj) \
> + OBJECT_CHECK(XlnxZCU102, (obj), TYPE_ZCU102_MACHINE)
> +
> +#define TYPE_EP108_MACHINE MACHINE_TYPE_NAME("xlnx-ep108")
> +#define EP108_MACHINE(obj) \
> + OBJECT_CHECK(XlnxZCU102, (obj), TYPE_EP108_MACHINE)
> +
> static struct arm_boot_info xlnx_zcu102_binfo;
>
> -static void xlnx_zcu102_init(MachineState *machine)
> +static void xlnx_zynqmp_init(XlnxZCU102 *s, MachineState *machine)
> {
> - XlnxZCU102 *s = g_new0(XlnxZCU102, 1);
> int i;
> uint64_t ram_size = machine->ram_size;
>
> @@ -116,22 +126,73 @@ static void xlnx_zcu102_init(MachineState *machine)
> arm_load_kernel(s->soc.boot_cpu_ptr, &xlnx_zcu102_binfo);
> }
>
> -static void xlnx_ep108_machine_init(MachineClass *mc)
> +static void xlnx_ep108_init(MachineState *machine)
> {
> + XlnxZCU102 *s = EP108_MACHINE(machine);
> +
> + xlnx_zynqmp_init(s, machine);
> +}
> +
> +static void xlnx_ep108_machine_instance_init(Object *obj)
> +{
> +}
> +
> +static void xlnx_ep108_machine_class_init(ObjectClass *oc, void *data)
> +{
> + MachineClass *mc = MACHINE_CLASS(oc);
> +
> mc->desc = "Xilinx ZynqMP EP108 board";
> - mc->init = xlnx_zcu102_init;
> + mc->init = xlnx_ep108_init;
> mc->block_default_type = IF_IDE;
> mc->units_per_default_bus = 1;
> }
>
> -DEFINE_MACHINE("xlnx-ep108", xlnx_ep108_machine_init)
> +static const TypeInfo xlnx_ep108_machine_init_typeinfo = {
> + .name = MACHINE_TYPE_NAME("xlnx-ep108"),
> + .parent = TYPE_MACHINE,
> + .class_init = xlnx_ep108_machine_class_init,
> + .instance_init = xlnx_ep108_machine_instance_init,
> + .instance_size = sizeof(XlnxZCU102),
> +};
> +
> +static void xlnx_ep108_machine_init_register_types(void)
> +{
> + type_register_static(&xlnx_ep108_machine_init_typeinfo);
> +}
> +
> +static void xlnx_zcu102_init(MachineState *machine)
> +{
> + XlnxZCU102 *s = ZCU102_MACHINE(machine);
> +
> + xlnx_zynqmp_init(s, machine);
> +}
>
> -static void xlnx_zcu102_machine_init(MachineClass *mc)
> +static void xlnx_zcu102_machine_instance_init(Object *obj)
> {
> +}
> +
> +static void xlnx_zcu102_machine_class_init(ObjectClass *oc, void *data)
> +{
> + MachineClass *mc = MACHINE_CLASS(oc);
> +
> mc->desc = "Xilinx ZynqMP ZCU102 board";
> mc->init = xlnx_zcu102_init;
> mc->block_default_type = IF_IDE;
> mc->units_per_default_bus = 1;
> }
>
> -DEFINE_MACHINE("xlnx-zcu102", xlnx_zcu102_machine_init)
> +static const TypeInfo xlnx_zcu102_machine_init_typeinfo = {
> + .name = MACHINE_TYPE_NAME("xlnx-zcu102"),
> + .parent = TYPE_MACHINE,
> + .class_init = xlnx_zcu102_machine_class_init,
> + .instance_init = xlnx_zcu102_machine_instance_init,
> + .instance_size = sizeof(XlnxZCU102),
> +};
> +
> +static void xlnx_zcu102_machine_init_register_types(void)
> +{
> + type_register_static(&xlnx_zcu102_machine_init_typeinfo);
> +}
> +
> +type_init(xlnx_zcu102_machine_init_register_types)
> +type_init(xlnx_ep108_machine_init_register_types)
> --
> 2.11.0
>
next prev parent reply other threads:[~2017-08-22 17:26 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-08-17 18:51 [Qemu-devel] [PATCH v1 0/5] Expose the secure property to the machine Alistair Francis
2017-08-17 18:52 ` [Qemu-devel] [PATCH v1 2/5] xlnx-zcu102: Manually create the machines Alistair Francis
2017-08-22 17:26 ` Edgar E. Iglesias [this message]
2017-08-17 18:52 ` [Qemu-devel] [PATCH v1 4/5] xlnx-zynqmp: Allow the secure prop to enable EL2 Alistair Francis
2017-08-17 18:52 ` [Qemu-devel] [PATCH v1 5/5] xlnx-zcu102: Mark the EP108 machine as deprecated Alistair Francis
2017-08-22 17:24 ` [Qemu-devel] [PATCH v1 0/5] Expose the secure property to the machine Edgar E. Iglesias
2017-08-22 17:57 ` Alistair Francis
2017-08-22 18:05 ` Peter Maydell
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20170822172617.GA3958@toto \
--to=edgar.iglesias@xilinx.com \
--cc=alistair.francis@xilinx.com \
--cc=alistair23@gmail.com \
--cc=edgar.iglesias@gmail.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.