From: "Shilimkar, Santosh" <santosh.shilimkar@ti.com> To: Tony Lindgren <tony@atomide.com>, "linux-arm-kernel@lists.infradead.org" <linux-arm-kernel@lists.infradead.org> Cc: "linux-omap@vger.kernel.org" <linux-omap@vger.kernel.org> Subject: RE: [PATCH 4/4] omap: Make get_irqnr_and_base common for mach-omap2 multiboot Date: Sat, 16 Jan 2010 16:54:44 +0530 [thread overview] Message-ID: <EAF47CD23C76F840A9E7FCE10091EFAB02C06F9033@dbde02.ent.ti.com> (raw) In-Reply-To: <20100116013520.10065.17921.stgit@baageli.muru.com> This too is nice fix for multiboot. > -----Original Message----- > From: linux-arm-kernel-bounces@lists.infradead.org > [mailto:linux-arm-kernel-bounces@lists.infradead.org] On > Behalf Of Tony Lindgren > Sent: Saturday, January 16, 2010 7:05 AM > To: linux-arm-kernel@lists.infradead.org > Cc: linux-omap@vger.kernel.org > Subject: [PATCH 4/4] omap: Make get_irqnr_and_base common for > mach-omap2 multiboot > > Make get_irqnr_and_base common for mach-omap2 multiboot > > Note that this will only work currently for 24xx and 34xx. > > The overhead of this should be minimal, it basically adds one > cmp to see if omap_irq_base has been configured already. > If necessary, we can set separate optimized get_irqnr_and_base > for non-multiboot configurations. Well there is an overhead of two instructions for every interrupt, so probably having two version of "get_irqnr_and_base" would be good. > > Support for 44xx can be added later on for basic multiboot, > and similar patch should be done for mach-omap1/entry-macro.S. > > Signed-off-by: Tony Lindgren <tony@atomide.com> > --- > arch/arm/mach-omap2/include/mach/entry-macro.S | 55 > ++++++++++++++++-------- > 1 files changed, 37 insertions(+), 18 deletions(-) > > diff --git a/arch/arm/mach-omap2/include/mach/entry-macro.S > b/arch/arm/mach-omap2/include/mach/entry-macro.S > index c7f1720..3f75a09 100644 > --- a/arch/arm/mach-omap2/include/mach/entry-macro.S > +++ b/arch/arm/mach-omap2/include/mach/entry-macro.S > @@ -17,18 +17,7 @@ > > #include <plat/omap24xx.h> > #include <plat/omap34xx.h> > - > -/* REVISIT: This should be set dynamically if > CONFIG_MULTI_OMAP2 is selected */ > -#if defined(CONFIG_ARCH_OMAP2420) || defined(CONFIG_ARCH_OMAP2430) > -#define OMAP2_VA_IC_BASE > OMAP2_L4_IO_ADDRESS(OMAP24XX_IC_BASE) > -#elif defined(CONFIG_ARCH_OMAP34XX) > -#define OMAP2_VA_IC_BASE > OMAP2_L4_IO_ADDRESS(OMAP34XX_IC_BASE) > -#endif > -#if defined(CONFIG_ARCH_OMAP4) > #include <plat/omap44xx.h> > -#endif > -#define INTCPS_SIR_IRQ_OFFSET 0x0040 /* > Active interrupt offset */ > -#define ACTIVEIRQ_MASK 0x7f /* > Active interrupt bits */ > > .macro disable_fiq > .endm > @@ -39,23 +28,53 @@ > .macro arch_ret_to_user, tmp1, tmp2 > .endm > > -#ifndef CONFIG_ARCH_OMAP4 > +#if defined(CONFIG_ARCH_OMAP2420) || > defined(CONFIG_ARCH_OMAP2430) || \ > + defined(CONFIG_ARCH_OMAP34XX) > + > +#define INTCPS_SIR_IRQ_OFFSET 0x0040 /* > Active interrupt offset */ > +#define ACTIVEIRQ_MASK 0x7f /* > Active interrupt bits */ > + > +omap_irq_base: .word 0x0 > + > .macro get_irqnr_and_base, irqnr, irqstat, base, tmp > - ldr \base, =OMAP2_VA_IC_BASE > - ldr \irqnr, [\base, #0x98] /* IRQ pending reg 1 */ > + ldr \base, omap_irq_base > + cmp \base, #0 @ is irq base > configured? > + bne 9998f @ already configured > + > + /* Check the processor type */ > + mrc p15, 0, \tmp, c0, c0, 0 @ get processor revision > + and \tmp, \tmp, #0x000f0000 @ only check > architecture > + cmp \tmp, #0x00060000 @ is v6? > + beq 2400f @ found v6 so > it's omap24xx > + cmp \tmp, #0x000f0000 @ is cortex? > + beq 3400f @ found v7 so > it's omap34xx > + > +2400: ldr \base, > =OMAP2_L4_IO_ADDRESS(OMAP24XX_IC_BASE) > + str \base, omap_irq_base > + b 9998f > + > +3400: ldr \base, > =OMAP2_L4_IO_ADDRESS(OMAP34XX_IC_BASE) > + str \base, omap_irq_base > + > + /* Check the pending interrupts */ > +9998: ldr \irqnr, [\base, #0x98] /* IRQ > pending reg 1 */ > cmp \irqnr, #0x0 > - bne 2222f > + bne 9999f > ldr \irqnr, [\base, #0xb8] /* IRQ pending reg 2 */ > cmp \irqnr, #0x0 > - bne 2222f > + bne 9999f > ldr \irqnr, [\base, #0xd8] /* IRQ pending reg 3 */ > cmp \irqnr, #0x0 > -2222: > +9999: > ldrne \irqnr, [\base, #INTCPS_SIR_IRQ_OFFSET] > and \irqnr, \irqnr, #ACTIVEIRQ_MASK /* > Clear spurious bits */ > > .endm > -#else > +#endif > + > + > +#ifdef CONFIG_ARCH_OMAP4 > + > #define OMAP44XX_VA_GIC_CPU_BASE > OMAP2_L4_IO_ADDRESS(OMAP44XX_GIC_CPU_BASE) > > /* > > > _______________________________________________ > linux-arm-kernel mailing list > linux-arm-kernel@lists.infradead.org > http://lists.infradead.org/mailman/listinfo/linux-arm-kernel >
WARNING: multiple messages have this Message-ID (diff)
From: santosh.shilimkar@ti.com (Shilimkar, Santosh) To: linux-arm-kernel@lists.infradead.org Subject: [PATCH 4/4] omap: Make get_irqnr_and_base common for mach-omap2 multiboot Date: Sat, 16 Jan 2010 16:54:44 +0530 [thread overview] Message-ID: <EAF47CD23C76F840A9E7FCE10091EFAB02C06F9033@dbde02.ent.ti.com> (raw) In-Reply-To: <20100116013520.10065.17921.stgit@baageli.muru.com> This too is nice fix for multiboot. > -----Original Message----- > From: linux-arm-kernel-bounces at lists.infradead.org > [mailto:linux-arm-kernel-bounces at lists.infradead.org] On > Behalf Of Tony Lindgren > Sent: Saturday, January 16, 2010 7:05 AM > To: linux-arm-kernel at lists.infradead.org > Cc: linux-omap at vger.kernel.org > Subject: [PATCH 4/4] omap: Make get_irqnr_and_base common for > mach-omap2 multiboot > > Make get_irqnr_and_base common for mach-omap2 multiboot > > Note that this will only work currently for 24xx and 34xx. > > The overhead of this should be minimal, it basically adds one > cmp to see if omap_irq_base has been configured already. > If necessary, we can set separate optimized get_irqnr_and_base > for non-multiboot configurations. Well there is an overhead of two instructions for every interrupt, so probably having two version of "get_irqnr_and_base" would be good. > > Support for 44xx can be added later on for basic multiboot, > and similar patch should be done for mach-omap1/entry-macro.S. > > Signed-off-by: Tony Lindgren <tony@atomide.com> > --- > arch/arm/mach-omap2/include/mach/entry-macro.S | 55 > ++++++++++++++++-------- > 1 files changed, 37 insertions(+), 18 deletions(-) > > diff --git a/arch/arm/mach-omap2/include/mach/entry-macro.S > b/arch/arm/mach-omap2/include/mach/entry-macro.S > index c7f1720..3f75a09 100644 > --- a/arch/arm/mach-omap2/include/mach/entry-macro.S > +++ b/arch/arm/mach-omap2/include/mach/entry-macro.S > @@ -17,18 +17,7 @@ > > #include <plat/omap24xx.h> > #include <plat/omap34xx.h> > - > -/* REVISIT: This should be set dynamically if > CONFIG_MULTI_OMAP2 is selected */ > -#if defined(CONFIG_ARCH_OMAP2420) || defined(CONFIG_ARCH_OMAP2430) > -#define OMAP2_VA_IC_BASE > OMAP2_L4_IO_ADDRESS(OMAP24XX_IC_BASE) > -#elif defined(CONFIG_ARCH_OMAP34XX) > -#define OMAP2_VA_IC_BASE > OMAP2_L4_IO_ADDRESS(OMAP34XX_IC_BASE) > -#endif > -#if defined(CONFIG_ARCH_OMAP4) > #include <plat/omap44xx.h> > -#endif > -#define INTCPS_SIR_IRQ_OFFSET 0x0040 /* > Active interrupt offset */ > -#define ACTIVEIRQ_MASK 0x7f /* > Active interrupt bits */ > > .macro disable_fiq > .endm > @@ -39,23 +28,53 @@ > .macro arch_ret_to_user, tmp1, tmp2 > .endm > > -#ifndef CONFIG_ARCH_OMAP4 > +#if defined(CONFIG_ARCH_OMAP2420) || > defined(CONFIG_ARCH_OMAP2430) || \ > + defined(CONFIG_ARCH_OMAP34XX) > + > +#define INTCPS_SIR_IRQ_OFFSET 0x0040 /* > Active interrupt offset */ > +#define ACTIVEIRQ_MASK 0x7f /* > Active interrupt bits */ > + > +omap_irq_base: .word 0x0 > + > .macro get_irqnr_and_base, irqnr, irqstat, base, tmp > - ldr \base, =OMAP2_VA_IC_BASE > - ldr \irqnr, [\base, #0x98] /* IRQ pending reg 1 */ > + ldr \base, omap_irq_base > + cmp \base, #0 @ is irq base > configured? > + bne 9998f @ already configured > + > + /* Check the processor type */ > + mrc p15, 0, \tmp, c0, c0, 0 @ get processor revision > + and \tmp, \tmp, #0x000f0000 @ only check > architecture > + cmp \tmp, #0x00060000 @ is v6? > + beq 2400f @ found v6 so > it's omap24xx > + cmp \tmp, #0x000f0000 @ is cortex? > + beq 3400f @ found v7 so > it's omap34xx > + > +2400: ldr \base, > =OMAP2_L4_IO_ADDRESS(OMAP24XX_IC_BASE) > + str \base, omap_irq_base > + b 9998f > + > +3400: ldr \base, > =OMAP2_L4_IO_ADDRESS(OMAP34XX_IC_BASE) > + str \base, omap_irq_base > + > + /* Check the pending interrupts */ > +9998: ldr \irqnr, [\base, #0x98] /* IRQ > pending reg 1 */ > cmp \irqnr, #0x0 > - bne 2222f > + bne 9999f > ldr \irqnr, [\base, #0xb8] /* IRQ pending reg 2 */ > cmp \irqnr, #0x0 > - bne 2222f > + bne 9999f > ldr \irqnr, [\base, #0xd8] /* IRQ pending reg 3 */ > cmp \irqnr, #0x0 > -2222: > +9999: > ldrne \irqnr, [\base, #INTCPS_SIR_IRQ_OFFSET] > and \irqnr, \irqnr, #ACTIVEIRQ_MASK /* > Clear spurious bits */ > > .endm > -#else > +#endif > + > + > +#ifdef CONFIG_ARCH_OMAP4 > + > #define OMAP44XX_VA_GIC_CPU_BASE > OMAP2_L4_IO_ADDRESS(OMAP44XX_GIC_CPU_BASE) > > /* > > > _______________________________________________ > linux-arm-kernel mailing list > linux-arm-kernel at lists.infradead.org > http://lists.infradead.org/mailman/listinfo/linux-arm-kernel >
next prev parent reply other threads:[~2010-01-16 11:24 UTC|newest] Thread overview: 76+ messages / expand[flat|nested] mbox.gz Atom feed top 2010-01-16 1:35 [PATCH 0/4] omap multiboot improvments for merge window after 2.6.34 Tony Lindgren 2010-01-16 1:35 ` Tony Lindgren 2010-01-16 1:35 ` [PATCH 1/4] omap: Clean the serial port defines Tony Lindgren 2010-01-16 1:35 ` Tony Lindgren 2010-01-16 7:48 ` Shilimkar, Santosh 2010-01-16 7:48 ` Shilimkar, Santosh 2010-01-16 19:25 ` Tony Lindgren 2010-01-16 19:25 ` Tony Lindgren 2010-01-16 19:33 ` Shilimkar, Santosh 2010-01-16 19:33 ` Shilimkar, Santosh 2010-01-16 20:03 ` Tony Lindgren 2010-01-16 20:03 ` Tony Lindgren 2010-01-19 0:39 ` Pandita, Vikram 2010-01-19 0:39 ` Pandita, Vikram 2010-01-20 23:10 ` Tony Lindgren 2010-01-20 23:10 ` Tony Lindgren 2010-01-16 1:35 ` [PATCH 2/4] omap: Make uncompress code and DEBUG_LL code generic Tony Lindgren 2010-01-16 1:35 ` Tony Lindgren 2010-01-16 9:35 ` Russell King - ARM Linux 2010-01-16 9:35 ` Russell King - ARM Linux 2010-01-16 19:18 ` Tony Lindgren 2010-01-16 19:18 ` Tony Lindgren 2010-01-16 19:33 ` Russell King - ARM Linux 2010-01-16 19:33 ` Russell King - ARM Linux 2010-01-16 20:00 ` Tony Lindgren 2010-01-16 20:00 ` Tony Lindgren 2010-01-19 1:50 ` Pandita, Vikram 2010-01-19 1:50 ` Pandita, Vikram 2010-01-22 3:07 ` [PATCH 2/4] omap: Make uncompress code and DEBUG_LL code generic, v2 Tony Lindgren 2010-01-22 3:07 ` Tony Lindgren 2010-01-22 14:48 ` Pandita, Vikram 2010-01-22 14:48 ` Pandita, Vikram 2010-01-22 20:55 ` Tony Lindgren 2010-01-22 20:55 ` Tony Lindgren 2010-01-22 20:58 ` Pandita, Vikram 2010-01-22 20:58 ` Pandita, Vikram 2010-01-22 21:10 ` Tony Lindgren 2010-01-22 21:10 ` Tony Lindgren 2010-01-22 23:10 ` Pandita, Vikram 2010-01-22 23:10 ` Pandita, Vikram 2010-01-23 17:13 ` Tony Lindgren 2010-01-23 17:13 ` Tony Lindgren 2010-01-21 19:03 ` [PATCH 2/4] omap: Make uncompress code and DEBUG_LL code generic Tony Lindgren 2010-01-21 19:03 ` Tony Lindgren 2010-01-16 11:04 ` Shilimkar, Santosh 2010-01-16 11:04 ` Shilimkar, Santosh 2010-01-16 19:20 ` Tony Lindgren 2010-01-16 19:20 ` Tony Lindgren 2010-01-16 19:34 ` Shilimkar, Santosh 2010-01-16 19:34 ` Shilimkar, Santosh 2010-01-19 1:26 ` Pandita, Vikram 2010-01-19 1:26 ` Pandita, Vikram 2010-01-19 17:19 ` Kevin Hilman 2010-01-19 17:19 ` Kevin Hilman 2010-01-26 17:22 ` Tony Lindgren 2010-01-26 17:22 ` Tony Lindgren 2010-01-16 1:35 ` [PATCH 3/4] omap: Remove old DEBUG_LL serial port options Tony Lindgren 2010-01-16 1:35 ` Tony Lindgren 2010-01-16 1:35 ` [PATCH 4/4] omap: Make get_irqnr_and_base common for mach-omap2 multiboot Tony Lindgren 2010-01-16 1:35 ` Tony Lindgren 2010-01-16 11:24 ` Shilimkar, Santosh [this message] 2010-01-16 11:24 ` Shilimkar, Santosh 2010-01-16 11:55 ` Russell King - ARM Linux 2010-01-16 11:55 ` Russell King - ARM Linux 2010-01-16 19:12 ` Tony Lindgren 2010-01-16 19:12 ` Tony Lindgren 2010-01-22 20:39 ` [PATCH 4/4] omap: Make get_irqnr_and_base common for mach-omap2 multiboot, v2 Tony Lindgren 2010-01-22 20:39 ` Tony Lindgren 2010-01-22 20:56 ` Russell King - ARM Linux 2010-01-22 20:56 ` Russell King - ARM Linux 2010-01-22 21:09 ` Tony Lindgren 2010-01-22 21:09 ` Tony Lindgren 2010-01-22 21:16 ` Tony Lindgren 2010-01-22 21:16 ` Tony Lindgren 2010-01-16 20:15 ` [PATCH 0/4] omap multiboot improvments for merge window after 2.6.34 Tony Lindgren 2010-01-16 20:15 ` Tony Lindgren
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=EAF47CD23C76F840A9E7FCE10091EFAB02C06F9033@dbde02.ent.ti.com \ --to=santosh.shilimkar@ti.com \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-omap@vger.kernel.org \ --cc=tony@atomide.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.