diff options
Diffstat (limited to 'include/asm-arm/arch-ixp23xx')
| -rw-r--r-- | include/asm-arm/arch-ixp23xx/debug-macro.S | 23 | ||||
| -rw-r--r-- | include/asm-arm/arch-ixp23xx/dma.h | 3 | ||||
| -rw-r--r-- | include/asm-arm/arch-ixp23xx/entry-macro.S | 31 | ||||
| -rw-r--r-- | include/asm-arm/arch-ixp23xx/hardware.h | 37 | ||||
| -rw-r--r-- | include/asm-arm/arch-ixp23xx/io.h | 54 | ||||
| -rw-r--r-- | include/asm-arm/arch-ixp23xx/irqs.h | 223 | ||||
| -rw-r--r-- | include/asm-arm/arch-ixp23xx/ixdp2351.h | 89 | ||||
| -rw-r--r-- | include/asm-arm/arch-ixp23xx/ixp23xx.h | 306 | ||||
| -rw-r--r-- | include/asm-arm/arch-ixp23xx/memory.h | 46 | ||||
| -rw-r--r-- | include/asm-arm/arch-ixp23xx/platform.h | 31 | ||||
| -rw-r--r-- | include/asm-arm/arch-ixp23xx/system.h | 33 | ||||
| -rw-r--r-- | include/asm-arm/arch-ixp23xx/time.h | 3 | ||||
| -rw-r--r-- | include/asm-arm/arch-ixp23xx/timex.h | 7 | ||||
| -rw-r--r-- | include/asm-arm/arch-ixp23xx/uncompress.h | 45 | ||||
| -rw-r--r-- | include/asm-arm/arch-ixp23xx/vmalloc.h | 10 |
15 files changed, 941 insertions, 0 deletions
diff --git a/include/asm-arm/arch-ixp23xx/debug-macro.S b/include/asm-arm/arch-ixp23xx/debug-macro.S new file mode 100644 index 00000000000..eb99fd69fd2 --- /dev/null +++ b/include/asm-arm/arch-ixp23xx/debug-macro.S | |||
| @@ -0,0 +1,23 @@ | |||
| 1 | /* | ||
| 2 | * include/asm-arm/arch-ixp23xx/debug-macro.S | ||
| 3 | * | ||
| 4 | * Debugging macro include header | ||
| 5 | * | ||
| 6 | * Copyright (C) 1994-1999 Russell King | ||
| 7 | * Moved from linux/arch/arm/kernel/debug.S by Ben Dooks | ||
| 8 | * | ||
| 9 | * This program is free software; you can redistribute it and/or modify | ||
| 10 | * it under the terms of the GNU General Public License version 2 as | ||
| 11 | * published by the Free Software Foundation. | ||
| 12 | */ | ||
| 13 | #include <asm/arch/ixp23xx.h> | ||
| 14 | |||
| 15 | .macro addruart,rx | ||
| 16 | mrc p15, 0, \rx, c1, c0 | ||
| 17 | tst \rx, #1 @ mmu enabled? | ||
| 18 | ldreq \rx, =IXP23XX_PERIPHERAL_PHYS @ physical | ||
| 19 | ldrne \rx, =IXP23XX_PERIPHERAL_VIRT @ virtual | ||
| 20 | .endm | ||
| 21 | |||
| 22 | #define UART_SHIFT 2 | ||
| 23 | #include <asm/hardware/debug-8250.S> | ||
diff --git a/include/asm-arm/arch-ixp23xx/dma.h b/include/asm-arm/arch-ixp23xx/dma.h new file mode 100644 index 00000000000..2f4335e3b83 --- /dev/null +++ b/include/asm-arm/arch-ixp23xx/dma.h | |||
| @@ -0,0 +1,3 @@ | |||
| 1 | /* | ||
| 2 | * include/asm-arm/arch-ixp23xx/dma.h | ||
| 3 | */ | ||
diff --git a/include/asm-arm/arch-ixp23xx/entry-macro.S b/include/asm-arm/arch-ixp23xx/entry-macro.S new file mode 100644 index 00000000000..0ef4e6016ac --- /dev/null +++ b/include/asm-arm/arch-ixp23xx/entry-macro.S | |||
| @@ -0,0 +1,31 @@ | |||
| 1 | /* | ||
| 2 | * include/asm-arm/arch-ixp23xx/entry-macro.S | ||
| 3 | */ | ||
| 4 | |||
| 5 | .macro disable_fiq | ||
| 6 | .endm | ||
| 7 | |||
| 8 | .macro get_irqnr_and_base, irqnr, irqstat, base, tmp | ||
| 9 | ldr \irqnr, =(IXP23XX_INTC_VIRT + IXP23XX_INTR_IRQ_ENC_ST_OFFSET) | ||
| 10 | ldr \irqnr, [\irqnr] @ get interrupt number | ||
| 11 | cmp \irqnr, #0x0 @ suprious interrupt ? | ||
| 12 | movne \irqnr, \irqnr, lsr #2 @ skip unwanted low order bits | ||
| 13 | subne \irqnr, \irqnr, #1 @ convert to 0 based | ||
| 14 | |||
| 15 | #if 0 | ||
| 16 | cmp \irqnr, #IRQ_IXP23XX_PCI_INT_RPH | ||
| 17 | bne 1001f | ||
| 18 | mov \irqnr, #IRQ_IXP23XX_INTA | ||
| 19 | |||
| 20 | ldr \irqnr, =0xf5000030 | ||
| 21 | |||
| 22 | mov \tmp, #(1<<26) | ||
| 23 | tst \irqnr, \tmp | ||
| 24 | movne \irqnr, #IRQ_IXP23XX_INTB | ||
| 25 | |||
| 26 | mov \tmp, #(1<<27) | ||
| 27 | tst \irqnr, \tmp | ||
| 28 | movne \irqnr, #IRQ_IXP23XX_INTA | ||
| 29 | 1001: | ||
| 30 | #endif | ||
| 31 | .endm | ||
diff --git a/include/asm-arm/arch-ixp23xx/hardware.h b/include/asm-arm/arch-ixp23xx/hardware.h new file mode 100644 index 00000000000..c0010d21a68 --- /dev/null +++ b/include/asm-arm/arch-ixp23xx/hardware.h | |||
| @@ -0,0 +1,37 @@ | |||
| 1 | /* | ||
| 2 | * include/asm-arm/arch-ixp23xx/hardware.h | ||
| 3 | * | ||
| 4 | * Copyright (C) 2002-2004 Intel Corporation. | ||
| 5 | * Copyricht (C) 2005 MontaVista Software, Inc. | ||
| 6 | * | ||
| 7 | * This program is free software; you can redistribute it and/or modify | ||
| 8 | * it under the terms of the GNU General Public License version 2 as | ||
| 9 | * published by the Free Software Foundation. | ||
| 10 | * | ||
| 11 | * Hardware definitions for IXP23XX based systems | ||
| 12 | */ | ||
| 13 | |||
| 14 | #ifndef __ASM_ARCH_HARDWARE_H | ||
| 15 | #define __ASM_ARCH_HARDWARE_H | ||
| 16 | |||
| 17 | /* PCI IO info */ | ||
| 18 | #define PCIO_BASE IXP23XX_PCI_IO_VIRT | ||
| 19 | #define PCIBIOS_MIN_IO 0x00000000 | ||
| 20 | #define PCIBIOS_MIN_MEM 0xe0000000 | ||
| 21 | |||
| 22 | #include "ixp23xx.h" | ||
| 23 | |||
| 24 | #define pcibios_assign_all_busses() 0 | ||
| 25 | |||
| 26 | /* | ||
| 27 | * Platform helper functions | ||
| 28 | */ | ||
| 29 | #include "platform.h" | ||
| 30 | |||
| 31 | /* | ||
| 32 | * Platform-specific headers | ||
| 33 | */ | ||
| 34 | #include "ixdp2351.h" | ||
| 35 | |||
| 36 | |||
| 37 | #endif | ||
diff --git a/include/asm-arm/arch-ixp23xx/io.h b/include/asm-arm/arch-ixp23xx/io.h new file mode 100644 index 00000000000..18415a81ac7 --- /dev/null +++ b/include/asm-arm/arch-ixp23xx/io.h | |||
| @@ -0,0 +1,54 @@ | |||
| 1 | /* | ||
| 2 | * include/asm-arm/arch-ixp23xx/io.h | ||
| 3 | * | ||
| 4 | * Original Author: Naeem M Afzal <naeem.m.afzal@intel.com> | ||
| 5 | * Maintainer: Deepak Saxena <dsaxena@plexity.net> | ||
| 6 | * | ||
| 7 | * Copyright (C) 2003-2005 Intel Corp. | ||
| 8 | * Copyright (C) 2005 MontaVista Software, Inc | ||
| 9 | * | ||
| 10 | * This program is free software; you can redistribute it and/or modify | ||
| 11 | * it under the terms of the GNU General Public License version 2 as | ||
| 12 | * published by the Free Software Foundation. | ||
| 13 | */ | ||
| 14 | |||
| 15 | #ifndef __ASM_ARCH_IO_H | ||
| 16 | #define __ASM_ARCH_IO_H | ||
| 17 | |||
| 18 | #define IO_SPACE_LIMIT 0xffffffff | ||
| 19 | |||
| 20 | #define __io(p) ((void __iomem*)((p) + IXP23XX_PCI_IO_VIRT)) | ||
| 21 | #define __mem_pci(a) (a) | ||
| 22 | |||
| 23 | #include <linux/kernel.h> /* For BUG */ | ||
| 24 | |||
| 25 | static inline void __iomem * | ||
| 26 | ixp23xx_ioremap(unsigned long addr, unsigned long size, unsigned long flags) | ||
| 27 | { | ||
| 28 | if (addr >= IXP23XX_PCI_MEM_START && | ||
| 29 | addr <= IXP23XX_PCI_MEM_START + IXP23XX_PCI_MEM_SIZE) { | ||
| 30 | if (addr + size > IXP23XX_PCI_MEM_START + IXP23XX_PCI_MEM_SIZE) | ||
| 31 | return NULL; | ||
| 32 | |||
| 33 | return (void __iomem *) | ||
| 34 | ((addr - IXP23XX_PCI_MEM_START) + IXP23XX_PCI_MEM_VIRT); | ||
| 35 | } | ||
| 36 | |||
| 37 | return __ioremap(addr, size, flags); | ||
| 38 | } | ||
| 39 | |||
| 40 | static inline void | ||
| 41 | ixp23xx_iounmap(void __iomem *addr) | ||
| 42 | { | ||
| 43 | if ((((u32)addr) >= IXP23XX_PCI_MEM_VIRT) && | ||
| 44 | (((u32)addr) < IXP23XX_PCI_MEM_VIRT + IXP23XX_PCI_MEM_SIZE)) | ||
| 45 | return; | ||
| 46 | |||
| 47 | __iounmap(addr); | ||
| 48 | } | ||
| 49 | |||
| 50 | #define __arch_ioremap(a,s,f) ixp23xx_ioremap(a,s,f) | ||
| 51 | #define __arch_iounmap(a) ixp23xx_iounmap(a) | ||
| 52 | |||
| 53 | |||
| 54 | #endif | ||
diff --git a/include/asm-arm/arch-ixp23xx/irqs.h b/include/asm-arm/arch-ixp23xx/irqs.h new file mode 100644 index 00000000000..e6963958572 --- /dev/null +++ b/include/asm-arm/arch-ixp23xx/irqs.h | |||
| @@ -0,0 +1,223 @@ | |||
| 1 | /* | ||
| 2 | * include/asm-arm/arch-ixp23xx/irqs.h | ||
| 3 | * | ||
| 4 | * IRQ definitions for IXP23XX based systems | ||
| 5 | * | ||
| 6 | * Author: Naeem Afzal <naeem.m.afzal@intel.com> | ||
| 7 | * | ||
| 8 | * Copyright (C) 2003-2004 Intel Corporation. | ||
| 9 | * | ||
| 10 | * This program is free software; you can redistribute it and/or modify | ||
| 11 | * it under the terms of the GNU General Public License version 2 as | ||
| 12 | * published by the Free Software Foundation. | ||
| 13 | */ | ||
| 14 | |||
| 15 | #ifndef __ASM_ARCH_IRQS_H | ||
| 16 | #define __ASM_ARCH_IRQS_H | ||
| 17 | |||
| 18 | #define NR_IXP23XX_IRQS IRQ_IXP23XX_INTB+1 | ||
| 19 | #define IRQ_IXP23XX_EXTIRQS NR_IXP23XX_IRQS | ||
| 20 | |||
| 21 | |||
| 22 | #define IRQ_IXP23XX_DBG0 0 /* Debug/Execution/MBox */ | ||
| 23 | #define IRQ_IXP23XX_DBG1 1 /* Debug/Execution/MBox */ | ||
| 24 | #define IRQ_IXP23XX_NPE_TRG 2 /* npe_trigger */ | ||
| 25 | #define IRQ_IXP23XX_TIMER1 3 /* Timer[0] */ | ||
| 26 | #define IRQ_IXP23XX_TIMER2 4 /* Timer[1] */ | ||
| 27 | #define IRQ_IXP23XX_TIMESTAMP 5 /* Timer[2], Time-stamp */ | ||
| 28 | #define IRQ_IXP23XX_WDOG 6 /* Time[3], Watchdog Timer */ | ||
| 29 | #define IRQ_IXP23XX_PCI_DBELL 7 /* PCI Doorbell */ | ||
| 30 | #define IRQ_IXP23XX_PCI_DMA1 8 /* PCI DMA Channel 1 */ | ||
| 31 | #define IRQ_IXP23XX_PCI_DMA2 9 /* PCI DMA Channel 2 */ | ||
| 32 | #define IRQ_IXP23XX_PCI_DMA3 10 /* PCI DMA Channel 3 */ | ||
| 33 | #define IRQ_IXP23XX_PCI_INT_RPH 11 /* pcxg_pci_int_rph */ | ||
| 34 | #define IRQ_IXP23XX_CPP_PMU 12 /* xpxg_pm_int_rpl */ | ||
| 35 | #define IRQ_IXP23XX_SWINT0 13 /* S/W Interrupt0 */ | ||
| 36 | #define IRQ_IXP23XX_SWINT1 14 /* S/W Interrupt1 */ | ||
| 37 | #define IRQ_IXP23XX_UART2 15 /* UART1 Interrupt */ | ||
| 38 | #define IRQ_IXP23XX_UART1 16 /* UART0 Interrupt */ | ||
| 39 | #define IRQ_IXP23XX_XSI_PMU_ROLLOVER 17 /* AHB Performance M. Unit counter rollover */ | ||
| 40 | #define IRQ_IXP23XX_XSI_AHB_PM0 18 /* intr_pm_o */ | ||
| 41 | #define IRQ_IXP23XX_XSI_AHB_ECE0 19 /* intr_ece_o */ | ||
| 42 | #define IRQ_IXP23XX_XSI_AHB_GASKET 20 /* gas_intr_o */ | ||
| 43 | #define IRQ_IXP23XX_XSI_CPP 21 /* xsi2cpp_int */ | ||
| 44 | #define IRQ_IXP23XX_CPP_XSI 22 /* cpp2xsi_int */ | ||
| 45 | #define IRQ_IXP23XX_ME_ATTN0 23 /* ME_ATTN */ | ||
| 46 | #define IRQ_IXP23XX_ME_ATTN1 24 /* ME_ATTN */ | ||
| 47 | #define IRQ_IXP23XX_ME_ATTN2 25 /* ME_ATTN */ | ||
| 48 | #define IRQ_IXP23XX_ME_ATTN3 26 /* ME_ATTN */ | ||
| 49 | #define IRQ_IXP23XX_PCI_ERR_RPH 27 /* PCXG_PCI_ERR_RPH */ | ||
| 50 | #define IRQ_IXP23XX_D0XG_ECC_CORR 28 /* D0XG_DRAM_ECC_CORR */ | ||
| 51 | #define IRQ_IXP23XX_D0XG_ECC_UNCORR 29 /* D0XG_DRAM_ECC_UNCORR */ | ||
| 52 | #define IRQ_IXP23XX_SRAM_ERR1 30 /* SRAM1_ERR */ | ||
| 53 | #define IRQ_IXP23XX_SRAM_ERR0 31 /* SRAM0_ERR */ | ||
| 54 | #define IRQ_IXP23XX_MEDIA_ERR 32 /* MEDIA_ERR */ | ||
| 55 | #define IRQ_IXP23XX_STH_DRAM_ECC_MAJ 33 /* STH_DRAM0_ECC_MAJ */ | ||
| 56 | #define IRQ_IXP23XX_GPIO6 34 /* GPIO0 interrupts */ | ||
| 57 | #define IRQ_IXP23XX_GPIO7 35 /* GPIO1 interrupts */ | ||
| 58 | #define IRQ_IXP23XX_GPIO8 36 /* GPIO2 interrupts */ | ||
| 59 | #define IRQ_IXP23XX_GPIO9 37 /* GPIO3 interrupts */ | ||
| 60 | #define IRQ_IXP23XX_GPIO10 38 /* GPIO4 interrupts */ | ||
| 61 | #define IRQ_IXP23XX_GPIO11 39 /* GPIO5 interrupts */ | ||
| 62 | #define IRQ_IXP23XX_GPIO12 40 /* GPIO6 interrupts */ | ||
| 63 | #define IRQ_IXP23XX_GPIO13 41 /* GPIO7 interrupts */ | ||
| 64 | #define IRQ_IXP23XX_GPIO14 42 /* GPIO8 interrupts */ | ||
| 65 | #define IRQ_IXP23XX_GPIO15 43 /* GPIO9 interrupts */ | ||
| 66 | #define IRQ_IXP23XX_SHAC_RING0 44 /* SHAC Ring Full */ | ||
| 67 | #define IRQ_IXP23XX_SHAC_RING1 45 /* SHAC Ring Full */ | ||
| 68 | #define IRQ_IXP23XX_SHAC_RING2 46 /* SHAC Ring Full */ | ||
| 69 | #define IRQ_IXP23XX_SHAC_RING3 47 /* SHAC Ring Full */ | ||
| 70 | #define IRQ_IXP23XX_SHAC_RING4 48 /* SHAC Ring Full */ | ||
| 71 | #define IRQ_IXP23XX_SHAC_RING5 49 /* SHAC Ring Full */ | ||
| 72 | #define IRQ_IXP23XX_SHAC_RING6 50 /* SHAC RING Full */ | ||
| 73 | #define IRQ_IXP23XX_SHAC_RING7 51 /* SHAC Ring Full */ | ||
| 74 | #define IRQ_IXP23XX_SHAC_RING8 52 /* SHAC Ring Full */ | ||
| 75 | #define IRQ_IXP23XX_SHAC_RING9 53 /* SHAC Ring Full */ | ||
| 76 | #define IRQ_IXP23XX_SHAC_RING10 54 /* SHAC Ring Full */ | ||
| 77 | #define IRQ_IXP23XX_SHAC_RING11 55 /* SHAC Ring Full */ | ||
| 78 | #define IRQ_IXP23XX_ME_THREAD_A0_ME0 56 /* ME_THREAD_A */ | ||
| 79 | #define IRQ_IXP23XX_ME_THREAD_A1_ME0 57 /* ME_THREAD_A */ | ||
| 80 | #define IRQ_IXP23XX_ME_THREAD_A2_ME0 58 /* ME_THREAD_A */ | ||
| 81 | #define IRQ_IXP23XX_ME_THREAD_A3_ME0 59 /* ME_THREAD_A */ | ||
| 82 | #define IRQ_IXP23XX_ME_THREAD_A4_ME0 60 /* ME_THREAD_A */ | ||
| 83 | #define IRQ_IXP23XX_ME_THREAD_A5_ME0 61 /* ME_THREAD_A */ | ||
| 84 | #define IRQ_IXP23XX_ME_THREAD_A6_ME0 62 /* ME_THREAD_A */ | ||
| 85 | #define IRQ_IXP23XX_ME_THREAD_A7_ME0 63 /* ME_THREAD_A */ | ||
| 86 | #define IRQ_IXP23XX_ME_THREAD_A8_ME1 64 /* ME_THREAD_A */ | ||
| 87 | #define IRQ_IXP23XX_ME_THREAD_A9_ME1 65 /* ME_THREAD_A */ | ||
| 88 | #define IRQ_IXP23XX_ME_THREAD_A10_ME1 66 /* ME_THREAD_A */ | ||
| 89 | #define IRQ_IXP23XX_ME_THREAD_A11_ME1 67 /* ME_THREAD_A */ | ||
| 90 | #define IRQ_IXP23XX_ME_THREAD_A12_ME1 68 /* ME_THREAD_A */ | ||
| 91 | #define IRQ_IXP23XX_ME_THREAD_A13_ME1 69 /* ME_THREAD_A */ | ||
| 92 | #define IRQ_IXP23XX_ME_THREAD_A14_ME1 70 /* ME_THREAD_A */ | ||
| 93 | #define IRQ_IXP23XX_ME_THREAD_A15_ME1 71 /* ME_THREAD_A */ | ||
| 94 | #define IRQ_IXP23XX_ME_THREAD_A16_ME2 72 /* ME_THREAD_A */ | ||
| 95 | #define IRQ_IXP23XX_ME_THREAD_A17_ME2 73 /* ME_THREAD_A */ | ||
| 96 | #define IRQ_IXP23XX_ME_THREAD_A18_ME2 74 /* ME_THREAD_A */ | ||
| 97 | #define IRQ_IXP23XX_ME_THREAD_A19_ME2 75 /* ME_THREAD_A */ | ||
| 98 | #define IRQ_IXP23XX_ME_THREAD_A20_ME2 76 /* ME_THREAD_A */ | ||
| 99 | #define IRQ_IXP23XX_ME_THREAD_A21_ME2 77 /* ME_THREAD_A */ | ||
| 100 | #define IRQ_IXP23XX_ME_THREAD_A22_ME2 78 /* ME_THREAD_A */ | ||
| 101 | #define IRQ_IXP23XX_ME_THREAD_A23_ME2 79 /* ME_THREAD_A */ | ||
| 102 | #define IRQ_IXP23XX_ME_THREAD_A24_ME3 80 /* ME_THREAD_A */ | ||
| 103 | #define IRQ_IXP23XX_ME_THREAD_A25_ME3 81 /* ME_THREAD_A */ | ||
| 104 | #define IRQ_IXP23XX_ME_THREAD_A26_ME3 82 /* ME_THREAD_A */ | ||
| 105 | #define IRQ_IXP23XX_ME_THREAD_A27_ME3 83 /* ME_THREAD_A */ | ||
| 106 | #define IRQ_IXP23XX_ME_THREAD_A28_ME3 84 /* ME_THREAD_A */ | ||
| 107 | #define IRQ_IXP23XX_ME_THREAD_A29_ME3 85 /* ME_THREAD_A */ | ||
| 108 | #define IRQ_IXP23XX_ME_THREAD_A30_ME3 86 /* ME_THREAD_A */ | ||
| 109 | #define IRQ_IXP23XX_ME_THREAD_A31_ME3 87 /* ME_THREAD_A */ | ||
| 110 | #define IRQ_IXP23XX_ME_THREAD_B0_ME0 88 /* ME_THREAD_B */ | ||
| 111 | #define IRQ_IXP23XX_ME_THREAD_B1_ME0 89 /* ME_THREAD_B */ | ||
| 112 | #define IRQ_IXP23XX_ME_THREAD_B2_ME0 90 /* ME_THREAD_B */ | ||
| 113 | #define IRQ_IXP23XX_ME_THREAD_B3_ME0 91 /* ME_THREAD_B */ | ||
| 114 | #define IRQ_IXP23XX_ME_THREAD_B4_ME0 92 /* ME_THREAD_B */ | ||
| 115 | #define IRQ_IXP23XX_ME_THREAD_B5_ME0 93 /* ME_THREAD_B */ | ||
| 116 | #define IRQ_IXP23XX_ME_THREAD_B6_ME0 94 /* ME_THREAD_B */ | ||
| 117 | #define IRQ_IXP23XX_ME_THREAD_B7_ME0 95 /* ME_THREAD_B */ | ||
| 118 | #define IRQ_IXP23XX_ME_THREAD_B8_ME1 96 /* ME_THREAD_B */ | ||
| 119 | #define IRQ_IXP23XX_ME_THREAD_B9_ME1 97 /* ME_THREAD_B */ | ||
| 120 | #define IRQ_IXP23XX_ME_THREAD_B10_ME1 98 /* ME_THREAD_B */ | ||
| 121 | #define IRQ_IXP23XX_ME_THREAD_B11_ME1 99 /* ME_THREAD_B */ | ||
| 122 | #define IRQ_IXP23XX_ME_THREAD_B12_ME1 100 /* ME_THREAD_B */ | ||
| 123 | #define IRQ_IXP23XX_ME_THREAD_B13_ME1 101 /* ME_THREAD_B */ | ||
| 124 | #define IRQ_IXP23XX_ME_THREAD_B14_ME1 102 /* ME_THREAD_B */ | ||
| 125 | #define IRQ_IXP23XX_ME_THREAD_B15_ME1 103 /* ME_THREAD_B */ | ||
| 126 | #define IRQ_IXP23XX_ME_THREAD_B16_ME2 104 /* ME_THREAD_B */ | ||
| 127 | #define IRQ_IXP23XX_ME_THREAD_B17_ME2 105 /* ME_THREAD_B */ | ||
| 128 | #define IRQ_IXP23XX_ME_THREAD_B18_ME2 106 /* ME_THREAD_B */ | ||
| 129 | #define IRQ_IXP23XX_ME_THREAD_B19_ME2 107 /* ME_THREAD_B */ | ||
| 130 | #define IRQ_IXP23XX_ME_THREAD_B20_ME2 108 /* ME_THREAD_B */ | ||
| 131 | #define IRQ_IXP23XX_ME_THREAD_B21_ME2 109 /* ME_THREAD_B */ | ||
| 132 | #define IRQ_IXP23XX_ME_THREAD_B22_ME2 110 /* ME_THREAD_B */ | ||
| 133 | #define IRQ_IXP23XX_ME_THREAD_B23_ME2 111 /* ME_THREAD_B */ | ||
| 134 | #define IRQ_IXP23XX_ME_THREAD_B24_ME3 112 /* ME_THREAD_B */ | ||
| 135 | #define IRQ_IXP23XX_ME_THREAD_B25_ME3 113 /* ME_THREAD_B */ | ||
| 136 | #define IRQ_IXP23XX_ME_THREAD_B26_ME3 114 /* ME_THREAD_B */ | ||
| 137 | #define IRQ_IXP23XX_ME_THREAD_B27_ME3 115 /* ME_THREAD_B */ | ||
| 138 | #define IRQ_IXP23XX_ME_THREAD_B28_ME3 116 /* ME_THREAD_B */ | ||
| 139 | #define IRQ_IXP23XX_ME_THREAD_B29_ME3 117 /* ME_THREAD_B */ | ||
| 140 | #define IRQ_IXP23XX_ME_THREAD_B30_ME3 118 /* ME_THREAD_B */ | ||
| 141 | #define IRQ_IXP23XX_ME_THREAD_B31_ME3 119 /* ME_THREAD_B */ | ||
| 142 | |||
| 143 | #define NUM_IXP23XX_RAW_IRQS 120 | ||
| 144 | |||
| 145 | #define IRQ_IXP23XX_INTA 120 /* Indirect pcxg_pci_int_rph */ | ||
| 146 | #define IRQ_IXP23XX_INTB 121 /* Indirect pcxg_pci_int_rph */ | ||
| 147 | |||
| 148 | #define NR_IXP23XX_IRQ (IRQ_IXP23XX_INTB + 1) | ||
| 149 | |||
| 150 | /* | ||
| 151 | * We default to 32 per-board IRQs. Increase this number if you need | ||
| 152 | * more, but keep it realistic. | ||
| 153 | */ | ||
| 154 | #define NR_IXP23XX_MACH_IRQS 32 | ||
| 155 | |||
| 156 | #define NR_IRQS NR_IXP23XX_IRQS + NR_IXP23XX_MACH_IRQS | ||
| 157 | |||
| 158 | #define IXP23XX_MACH_IRQ(irq) (NR_IXP23XX_IRQ + (irq)) | ||
| 159 | |||
| 160 | |||
| 161 | /* | ||
| 162 | * IXDP2351-specific interrupts | ||
| 163 | */ | ||
| 164 | |||
| 165 | /* | ||
| 166 | * External PCI interrupts signaled through INTB | ||
| 167 | * | ||
| 168 | */ | ||
| 169 | #define IXDP2351_INTB_IRQ_BASE 0 | ||
| 170 | #define IRQ_IXDP2351_INTA_82546 IXP23XX_MACH_IRQ(0) | ||
| 171 | #define IRQ_IXDP2351_INTB_82546 IXP23XX_MACH_IRQ(1) | ||
| 172 | #define IRQ_IXDP2351_SPCI_DB_0 IXP23XX_MACH_IRQ(2) | ||
| 173 | #define IRQ_IXDP2351_SPCI_DB_1 IXP23XX_MACH_IRQ(3) | ||
| 174 | #define IRQ_IXDP2351_SPCI_PMC_INTA IXP23XX_MACH_IRQ(4) | ||
| 175 | #define IRQ_IXDP2351_SPCI_PMC_INTB IXP23XX_MACH_IRQ(5) | ||
| 176 | #define IRQ_IXDP2351_SPCI_PMC_INTC IXP23XX_MACH_IRQ(6) | ||
| 177 | #define IRQ_IXDP2351_SPCI_PMC_INTD IXP23XX_MACH_IRQ(7) | ||
| 178 | #define IRQ_IXDP2351_SPCI_FIC IXP23XX_MACH_IRQ(8) | ||
| 179 | |||
| 180 | #define IXDP2351_INTB_IRQ_BIT(irq) (irq - IXP23XX_MACH_IRQ(0)) | ||
| 181 | #define IXDP2351_INTB_IRQ_MASK(irq) (1 << IXDP2351_INTB_IRQ_BIT(irq)) | ||
| 182 | #define IXDP2351_INTB_IRQ_VALID 0x01FF | ||
| 183 | #define IXDP2351_INTB_IRQ_NUM 16 | ||
| 184 | |||
| 185 | /* | ||
| 186 | * Other external interrupts signaled through INTA | ||
| 187 | */ | ||
| 188 | #define IXDP2351_INTA_IRQ_BASE 16 | ||
| 189 | #define IRQ_IXDP2351_IPMI_FROM IXP23XX_MACH_IRQ(16) | ||
| 190 | #define IRQ_IXDP2351_125US IXP23XX_MACH_IRQ(17) | ||
| 191 | #define IRQ_IXDP2351_DB_0_ADD IXP23XX_MACH_IRQ(18) | ||
| 192 | #define IRQ_IXDP2351_DB_1_ADD IXP23XX_MACH_IRQ(19) | ||
| 193 | #define IRQ_IXDP2351_DEBUG1 IXP23XX_MACH_IRQ(20) | ||
| 194 | #define IRQ_IXDP2351_ADD_UART IXP23XX_MACH_IRQ(21) | ||
| 195 | #define IRQ_IXDP2351_FIC_ADD IXP23XX_MACH_IRQ(24) | ||
| 196 | #define IRQ_IXDP2351_CS8900 IXP23XX_MACH_IRQ(25) | ||
| 197 | #define IRQ_IXDP2351_BBSRAM IXP23XX_MACH_IRQ(26) | ||
| 198 | #define IRQ_IXDP2351_CONFIG_MEDIA IXP23XX_MACH_IRQ(27) | ||
| 199 | #define IRQ_IXDP2351_CLOCK_REF IXP23XX_MACH_IRQ(28) | ||
| 200 | #define IRQ_IXDP2351_A10_NP IXP23XX_MACH_IRQ(29) | ||
| 201 | #define IRQ_IXDP2351_A11_NP IXP23XX_MACH_IRQ(30) | ||
| 202 | #define IRQ_IXDP2351_DEBUG_NP IXP23XX_MACH_IRQ(31) | ||
| 203 | |||
| 204 | #define IXDP2351_INTA_IRQ_BIT(irq) (irq - IXP23XX_MACH_IRQ(16)) | ||
| 205 | #define IXDP2351_INTA_IRQ_MASK(irq) (1 << IXDP2351_INTA_IRQ_BIT(irq)) | ||
| 206 | #define IXDP2351_INTA_IRQ_VALID 0xFF3F | ||
| 207 | #define IXDP2351_INTA_IRQ_NUM 16 | ||
| 208 | |||
| 209 | |||
| 210 | /* | ||
| 211 | * ADI RoadRunner IRQs | ||
| 212 | */ | ||
| 213 | #define IRQ_ROADRUNNER_PCI_INTA IRQ_IXP23XX_INTA | ||
| 214 | #define IRQ_ROADRUNNER_PCI_INTB IRQ_IXP23XX_INTB | ||
| 215 | #define IRQ_ROADRUNNER_PCI_INTC IRQ_IXP23XX_GPIO11 | ||
| 216 | #define IRQ_ROADRUNNER_PCI_INTD IRQ_IXP23XX_GPIO12 | ||
| 217 | |||
| 218 | /* | ||
| 219 | * Put new board definitions here | ||
| 220 | */ | ||
| 221 | |||
| 222 | |||
| 223 | #endif | ||
diff --git a/include/asm-arm/arch-ixp23xx/ixdp2351.h b/include/asm-arm/arch-ixp23xx/ixdp2351.h new file mode 100644 index 00000000000..4a24f8f1565 --- /dev/null +++ b/include/asm-arm/arch-ixp23xx/ixdp2351.h | |||
| @@ -0,0 +1,89 @@ | |||
| 1 | /* | ||
| 2 | * include/asm-arm/arch-ixp23xx/ixdp2351.h | ||
| 3 | * | ||
| 4 | * Register and other defines for IXDP2351 | ||
| 5 | * | ||
| 6 | * Copyright (c) 2002-2004 Intel Corp. | ||
| 7 | * Copytight (c) 2005 MontaVista Software, Inc. | ||
| 8 | * | ||
| 9 | * This program is free software; you can redistribute it and/or modify it | ||
| 10 | * under the terms of the GNU General Public License as published by the | ||
| 11 | * Free Software Foundation; either version 2 of the License, or (at your | ||
| 12 | * option) any later version. | ||
| 13 | */ | ||
| 14 | |||
| 15 | #ifndef __ASM_ARCH_IXDP2351_H | ||
| 16 | #define __ASM_ARCH_IXDP2351_H | ||
| 17 | |||
| 18 | /* | ||
| 19 | * NP module memory map | ||
| 20 | */ | ||
| 21 | #define IXDP2351_NP_PHYS_BASE (IXP23XX_EXP_BUS_CS4_BASE) | ||
| 22 | #define IXDP2351_NP_PHYS_SIZE 0x00100000 | ||
| 23 | #define IXDP2351_NP_VIRT_BASE 0xeff00000 | ||
| 24 | |||
| 25 | #define IXDP2351_VIRT_CS8900_BASE (IXDP2351_NP_VIRT_BASE) | ||
| 26 | #define IXDP2351_VIRT_CS8900_END (IXDP2351_VIRT_CS8900_BASE + 16) | ||
| 27 | |||
| 28 | #define IXDP2351_VIRT_NP_CPLD_BASE (IXP23XX_EXP_BUS_CS4_BASE_VIRT + 0x00010000) | ||
| 29 | |||
| 30 | #define IXDP2351_NP_CPLD_REG(reg) ((volatile u16 *)(IXDP2351_VIRT_NP_CPLD_BASE + reg)) | ||
| 31 | |||
| 32 | #define IXDP2351_NP_CPLD_RESET1_REG IXDP2351_NP_CPLD_REG(0x00) | ||
| 33 | #define IXDP2351_NP_CPLD_LED_REG IXDP2351_NP_CPLD_REG(0x02) | ||
| 34 | #define IXDP2351_NP_CPLD_VERSION_REG IXDP2351_NP_CPLD_REG(0x04) | ||
| 35 | |||
| 36 | /* | ||
| 37 | * Base board module memory map | ||
| 38 | */ | ||
| 39 | |||
| 40 | #define IXDP2351_BB_BASE_PHYS (IXP23XX_EXP_BUS_CS5_BASE) | ||
| 41 | #define IXDP2351_BB_SIZE 0x01000000 | ||
| 42 | #define IXDP2351_BB_BASE_VIRT (0xee000000) | ||
| 43 | |||
| 44 | #define IXDP2351_BB_AREA_BASE(offset) (IXDP2351_BB_BASE_VIRT + offset) | ||
| 45 | |||
| 46 | #define IXDP2351_VIRT_NVRAM_BASE IXDP2351_BB_AREA_BASE(0x0) | ||
| 47 | #define IXDP2351_NVRAM_SIZE (0x20000) | ||
| 48 | |||
| 49 | #define IXDP2351_VIRT_MB_IXF1104_BASE IXDP3251_BB_AREA_BASE(0x00020000) | ||
| 50 | #define IXDP2351_VIRT_ADD_UART_BASE IXDP2351_BB_AREA_BASE(0x000240C0) | ||
| 51 | #define IXDP2351_VIRT_FIC_BASE IXDP2351_BB_AREA_BASE(0x00200000) | ||
| 52 | #define IXDP2351_VIRT_DB0_BASE IXDP2351_BB_AREA_BASE(0x00400000) | ||
| 53 | #define IXDP2351_VIRT_DB1_BASE IXDP2351_BB_AREA_BASE(0x00600000) | ||
| 54 | #define IXDP2351_VIRT_CPLD_BASE IXDP2351_BB_AREA_BASE(0x00024000) | ||
| 55 | |||
| 56 | /* | ||
| 57 | * On board CPLD registers | ||
| 58 | */ | ||
| 59 | #define IXDP2351_CPLD_BB_REG(reg) ((volatile u16 *)(IXDP2351_VIRT_CPLD_BASE + reg)) | ||
| 60 | |||
| 61 | #define IXDP2351_CPLD_RESET0_REG IXDP2351_CPLD_BB_REG(0x00) | ||
| 62 | #define IXDP2351_CPLD_RESET1_REG IXDP2351_CPLD_BB_REG(0x04) | ||
| 63 | |||
| 64 | #define IXDP2351_CPLD_RESET1_MAGIC 0x55AA | ||
| 65 | #define IXDP2351_CPLD_RESET1_ENABLE 0x8000 | ||
| 66 | |||
| 67 | #define IXDP2351_CPLD_FPGA_CONFIG_REG IXDP2351_CPLD_BB_REG(0x08) | ||
| 68 | #define IXDP2351_CPLD_INTB_MASK_SET_REG IXDP2351_CPLD_BB_REG(0x10) | ||
| 69 | #define IXDP2351_CPLD_INTA_MASK_SET_REG IXDP2351_CPLD_BB_REG(0x14) | ||
| 70 | #define IXDP2351_CPLD_INTB_STAT_REG IXDP2351_CPLD_BB_REG(0x18) | ||
| 71 | #define IXDP2351_CPLD_INTA_STAT_REG IXDP2351_CPLD_BB_REG(0x1C) | ||
| 72 | #define IXDP2351_CPLD_INTB_RAW_REG IXDP2351_CPLD_BB_REG(0x20) /* read */ | ||
| 73 | #define IXDP2351_CPLD_INTA_RAW_REG IXDP2351_CPLD_BB_REG(0x24) /* read */ | ||
| 74 | #define IXDP2351_CPLD_INTB_MASK_CLR_REG IXDP2351_CPLD_INTB_RAW_REG /* write */ | ||
| 75 | #define IXDP2351_CPLD_INTA_MASK_CLR_REG IXDP2351_CPLD_INTA_RAW_REG /* write */ | ||
| 76 | #define IXDP2351_CPLD_INTB_SIM_REG IXDP2351_CPLD_BB_REG(0x28) | ||
| 77 | #define IXDP2351_CPLD_INTA_SIM_REG IXDP2351_CPLD_BB_REG(0x2C) | ||
| 78 | /* Interrupt bits are defined in irqs.h */ | ||
| 79 | #define IXDP2351_CPLD_BB_GBE0_REG IXDP2351_CPLD_BB_REG(0x30) | ||
| 80 | #define IXDP2351_CPLD_BB_GBE1_REG IXDP2351_CPLD_BB_REG(0x34) | ||
| 81 | |||
| 82 | /* #define IXDP2351_CPLD_BB_MISC_REG IXDP2351_CPLD_REG(0x1C) */ | ||
| 83 | /* #define IXDP2351_CPLD_BB_MISC_REV_MASK 0xFF */ | ||
| 84 | /* #define IXDP2351_CPLD_BB_GDXCS0_REG IXDP2351_CPLD_REG(0x24) */ | ||
| 85 | /* #define IXDP2351_CPLD_BB_GDXCS1_REG IXDP2351_CPLD_REG(0x28) */ | ||
| 86 | /* #define IXDP2351_CPLD_BB_CLOCK_REG IXDP2351_CPLD_REG(0x04) */ | ||
| 87 | |||
| 88 | |||
| 89 | #endif | ||
diff --git a/include/asm-arm/arch-ixp23xx/ixp23xx.h b/include/asm-arm/arch-ixp23xx/ixp23xx.h new file mode 100644 index 00000000000..e49e1ca61b1 --- /dev/null +++ b/include/asm-arm/arch-ixp23xx/ixp23xx.h | |||
| @@ -0,0 +1,306 @@ | |||
| 1 | /* | ||
| 2 | * include/asm-arm/arch-ixp23xx/ixp23xx.h | ||
| 3 | * | ||
| 4 | * Register definitions for IXP23XX | ||
| 5 | * | ||
| 6 | * Copyright (C) 2003-2005 Intel Corporation. | ||
| 7 | * Copyright (C) 2005 MontaVista Software, Inc. | ||
| 8 | * | ||
| 9 | * Maintainer: Deepak Saxena <dsaxena@plexity.net> | ||
| 10 | * | ||
| 11 | * This program is free software; you can redistribute it and/or modify | ||
| 12 | * it under the terms of the GNU General Public License version 2 as | ||
| 13 | * published by the Free Software Foundation. | ||
| 14 | */ | ||
| 15 | |||
| 16 | #ifndef __ASM_ARCH_IXP23XX_H | ||
| 17 | #define __ASM_ARCH_IXP23XX_H | ||
| 18 | |||
| 19 | /* | ||
| 20 | * IXP2300 linux memory map: | ||
| 21 | * | ||
| 22 | * virt phys size | ||
| 23 | * fffd0000 a0000000 64K XSI2CPP_CSR | ||
| 24 | * fffc0000 c4000000 4K EXP_CFG | ||
| 25 | * fff00000 c8000000 64K PERIPHERAL | ||
| 26 | * fe000000 1c0000000 16M CAP_CSR | ||
| 27 | * fd000000 1c8000000 16M MSF_CSR | ||
| 28 | * fb000000 16M --- | ||
| 29 | * fa000000 1d8000000 32M PCI_IO | ||
| 30 | * f8000000 1da000000 32M PCI_CFG | ||
| 31 | * f6000000 1de000000 32M PCI_CREG | ||
| 32 | * f4000000 32M --- | ||
| 33 | * f0000000 1e0000000 64M PCI_MEM | ||
| 34 | * e[c-f]000000 per-platform mappings | ||
| 35 | */ | ||
| 36 | |||
| 37 | |||
| 38 | /**************************************************************************** | ||
| 39 | * Static mappings. | ||
| 40 | ****************************************************************************/ | ||
| 41 | #define IXP23XX_XSI2CPP_CSR_PHYS 0xa0000000 | ||
| 42 | #define IXP23XX_XSI2CPP_CSR_VIRT 0xfffd0000 | ||
| 43 | #define IXP23XX_XSI2CPP_CSR_SIZE 0x00010000 | ||
| 44 | |||
| 45 | #define IXP23XX_EXP_CFG_PHYS 0xc4000000 | ||
| 46 | #define IXP23XX_EXP_CFG_VIRT 0xfffc0000 | ||
| 47 | #define IXP23XX_EXP_CFG_SIZE 0x00001000 | ||
| 48 | |||
| 49 | #define IXP23XX_PERIPHERAL_PHYS 0xc8000000 | ||
| 50 | #define IXP23XX_PERIPHERAL_VIRT 0xfff00000 | ||
| 51 | #define IXP23XX_PERIPHERAL_SIZE 0x00010000 | ||
| 52 | |||
| 53 | #define IXP23XX_CAP_CSR_PHYS 0x1c0000000ULL | ||
| 54 | #define IXP23XX_CAP_CSR_VIRT 0xfe000000 | ||
| 55 | #define IXP23XX_CAP_CSR_SIZE 0x01000000 | ||
| 56 | |||
| 57 | #define IXP23XX_MSF_CSR_PHYS 0x1c8000000ULL | ||
| 58 | #define IXP23XX_MSF_CSR_VIRT 0xfd000000 | ||
| 59 | #define IXP23XX_MSF_CSR_SIZE 0x01000000 | ||
| 60 | |||
| 61 | #define IXP23XX_PCI_IO_PHYS 0x1d8000000ULL | ||
| 62 | #define IXP23XX_PCI_IO_VIRT 0xfa000000 | ||
| 63 | #define IXP23XX_PCI_IO_SIZE 0x02000000 | ||
| 64 | |||
| 65 | #define IXP23XX_PCI_CFG_PHYS 0x1da000000ULL | ||
| 66 | #define IXP23XX_PCI_CFG_VIRT 0xf8000000 | ||
| 67 | #define IXP23XX_PCI_CFG_SIZE 0x02000000 | ||
| 68 | #define IXP23XX_PCI_CFG0_VIRT IXP23XX_PCI_CFG_VIRT | ||
| 69 | #define IXP23XX_PCI_CFG1_VIRT (IXP23XX_PCI_CFG_VIRT + 0x01000000) | ||
| 70 | |||
| 71 | #define IXP23XX_PCI_CREG_PHYS 0x1de000000ULL | ||
| 72 | #define IXP23XX_PCI_CREG_VIRT 0xf6000000 | ||
| 73 | #define IXP23XX_PCI_CREG_SIZE 0x02000000 | ||
| 74 | #define IXP23XX_PCI_CSR_VIRT (IXP23XX_PCI_CREG_VIRT + 0x01000000) | ||
| 75 | |||
| 76 | #define IXP23XX_PCI_MEM_START 0xe0000000 | ||
| 77 | #define IXP23XX_PCI_MEM_PHYS 0x1e0000000ULL | ||
| 78 | #define IXP23XX_PCI_MEM_VIRT 0xf0000000 | ||
| 79 | #define IXP23XX_PCI_MEM_SIZE 0x04000000 | ||
| 80 | |||
| 81 | |||
| 82 | /**************************************************************************** | ||
| 83 | * XSI2CPP CSRs. | ||
| 84 | ****************************************************************************/ | ||
| 85 | #define IXP23XX_XSI2CPP_REG(x) ((volatile unsigned long *)(IXP23XX_XSI2CPP_CSR_VIRT + (x))) | ||
| 86 | #define IXP23XX_CPP2XSI_CURR_XFER_REG3 IXP23XX_XSI2CPP_REG(0xf8) | ||
| 87 | #define IXP23XX_CPP2XSI_ADDR_31 (1 << 19) | ||
| 88 | #define IXP23XX_CPP2XSI_PSH_OFF (1 << 20) | ||
| 89 | #define IXP23XX_CPP2XSI_COH_OFF (1 << 21) | ||
| 90 | |||
| 91 | |||
| 92 | /**************************************************************************** | ||
| 93 | * Expansion Bus Config. | ||
| 94 | ****************************************************************************/ | ||
| 95 | #define IXP23XX_EXP_CFG_REG(x) ((volatile unsigned long *)(IXP23XX_EXP_CFG_VIRT + (x))) | ||
| 96 | #define IXP23XX_EXP_CS0 IXP23XX_EXP_CFG_REG(0x00) | ||
| 97 | #define IXP23XX_EXP_CS1 IXP23XX_EXP_CFG_REG(0x04) | ||
| 98 | #define IXP23XX_EXP_CS2 IXP23XX_EXP_CFG_REG(0x08) | ||
| 99 | #define IXP23XX_EXP_CS3 IXP23XX_EXP_CFG_REG(0x0c) | ||
| 100 | #define IXP23XX_EXP_CS4 IXP23XX_EXP_CFG_REG(0x10) | ||
| 101 | #define IXP23XX_EXP_CS5 IXP23XX_EXP_CFG_REG(0x14) | ||
| 102 | #define IXP23XX_EXP_CS6 IXP23XX_EXP_CFG_REG(0x18) | ||
| 103 | #define IXP23XX_EXP_CS7 IXP23XX_EXP_CFG_REG(0x1c) | ||
| 104 | #define IXP23XX_FLASH_WRITABLE (0x2) | ||
| 105 | #define IXP23XX_FLASH_BUS8 (0x1) | ||
| 106 | |||
| 107 | #define IXP23XX_EXP_CFG0 IXP23XX_EXP_CFG_REG(0x20) | ||
| 108 | #define IXP23XX_EXP_CFG1 IXP23XX_EXP_CFG_REG(0x24) | ||
| 109 | #define IXP23XX_EXP_CFG0_MEM_MAP (1 << 31) | ||
| 110 | #define IXP23XX_EXP_CFG0_XSCALE_SPEED_SEL (3 << 22) | ||
| 111 | #define IXP23XX_EXP_CFG0_XSCALE_SPEED_EN (1 << 21) | ||
| 112 | #define IXP23XX_EXP_CFG0_CPP_SPEED_SEL (3 << 19) | ||
| 113 | #define IXP23XX_EXP_CFG0_CPP_SPEED_EN (1 << 18) | ||
| 114 | #define IXP23XX_EXP_CFG0_PCI_SWIN (3 << 16) | ||
| 115 | #define IXP23XX_EXP_CFG0_PCI_DWIN (3 << 14) | ||
| 116 | #define IXP23XX_EXP_CFG0_PCI33_MODE (1 << 13) | ||
| 117 | #define IXP23XX_EXP_CFG0_QDR_SPEED_SEL (1 << 12) | ||
| 118 | #define IXP23XX_EXP_CFG0_CPP_DIV_SEL (1 << 5) | ||
| 119 | #define IXP23XX_EXP_CFG0_XSI_NOT_PRES (1 << 4) | ||
| 120 | #define IXP23XX_EXP_CFG0_PROM_BOOT (1 << 3) | ||
| 121 | #define IXP23XX_EXP_CFG0_PCI_ARB (1 << 2) | ||
| 122 | #define IXP23XX_EXP_CFG0_PCI_HOST (1 << 1) | ||
| 123 | #define IXP23XX_EXP_CFG0_FLASH_WIDTH (1 << 0) | ||
| 124 | |||
| 125 | #define IXP23XX_EXP_UNIT_FUSE IXP23XX_EXP_CFG_REG(0x28) | ||
| 126 | #define IXP23XX_EXP_MSF_MUX IXP23XX_EXP_CFG_REG(0x30) | ||
| 127 | |||
| 128 | #define IXP23XX_EXP_BUS_PHYS 0x90000000 | ||
| 129 | #define IXP23XX_EXP_BUS_WINDOW_SIZE 0x01000000 | ||
| 130 | |||
| 131 | #define IXP23XX_EXP_BUS_CS0_BASE (IXP23XX_EXP_BUS_PHYS + 0x00000000) | ||
| 132 | #define IXP23XX_EXP_BUS_CS1_BASE (IXP23XX_EXP_BUS_PHYS + 0x01000000) | ||
| 133 | #define IXP23XX_EXP_BUS_CS2_BASE (IXP23XX_EXP_BUS_PHYS + 0x02000000) | ||
| 134 | #define IXP23XX_EXP_BUS_CS3_BASE (IXP23XX_EXP_BUS_PHYS + 0x03000000) | ||
| 135 | #define IXP23XX_EXP_BUS_CS4_BASE (IXP23XX_EXP_BUS_PHYS + 0x04000000) | ||
| 136 | #define IXP23XX_EXP_BUS_CS5_BASE (IXP23XX_EXP_BUS_PHYS + 0x05000000) | ||
| 137 | #define IXP23XX_EXP_BUS_CS6_BASE (IXP23XX_EXP_BUS_PHYS + 0x06000000) | ||
| 138 | #define IXP23XX_EXP_BUS_CS7_BASE (IXP23XX_EXP_BUS_PHYS + 0x07000000) | ||
| 139 | |||
| 140 | |||
| 141 | /**************************************************************************** | ||
| 142 | * Peripherals. | ||
| 143 | ****************************************************************************/ | ||
| 144 | #define IXP23XX_UART1_VIRT (IXP23XX_PERIPHERAL_VIRT + 0x0000) | ||
| 145 | #define IXP23XX_UART2_VIRT (IXP23XX_PERIPHERAL_VIRT + 0x1000) | ||
| 146 | #define IXP23XX_PMU_VIRT (IXP23XX_PERIPHERAL_VIRT + 0x2000) | ||
| 147 | #define IXP23XX_INTC_VIRT (IXP23XX_PERIPHERAL_VIRT + 0x3000) | ||
| 148 | #define IXP23XX_GPIO_VIRT (IXP23XX_PERIPHERAL_VIRT + 0x4000) | ||
| 149 | #define IXP23XX_TIMER_VIRT (IXP23XX_PERIPHERAL_VIRT + 0x5000) | ||
| 150 | #define IXP23XX_NPE0_VIRT (IXP23XX_PERIPHERAL_VIRT + 0x6000) | ||
| 151 | #define IXP23XX_DSR_VIRT (IXP23XX_PERIPHERAL_VIRT + 0x7000) | ||
| 152 | #define IXP23XX_NPE1_VIRT (IXP23XX_PERIPHERAL_VIRT + 0x8000) | ||
| 153 | #define IXP23XX_ETH0_VIRT (IXP23XX_PERIPHERAL_VIRT + 0x9000) | ||
| 154 | #define IXP23XX_ETH1_VIRT (IXP23XX_PERIPHERAL_VIRT + 0xA000) | ||
| 155 | #define IXP23XX_GIG0_VIRT (IXP23XX_PERIPHERAL_VIRT + 0xB000) | ||
| 156 | #define IXP23XX_GIG1_VIRT (IXP23XX_PERIPHERAL_VIRT + 0xC000) | ||
| 157 | #define IXP23XX_DDRS_VIRT (IXP23XX_PERIPHERAL_VIRT + 0xD000) | ||
| 158 | |||
| 159 | #define IXP23XX_UART1_PHYS (IXP23XX_PERIPHERAL_PHYS + 0x0000) | ||
| 160 | #define IXP23XX_UART2_PHYS (IXP23XX_PERIPHERAL_PHYS + 0x1000) | ||
| 161 | #define IXP23XX_PMU_PHYS (IXP23XX_PERIPHERAL_PHYS + 0x2000) | ||
| 162 | #define IXP23XX_INTC_PHYS (IXP23XX_PERIPHERAL_PHYS + 0x3000) | ||
| 163 | #define IXP23XX_GPIO_PHYS (IXP23XX_PERIPHERAL_PHYS + 0x4000) | ||
| 164 | #define IXP23XX_TIMER_PHYS (IXP23XX_PERIPHERAL_PHYS + 0x5000) | ||
| 165 | #define IXP23XX_NPE0_PHYS (IXP23XX_PERIPHERAL_PHYS + 0x6000) | ||
| 166 | #define IXP23XX_DSR_PHYS (IXP23XX_PERIPHERAL_PHYS + 0x7000) | ||
| 167 | #define IXP23XX_NPE1_PHYS (IXP23XX_PERIPHERAL_PHYS + 0x8000) | ||
| 168 | #define IXP23XX_ETH0_PHYS (IXP23XX_PERIPHERAL_PHYS + 0x9000) | ||
| 169 | #define IXP23XX_ETH1_PHYS (IXP23XX_PERIPHERAL_PHYS + 0xA000) | ||
| 170 | #define IXP23XX_GIG0_PHYS (IXP23XX_PERIPHERAL_PHYS + 0xB000) | ||
| 171 | #define IXP23XX_GIG1_PHYS (IXP23XX_PERIPHERAL_PHYS + 0xC000) | ||
| 172 | #define IXP23XX_DDRS_PHYS (IXP23XX_PERIPHERAL_PHYS + 0xD000) | ||
| 173 | |||
| 174 | |||
| 175 | /**************************************************************************** | ||
| 176 | * Interrupt controller. | ||
| 177 | ****************************************************************************/ | ||
| 178 | #define IXP23XX_INTC_REG(x) ((volatile unsigned long *)(IXP23XX_INTC_VIRT + (x))) | ||
| 179 | #define IXP23XX_INTR_ST1 IXP23XX_INTC_REG(0x00) | ||
| 180 | #define IXP23XX_INTR_ST2 IXP23XX_INTC_REG(0x04) | ||
| 181 | #define IXP23XX_INTR_ST3 IXP23XX_INTC_REG(0x08) | ||
| 182 | #define IXP23XX_INTR_ST4 IXP23XX_INTC_REG(0x0c) | ||
| 183 | #define IXP23XX_INTR_EN1 IXP23XX_INTC_REG(0x10) | ||
| 184 | #define IXP23XX_INTR_EN2 IXP23XX_INTC_REG(0x14) | ||
| 185 | #define IXP23XX_INTR_EN3 IXP23XX_INTC_REG(0x18) | ||
| 186 | #define IXP23XX_INTR_EN4 IXP23XX_INTC_REG(0x1c) | ||
| 187 | #define IXP23XX_INTR_SEL1 IXP23XX_INTC_REG(0x20) | ||
| 188 | #define IXP23XX_INTR_SEL2 IXP23XX_INTC_REG(0x24) | ||
| 189 | #define IXP23XX_INTR_SEL3 IXP23XX_INTC_REG(0x28) | ||
| 190 | #define IXP23XX_INTR_SEL4 IXP23XX_INTC_REG(0x2c) | ||
| 191 | #define IXP23XX_INTR_IRQ_ST1 IXP23XX_INTC_REG(0x30) | ||
| 192 | #define IXP23XX_INTR_IRQ_ST2 IXP23XX_INTC_REG(0x34) | ||
| 193 | #define IXP23XX_INTR_IRQ_ST3 IXP23XX_INTC_REG(0x38) | ||
| 194 | #define IXP23XX_INTR_IRQ_ST4 IXP23XX_INTC_REG(0x3c) | ||
| 195 | #define IXP23XX_INTR_IRQ_ENC_ST_OFFSET 0x54 | ||
| 196 | |||
| 197 | |||
| 198 | /**************************************************************************** | ||
| 199 | * GPIO. | ||
| 200 | ****************************************************************************/ | ||
| 201 | #define IXP23XX_GPIO_REG(x) ((volatile unsigned long *)(IXP23XX_GPIO_VIRT + (x))) | ||
| 202 | #define IXP23XX_GPIO_GPOUTR IXP23XX_GPIO_REG(0x00) | ||
| 203 | #define IXP23XX_GPIO_GPOER IXP23XX_GPIO_REG(0x04) | ||
| 204 | #define IXP23XX_GPIO_GPINR IXP23XX_GPIO_REG(0x08) | ||
| 205 | #define IXP23XX_GPIO_GPISR IXP23XX_GPIO_REG(0x0c) | ||
| 206 | #define IXP23XX_GPIO_GPIT1R IXP23XX_GPIO_REG(0x10) | ||
| 207 | #define IXP23XX_GPIO_GPIT2R IXP23XX_GPIO_REG(0x14) | ||
| 208 | #define IXP23XX_GPIO_GPCLKR IXP23XX_GPIO_REG(0x18) | ||
| 209 | #define IXP23XX_GPIO_GPDBSELR IXP23XX_GPIO_REG(0x1c) | ||
| 210 | |||
| 211 | #define IXP23XX_GPIO_STYLE_MASK 0x7 | ||
| 212 | #define IXP23XX_GPIO_STYLE_ACTIVE_HIGH 0x0 | ||
| 213 | #define IXP23XX_GPIO_STYLE_ACTIVE_LOW 0x1 | ||
| 214 | #define IXP23XX_GPIO_STYLE_RISING_EDGE 0x2 | ||
| 215 | #define IXP23XX_GPIO_STYLE_FALLING_EDGE 0x3 | ||
| 216 | #define IXP23XX_GPIO_STYLE_TRANSITIONAL 0x4 | ||
| 217 | |||
| 218 | #define IXP23XX_GPIO_STYLE_SIZE 3 | ||
| 219 | |||
| 220 | |||
| 221 | /**************************************************************************** | ||
| 222 | * Timer. | ||
| 223 | ****************************************************************************/ | ||
| 224 | #define IXP23XX_TIMER_REG(x) ((volatile unsigned long *)(IXP23XX_TIMER_VIRT + (x))) | ||
| 225 | #define IXP23XX_TIMER_CONT IXP23XX_TIMER_REG(0x00) | ||
| 226 | #define IXP23XX_TIMER1_TIMESTAMP IXP23XX_TIMER_REG(0x04) | ||
| 227 | #define IXP23XX_TIMER1_RELOAD IXP23XX_TIMER_REG(0x08) | ||
| 228 | #define IXP23XX_TIMER2_TIMESTAMP IXP23XX_TIMER_REG(0x0c) | ||
| 229 | #define IXP23XX_TIMER2_RELOAD IXP23XX_TIMER_REG(0x10) | ||
| 230 | #define IXP23XX_TIMER_WDOG IXP23XX_TIMER_REG(0x14) | ||
| 231 | #define IXP23XX_TIMER_WDOG_EN IXP23XX_TIMER_REG(0x18) | ||
| 232 | #define IXP23XX_TIMER_WDOG_KEY IXP23XX_TIMER_REG(0x1c) | ||
| 233 | #define IXP23XX_TIMER_WDOG_KEY_MAGIC 0x482e | ||
| 234 | #define IXP23XX_TIMER_STATUS IXP23XX_TIMER_REG(0x20) | ||
| 235 | #define IXP23XX_TIMER_SOFT_RESET IXP23XX_TIMER_REG(0x24) | ||
| 236 | #define IXP23XX_TIMER_SOFT_RESET_EN IXP23XX_TIMER_REG(0x28) | ||
| 237 | |||
| 238 | #define IXP23XX_TIMER_ENABLE (1 << 0) | ||
| 239 | #define IXP23XX_TIMER_ONE_SHOT (1 << 1) | ||
| 240 | /* Low order bits of reload value ignored */ | ||
| 241 | #define IXP23XX_TIMER_RELOAD_MASK (0x3) | ||
| 242 | #define IXP23XX_TIMER_DISABLED (0x0) | ||
| 243 | #define IXP23XX_TIMER1_INT_PEND (1 << 0) | ||
| 244 | #define IXP23XX_TIMER2_INT_PEND (1 << 1) | ||
| 245 | #define IXP23XX_TIMER_STATUS_TS_PEND (1 << 2) | ||
| 246 | #define IXP23XX_TIMER_STATUS_WDOG_PEND (1 << 3) | ||
| 247 | #define IXP23XX_TIMER_STATUS_WARM_RESET (1 << 4) | ||
| 248 | |||
| 249 | |||
| 250 | /**************************************************************************** | ||
| 251 | * CAP CSRs. | ||
| 252 | ****************************************************************************/ | ||
| 253 | #define IXP23XX_GLOBAL_REG(x) ((volatile unsigned long *)(IXP23XX_CAP_CSR_VIRT + 0x4a00 + (x))) | ||
| 254 | #define IXP23XX_PROD_IDG IXP23XX_GLOBAL_REG(0x00) | ||
| 255 | #define IXP23XX_MISC_CONTROL IXP23XX_GLOBAL_REG(0x04) | ||
| 256 | #define IXP23XX_MSF_CLK_CNTRL IXP23XX_GLOBAL_REG(0x08) | ||
| 257 | #define IXP23XX_RESET0 IXP23XX_GLOBAL_REG(0x0c) | ||
| 258 | #define IXP23XX_RESET1 IXP23XX_GLOBAL_REG(0x10) | ||
| 259 | #define IXP23XX_STRAP_OPTIONS IXP23XX_GLOBAL_REG(0x18) | ||
| 260 | |||
| 261 | #define IXP23XX_ENABLE_WATCHDOG (1 << 24) | ||
| 262 | #define IXP23XX_SHPC_INIT_COMP (1 << 21) | ||
| 263 | #define IXP23XX_RST_ALL (1 << 16) | ||
| 264 | #define IXP23XX_RESET_PCI (1 << 2) | ||
| 265 | #define IXP23XX_PCI_UNIT_RESET (1 << 1) | ||
| 266 | #define IXP23XX_XSCALE_RESET (1 << 0) | ||
| 267 | |||
| 268 | |||
| 269 | /**************************************************************************** | ||
| 270 | * PCI CSRs. | ||
| 271 | ****************************************************************************/ | ||
| 272 | #define IXP23XX_PCI_CREG(x) ((volatile unsigned long *)(IXP23XX_PCI_CREG_VIRT + (x))) | ||
| 273 | #define IXP23XX_PCI_CMDSTAT IXP23XX_PCI_CREG(0x04) | ||
| 274 | #define IXP23XX_PCI_SRAM_BAR IXP23XX_PCI_CREG(0x14) | ||
| 275 | #define IXP23XX_PCI_SDRAM_BAR IXP23XX_PCI_CREG(0x18) | ||
| 276 | |||
| 277 | |||
| 278 | #define IXP23XX_PCI_CSR(x) ((volatile unsigned long *)(IXP23XX_PCI_CREG_VIRT + 0x01000000 + (x))) | ||
| 279 | #define IXP23XX_PCI_OUT_INT_STATUS IXP23XX_PCI_CSR(0x0030) | ||
| 280 | #define IXP23XX_PCI_OUT_INT_MASK IXP23XX_PCI_CSR(0x0034) | ||
| 281 | #define IXP23XX_PCI_SRAM_BASE_ADDR_MASK IXP23XX_PCI_CSR(0x00fc) | ||
| 282 | #define IXP23XX_PCI_DRAM_BASE_ADDR_MASK IXP23XX_PCI_CSR(0x0100) | ||
| 283 | #define IXP23XX_PCI_CONTROL IXP23XX_PCI_CSR(0x013c) | ||
| 284 | #define IXP23XX_PCI_ADDR_EXT IXP23XX_PCI_CSR(0x0140) | ||
| 285 | #define IXP23XX_PCI_ME_PUSH_STATUS IXP23XX_PCI_CSR(0x0148) | ||
| 286 | #define IXP23XX_PCI_ME_PUSH_EN IXP23XX_PCI_CSR(0x014c) | ||
| 287 | #define IXP23XX_PCI_ERR_STATUS IXP23XX_PCI_CSR(0x0150) | ||
| 288 | #define IXP23XX_PCI_ERROR_STATUS IXP23XX_PCI_CSR(0x0150) | ||
| 289 | #define IXP23XX_PCI_ERR_ENABLE IXP23XX_PCI_CSR(0x0154) | ||
| 290 | #define IXP23XX_PCI_XSCALE_INT_STATUS IXP23XX_PCI_CSR(0x0158) | ||
| 291 | #define IXP23XX_PCI_XSCALE_INT_ENABLE IXP23XX_PCI_CSR(0x015c) | ||
| 292 | #define IXP23XX_PCI_CPP_ADDR_BITS IXP23XX_PCI_CSR(0x0160) | ||
| 293 | |||
| 294 | |||
| 295 | #ifndef __ASSEMBLY__ | ||
| 296 | /* | ||
| 297 | * Is system memory on the XSI or CPP bus? | ||
| 298 | */ | ||
| 299 | static inline unsigned ixp23xx_cpp_boot(void) | ||
| 300 | { | ||
| 301 | return (*IXP23XX_EXP_CFG0 & IXP23XX_EXP_CFG0_XSI_NOT_PRES); | ||
| 302 | } | ||
| 303 | #endif | ||
| 304 | |||
| 305 | |||
| 306 | #endif | ||
diff --git a/include/asm-arm/arch-ixp23xx/memory.h b/include/asm-arm/arch-ixp23xx/memory.h new file mode 100644 index 00000000000..bebcf0aa0d7 --- /dev/null +++ b/include/asm-arm/arch-ixp23xx/memory.h | |||
| @@ -0,0 +1,46 @@ | |||
| 1 | /* | ||
| 2 | * include/asm-arm/arch-ixp23xx/memory.h | ||
| 3 | * | ||
| 4 | * Copyright (c) 2003-2004 Intel Corp. | ||
| 5 | * | ||
| 6 | * This program is free software; you can redistribute it and/or modify it | ||
| 7 | * under the terms of the GNU General Public License as published by the | ||
| 8 | * Free Software Foundation; either version 2 of the License, or (at your | ||
| 9 | * option) any later version. | ||
| 10 | */ | ||
| 11 | |||
| 12 | #ifndef __ASM_ARCH_MEMORY_H | ||
| 13 | #define __ASM_ARCH_MEMORY_H | ||
| 14 | |||
| 15 | #include <asm/hardware.h> | ||
| 16 | |||
| 17 | /* | ||
| 18 | * Physical DRAM offset. | ||
| 19 | */ | ||
| 20 | #define PHYS_OFFSET (0x00000000) | ||
| 21 | |||
| 22 | |||
| 23 | /* | ||
| 24 | * Virtual view <-> DMA view memory address translations | ||
| 25 | * virt_to_bus: Used to translate the virtual address to an | ||
| 26 | * address suitable to be passed to set_dma_addr | ||
| 27 | * bus_to_virt: Used to convert an address for DMA operations | ||
| 28 | * to an address that the kernel can use. | ||
| 29 | */ | ||
| 30 | #ifndef __ASSEMBLY__ | ||
| 31 | |||
| 32 | #define __virt_to_bus(v) \ | ||
| 33 | ({ unsigned int ret; \ | ||
| 34 | ret = ((__virt_to_phys(v) - 0x00000000) + \ | ||
| 35 | (*((volatile int *)IXP23XX_PCI_SDRAM_BAR) & 0xfffffff0)); \ | ||
| 36 | ret; }) | ||
| 37 | |||
| 38 | #define __bus_to_virt(b) \ | ||
| 39 | ({ unsigned int data; \ | ||
| 40 | data = *((volatile int *)IXP23XX_PCI_SDRAM_BAR); \ | ||
| 41 | __phys_to_virt((((b - (data & 0xfffffff0)) + 0x00000000))); }) | ||
| 42 | |||
| 43 | #endif | ||
| 44 | |||
| 45 | |||
| 46 | #endif | ||
diff --git a/include/asm-arm/arch-ixp23xx/platform.h b/include/asm-arm/arch-ixp23xx/platform.h new file mode 100644 index 00000000000..f85b4685a49 --- /dev/null +++ b/include/asm-arm/arch-ixp23xx/platform.h | |||
| @@ -0,0 +1,31 @@ | |||
| 1 | /* | ||
| 2 | * include/asm-arm/arch-ixp23xx/platform.h | ||
| 3 | * | ||
| 4 | * Various bits of code used by platform-level code. | ||
| 5 | * | ||
| 6 | * Author: Deepak Saxena <dsaxena@plexity.net> | ||
| 7 | * | ||
| 8 | * Copyright 2005 (c) MontaVista Software, Inc. | ||
| 9 | * | ||
| 10 | * This file is licensed under the terms of the GNU General Public | ||
| 11 | * License version 2. This program is licensed "as is" without any | ||
| 12 | * warranty of any kind, whether express or implied. | ||
| 13 | */ | ||
| 14 | |||
| 15 | #ifndef __ASSEMBLY__ | ||
| 16 | |||
| 17 | struct pci_sys_data; | ||
| 18 | |||
| 19 | void ixp23xx_map_io(void); | ||
| 20 | void ixp23xx_init_irq(void); | ||
| 21 | void ixp23xx_sys_init(void); | ||
| 22 | int ixp23xx_pci_setup(int, struct pci_sys_data *); | ||
| 23 | void ixp23xx_pci_preinit(void); | ||
| 24 | struct pci_bus *ixp23xx_pci_scan_bus(int, struct pci_sys_data*); | ||
| 25 | |||
| 26 | extern struct sys_timer ixp23xx_timer; | ||
| 27 | |||
| 28 | #define IXP23XX_UART_XTAL 14745600 | ||
| 29 | |||
| 30 | |||
| 31 | #endif | ||
diff --git a/include/asm-arm/arch-ixp23xx/system.h b/include/asm-arm/arch-ixp23xx/system.h new file mode 100644 index 00000000000..925e6b0c338 --- /dev/null +++ b/include/asm-arm/arch-ixp23xx/system.h | |||
| @@ -0,0 +1,33 @@ | |||
| 1 | /* | ||
| 2 | * include/asm-arm/arch-ixp23xx/system.h | ||
| 3 | * | ||
| 4 | * Copyright (C) 2003 Intel Corporation. | ||
| 5 | * | ||
| 6 | * This program is free software; you can redistribute it and/or modify | ||
| 7 | * it under the terms of the GNU General Public License version 2 as | ||
| 8 | * published by the Free Software Foundation. | ||
| 9 | */ | ||
| 10 | |||
| 11 | #include <asm/hardware.h> | ||
| 12 | #include <asm/mach-types.h> | ||
| 13 | |||
| 14 | static inline void arch_idle(void) | ||
| 15 | { | ||
| 16 | #if 0 | ||
| 17 | if (!hlt_counter) | ||
| 18 | cpu_do_idle(); | ||
| 19 | #endif | ||
| 20 | } | ||
| 21 | |||
| 22 | static inline void arch_reset(char mode) | ||
| 23 | { | ||
| 24 | /* First try machine specific support */ | ||
| 25 | if (machine_is_ixdp2351()) { | ||
| 26 | *IXDP2351_CPLD_RESET1_REG = IXDP2351_CPLD_RESET1_MAGIC; | ||
| 27 | (void) *IXDP2351_CPLD_RESET1_REG; | ||
| 28 | *IXDP2351_CPLD_RESET1_REG = IXDP2351_CPLD_RESET1_ENABLE; | ||
| 29 | } | ||
| 30 | |||
| 31 | /* Use on-chip reset capability */ | ||
| 32 | *IXP23XX_RESET0 |= IXP23XX_RST_ALL; | ||
| 33 | } | ||
diff --git a/include/asm-arm/arch-ixp23xx/time.h b/include/asm-arm/arch-ixp23xx/time.h new file mode 100644 index 00000000000..f6828fdd288 --- /dev/null +++ b/include/asm-arm/arch-ixp23xx/time.h | |||
| @@ -0,0 +1,3 @@ | |||
| 1 | /* | ||
| 2 | * include/asm-arm/arch-ixp23xx/time.h | ||
| 3 | */ | ||
diff --git a/include/asm-arm/arch-ixp23xx/timex.h b/include/asm-arm/arch-ixp23xx/timex.h new file mode 100644 index 00000000000..516f72fe608 --- /dev/null +++ b/include/asm-arm/arch-ixp23xx/timex.h | |||
| @@ -0,0 +1,7 @@ | |||
| 1 | /* | ||
| 2 | * include/asm-arm/arch-ixp23xx/timex.h | ||
| 3 | * | ||
| 4 | * XScale architecture timex specifications | ||
| 5 | */ | ||
| 6 | |||
| 7 | #define CLOCK_TICK_RATE 75000000 | ||
diff --git a/include/asm-arm/arch-ixp23xx/uncompress.h b/include/asm-arm/arch-ixp23xx/uncompress.h new file mode 100644 index 00000000000..62623fa9b2f --- /dev/null +++ b/include/asm-arm/arch-ixp23xx/uncompress.h | |||
| @@ -0,0 +1,45 @@ | |||
| 1 | /* | ||
| 2 | * include/asm-arm/arch-ixp23xx/uncompress.h | ||
| 3 | * | ||
| 4 | * Copyright (C) 2002-2004 Intel Corporation. | ||
| 5 | * | ||
| 6 | * This program is free software; you can redistribute it and/or modify | ||
| 7 | * it under the terms of the GNU General Public License version 2 as | ||
| 8 | * published by the Free Software Foundation. | ||
| 9 | */ | ||
| 10 | |||
| 11 | #ifndef __ASM_ARCH_UNCOMPRESS_H | ||
| 12 | #define __ASM_ARCH_UNCOMPRESS_H | ||
| 13 | |||
| 14 | #include <asm/hardware.h> | ||
| 15 | #include <linux/serial_reg.h> | ||
| 16 | |||
| 17 | #define UART_BASE ((volatile u32 *)IXP23XX_UART1_PHYS) | ||
| 18 | |||
| 19 | static __inline__ void putc(char c) | ||
| 20 | { | ||
| 21 | int j; | ||
| 22 | |||
| 23 | for (j = 0; j < 0x1000; j++) { | ||
| 24 | if (UART_BASE[UART_LSR] & UART_LSR_THRE) | ||
| 25 | break; | ||
| 26 | } | ||
| 27 | |||
| 28 | UART_BASE[UART_TX] = c; | ||
| 29 | } | ||
| 30 | |||
| 31 | static void putstr(const char *s) | ||
| 32 | { | ||
| 33 | while (*s) { | ||
| 34 | putc(*s); | ||
| 35 | if (*s == '\n') | ||
| 36 | putc('\r'); | ||
| 37 | s++; | ||
| 38 | } | ||
| 39 | } | ||
| 40 | |||
| 41 | #define arch_decomp_setup() | ||
| 42 | #define arch_decomp_wdog() | ||
| 43 | |||
| 44 | |||
| 45 | #endif | ||
diff --git a/include/asm-arm/arch-ixp23xx/vmalloc.h b/include/asm-arm/arch-ixp23xx/vmalloc.h new file mode 100644 index 00000000000..9f256665854 --- /dev/null +++ b/include/asm-arm/arch-ixp23xx/vmalloc.h | |||
| @@ -0,0 +1,10 @@ | |||
| 1 | /* | ||
| 2 | * include/asm-arm/arch-ixp23xx/vmalloc.h | ||
| 3 | * | ||
| 4 | * Copyright (c) 2005 MontaVista Software, Inc. | ||
| 5 | * | ||
| 6 | * NPU mappings end at 0xf0000000 and we allocate 64MB for board | ||
| 7 | * specific static I/O. | ||
| 8 | */ | ||
| 9 | |||
| 10 | #define VMALLOC_END (0xec000000) | ||
