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