diff mbox

[target-arm,v6,12/14] arm: Add xlnx-ep108 machine

Message ID 655fef6cc2567691e79b8ca3c422663e9cca5c23.1429907119.git.peter.crosthwaite@xilinx.com
State New
Headers show

Commit Message

Peter Crosthwaite April 24, 2015, 8:28 p.m. UTC
Add a machine model for the Xilinx ZynqMP SoC EP108 board.

Reviewed-by: Alistair Francis <alistair.francis@xilinx.com>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Tested-by: Alistair Francis <alistair.francis@xilinx.com>
Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
---
Chaned since v1:
Change board name to ep108

 hw/arm/Makefile.objs |  2 +-
 hw/arm/xlnx-ep108.c  | 53 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 54 insertions(+), 1 deletion(-)
 create mode 100644 hw/arm/xlnx-ep108.c

Comments

Edgar E. Iglesias May 5, 2015, 3:26 a.m. UTC | #1
On Fri, Apr 24, 2015 at 01:28:48PM -0700, Peter Crosthwaite wrote:
> Add a machine model for the Xilinx ZynqMP SoC EP108 board.

hmm, I think xlnx-ep108 is quite cryptic as user input. Can't we just
name this xilinx-ep108?

Cheers,
Edgar



> 
> Reviewed-by: Alistair Francis <alistair.francis@xilinx.com>
> Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
> Tested-by: Alistair Francis <alistair.francis@xilinx.com>
> Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
> ---
> Chaned since v1:
> Change board name to ep108
> 
>  hw/arm/Makefile.objs |  2 +-
>  hw/arm/xlnx-ep108.c  | 53 ++++++++++++++++++++++++++++++++++++++++++++++++++++
>  2 files changed, 54 insertions(+), 1 deletion(-)
>  create mode 100644 hw/arm/xlnx-ep108.c
> 
> diff --git a/hw/arm/Makefile.objs b/hw/arm/Makefile.objs
> index d7cd5f4..a75a182 100644
> --- a/hw/arm/Makefile.objs
> +++ b/hw/arm/Makefile.objs
> @@ -10,4 +10,4 @@ obj-$(CONFIG_DIGIC) += digic.o
>  obj-y += omap1.o omap2.o strongarm.o
>  obj-$(CONFIG_ALLWINNER_A10) += allwinner-a10.o cubieboard.o
>  obj-$(CONFIG_STM32F205_SOC) += stm32f205_soc.o
> -obj-$(CONFIG_XLNX_ZYNQMP) += xlnx-zynqmp.o
> +obj-$(CONFIG_XLNX_ZYNQMP) += xlnx-zynqmp.o xlnx-ep108.o
> diff --git a/hw/arm/xlnx-ep108.c b/hw/arm/xlnx-ep108.c
> new file mode 100644
> index 0000000..81704bb
> --- /dev/null
> +++ b/hw/arm/xlnx-ep108.c
> @@ -0,0 +1,53 @@
> +/*
> + * Xilinx ZynqMP EP108 board
> + *
> + * Copyright (C) 2015 Xilinx Inc
> + * Written by Peter Crosthwaite <peter.crosthwaite@xilinx.com>
> + *
> + * This program is free software; you can redistribute it and/or modify it
> + * under the terms of the GNU General Public License as published by the
> + * Free Software Foundation; either version 2 of the License, or
> + * (at your option) any later version.
> + *
> + * This program is distributed in the hope that it will be useful, but WITHOUT
> + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
> + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
> + * for more details.
> + */
> +
> +#include "hw/arm/xlnx-zynqmp.h"
> +#include "hw/boards.h"
> +#include "qemu/error-report.h"
> +
> +typedef struct XlnxEP108 {
> +    XlnxZynqMPState soc;
> +} XlnxEP108;
> +
> +static void xlnx_ep108_init(MachineState *machine)
> +{
> +    XlnxEP108 *s = g_new0(XlnxEP108, 1);
> +    Error *err = NULL;
> +
> +    object_initialize(&s->soc, sizeof(s->soc), TYPE_XLNX_ZYNQMP);
> +    object_property_add_child(OBJECT(machine), "soc", OBJECT(&s->soc),
> +                              &error_abort);
> +
> +    object_property_set_bool(OBJECT(&s->soc), true, "realized", &err);
> +    if (err) {
> +        error_report("%s", error_get_pretty(err));
> +        exit(1);
> +    }
> +}
> +
> +static QEMUMachine xlnx_ep108_machine = {
> +    .name = "xlnx-ep108",
> +    .desc = "Xilinx ZynqMP EP108 board",
> +    .init = xlnx_ep108_init,
> +};
> +
> +static void xlnx_ep108_machine_init(void)
> +{
> +    qemu_register_machine(&xlnx_ep108_machine);
> +}
> +
> +machine_init(xlnx_ep108_machine_init);
> -- 
> 2.3.6.3.g2cc70ee
>
Peter Crosthwaite May 5, 2015, 4 a.m. UTC | #2
On Mon, May 4, 2015 at 8:26 PM, Edgar E. Iglesias
<edgar.iglesias@xilinx.com> wrote:
> On Fri, Apr 24, 2015 at 01:28:48PM -0700, Peter Crosthwaite wrote:
>> Add a machine model for the Xilinx ZynqMP SoC EP108 board.
>
> hmm, I think xlnx-ep108 is quite cryptic as user input. Can't we just
> name this xilinx-ep108?
>

