svn commit: r262979 - in head/sys/arm: allwinner allwinner/a20 arm at91 broadcom/bcm2835 econa freescale/imx freescale/vybrid lpc mv rockchip s3c2xx0 samsung/exynos tegra ti versatile xilinx xscale...

Ian Lepore ian at FreeBSD.org
Mon Mar 10 18:10:15 UTC 2014


Author: ian
Date: Mon Mar 10 18:10:09 2014
New Revision: 262979
URL: http://svnweb.freebsd.org/changeset/base/262979

Log:
  Eliminate irq_dispatch.S.  Move the data items it contained into arm/intr.c
  and the functionality it provided into arm/exception.S.  Rename the main
  irq handling routine from arm_handler_execute() to arm_irq_handler() to
  make it more congruent with how other exception handlers are named, and
  also update its signature to reflect what has long been reality: it is
  passed just a trapframe pointer, no interrupt number argument.

Deleted:
  head/sys/arm/arm/irq_dispatch.S
Modified:
  head/sys/arm/allwinner/a20/files.a20
  head/sys/arm/allwinner/files.a10
  head/sys/arm/arm/exception.S
  head/sys/arm/arm/intr.c
  head/sys/arm/at91/files.at91
  head/sys/arm/broadcom/bcm2835/files.bcm2835
  head/sys/arm/econa/files.econa
  head/sys/arm/freescale/imx/files.imx51
  head/sys/arm/freescale/imx/files.imx53
  head/sys/arm/freescale/imx/files.imx6
  head/sys/arm/freescale/vybrid/files.vybrid
  head/sys/arm/lpc/files.lpc
  head/sys/arm/mv/files.mv
  head/sys/arm/rockchip/files.rk30xx
  head/sys/arm/s3c2xx0/files.s3c2xx0
  head/sys/arm/samsung/exynos/files.exynos5
  head/sys/arm/tegra/files.tegra2
  head/sys/arm/ti/files.ti
  head/sys/arm/versatile/files.versatile
  head/sys/arm/xilinx/files.zynq7
  head/sys/arm/xscale/i80321/files.i80219
  head/sys/arm/xscale/i80321/files.i80321
  head/sys/arm/xscale/i8134x/files.i81342
  head/sys/arm/xscale/ixp425/files.ixp425
  head/sys/arm/xscale/pxa/files.pxa

Modified: head/sys/arm/allwinner/a20/files.a20
==============================================================================
--- head/sys/arm/allwinner/a20/files.a20	Mon Mar 10 16:07:45 2014	(r262978)
+++ head/sys/arm/allwinner/a20/files.a20	Mon Mar 10 18:10:09 2014	(r262979)
@@ -7,7 +7,6 @@ arm/arm/cpufunc_asm_armv5.S		standard
 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/gic.c				standard
 
 arm/allwinner/a20/a20_cpu_cfg.c 	standard

Modified: head/sys/arm/allwinner/files.a10
==============================================================================
--- head/sys/arm/allwinner/files.a10	Mon Mar 10 16:07:45 2014	(r262978)
+++ head/sys/arm/allwinner/files.a10	Mon Mar 10 18:10:09 2014	(r262979)
@@ -7,7 +7,6 @@ arm/arm/cpufunc_asm_armv5.S		standard
 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/allwinner/a10_clk.c			standard
 arm/allwinner/a10_common.c		standard

Modified: head/sys/arm/arm/exception.S
==============================================================================
--- head/sys/arm/arm/exception.S	Mon Mar 10 16:07:45 2014	(r262978)
+++ head/sys/arm/arm/exception.S	Mon Mar 10 18:10:09 2014	(r262979)
@@ -192,6 +192,16 @@ ASENTRY_NP(exception_exit)
 	PULLFRAMEFROMSVCANDEXIT
 END(exception_exit)
 
