svn commit: r237301 - in user/jceel/soc2012_armv6/sys: arm/arm
arm/at91 arm/conf arm/econa arm/include arm/mv arm/s3c2xx0
arm/sa11x0 arm/tegra arm/ti arm/xscale/i80321 arm/xscale/pxa dev/fdt
Jakub Wojciech Klama
jceel at FreeBSD.org
Wed Jun 20 12:22:55 UTC 2012
Author: jceel
Date: Wed Jun 20 12:22:54 2012
New Revision: 237301
URL: http://svn.freebsd.org/changeset/base/237301
Log:
Bring arm ports using old interrupt routing code back to work.
Modified:
user/jceel/soc2012_armv6/sys/arm/arm/intr.c
user/jceel/soc2012_armv6/sys/arm/arm/nexus.c
user/jceel/soc2012_armv6/sys/arm/at91/files.at91
user/jceel/soc2012_armv6/sys/arm/conf/EA3250
user/jceel/soc2012_armv6/sys/arm/econa/files.econa
user/jceel/soc2012_armv6/sys/arm/include/fdt.h
user/jceel/soc2012_armv6/sys/arm/include/intr.h
user/jceel/soc2012_armv6/sys/arm/mv/files.mv
user/jceel/soc2012_armv6/sys/arm/s3c2xx0/files.s3c2xx0
user/jceel/soc2012_armv6/sys/arm/sa11x0/files.sa11x0
user/jceel/soc2012_armv6/sys/arm/tegra/files.tegra2
user/jceel/soc2012_armv6/sys/arm/ti/files.ti
user/jceel/soc2012_armv6/sys/arm/xscale/i80321/files.i80219
user/jceel/soc2012_armv6/sys/arm/xscale/i80321/files.i80321
user/jceel/soc2012_armv6/sys/arm/xscale/pxa/files.pxa
user/jceel/soc2012_armv6/sys/dev/fdt/fdtbus.c
Modified: user/jceel/soc2012_armv6/sys/arm/arm/intr.c
==============================================================================
--- user/jceel/soc2012_armv6/sys/arm/arm/intr.c Wed Jun 20 11:53:04 2012 (r237300)
+++ user/jceel/soc2012_armv6/sys/arm/arm/intr.c Wed Jun 20 12:22:54 2012 (r237301)
@@ -61,6 +61,15 @@ void arm_handler_execute(struct trapfram
void (*arm_post_filter)(void *) = NULL;
+const char *
+arm_describe_irq(int irq)
+{
+ static char buffer[8];
+
+ sprintf(buffer, "%d", irq);
+ return (buffer);
+}
+
void
arm_setup_irqhandler(const char *name, driver_filter_t *filt,
void (*hand)(void*), void *arg, int irq, int flags, void **cookiep)
Modified: user/jceel/soc2012_armv6/sys/arm/arm/nexus.c
==============================================================================
--- user/jceel/soc2012_armv6/sys/arm/arm/nexus.c Wed Jun 20 11:53:04 2012 (r237300)
+++ user/jceel/soc2012_armv6/sys/arm/arm/nexus.c Wed Jun 20 12:22:54 2012 (r237301)
@@ -72,7 +72,9 @@ struct nexus_device {
#define DEVTONX(dev) ((struct nexus_device *)device_get_ivars(dev))
static struct rman mem_rman;
+#if defined(ARM_INTRNG)
static device_t nexus_dev;
+#endif
static int nexus_probe(device_t);
static int nexus_attach(device_t);
@@ -85,11 +87,13 @@ static int nexus_activate_resource(devic
static int nexus_setup_intr(device_t dev, device_t child, struct resource *res,
int flags, driver_filter_t *filt, driver_intr_t *intr, void *arg, void **cookiep);
static int nexus_teardown_intr(device_t, device_t, struct resource *, void *);
+#if defined(ARM_INTRNG)
static void nexus_pic_config(device_t, int, enum intr_trigger, enum intr_polarity);
static void nexus_pic_mask(device_t, int);
static void nexus_pic_unmask(device_t, int);
static void nexus_pic_eoi(device_t, int);
void arm_handler_execute(struct trapframe *tf, int irqnb);
+#endif
static device_method_t nexus_methods[] = {
/* Device interface */
@@ -102,11 +106,13 @@ static device_method_t nexus_methods[] =
DEVMETHOD(bus_activate_resource, nexus_activate_resource),
DEVMETHOD(bus_setup_intr, nexus_setup_intr),
DEVMETHOD(bus_teardown_intr, nexus_teardown_intr),
+#if defined(ARM_INTRNG)
/* Interrupt controller interface */
DEVMETHOD(pic_config, nexus_pic_config),
DEVMETHOD(pic_mask, nexus_pic_mask),
DEVMETHOD(pic_unmask, nexus_pic_unmask),
DEVMETHOD(pic_eoi, nexus_pic_eoi),
+#endif
{ 0, 0 }
};
@@ -133,8 +139,13 @@ nexus_setup_intr(device_t dev, device_t
if ((rman_get_flags(res) & RF_SHAREABLE) == 0)
flags |= INTR_EXCL;
+#if defined(ARM_INTRNG)
arm_setup_irqhandler(child,
filt, intr, arg, rman_get_start(res), flags, cookiep);
+#else
+ arm_setup_irqhandler(device_get_nameunit(child),
+ filt, intr, arg, rman_get_start(res), flags, cookiep);
+#endif
return (0);
}
@@ -156,9 +167,11 @@ nexus_attach(device_t dev)
if (rman_init(&mem_rman) || rman_manage_region(&mem_rman, 0, ~0))
panic("nexus_probe mem_rman");
+#if defined(ARM_INTRNG)
/* Register core interrupt controller */
nexus_dev = dev;
arm_register_pic(dev);
+#endif
/*
* First, deal with the children we know about already
@@ -266,6 +279,7 @@ nexus_activate_resource(device_t bus, de
return (rman_activate_resource(r));
}
+#if defined(ARM_INTRNG)
static void
nexus_pic_config(device_t bus, int irq, enum intr_trigger trig,
enum intr_polarity pol)
@@ -297,5 +311,6 @@ arm_handler_execute(struct trapframe *tf
/* Dispatch root interrupt from core */
arm_dispatch_irq(nexus_dev, tf, 0);
}
+#endif
DRIVER_MODULE(nexus, root, nexus_driver, nexus_devclass, 0, 0);
Modified: user/jceel/soc2012_armv6/sys/arm/at91/files.at91
==============================================================================
--- user/jceel/soc2012_armv6/sys/arm/at91/files.at91 Wed Jun 20 11:53:04 2012 (r237300)
+++ user/jceel/soc2012_armv6/sys/arm/at91/files.at91 Wed Jun 20 12:22:54 2012 (r237301)
@@ -1,6 +1,7 @@
# $FreeBSD$
arm/arm/cpufunc_asm_arm9.S standard
arm/arm/irq_dispatch.S standard
+arm/arm/intr.c standard
arm/at91/at91_machdep.c standard
arm/at91/at91.c standard
arm/at91/at91_cfata.c optional at91_cfata
Modified: user/jceel/soc2012_armv6/sys/arm/conf/EA3250
==============================================================================
--- user/jceel/soc2012_armv6/sys/arm/conf/EA3250 Wed Jun 20 11:53:04 2012 (r237300)
+++ user/jceel/soc2012_armv6/sys/arm/conf/EA3250 Wed Jun 20 12:22:54 2012 (r237301)
@@ -26,6 +26,7 @@ options BOOTP_NFSROOT
options BOOTP_NFSV3
options BOOTP_WIRED_TO=lpe0
options ARM_INTRNG
+options VERBOSE_INIT_ARM
#options ROOTDEVNAME=\"ufs:/dev/da0a\"
Modified: user/jceel/soc2012_armv6/sys/arm/econa/files.econa
==============================================================================
--- user/jceel/soc2012_armv6/sys/arm/econa/files.econa Wed Jun 20 11:53:04 2012 (r237300)
+++ user/jceel/soc2012_armv6/sys/arm/econa/files.econa Wed Jun 20 12:22:54 2012 (r237301)
@@ -7,6 +7,7 @@ arm/econa/uart_bus_ec.c optional uart
arm/econa/uart_cpu_ec.c optional uart
dev/uart/uart_dev_ns8250.c optional uart
arm/arm/irq_dispatch.S standard
+arm/arm/intr.c standard
arm/arm/bus_space_generic.c standard
arm/econa/ehci_ebus.c standard ehci
arm/econa/ohci_ec.c standard ohci
Modified: user/jceel/soc2012_armv6/sys/arm/include/fdt.h
==============================================================================
--- user/jceel/soc2012_armv6/sys/arm/include/fdt.h Wed Jun 20 11:53:04 2012 (r237300)
+++ user/jceel/soc2012_armv6/sys/arm/include/fdt.h Wed Jun 20 12:22:54 2012 (r237301)
@@ -41,6 +41,8 @@
#include <machine/pmap.h>
#include <machine/intr.h>
+#if defined(ARM_INTRNG)
+
/* Max interrupt number */
#define FDT_INTR_MAX (0xffff)
@@ -48,6 +50,17 @@
#define FDT_MAP_IRQ(node, pin) (arm_fdt_map_irq(node, pin))
#define FDT_DESCRIBE_IRQ(irq) (arm_describe_irq(irq))
+#else
+
+/* Max interrupt number */
+#define FDT_INTR_MAX NIRQ
+
+/* Map phandle/intpin pair to global IRQ number */
+#define FDT_MAP_IRQ(node, pin) (pin)
+#define FDT_DESCRIBE_IRQ(irq) (arm_describe_irq(irq))
+
+#endif /* ARM_INTRNG */
+
/*
* Bus space tag. XXX endianess info needs to be derived from the blob.
*/
Modified: user/jceel/soc2012_armv6/sys/arm/include/intr.h
==============================================================================
--- user/jceel/soc2012_armv6/sys/arm/include/intr.h Wed Jun 20 11:53:04 2012 (r237300)
+++ user/jceel/soc2012_armv6/sys/arm/include/intr.h Wed Jun 20 12:22:54 2012 (r237301)
@@ -56,7 +56,6 @@ struct arm_intr_data {
};
int arm_fdt_map_irq(phandle_t ic, int irq);
-const char *arm_describe_irq(int irq);
void arm_register_pic(device_t dev);
void arm_unregister_pic(device_t dev);
void arm_dispatch_irq(device_t dev, struct trapframe *tf, int irq);
@@ -93,6 +92,7 @@ extern void (*arm_post_filter)(void *);
#endif /* !ARM_INTRNG */
+const char *arm_describe_irq(int irq);
void gic_init_secondary(void);
#endif /* _MACHINE_INTR_H */
Modified: user/jceel/soc2012_armv6/sys/arm/mv/files.mv
==============================================================================
--- user/jceel/soc2012_armv6/sys/arm/mv/files.mv Wed Jun 20 11:53:04 2012 (r237300)
+++ user/jceel/soc2012_armv6/sys/arm/mv/files.mv Wed Jun 20 12:22:54 2012 (r237301)
@@ -21,6 +21,7 @@ arm/arm/cpufunc_asm_armv7.S standard
arm/arm/cpufunc_asm_sheeva.S standard
arm/arm/cpufunc_asm_pj4b.S standard
arm/arm/irq_dispatch.S standard
+arm/arm/intr.c standard
arm/mv/bus_space.c standard
arm/mv/common.c standard
Modified: user/jceel/soc2012_armv6/sys/arm/s3c2xx0/files.s3c2xx0
==============================================================================
--- user/jceel/soc2012_armv6/sys/arm/s3c2xx0/files.s3c2xx0 Wed Jun 20 11:53:04 2012 (r237300)
+++ user/jceel/soc2012_armv6/sys/arm/s3c2xx0/files.s3c2xx0 Wed Jun 20 12:22:54 2012 (r237301)
@@ -1,6 +1,7 @@
# $FreeBSD$
arm/arm/cpufunc_asm_arm9.S standard
arm/arm/irq_dispatch.S standard
+arm/arm/intr.c standard
arm/s3c2xx0/board_ln2410sbc.c optional board_ln2410sbc
arm/s3c2xx0/s3c24x0_rtc.c standard
arm/s3c2xx0/s3c24x0_machdep.c standard
Modified: user/jceel/soc2012_armv6/sys/arm/sa11x0/files.sa11x0
==============================================================================
--- user/jceel/soc2012_armv6/sys/arm/sa11x0/files.sa11x0 Wed Jun 20 11:53:04 2012 (r237300)
+++ user/jceel/soc2012_armv6/sys/arm/sa11x0/files.sa11x0 Wed Jun 20 12:22:54 2012 (r237301)
@@ -2,6 +2,7 @@
arm/arm/bus_space_generic.c standard
arm/arm/cpufunc_asm_sa1.S standard
arm/arm/cpufunc_asm_sa11x0.S standard
+arm/arm/intr.c standard
arm/sa11x0/assabet_machdep.c optional assabet
arm/sa11x0/sa11x0.c optional saip
arm/sa11x0/sa11x0_ost.c optional saip
Modified: user/jceel/soc2012_armv6/sys/arm/tegra/files.tegra2
==============================================================================
--- user/jceel/soc2012_armv6/sys/arm/tegra/files.tegra2 Wed Jun 20 11:53:04 2012 (r237300)
+++ user/jceel/soc2012_armv6/sys/arm/tegra/files.tegra2 Wed Jun 20 12:22:54 2012 (r237301)
@@ -6,6 +6,7 @@ arm/arm/cpufunc_asm_armv5.S standard
arm/arm/cpufunc_asm_arm11.S standard
arm/arm/cpufunc_asm_armv7.S standard
arm/arm/irq_dispatch.S standard
+arm/arm/intr.c standard
arm/arm/gic.c standard
arm/arm/mpcore_timer.c standard
Modified: user/jceel/soc2012_armv6/sys/arm/ti/files.ti
==============================================================================
--- user/jceel/soc2012_armv6/sys/arm/ti/files.ti Wed Jun 20 11:53:04 2012 (r237300)
+++ user/jceel/soc2012_armv6/sys/arm/ti/files.ti Wed Jun 20 12:22:54 2012 (r237301)
@@ -9,6 +9,7 @@ arm/arm/cpufunc_asm_arm10.S standard
arm/arm/cpufunc_asm_arm11.S standard
arm/arm/cpufunc_asm_armv7.S standard
arm/arm/irq_dispatch.S standard
+arm/arm/intr.c standard
arm/ti/bus_space.c standard
arm/ti/common.c standard
Modified: user/jceel/soc2012_armv6/sys/arm/xscale/i80321/files.i80219
==============================================================================
--- user/jceel/soc2012_armv6/sys/arm/xscale/i80321/files.i80219 Wed Jun 20 11:53:04 2012 (r237300)
+++ user/jceel/soc2012_armv6/sys/arm/xscale/i80321/files.i80219 Wed Jun 20 12:22:54 2012 (r237301)
@@ -5,6 +5,7 @@
arm/arm/bus_space_generic.c standard
arm/arm/cpufunc_asm_xscale.S standard
arm/arm/irq_dispatch.S standard
+arm/arm/intr.c standard
arm/xscale/i80321/i80321.c standard
arm/xscale/i80321/i80321_dma.c optional dma
arm/xscale/i80321/i80321_mcu.c standard
Modified: user/jceel/soc2012_armv6/sys/arm/xscale/i80321/files.i80321
==============================================================================
--- user/jceel/soc2012_armv6/sys/arm/xscale/i80321/files.i80321 Wed Jun 20 11:53:04 2012 (r237300)
+++ user/jceel/soc2012_armv6/sys/arm/xscale/i80321/files.i80321 Wed Jun 20 12:22:54 2012 (r237301)
@@ -2,6 +2,7 @@
arm/arm/bus_space_generic.c standard
arm/arm/cpufunc_asm_xscale.S standard
arm/arm/irq_dispatch.S standard
+arm/arm/intr.c standard
arm/xscale/i80321/i80321.c standard
arm/xscale/i80321/i80321_aau.c optional aau
arm/xscale/i80321/i80321_dma.c optional dma
Modified: user/jceel/soc2012_armv6/sys/arm/xscale/pxa/files.pxa
==============================================================================
--- user/jceel/soc2012_armv6/sys/arm/xscale/pxa/files.pxa Wed Jun 20 11:53:04 2012 (r237300)
+++ user/jceel/soc2012_armv6/sys/arm/xscale/pxa/files.pxa Wed Jun 20 12:22:54 2012 (r237301)
@@ -3,6 +3,7 @@
arm/arm/bus_space_generic.c standard
arm/arm/cpufunc_asm_xscale.S standard
arm/arm/irq_dispatch.S standard
+arm/arm/intr.c standard
arm/xscale/pxa/pxa_gpio.c standard
arm/xscale/pxa/pxa_icu.c standard
Modified: user/jceel/soc2012_armv6/sys/dev/fdt/fdtbus.c
==============================================================================
--- user/jceel/soc2012_armv6/sys/dev/fdt/fdtbus.c Wed Jun 20 11:53:04 2012 (r237300)
+++ user/jceel/soc2012_armv6/sys/dev/fdt/fdtbus.c Wed Jun 20 12:22:54 2012 (r237301)
@@ -599,8 +599,13 @@ fdtbus_setup_intr(device_t bus, device_t
cpu_establish_hardintr(device_get_nameunit(child),
filter, ihand, arg, rman_get_start(res), flags, cookiep);
#elif defined(__arm__)
+#if defined(ARM_INTRNG)
arm_setup_irqhandler(child,
filter, ihand, arg, rman_get_start(res), flags, cookiep);
+#else
+ arm_setup_irqhandler(device_get_nameunit(child),
+ filter, ihand, arg, rman_get_start(res), flags, cookiep);
+#endif /* ARM_INTRNG */
err = 0;
#endif
More information about the svn-src-user
mailing list