So I was hoping to use "xlnx" as the user input for "xilinx" going
forward, as that is used for the QOM typenames of most of our devices.
This means -device arguments will use the "xlnx" vendor string
predominately, as many of our IPs are named after the Xilinx DTS
compatible strings (prefaced with the shorthand xlnx).

Can we reduce crypticness by putting the SoC name in there? "xlnx-zynqmp-ep108".

Regards,
Peter

> Cheers,
> Edgar
>
>
>
>>
>> Reviewed-by: Alistair Francis <alistair.francis@xilinx.com>
>> Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
>> Tested-by: Alistair Francis <alistair.francis@xilinx.com>
>> Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
>> ---
>> Chaned since v1:
>> Change board name to ep108
>>
>>  hw/arm/Makefile.objs |  2 +-
>>  hw/arm/xlnx-ep108.c  | 53 ++++++++++++++++++++++++++++++++++++++++++++++++++++
>>  2 files changed, 54 insertions(+), 1 deletion(-)
>>  create mode 100644 hw/arm/xlnx-ep108.c
>>
>> diff --git a/hw/arm/Makefile.objs b/hw/arm/Makefile.objs
>> index d7cd5f4..a75a182 100644
>> --- a/hw/arm/Makefile.objs
>> +++ b/hw/arm/Makefile.objs
>> @@ -10,4 +10,4 @@ obj-$(CONFIG_DIGIC) += digic.o
>>  obj-y += omap1.o omap2.o strongarm.o
>>  obj-$(CONFIG_ALLWINNER_A10) += allwinner-a10.o cubieboard.o
>>  obj-$(CONFIG_STM32F205_SOC) += stm32f205_soc.o
>> -obj-$(CONFIG_XLNX_ZYNQMP) += xlnx-zynqmp.o
>> +obj-$(CONFIG_XLNX_ZYNQMP) += xlnx-zynqmp.o xlnx-ep108.o
>> diff --git a/hw/arm/xlnx-ep108.c b/hw/arm/xlnx-ep108.c
>> new file mode 100644
>> index 0000000..81704bb
>> --- /dev/null
>> +++ b/hw/arm/xlnx-ep108.c
>> @@ -0,0 +1,53 @@
>> +/*
>> + * Xilinx ZynqMP EP108 board
>> + *
>> + * Copyright (C) 2015 Xilinx Inc
>> + * Written by Peter Crosthwaite <peter.crosthwaite@xilinx.com>
>> + *
>> + * This program is free software; you can redistribute it and/or modify it
>> + * under the terms of the GNU General Public License as published by the
>> + * Free Software Foundation; either version 2 of the License, or
>> + * (at your option) any later version.
>> + *
>> + * This program is distributed in the hope that it will be useful, but WITHOUT
>> + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
>> + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
>> + * for more details.
>> + */
>> +
>> +#include "hw/arm/xlnx-zynqmp.h"
>> +#include "hw/boards.h"
>> +#include "qemu/error-report.h"
>> +
>> +typedef struct XlnxEP108 {
>> +    XlnxZynqMPState soc;
>> +} XlnxEP108;
>> +
>> +static void xlnx_ep108_init(MachineState *machine)
>> +{
>> +    XlnxEP108 *s = g_new0(XlnxEP108, 1);
>> +    Error *err = NULL;
>> +
>> +    object_initialize(&s->soc, sizeof(s->soc), TYPE_XLNX_ZYNQMP);
>> +    object_property_add_child(OBJECT(machine), "soc", OBJECT(&s->soc),
>> +                              &error_abort);
>> +
>> +    object_property_set_bool(OBJECT(&s->soc), true, "realized", &err);
>> +    if (err) {
>> +        error_report("%s", error_get_pretty(err));
>> +        exit(1);
>> +    }
>> +}
>> +
>> +static QEMUMachine xlnx_ep108_machine = {
>> +    .name = "xlnx-ep108",
>> +    .desc = "Xilinx ZynqMP EP108 board",
>> +    .init = xlnx_ep108_init,
>> +};
>> +
>> +static void xlnx_ep108_machine_init(void)
>> +{
>> +    qemu_register_machine(&xlnx_ep108_machine);
>> +}
>> +
>> +machine_init(xlnx_ep108_machine_init);
>> --
>> 2.3.6.3.g2cc70ee
>>
>
Edgar E. Iglesias May 5, 2015, 4:01 a.m. UTC | #3
On Mon, May 04, 2015 at 09:00:46PM -0700, Peter Crosthwaite wrote:
> On Mon, May 4, 2015 at 8:26 PM, Edgar E. Iglesias
> <edgar.iglesias@xilinx.com> wrote:
> > On Fri, Apr 24, 2015 at 01:28:48PM -0700, Peter Crosthwaite wrote:
> >> Add a machine model for the Xilinx ZynqMP SoC EP108 board.
> >
> > hmm, I think xlnx-ep108 is quite cryptic as user input. Can't we just
> > name this xilinx-ep108?
> >
> 
> So I was hoping to use "xlnx" as the user input for "xilinx" going
> forward, as that is used for the QOM typenames of most of our devices.
> This means -device arguments will use the "xlnx" vendor string
> predominately, as many of our IPs are named after the Xilinx DTS
> compatible strings (prefaced with the shorthand xlnx).

