Lines Matching +full:cpu +full:- +full:interrupt +full:- +full:controller
4 * Copyright (c) 2005-2007 CodeSourcery.
24 #include "qemu/error-report.h"
29 #include "target/arm/cpu-qom.h"
36 /* Primary interrupt controller. */
68 flags = s->level & s->mask; in vpb_sic_update()
69 qemu_set_irq(s->parent[s->irq], flags != 0); in vpb_sic_update()
79 if (!(s->pic_enable & mask)) in vpb_sic_update_pic()
81 qemu_set_irq(s->parent[i], (s->level & mask) != 0); in vpb_sic_update_pic()
89 s->level |= 1u << irq; in vpb_sic_set_irq()
91 s->level &= ~(1u << irq); in vpb_sic_set_irq()
92 if (s->pic_enable & (1u << irq)) in vpb_sic_set_irq()
93 qemu_set_irq(s->parent[irq], level); in vpb_sic_set_irq()
104 return s->level & s->mask; in vpb_sic_read()
106 return s->level; in vpb_sic_read()
108 return s->mask; in vpb_sic_read()
110 return s->level & 1; in vpb_sic_read()
112 return s->pic_enable; in vpb_sic_read()
127 s->mask |= value; in vpb_sic_write()
130 s->mask &= ~value; in vpb_sic_write()
134 s->mask |= 1; in vpb_sic_write()
138 s->mask &= ~1u; in vpb_sic_write()
141 s->pic_enable |= (value & 0x7fe00000); in vpb_sic_write()
145 s->pic_enable &= ~value; in vpb_sic_write()
171 sysbus_init_irq(sbd, &s->parent[i]); in vpb_sic_init()
173 s->irq = 31; in vpb_sic_init()
174 memory_region_init_io(&s->iomem, obj, &vpb_sic_ops, s, in vpb_sic_init()
175 "vpb-sic", 0x1000); in vpb_sic_init()
176 sysbus_init_mmio(sbd, &s->iomem); in vpb_sic_init()
190 ARMCPU *cpu; in versatile_init() local
202 if (machine->ram_size > 0x10000000) { in versatile_init()
211 cpuobj = object_new(machine->cpu_type); in versatile_init()
214 * currently support EL3 so the CPU EL3 property is disabled before in versatile_init()
223 cpu = ARM_CPU(cpuobj); in versatile_init()
227 memory_region_add_subregion(sysmem, 0, machine->ram); in versatile_init()
236 qdev_get_gpio_in(DEVICE(cpu), ARM_CPU_IRQ), in versatile_init()
237 qdev_get_gpio_in(DEVICE(cpu), ARM_CPU_FIQ), in versatile_init()
254 sysbus_mmio_map(busdev, 0, 0x10001000); /* PCI controller regs */ in versatile_init()
255 sysbus_mmio_map(busdev, 1, 0x41000000); /* PCI self-config */ in versatile_init()
273 pci_create_simple(pci_bus, -1, "pci-ohci"); in versatile_init()
277 dev = DEVICE(pci_create_simple(pci_bus, -1, "lsi53c895a")); in versatile_init()
279 n--; in versatile_init()
303 /* The versatile/PB actually has a modified Color LCD controller in versatile_init()
306 object_property_set_link(OBJECT(dev), "framebuffer-memory", in versatile_init()
323 qdev_realize_and_unref(card, qdev_get_child_bus(dev, "sd-bus"), in versatile_init()
335 qdev_realize_and_unref(card, qdev_get_child_bus(dev, "sd-bus"), in versatile_init()
349 if (machine->audiodev) { in versatile_init()
350 qdev_prop_set_string(pl041, "audiodev", machine->audiodev); in versatile_init()
358 /* 0x10001000 PCI controller config registers. */ in versatile_init()
360 /* 0x10003000 Secondary interrupt controller. */ in versatile_init()
373 /* 0x10120000 CLCD Controller. */ in versatile_init()
374 /* 0x10130000 DMA Controller. */ in versatile_init()
375 /* 0x10140000 Vectored interrupt controller. */ in versatile_init()
377 /* 0x101e0000 System Controller. */ in versatile_init()
400 versatile_binfo.ram_size = machine->ram_size; in versatile_init()
402 arm_load_kernel(cpu, machine, &versatile_binfo); in versatile_init()
419 mc->desc = "ARM Versatile/PB (ARM926EJ-S)"; in versatilepb_class_init()
420 mc->init = vpb_init; in versatilepb_class_init()
421 mc->block_default_type = IF_SCSI; in versatilepb_class_init()
422 mc->ignore_memory_transaction_failures = true; in versatilepb_class_init()
423 mc->default_cpu_type = ARM_CPU_TYPE_NAME("arm926"); in versatilepb_class_init()
424 mc->default_ram_id = "versatile.ram"; in versatilepb_class_init()
425 mc->auto_create_sdcard = true; in versatilepb_class_init()
440 mc->desc = "ARM Versatile/AB (ARM926EJ-S)"; in versatileab_class_init()
441 mc->init = vab_init; in versatileab_class_init()
442 mc->block_default_type = IF_SCSI; in versatileab_class_init()
443 mc->ignore_memory_transaction_failures = true; in versatileab_class_init()
444 mc->default_cpu_type = ARM_CPU_TYPE_NAME("arm926"); in versatileab_class_init()
445 mc->default_ram_id = "versatile.ram"; in versatileab_class_init()
446 mc->auto_create_sdcard = true; in versatileab_class_init()
469 dc->vmsd = &vmstate_vpb_sic; in type_init()