~ubuntu-branches/ubuntu/trusty/qemu/trusty

« back to all changes in this revision

Viewing changes to hw/arm/armv7m.c

  • Committer: Package Import Robot
  • Author(s): Serge Hallyn
  • Date: 2013-10-22 22:47:07 UTC
  • mfrom: (1.8.3) (10.1.42 sid)
  • Revision ID: package-import@ubuntu.com-20131022224707-1lya34fw3k3f24tv
Tags: 1.6.0+dfsg-2ubuntu1
* Merge 1.6.0~rc0+dfsg-2exp from debian experimental.  Remaining changes:
  - debian/control
    * update maintainer
    * remove libiscsi, usb-redir, vde, vnc-jpeg, and libssh2-1-dev
      from build-deps
    * enable rbd
    * add qemu-system and qemu-common B/R to qemu-keymaps
    * add D:udev, R:qemu, R:qemu-common and B:qemu-common to
      qemu-system-common
    * qemu-system-arm, qemu-system-ppc, qemu-system-sparc:
      - add qemu-kvm to Provides
      - add qemu-common, qemu-kvm, kvm to B/R
      - remove openbios-sparc from qemu-system-sparc D
      - drop openbios-ppc and openhackware Depends to Suggests (for now)
    * qemu-system-x86:
      - add qemu-common to Breaks/Replaces.
      - add cpu-checker to Recommends.
    * qemu-user: add B/R:qemu-kvm
    * qemu-kvm:
      - add armhf armel powerpc sparc to Architecture
      - C/R/P: qemu-kvm-spice
    * add qemu-common package
    * drop qemu-slof which is not packaged in ubuntu
  - add qemu-system-common.links for tap ifup/down scripts and OVMF link.
  - qemu-system-x86.links:
    * remove pxe rom links which are in kvm-ipxe
    * add symlink for kvm.1 manpage
  - debian/rules
    * add kvm-spice symlink to qemu-kvm
    * call dh_installmodules for qemu-system-x86
    * update dh_installinit to install upstart script
    * run dh_installman (Closes: #709241) (cherrypicked from 1.5.0+dfsg-2)
  - Add qemu-utils.links for kvm-* symlinks.
  - Add qemu-system-x86.qemu-kvm.upstart and .default
  - Add qemu-system-x86.modprobe to set nesting=1
  - Add qemu-system-common.preinst to add kvm group
  - qemu-system-common.postinst: remove bad group acl if there, then have
    udev relabel /dev/kvm.
  - New linaro patches from qemu-linaro rebasing branch
  - Dropped patches:
    * xen-simplify-xen_enabled.patch
    * sparc-linux-user-fix-missing-symbols-in-.rel-.rela.plt-sections.patch
    * main_loop-do-not-set-nonblocking-if-xen_enabled.patch
    * xen_machine_pv-do-not-create-a-dummy-CPU-in-machine-.patch
    * virtio-rng-fix-crash
  - Kept patches:
    * expose_vms_qemu64cpu.patch - updated
    * linaro arm patches from qemu-linaro rebasing branch
  - New patches:
    * fix-pci-add: change CONFIG variable in ifdef to make sure that
      pci_add is defined.
* Add linaro patches
* Add experimental mach-virt patches for arm virtualization.
* qemu-system-common.install: add debian/tmp/usr/lib to install the
  qemu-bridge-helper

Show diffs side-by-side

added added

removed removed

Lines of Context:
114
114
    .endianness = DEVICE_NATIVE_ENDIAN,
115
115
};
116
116
 
 
117
#define TYPE_BITBAND "ARM,bitband-memory"
 
118
#define BITBAND(obj) OBJECT_CHECK(BitBandState, (obj), TYPE_BITBAND)
 
119
 
117
120
typedef struct {
118
 
    SysBusDevice busdev;
 
121
    /*< private >*/
 
122
    SysBusDevice parent_obj;
 
123
    /*< public >*/
 
124
 
119
125
    MemoryRegion iomem;
120
126
    uint32_t base;
121
127
} BitBandState;
122
128
 
123
129
static int bitband_init(SysBusDevice *dev)
124
130
{
125
 
    BitBandState *s = FROM_SYSBUS(BitBandState, dev);
 
131
    BitBandState *s = BITBAND(dev);
126
132
 
127
 
    memory_region_init_io(&s->iomem, &bitband_ops, &s->base, "bitband",
128
 
                          0x02000000);
 
133
    memory_region_init_io(&s->iomem, OBJECT(s), &bitband_ops, &s->base,
 
134
                          "bitband", 0x02000000);
129
135
    sysbus_init_mmio(dev, &s->iomem);
130
136
    return 0;
131
137
}
134
140
{
135
141
    DeviceState *dev;
136
142
 
137
 
    dev = qdev_create(NULL, "ARM,bitband-memory");
 
143
    dev = qdev_create(NULL, TYPE_BITBAND);
138
144
    qdev_prop_set_uint32(dev, "base", 0x20000000);
139
145
    qdev_init_nofail(dev);
140
146
    sysbus_mmio_map(SYS_BUS_DEVICE(dev), 0, 0x22000000);
141
147
 
142
 
    dev = qdev_create(NULL, "ARM,bitband-memory");
 
148
    dev = qdev_create(NULL, TYPE_BITBAND);
143
149
    qdev_prop_set_uint32(dev, "base", 0x40000000);
144
150
    qdev_init_nofail(dev);
145
151
    sysbus_mmio_map(SYS_BUS_DEVICE(dev), 0, 0x42000000);
203
209
#endif
204
210
 
205
211
    /* Flash programming is done via the SCU, so pretend it is ROM.  */
206
 
    memory_region_init_ram(flash, "armv7m.flash", flash_size);
 
212
    memory_region_init_ram(flash, NULL, "armv7m.flash", flash_size);
207
213
    vmstate_register_ram_global(flash);
208
214
    memory_region_set_readonly(flash, true);
209
215
    memory_region_add_subregion(address_space_mem, 0, flash);
210
 
    memory_region_init_ram(sram, "armv7m.sram", sram_size);
 
216
    memory_region_init_ram(sram, NULL, "armv7m.sram", sram_size);
211
217
    vmstate_register_ram_global(sram);
212
218
    memory_region_add_subregion(address_space_mem, 0x20000000, sram);
213
219
    armv7m_bitband_init();
247
253
    /* Hack to map an additional page of ram at the top of the address
248
254
       space.  This stops qemu complaining about executing code outside RAM
249
255
       when returning from an exception.  */
250
 
    memory_region_init_ram(hack, "armv7m.hack", 0x1000);
 
256
    memory_region_init_ram(hack, NULL, "armv7m.hack", 0x1000);
251
257
    vmstate_register_ram_global(hack);
252
258
    memory_region_add_subregion(address_space_mem, 0xfffff000, hack);
253
259
 
270
276
}
271
277
 
272
278
static const TypeInfo bitband_info = {
273
 
    .name          = "ARM,bitband-memory",
 
279
    .name          = TYPE_BITBAND,
274
280
    .parent        = TYPE_SYS_BUS_DEVICE,
275
281
    .instance_size = sizeof(BitBandState),
276
282
    .class_init    = bitband_class_init,