I see, that makes sense...

> 
> Can we reduce crypticness by putting the SoC name in there? "xlnx-zynqmp-ep108".

OK, either way:

Reviewed-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com>

Thanks,
Edgar

> 
> Regards,
> Peter
> 
> > Cheers,
> > Edgar
> >
> >
> >
> >>
> >> Reviewed-by: Alistair Francis <alistair.francis@xilinx.com>
> >> Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
> >> Tested-by: Alistair Francis <alistair.francis@xilinx.com>
> >> Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
> >> ---
> >> Chaned since v1:
> >> Change board name to ep108
> >>
> >>  hw/arm/Makefile.objs |  2 +-
> >>  hw/arm/xlnx-ep108.c  | 53 ++++++++++++++++++++++++++++++++++++++++++++++++++++
> >>  2 files changed, 54 insertions(+), 1 deletion(-)
> >>  create mode 100644 hw/arm/xlnx-ep108.c
> >>
> >> diff --git a/hw/arm/Makefile.objs b/hw/arm/Makefile.objs
> >> index d7cd5f4..a75a182 100644
> >> --- a/hw/arm/Makefile.objs
> >> +++ b/hw/arm/Makefile.objs
> >> @@ -10,4 +10,4 @@ obj-$(CONFIG_DIGIC) += digic.o
> >>  obj-y += omap1.o omap2.o strongarm.o
> >>  obj-$(CONFIG_ALLWINNER_A10) += allwinner-a10.o cubieboard.o
> >>  obj-$(CONFIG_STM32F205_SOC) += stm32f205_soc.o
> >> -obj-$(CONFIG_XLNX_ZYNQMP) += xlnx-zynqmp.o
> >> +obj-$(CONFIG_XLNX_ZYNQMP) += xlnx-zynqmp.o xlnx-ep108.o
> >> diff --git a/hw/arm/xlnx-ep108.c b/hw/arm/xlnx-ep108.c
> >> new file mode 100644
> >> index 0000000..81704bb
> >> --- /dev/null
> >> +++ b/hw/arm/xlnx-ep108.c
> >> @@ -0,0 +1,53 @@
> >> +/*
> >> + * Xilinx ZynqMP EP108 board
> >> + *
> >> + * Copyright (C) 2015 Xilinx Inc
> >> + * Written by Peter Crosthwaite <peter.crosthwaite@xilinx.com>
> >> + *
> >> + * This program is free software; you can redistribute it and/or modify it
> >> + * under the terms of the GNU General Public License as published by the
> >> + * Free Software Foundation; either version 2 of the License, or
> >> + * (at your option) any later version.
> >> + *
> >> + * This program is distributed in the hope that it will be useful, but WITHOUT
> >> + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
> >> + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
> >> + * for more details.
> >> + */
> >> +
> >> +#include "hw/arm/xlnx-zynqmp.h"
> >> +#include "hw/boards.h"
> >> +#include "qemu/error-report.h"
> >> +
> >> +typedef struct XlnxEP108 {
> >> +    XlnxZynqMPState soc;
> >> +} XlnxEP108;
> >> +
> >> +static void xlnx_ep108_init(MachineState *machine)
> >> +{
> >> +    XlnxEP108 *s = g_new0(XlnxEP108, 1);
> >> +    Error *err = NULL;
> >> +
> >> +    object_initialize(&s->soc, sizeof(s->soc), TYPE_XLNX_ZYNQMP);
> >> +    object_property_add_child(OBJECT(machine), "soc", OBJECT(&s->soc),
> >> +                              &error_abort);
> >> +
> >> +    object_property_set_bool(OBJECT(&s->soc), true, "realized", &err);
> >> +    if (err) {
> >> +        error_report("%s", error_get_pretty(err));
> >> +        exit(1);
> >> +    }
> >> +}
> >> +
> >> +static QEMUMachine xlnx_ep108_machine = {
> >> +    .name = "xlnx-ep108",
> >> +    .desc = "Xilinx ZynqMP EP108 board",
> >> +    .init = xlnx_ep108_init,
> >> +};
> >> +
> >> +static void xlnx_ep108_machine_init(void)
> >> +{
> >> +    qemu_register_machine(&xlnx_ep108_machine);
> >> +}
> >> +
> >> +machine_init(xlnx_ep108_machine_init);
> >> --
> >> 2.3.6.3.g2cc70ee
> >>
> >
diff mbox

