Thu Dec 12 15:29:19 EST 2013


This doesn't work any more:

	cpu_irq = arm_pic_init_cpu(env);

Where to find how this changed?

Here's the answer [1].

-    pic = arm_pic_init_cpu(s->cpu);
     s->pic = sysbus_create_varargs("strongarm_pic", 0x90050000,
-                    pic[ARM_PIC_CPU_IRQ], pic[ARM_PIC_CPU_FIQ], NULL);
+                    qdev_get_gpio_in(DEVICE(s->cpu), ARM_CPU_IRQ),
+                    qdev_get_gpio_in(DEVICE(s->cpu), ARM_CPU_FIQ),
+                    NULL);

So in the CC32RS512 code, this is probably what it needs to be: the
cc32-sysc is connected to the 2 ARM interrupts IRQ and FIQ, and the
rest of the hardware is connected to the interrupt controller which
has 32 interrupts.

	dev = DEVICE(cpu);
	dev = sysbus_create_varargs("cc32-sysc", 0x0F0000,
				qdev_get_gpio_in(dev, ARM_CPU_IRQ),
				qdev_get_gpio_in(dev, ARM_CPU_FIQ),

	for (i = 0; i < 32; i++) {
		fprintf(stderr, "PIC %d\n", i);
		pic[i] = qdev_get_gpio_in(dev, i);

[1] http://lists.nongnu.org/archive/html/qemu-devel/2013-08/msg01080.html