Message ID | 1432522520-8068-3-git-send-email-zhaoshenglong@huawei.com |
---|---|
State | Superseded |
Headers | show |
Shannon Zhao <zhaoshenglong@huawei.com> writes: > From: Shannon Zhao <shannon.zhao@linaro.org> > > Move some common definitions to virt.h. These will be used by > generating ACPI tables. > > Signed-off-by: Shannon Zhao <zhaoshenglong@huawei.com> > Signed-off-by: Shannon Zhao <shannon.zhao@linaro.org> Reviewed-by: Alex Bennée <alex.bennee@linaro.org> > --- > hw/arm/virt.c | 21 +------------------ > include/hw/arm/virt.h | 56 +++++++++++++++++++++++++++++++++++++++++++++++++++ > 2 files changed, 57 insertions(+), 20 deletions(-) > create mode 100644 include/hw/arm/virt.h > > diff --git a/hw/arm/virt.c b/hw/arm/virt.c > index a7f9a10..8959d0c 100644 > --- a/hw/arm/virt.c > +++ b/hw/arm/virt.c > @@ -31,6 +31,7 @@ > #include "hw/sysbus.h" > #include "hw/arm/arm.h" > #include "hw/arm/primecell.h" > +#include "hw/arm/virt.h" > #include "hw/devices.h" > #include "net/net.h" > #include "sysemu/block-backend.h" > @@ -44,8 +45,6 @@ > #include "qemu/error-report.h" > #include "hw/pci-host/gpex.h" > > -#define NUM_VIRTIO_TRANSPORTS 32 > - > /* Number of external interrupt lines to configure the GIC with */ > #define NUM_IRQS 128 > > @@ -60,24 +59,6 @@ > #define GIC_FDT_IRQ_PPI_CPU_START 8 > #define GIC_FDT_IRQ_PPI_CPU_WIDTH 8 > > -enum { > - VIRT_FLASH, > - VIRT_MEM, > - VIRT_CPUPERIPHS, > - VIRT_GIC_DIST, > - VIRT_GIC_CPU, > - VIRT_UART, > - VIRT_MMIO, > - VIRT_RTC, > - VIRT_FW_CFG, > - VIRT_PCIE, > -}; > - > -typedef struct MemMapEntry { > - hwaddr base; > - hwaddr size; > -} MemMapEntry; > - > typedef struct VirtBoardInfo { > struct arm_boot_info bootinfo; > const char *cpu_model; > diff --git a/include/hw/arm/virt.h b/include/hw/arm/virt.h > new file mode 100644 > index 0000000..2fe0d2e > --- /dev/null > +++ b/include/hw/arm/virt.h > @@ -0,0 +1,56 @@ > +/* > + * > + * Copyright (c) 2015 Linaro Limited > + * > + * This program is free software; you can redistribute it and/or modify it > + * under the terms and conditions of the GNU General Public License, > + * version 2 or later, as published by the Free Software Foundation. > + * > + * This program is distributed in the hope 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. > + * > + * You should have received a copy of the GNU General Public License along with > + * this program. If not, see <http://www.gnu.org/licenses/>. > + * > + * Emulate a virtual board which works by passing Linux all the information > + * it needs about what devices are present via the device tree. > + * There are some restrictions about what we can do here: > + * + we can only present devices whose Linux drivers will work based > + * purely on the device tree with no platform data at all > + * + we want to present a very stripped-down minimalist platform, > + * both because this reduces the security attack surface from the guest > + * and also because it reduces our exposure to being broken when > + * the kernel updates its device tree bindings and requires further > + * information in a device binding that we aren't providing. > + * This is essentially the same approach kvmtool uses. > + */ > + > +#ifndef QEMU_ARM_VIRT_H > +#define QEMU_ARM_VIRT_H > + > +#include "qemu-common.h" > + > +#define NUM_VIRTIO_TRANSPORTS 32 > + > +enum { > + VIRT_FLASH, > + VIRT_MEM, > + VIRT_CPUPERIPHS, > + VIRT_GIC_DIST, > + VIRT_GIC_CPU, > + VIRT_UART, > + VIRT_MMIO, > + VIRT_RTC, > + VIRT_FW_CFG, > + VIRT_PCIE, > +}; > + > +typedef struct MemMapEntry { > + hwaddr base; > + hwaddr size; > +} MemMapEntry; > + > + > +#endif
diff --git a/hw/arm/virt.c b/hw/arm/virt.c index a7f9a10..8959d0c 100644 --- a/hw/arm/virt.c +++ b/hw/arm/virt.c @@ -31,6 +31,7 @@ #include "hw/sysbus.h" #include "hw/arm/arm.h" #include "hw/arm/primecell.h" +#include "hw/arm/virt.h" #include "hw/devices.h" #include "net/net.h" #include "sysemu/block-backend.h" @@ -44,8 +45,6 @@ #include "qemu/error-report.h" #include "hw/pci-host/gpex.h" -#define NUM_VIRTIO_TRANSPORTS 32 - /* Number of external interrupt lines to configure the GIC with */ #define NUM_IRQS 128 @@ -60,24 +59,6 @@ #define GIC_FDT_IRQ_PPI_CPU_START 8 #define GIC_FDT_IRQ_PPI_CPU_WIDTH 8 -enum { - VIRT_FLASH, - VIRT_MEM, - VIRT_CPUPERIPHS, - VIRT_GIC_DIST, - VIRT_GIC_CPU, - VIRT_UART, - VIRT_MMIO, - VIRT_RTC, - VIRT_FW_CFG, - VIRT_PCIE, -}; - -typedef struct MemMapEntry { - hwaddr base; - hwaddr size; -} MemMapEntry; - typedef struct VirtBoardInfo { struct arm_boot_info bootinfo; const char *cpu_model; diff --git a/include/hw/arm/virt.h b/include/hw/arm/virt.h new file mode 100644 index 0000000..2fe0d2e --- /dev/null +++ b/include/hw/arm/virt.h @@ -0,0 +1,56 @@ +/* + * + * Copyright (c) 2015 Linaro Limited + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2 or later, as published by the Free Software Foundation. + * + * This program is distributed in the hope 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. + * + * You should have received a copy of the GNU General Public License along with + * this program. If not, see <http://www.gnu.org/licenses/>. + * + * Emulate a virtual board which works by passing Linux all the information + * it needs about what devices are present via the device tree. + * There are some restrictions about what we can do here: + * + we can only present devices whose Linux drivers will work based + * purely on the device tree with no platform data at all + * + we want to present a very stripped-down minimalist platform, + * both because this reduces the security attack surface from the guest + * and also because it reduces our exposure to being broken when + * the kernel updates its device tree bindings and requires further + * information in a device binding that we aren't providing. + * This is essentially the same approach kvmtool uses. + */ + +#ifndef QEMU_ARM_VIRT_H +#define QEMU_ARM_VIRT_H + +#include "qemu-common.h" + +#define NUM_VIRTIO_TRANSPORTS 32 + +enum { + VIRT_FLASH, + VIRT_MEM, + VIRT_CPUPERIPHS, + VIRT_GIC_DIST, + VIRT_GIC_CPU, + VIRT_UART, + VIRT_MMIO, + VIRT_RTC, + VIRT_FW_CFG, + VIRT_PCIE, +}; + +typedef struct MemMapEntry { + hwaddr base; + hwaddr size; +} MemMapEntry; + + +#endif