Patch

diff --git a/hw/arm/Makefile.objs b/hw/arm/Makefile.objs
index d7cd5f4..a75a182 100644
--- a/hw/arm/Makefile.objs
+++ b/hw/arm/Makefile.objs
@@ -10,4 +10,4 @@  obj-$(CONFIG_DIGIC) += digic.o
 obj-y += omap1.o omap2.o strongarm.o
 obj-$(CONFIG_ALLWINNER_A10) += allwinner-a10.o cubieboard.o
 obj-$(CONFIG_STM32F205_SOC) += stm32f205_soc.o
-obj-$(CONFIG_XLNX_ZYNQMP) += xlnx-zynqmp.o
+obj-$(CONFIG_XLNX_ZYNQMP) += xlnx-zynqmp.o xlnx-ep108.o
diff --git a/hw/arm/xlnx-ep108.c b/hw/arm/xlnx-ep108.c
new file mode 100644
index 0000000..81704bb
--- /dev/null
+++ b/hw/arm/xlnx-ep108.c
@@ -0,0 +1,53 @@ 
+/*
+ * Xilinx ZynqMP EP108 board
+ *
+ * Copyright (C) 2015 Xilinx Inc
+ * Written by Peter Crosthwaite <peter.crosthwaite@xilinx.com>
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * for more details.
+ */
+
+#include "hw/arm/xlnx-zynqmp.h"
+#include "hw/boards.h"
+#include "qemu/error-report.h"
+
+typedef struct XlnxEP108 {
+    XlnxZynqMPState soc;
+} XlnxEP108;
+
+static void xlnx_ep108_init(MachineState *machine)
+{
+    XlnxEP108 *s = g_new0(XlnxEP108, 1);
+    Error *err = NULL;
+
+    object_initialize(&s->soc, sizeof(s->soc), TYPE_XLNX_ZYNQMP);
+    object_property_add_child(OBJECT(machine), "soc", OBJECT(&s->soc),
+                              &error_abort);
+
+    object_property_set_bool(OBJECT(&s->soc), true, "realized", &err);
+    if (err) {
+        error_report("%s", error_get_pretty(err));
+        exit(1);
+    }
+}
+
+static QEMUMachine xlnx_ep108_machine = {
+    .name = "xlnx-ep108",
+    .desc = "Xilinx ZynqMP EP108 board",
+    .init = xlnx_ep108_init,
+};
+
+static void xlnx_ep108_machine_init(void)
+{
+    qemu_register_machine(&xlnx_ep108_machine);
+}
+
+machine_init(xlnx_ep108_machine_init);