diff options
author | Greg Ungerer <gerg@snapgear.com> | 2005-09-01 20:42:52 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@evo.osdl.org> | 2005-09-02 03:57:29 -0400 |
commit | b5aaf3f71cf5a6115cf76671b011de0209223fc2 (patch) | |
tree | 29a2f997df94da3de8dc43903f1f89661c3a33c1 /arch/m68knommu | |
parent | 138307b475286a5bcc985b06b3e71fcd33dd5e2c (diff) |
[PATCH] m68knommu: 523x ColdFire processor init code
Low level initialization code for the 523x ColdFire processor family.
Signed-off-by: Greg Ungerer <gerg@uclinux.com>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'arch/m68knommu')
-rw-r--r-- | arch/m68knommu/platform/523x/config.c | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/arch/m68knommu/platform/523x/config.c b/arch/m68knommu/platform/523x/config.c new file mode 100644 index 000000000000..22767ce506e0 --- /dev/null +++ b/arch/m68knommu/platform/523x/config.c | |||
@@ -0,0 +1,82 @@ | |||
1 | /***************************************************************************/ | ||
2 | |||
3 | /* | ||
4 | * linux/arch/m68knommu/platform/523x/config.c | ||
5 | * | ||
6 | * Sub-architcture dependant initialization code for the Freescale | ||
7 | * 523x CPUs. | ||
8 | * | ||
9 | * Copyright (C) 1999-2005, Greg Ungerer (gerg@snapgear.com) | ||
10 | * Copyright (C) 2001-2003, SnapGear Inc. (www.snapgear.com) | ||
11 | */ | ||
12 | |||
13 | /***************************************************************************/ | ||
14 | |||
15 | #include <linux/config.h> | ||
16 | #include <linux/kernel.h> | ||
17 | #include <linux/sched.h> | ||
18 | #include <linux/param.h> | ||
19 | #include <linux/init.h> | ||
20 | #include <linux/interrupt.h> | ||
21 | #include <asm/dma.h> | ||
22 | #include <asm/traps.h> | ||
23 | #include <asm/machdep.h> | ||
24 | #include <asm/coldfire.h> | ||
25 | #include <asm/mcfsim.h> | ||
26 | #include <asm/mcfdma.h> | ||
27 | |||
28 | /***************************************************************************/ | ||
29 | |||
30 | void coldfire_pit_tick(void); | ||
31 | void coldfire_pit_init(irqreturn_t (*handler)(int, void *, struct pt_regs *)); | ||
32 | unsigned long coldfire_pit_offset(void); | ||
33 | void coldfire_trap_init(void); | ||
34 | void coldfire_reset(void); | ||
35 | |||
36 | /***************************************************************************/ | ||
37 | |||
38 | /* | ||
39 | * DMA channel base address table. | ||
40 | */ | ||
41 | unsigned int dma_base_addr[MAX_M68K_DMA_CHANNELS] = { | ||
42 | MCF_MBAR + MCFDMA_BASE0, | ||
43 | }; | ||
44 | |||
45 | unsigned int dma_device_address[MAX_M68K_DMA_CHANNELS]; | ||
46 | |||
47 | /***************************************************************************/ | ||
48 | |||
49 | void mcf_disableall(void) | ||
50 | { | ||
51 | *((volatile unsigned long *) (MCF_IPSBAR + MCFICM_INTC0 + MCFINTC_IMRH)) = 0xffffffff; | ||
52 | *((volatile unsigned long *) (MCF_IPSBAR + MCFICM_INTC0 + MCFINTC_IMRL)) = 0xffffffff; | ||
53 | } | ||
54 | |||
55 | /***************************************************************************/ | ||
56 | |||
57 | void mcf_autovector(unsigned int vec) | ||
58 | { | ||
59 | /* Everything is auto-vectored on the 5272 */ | ||
60 | } | ||
61 | |||
62 | /***************************************************************************/ | ||
63 | |||
64 | void config_BSP(char *commandp, int size) | ||
65 | { | ||
66 | mcf_disableall(); | ||
67 | |||
68 | #ifdef CONFIG_BOOTPARAM | ||
69 | strncpy(commandp, CONFIG_BOOTPARAM_STRING, size); | ||
70 | commandp[size-1] = 0; | ||
71 | #else | ||
72 | memset(commandp, 0, size); | ||
73 | #endif | ||
74 | |||
75 | mach_sched_init = coldfire_pit_init; | ||
76 | mach_tick = coldfire_pit_tick; | ||
77 | mach_gettimeoffset = coldfire_pit_offset; | ||
78 | mach_trap_init = coldfire_trap_init; | ||
79 | mach_reset = coldfire_reset; | ||
80 | } | ||
81 | |||
82 | /***************************************************************************/ | ||