On 6 November 2017 at 15:48, Andrey Smirnov <andrew.smir...@gmail.com> wrote: > Implement code needed to set up emulation of MCIMX7SABRE board from > NXP. For more info about the HW see: > > https://www.nxp.com/support/developer-resources/hardware-development-tools/sabre-development-system/sabre-board-for-smart-devices-based-on-the-i.mx-7dual-applications-processors:MCIMX7SABRE
You could put this URL in a comment in the code as well. > Cc: Peter Maydell <peter.mayd...@linaro.org> > Cc: Jason Wang <jasow...@redhat.com> > Cc: Philippe Mathieu-Daudé <f4...@amsat.org> > Cc: qemu-devel@nongnu.org > Cc: qemu-...@nongnu.org > Cc: yurov...@gmail.com > Signed-off-by: Andrey Smirnov <andrew.smir...@gmail.com> > --- > hw/arm/Makefile.objs | 2 +- > hw/arm/mcimx7d-sabre.c | 101 > +++++++++++++++++++++++++++++++++++++++++++++++++ > 2 files changed, 102 insertions(+), 1 deletion(-) > create mode 100644 hw/arm/mcimx7d-sabre.c > > diff --git a/hw/arm/Makefile.objs b/hw/arm/Makefile.objs > index f379ddc74b..eb6f6c5997 100644 > --- a/hw/arm/Makefile.objs > +++ b/hw/arm/Makefile.objs > @@ -19,5 +19,5 @@ obj-$(CONFIG_FSL_IMX31) += fsl-imx31.o kzm.o > obj-$(CONFIG_FSL_IMX6) += fsl-imx6.o sabrelite.o > obj-$(CONFIG_ASPEED_SOC) += aspeed_soc.o aspeed.o > obj-$(CONFIG_MPS2) += mps2.o > -obj-$(CONFIG_FSL_IMX7) += fsl-imx7.o > +obj-$(CONFIG_FSL_IMX7) += fsl-imx7.o mcimx7d-sabre.o > > diff --git a/hw/arm/mcimx7d-sabre.c b/hw/arm/mcimx7d-sabre.c > new file mode 100644 > index 0000000000..7ca8e668e8 > --- /dev/null > +++ b/hw/arm/mcimx7d-sabre.c > @@ -0,0 +1,101 @@ > +/* > + * Copyright (c) 2017, Impinj, Inc. > + * > + * MCIMX7D_SABRE Board System emulation. > + * > + * Author: Andrey Smirnov <andrew.smir...@gmail.com> > + * > + * This code is licensed under the GPL, version 2 or later. > + * See the file `COPYING' in the top level directory. > + * > + * It (partially) emulates a mcimx7d_sabre board, with a Freescale > + * i.MX7 SoC > + */ > + > +#include "qemu/osdep.h" > +#include "qapi/error.h" > +#include "qemu-common.h" > +#include "hw/arm/fsl-imx7.h" > +#include "hw/boards.h" > +#include "sysemu/sysemu.h" > +#include "sysemu/device_tree.h" > +#include "qemu/error-report.h" > +#include "sysemu/qtest.h" > +#include "net/net.h" > + > +typedef struct { > + FslIMX7State soc; > + MemoryRegion ram; > +} MCIMX7Sabre; > + > +static void mcimx7d_add_psci_node(const struct arm_boot_info *boot_info, > + void *fdt) > +{ > + const char comp[] = "arm,psci-0.2\0arm,psci"; > + > + qemu_fdt_add_subnode(fdt, "/psci"); > + qemu_fdt_setprop(fdt, "/psci", "compatible", comp, sizeof(comp)); > + qemu_fdt_setprop_string(fdt, "/psci", "method", "smc"); > +} I'm still unconvinced by this (none of the other i.mx boards we have have anything like it). How does the real hardware boot SMP ? thanks -- PMM