+ASENTRY_NP(irq_entry)
+	sub	lr, lr, #0x00000004	/* Adjust the lr */
+	PUSHFRAMEINSVC			/* Push an interrupt frame */
+	mov	r0, sp			/* arg for dispatcher */
+
+	adr	lr, exception_exit
+	mov	r1, #0
+	b	_C_LABEL(arm_irq_handler)
+END(irq_entry)
+
 /*
  * undefined_entry:
  *

Modified: head/sys/arm/arm/intr.c
==============================================================================
--- head/sys/arm/arm/intr.c	Mon Mar 10 16:07:45 2014	(r262978)
+++ head/sys/arm/arm/intr.c	Mon Mar 10 18:10:09 2014	(r262979)
@@ -56,12 +56,18 @@ typedef void (*mask_fn)(void *);
 
 static struct intr_event *intr_events[NIRQ];
 
-void	arm_handler_execute(struct trapframe *, int);
+void	arm_irq_handler(struct trapframe *);
 
 void (*arm_post_filter)(void *) = NULL;
 int (*arm_config_irq)(int irq, enum intr_trigger trig,
     enum intr_polarity pol) = NULL;
 
+/* Data for statistics reporting. */
+u_long intrcnt[NIRQ];
+char intrnames[NIRQ * INTRNAME_LEN];
+size_t sintrcnt = sizeof(intrcnt);
+size_t sintrnames = sizeof(intrnames);
+
 /*
  * Pre-format intrnames into an array of fixed-size strings containing spaces.
  * This allows us to avoid the need for an intermediate table of indices into
@@ -127,7 +133,7 @@ dosoftints(void)
 }
 
 void
-arm_handler_execute(struct trapframe *frame, int irqnb)
+arm_irq_handler(struct trapframe *frame)
 {
 	struct intr_event *event;
 	int i;

Modified: head/sys/arm/at91/files.at91
==============================================================================
--- head/sys/arm/at91/files.at91	Mon Mar 10 16:07:45 2014	(r262978)
+++ head/sys/arm/at91/files.at91	Mon Mar 10 18:10:09 2014	(r262979)
@@ -1,6 +1,5 @@
 # $FreeBSD$
 arm/arm/cpufunc_asm_arm9.S	standard
-arm/arm/irq_dispatch.S		standard
 arm/at91/at91_machdep.c		standard
 arm/at91/at91_aic.c		standard
 arm/at91/at91.c			standard

Modified: head/sys/arm/broadcom/bcm2835/files.bcm2835
==============================================================================
--- head/sys/arm/broadcom/bcm2835/files.bcm2835	Mon Mar 10 16:07:45 2014	(r262978)
+++ head/sys/arm/broadcom/bcm2835/files.bcm2835	Mon Mar 10 18:10:09 2014	(r262979)
@@ -22,7 +22,6 @@ arm/arm/cpufunc_asm_arm11.S             
 arm/arm/cpufunc_asm_arm11x6.S                   standard
 arm/arm/cpufunc_asm_armv5.S                     standard
 arm/arm/cpufunc_asm_armv6.S                     standard
-arm/arm/irq_dispatch.S                          standard
 
 kern/kern_clocksource.c                         standard
 

Modified: head/sys/arm/econa/files.econa
==============================================================================
--- head/sys/arm/econa/files.econa	Mon Mar 10 16:07:45 2014	(r262978)
+++ head/sys/arm/econa/files.econa	Mon Mar 10 18:10:09 2014	(r262979)
@@ -6,7 +6,6 @@ arm/econa/timer.c			standard
 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/bus_space_generic.c		standard
 arm/econa/ehci_ebus.c	optional	ehci
 arm/econa/ohci_ec.c	optional	ohci

Modified: head/sys/arm/freescale/imx/files.imx51
==============================================================================
--- head/sys/arm/freescale/imx/files.imx51	Mon Mar 10 16:07:45 2014	(r262978)
+++ head/sys/arm/freescale/imx/files.imx51	Mon Mar 10 18:10:09 2014	(r262979)
@@ -4,7 +4,6 @@ arm/arm/bus_space_generic.c		standard
 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
 kern/kern_clocksource.c			standard
 
 # Init

Modified: head/sys/arm/freescale/imx/files.imx53
==============================================================================
--- head/sys/arm/freescale/imx/files.imx53	Mon Mar 10 16:07:45 2014	(r262978)
+++ head/sys/arm/freescale/imx/files.imx53	Mon Mar 10 18:10:09 2014	(r262979)
@@ -4,7 +4,6 @@ arm/arm/bus_space_generic.c		standard
 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
 kern/kern_clocksource.c			standard
 
 # Init

Modified: head/sys/arm/freescale/imx/files.imx6
==============================================================================
--- head/sys/arm/freescale/imx/files.imx6	Mon Mar 10 16:07:45 2014	(r262978)
+++ head/sys/arm/freescale/imx/files.imx6	Mon Mar 10 18:10:09 2014	(r262979)
@@ -8,7 +8,6 @@ arm/arm/bus_space_generic.c		standard
 arm/arm/cpufunc_asm_arm11.S		standard
 arm/arm/cpufunc_asm_armv5.S		standard
 arm/arm/cpufunc_asm_armv7.S		standard
-arm/arm/irq_dispatch.S			standard
 kern/kern_clocksource.c			standard
 
 #

Modified: head/sys/arm/freescale/vybrid/files.vybrid
==============================================================================
--- head/sys/arm/freescale/vybrid/files.vybrid	Mon Mar 10 16:07:45 2014	(r262978)
+++ head/sys/arm/freescale/vybrid/files.vybrid	Mon Mar 10 18:10:09 2014	(r262979)
@@ -8,7 +8,6 @@ arm/arm/cpufunc_asm_armv5.S			standard
 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/bus_space-v6.c				standard
 arm/arm/gic.c					standard

Modified: head/sys/arm/lpc/files.lpc
==============================================================================
--- head/sys/arm/lpc/files.lpc	Mon Mar 10 16:07:45 2014	(r262978)
+++ head/sys/arm/lpc/files.lpc	Mon Mar 10 18:10:09 2014	(r262979)
@@ -1,6 +1,5 @@
 # $FreeBSD$
 arm/arm/bus_space_generic.c		standard
-arm/arm/irq_dispatch.S			standard
 arm/arm/cpufunc_asm_arm9.S		standard
 arm/arm/cpufunc_asm_armv5.S		standard
 arm/lpc/lpc_machdep.c			standard

Modified: head/sys/arm/mv/files.mv
==============================================================================
--- head/sys/arm/mv/files.mv	Mon Mar 10 16:07:45 2014	(r262978)
+++ head/sys/arm/mv/files.mv	Mon Mar 10 18:10:09 2014	(r262979)
@@ -20,7 +20,6 @@ arm/arm/cpufunc_asm_armv5_ec.S	standard
 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/mv/bus_space.c		standard
 arm/mv/gpio.c			standard

Modified: head/sys/arm/rockchip/files.rk30xx
==============================================================================
--- head/sys/arm/rockchip/files.rk30xx	Mon Mar 10 16:07:45 2014	(r262978)
+++ head/sys/arm/rockchip/files.rk30xx	Mon Mar 10 18:10:09 2014	(r262979)
@@ -7,7 +7,6 @@ arm/arm/cpufunc_asm_armv5.S		standard
 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/gic.c				standard
 arm/arm/mpcore_timer.c			standard

Modified: head/sys/arm/s3c2xx0/files.s3c2xx0
==============================================================================
--- head/sys/arm/s3c2xx0/files.s3c2xx0	Mon Mar 10 16:07:45 2014	(r262978)
+++ head/sys/arm/s3c2xx0/files.s3c2xx0	Mon Mar 10 18:10:09 2014	(r262979)
@@ -2,7 +2,6 @@
 arm/arm/bus_space_asm_generic.S	standard
 arm/arm/bus_space_generic.c	standard
 arm/arm/cpufunc_asm_arm9.S	standard
-arm/arm/irq_dispatch.S		standard
 arm/s3c2xx0/board_ln2410sbc.c	optional	board_ln2410sbc
 arm/s3c2xx0/s3c24x0_rtc.c	standard
 arm/s3c2xx0/s3c24x0_machdep.c	standard

Modified: head/sys/arm/samsung/exynos/files.exynos5
==============================================================================
--- head/sys/arm/samsung/exynos/files.exynos5	Mon Mar 10 16:07:45 2014	(r262978)
+++ head/sys/arm/samsung/exynos/files.exynos5	Mon Mar 10 18:10:09 2014	(r262979)
@@ -8,7 +8,6 @@ arm/arm/cpufunc_asm_armv5.S			standard
 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/bus_space-v6.c				standard
 arm/arm/gic.c					standard

Modified: head/sys/arm/tegra/files.tegra2
==============================================================================
--- head/sys/arm/tegra/files.tegra2	Mon Mar 10 16:07:45 2014	(r262978)
+++ head/sys/arm/tegra/files.tegra2	Mon Mar 10 18:10:09 2014	(r262979)
@@ -6,7 +6,6 @@ arm/arm/bus_space-v6.c			standard
 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/gic.c				standard
 arm/arm/mpcore_timer.c			standard

Modified: head/sys/arm/ti/files.ti
==============================================================================
--- head/sys/arm/ti/files.ti	Mon Mar 10 16:07:45 2014	(r262978)
+++ head/sys/arm/ti/files.ti	Mon Mar 10 18:10:09 2014	(r262979)
@@ -9,7 +9,6 @@ arm/arm/cpufunc_asm_armv5.S			standard
 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/ti/ti_common.c				standard
 arm/ti/ti_cpuid.c				standard

Modified: head/sys/arm/versatile/files.versatile
==============================================================================
--- head/sys/arm/versatile/files.versatile	Mon Mar 10 16:07:45 2014	(r262978)
+++ head/sys/arm/versatile/files.versatile	Mon Mar 10 18:10:09 2014	(r262979)
@@ -6,7 +6,6 @@ arm/arm/cpufunc_asm_arm11.S             
 arm/arm/cpufunc_asm_arm11x6.S			standard
 arm/arm/cpufunc_asm_armv5.S                     standard
 arm/arm/cpufunc_asm_armv6.S                     standard
-arm/arm/irq_dispatch.S                          standard
 
 arm/versatile/bus_space.c			standard
 arm/versatile/pl050.c				optional sc

Modified: head/sys/arm/xilinx/files.zynq7
==============================================================================
--- head/sys/arm/xilinx/files.zynq7	Mon Mar 10 16:07:45 2014	(r262978)
+++ head/sys/arm/xilinx/files.zynq7	Mon Mar 10 18:10:09 2014	(r262979)
@@ -11,7 +11,6 @@ arm/arm/cpufunc_asm_armv5.S			standard
 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/gic.c					standard
 arm/arm/mpcore_timer.c				standard

Modified: head/sys/arm/xscale/i80321/files.i80219
==============================================================================
--- head/sys/arm/xscale/i80321/files.i80219	Mon Mar 10 16:07:45 2014	(r262978)
+++ head/sys/arm/xscale/i80321/files.i80219	Mon Mar 10 18:10:09 2014	(r262979)
@@ -4,7 +4,6 @@
 # 
 arm/arm/bus_space_generic.c		standard
 arm/arm/cpufunc_asm_xscale.S		standard
-arm/arm/irq_dispatch.S			standard
 arm/xscale/i80321/i80321.c		standard
 arm/xscale/i80321/i80321_dma.c		optional	dma
 arm/xscale/i80321/i80321_mcu.c		standard

Modified: head/sys/arm/xscale/i80321/files.i80321
==============================================================================
--- head/sys/arm/xscale/i80321/files.i80321	Mon Mar 10 16:07:45 2014	(r262978)
+++ head/sys/arm/xscale/i80321/files.i80321	Mon Mar 10 18:10:09 2014	(r262979)
@@ -1,7 +1,6 @@
 #$FreeBSD$
 arm/arm/bus_space_generic.c		standard
 arm/arm/cpufunc_asm_xscale.S		standard
-arm/arm/irq_dispatch.S			standard
 arm/xscale/i80321/i80321.c		standard
 arm/xscale/i80321/i80321_aau.c		optional	aau
 arm/xscale/i80321/i80321_dma.c		optional	dma

Modified: head/sys/arm/xscale/i8134x/files.i81342
==============================================================================
--- head/sys/arm/xscale/i8134x/files.i81342	Mon Mar 10 16:07:45 2014	(r262978)
+++ head/sys/arm/xscale/i8134x/files.i81342	Mon Mar 10 18:10:09 2014	(r262979)
@@ -2,7 +2,6 @@
 arm/arm/bus_space_generic.c		standard
 arm/arm/cpufunc_asm_xscale.S		standard
 arm/arm/cpufunc_asm_xscale_c3.S		standard
-arm/arm/irq_dispatch.S			standard
 arm/xscale/i80321/i80321_timer.c	standard
 arm/xscale/i80321/i80321_wdog.c		optional	iopwdog
 arm/xscale/i8134x/i81342.c		standard

Modified: head/sys/arm/xscale/ixp425/files.ixp425
==============================================================================
--- head/sys/arm/xscale/ixp425/files.ixp425	Mon Mar 10 16:07:45 2014	(r262978)
+++ head/sys/arm/xscale/ixp425/files.ixp425	Mon Mar 10 18:10:09 2014	(r262979)
@@ -1,7 +1,6 @@
 #$FreeBSD$
 arm/arm/bus_space_generic.c		standard
 arm/arm/cpufunc_asm_xscale.S		standard
-arm/arm/irq_dispatch.S			standard
 arm/xscale/ixp425/ixp425.c		standard
 arm/xscale/ixp425/ixp425_mem.c		standard
 arm/xscale/ixp425/ixp425_space.c	standard

Modified: head/sys/arm/xscale/pxa/files.pxa
==============================================================================
--- head/sys/arm/xscale/pxa/files.pxa	Mon Mar 10 16:07:45 2014	(r262978)
+++ head/sys/arm/xscale/pxa/files.pxa	Mon Mar 10 18:10:09 2014	(r262979)
@@ -2,7 +2,6 @@
 
 arm/arm/bus_space_generic.c		standard
 arm/arm/cpufunc_asm_xscale.S		standard
-arm/arm/irq_dispatch.S			standard
 
 arm/xscale/pxa/pxa_gpio.c		standard
 arm/xscale/pxa/pxa_icu.c		standard


More information about the svn-src-all mailing list