diff options
| author | Dave Jiang <dave.jiang@com.rmk.(none)> | 2004-09-05 22:23:19 +0100 |
|---|---|---|
| committer | Russell King <rmk@flint.arm.linux.org.uk> | 2004-09-05 22:23:19 +0100 |
| commit | 124bd47de0b44ce385d7ac6fb8d69478688d2e59 (patch) | |
| tree | 9cf9059932af91113358c4c2eb0699519fce20a3 /arch | |
| parent | 66fd03e1809e70656bad8060b312e38db4154572 (diff) | |
[ARM PATCH] 2035/1: 2033/3 - IOP3xx patch submission (3/6)
Patch from Dave Jiang
arch/arm/kernel changes
Diffstat (limited to 'arch')
| -rw-r--r-- | arch/arm/kernel/debug.S | 12 | ||||
| -rw-r--r-- | arch/arm/kernel/entry-armv.S | 33 |
2 files changed, 43 insertions, 2 deletions
diff --git a/arch/arm/kernel/debug.S b/arch/arm/kernel/debug.S index 166cb3c3fd4b..fe86c5ac0d49 100644 --- a/arch/arm/kernel/debug.S +++ b/arch/arm/kernel/debug.S @@ -411,8 +411,16 @@ .macro addruart,rx mov \rx, #0xfe000000 @ physical -#if defined(CONFIG_ARCH_IQ80321) +#if defined(CONFIG_ARCH_IQ80321) || defined(CONFIG_ARCH_IQ31244) orr \rx, \rx, #0x00800000 @ location of the UART +#elif defined(CONFIG_ARCH_IOP331) + mrc p15, 0, \rx, c1, c0 + tst \rx, #1 @ MMU enabled? + moveq \rx, #0x000fe000 @ Physical Base + movne \rx, #0 + orr \rx, \rx, #0xfe000000 + orr \rx, \rx, #0x00f00000 @ Virtual Base + orr \rx, \rx, #0x00001700 @ location of the UART #else #error Unknown IOP3XX implementation #endif @@ -430,7 +438,7 @@ .endm .macro waituart,rd,rx -#ifndef CONFIG_ARCH_IQ80321 +#if !defined(CONFIG_ARCH_IQ80321) || !defined(CONFIG_ARCH_IQ31244) || !defined(CONFIG_ARCH_IQ80331) 1001: ldrb \rd, [\rx, #0x6] tst \rd, #0x10 beq 1001b diff --git a/arch/arm/kernel/entry-armv.S b/arch/arm/kernel/entry-armv.S index 19eed8bdbcaf..3f373684d5ec 100644 --- a/arch/arm/kernel/entry-armv.S +++ b/arch/arm/kernel/entry-armv.S @@ -584,6 +584,39 @@ ENTRY(soft_irq_mask) .macro irq_prio_table .endm +#elif defined(CONFIG_ARCH_IOP331) + .macro disable_fiq + .endm + + /* + * Note: only deal with normal interrupts, not FIQ + */ + .macro get_irqnr_and_base, irqnr, irqstat, base, tmp + mov \irqnr, #0 + mrc p6, 0, \irqstat, c4, c0, 0 @ Read IINTSRC0 + cmp \irqstat, #0 + bne 1002f + mrc p6, 0, \irqstat, c5, c0, 0 @ Read IINTSRC1 + cmp \irqstat, #0 + beq 1001f + clz \irqnr, \irqstat +/* + * mov \base, #31 + * subs \irqnr,\base,\irqnr + */ + rsbs \irqnr,\irqnr,#31 @ recommend by RMK + add \irqnr,\irqnr,#IRQ_IOP331_XINT8 + b 1001f +1002: clz \irqnr, \irqstat + mov \base, #31 + subs \irqnr,\base,\irqnr + add \irqnr,\irqnr,#IRQ_IOP331_DMA0_EOT +1001: + .endm + + .macro irq_prio_table + .endm + #elif defined(CONFIG_ARCH_PXA) .macro disable_fiq |
