diff options
Diffstat (limited to 'include/asm-cris/arch-v10')
-rw-r--r-- | include/asm-cris/arch-v10/atomic.h | 7 | ||||
-rw-r--r-- | include/asm-cris/arch-v10/bitops.h | 2 | ||||
-rw-r--r-- | include/asm-cris/arch-v10/dma.h | 28 | ||||
-rw-r--r-- | include/asm-cris/arch-v10/elf.h | 10 | ||||
-rw-r--r-- | include/asm-cris/arch-v10/ide.h | 99 | ||||
-rw-r--r-- | include/asm-cris/arch-v10/io.h | 1 | ||||
-rw-r--r-- | include/asm-cris/arch-v10/io_interface_mux.h | 75 | ||||
-rw-r--r-- | include/asm-cris/arch-v10/irq.h | 27 | ||||
-rw-r--r-- | include/asm-cris/arch-v10/memmap.h | 22 | ||||
-rw-r--r-- | include/asm-cris/arch-v10/mmu.h | 5 | ||||
-rw-r--r-- | include/asm-cris/arch-v10/offset.h | 2 | ||||
-rw-r--r-- | include/asm-cris/arch-v10/processor.h | 8 | ||||
-rw-r--r-- | include/asm-cris/arch-v10/system.h | 2 |
13 files changed, 261 insertions, 27 deletions
diff --git a/include/asm-cris/arch-v10/atomic.h b/include/asm-cris/arch-v10/atomic.h new file mode 100644 index 000000000000..6ef5e7d09024 --- /dev/null +++ b/include/asm-cris/arch-v10/atomic.h | |||
@@ -0,0 +1,7 @@ | |||
1 | #ifndef __ASM_CRIS_ARCH_ATOMIC__ | ||
2 | #define __ASM_CRIS_ARCH_ATOMIC__ | ||
3 | |||
4 | #define cris_atomic_save(addr, flags) local_irq_save(flags); | ||
5 | #define cris_atomic_restore(addr, flags) local_irq_restore(flags); | ||
6 | |||
7 | #endif | ||
diff --git a/include/asm-cris/arch-v10/bitops.h b/include/asm-cris/arch-v10/bitops.h index 21b7ae8c9bb3..b73f5396e5a6 100644 --- a/include/asm-cris/arch-v10/bitops.h +++ b/include/asm-cris/arch-v10/bitops.h | |||
@@ -51,7 +51,7 @@ extern inline unsigned long ffz(unsigned long w) | |||
51 | * | 51 | * |
52 | * Undefined if no bit exists, so code should check against 0 first. | 52 | * Undefined if no bit exists, so code should check against 0 first. |
53 | */ | 53 | */ |
54 | extern __inline__ unsigned long __ffs(unsigned long word) | 54 | extern inline unsigned long __ffs(unsigned long word) |
55 | { | 55 | { |
56 | return cris_swapnwbrlz(~word); | 56 | return cris_swapnwbrlz(~word); |
57 | } | 57 | } |
diff --git a/include/asm-cris/arch-v10/dma.h b/include/asm-cris/arch-v10/dma.h index 9e078b9bc934..ecb9dba6fa4f 100644 --- a/include/asm-cris/arch-v10/dma.h +++ b/include/asm-cris/arch-v10/dma.h | |||
@@ -44,3 +44,31 @@ | |||
44 | #define USB_RX_DMA_NBR 9 | 44 | #define USB_RX_DMA_NBR 9 |
45 | 45 | ||
46 | #endif | 46 | #endif |
47 | |||
48 | enum dma_owner | ||
49 | { | ||
50 | dma_eth, | ||
51 | dma_ser0, | ||
52 | dma_ser1, /* Async and sync */ | ||
53 | dma_ser2, | ||
54 | dma_ser3, /* Async and sync */ | ||
55 | dma_ata, | ||
56 | dma_par0, | ||
57 | dma_par1, | ||
58 | dma_ext0, | ||
59 | dma_ext1, | ||
60 | dma_int6, | ||
61 | dma_int7, | ||
62 | dma_usb, | ||
63 | dma_scsi0, | ||
64 | dma_scsi1 | ||
65 | }; | ||
66 | |||
67 | /* Masks used by cris_request_dma options: */ | ||
68 | #define DMA_VERBOSE_ON_ERROR (1<<0) | ||
69 | #define DMA_PANIC_ON_ERROR ((1<<1)|DMA_VERBOSE_ON_ERROR) | ||
70 | |||
71 | int cris_request_dma(unsigned int dmanr, const char * device_id, | ||
72 | unsigned options, enum dma_owner owner); | ||
73 | |||
74 | void cris_free_dma(unsigned int dmanr, const char * device_id); | ||
diff --git a/include/asm-cris/arch-v10/elf.h b/include/asm-cris/arch-v10/elf.h index 2a2201ca538e..1c38ee728b17 100644 --- a/include/asm-cris/arch-v10/elf.h +++ b/include/asm-cris/arch-v10/elf.h | |||
@@ -1,6 +1,16 @@ | |||
1 | #ifndef __ASMCRIS_ARCH_ELF_H | 1 | #ifndef __ASMCRIS_ARCH_ELF_H |
2 | #define __ASMCRIS_ARCH_ELF_H | 2 | #define __ASMCRIS_ARCH_ELF_H |
3 | 3 | ||
4 | #define ELF_MACH EF_CRIS_VARIANT_ANY_V0_V10 | ||
5 | |||
6 | /* | ||
7 | * This is used to ensure we don't load something for the wrong architecture. | ||
8 | */ | ||
9 | #define elf_check_arch(x) \ | ||
10 | ((x)->e_machine == EM_CRIS \ | ||
11 | && ((((x)->e_flags & EF_CRIS_VARIANT_MASK) == EF_CRIS_VARIANT_ANY_V0_V10 \ | ||
12 | || (((x)->e_flags & EF_CRIS_VARIANT_MASK) == EF_CRIS_VARIANT_COMMON_V10_V32)))) | ||
13 | |||
4 | /* | 14 | /* |
5 | * ELF register definitions.. | 15 | * ELF register definitions.. |
6 | */ | 16 | */ |
diff --git a/include/asm-cris/arch-v10/ide.h b/include/asm-cris/arch-v10/ide.h new file mode 100644 index 000000000000..8cf2d7cb22ac --- /dev/null +++ b/include/asm-cris/arch-v10/ide.h | |||
@@ -0,0 +1,99 @@ | |||
1 | /* | ||
2 | * linux/include/asm-cris/ide.h | ||
3 | * | ||
4 | * Copyright (C) 2000, 2001, 2002 Axis Communications AB | ||
5 | * | ||
6 | * Authors: Bjorn Wesen | ||
7 | * | ||
8 | */ | ||
9 | |||
10 | /* | ||
11 | * This file contains the ETRAX 100LX specific IDE code. | ||
12 | */ | ||
13 | |||
14 | #ifndef __ASMCRIS_IDE_H | ||
15 | #define __ASMCRIS_IDE_H | ||
16 | |||
17 | #ifdef __KERNEL__ | ||
18 | |||
19 | #include <asm/arch/svinto.h> | ||
20 | #include <asm/io.h> | ||
21 | #include <asm-generic/ide_iops.h> | ||
22 | |||
23 | |||
24 | /* ETRAX 100 can support 4 IDE busses on the same pins (serialized) */ | ||
25 | |||
26 | #define MAX_HWIFS 4 | ||
27 | |||
28 | extern __inline__ int ide_default_irq(unsigned long base) | ||
29 | { | ||
30 | /* all IDE busses share the same IRQ, number 4. | ||
31 | * this has the side-effect that ide-probe.c will cluster our 4 interfaces | ||
32 | * together in a hwgroup, and will serialize accesses. this is good, because | ||
33 | * we can't access more than one interface at the same time on ETRAX100. | ||
34 | */ | ||
35 | return 4; | ||
36 | } | ||
37 | |||
38 | extern __inline__ unsigned long ide_default_io_base(int index) | ||
39 | { | ||
40 | /* we have no real I/O base address per interface, since all go through the | ||
41 | * same register. but in a bitfield in that register, we have the i/f number. | ||
42 | * so we can use the io_base to remember that bitfield. | ||
43 | */ | ||
44 | static const unsigned long io_bases[MAX_HWIFS] = { | ||
45 | IO_FIELD(R_ATA_CTRL_DATA, sel, 0), | ||
46 | IO_FIELD(R_ATA_CTRL_DATA, sel, 1), | ||
47 | IO_FIELD(R_ATA_CTRL_DATA, sel, 2), | ||
48 | IO_FIELD(R_ATA_CTRL_DATA, sel, 3) | ||
49 | }; | ||
50 | return io_bases[index]; | ||
51 | } | ||
52 | |||
53 | /* this is called once for each interface, to setup the port addresses. data_port is the result | ||
54 | * of the ide_default_io_base call above. ctrl_port will be 0, but that is don't care for us. | ||
55 | */ | ||
56 | |||
57 | extern __inline__ void ide_init_hwif_ports(hw_regs_t *hw, unsigned long data_port, unsigned long ctrl_port, int *irq) | ||
58 | { | ||
59 | int i; | ||
60 | |||
61 | /* fill in ports for ATA addresses 0 to 7 */ | ||
62 | |||
63 | for (i = IDE_DATA_OFFSET; i <= IDE_STATUS_OFFSET; i++) { | ||
64 | hw->io_ports[i] = data_port | | ||
65 | IO_FIELD(R_ATA_CTRL_DATA, addr, i) | | ||
66 | IO_STATE(R_ATA_CTRL_DATA, cs0, active); | ||
67 | } | ||
68 | |||
69 | /* the IDE control register is at ATA address 6, with CS1 active instead of CS0 */ | ||
70 | |||
71 | hw->io_ports[IDE_CONTROL_OFFSET] = data_port | | ||
72 | IO_FIELD(R_ATA_CTRL_DATA, addr, 6) | | ||
73 | IO_STATE(R_ATA_CTRL_DATA, cs1, active); | ||
74 | |||
75 | /* whats this for ? */ | ||
76 | |||
77 | hw->io_ports[IDE_IRQ_OFFSET] = 0; | ||
78 | } | ||
79 | |||
80 | extern __inline__ void ide_init_default_hwifs(void) | ||
81 | { | ||
82 | hw_regs_t hw; | ||
83 | int index; | ||
84 | |||
85 | for(index = 0; index < MAX_HWIFS; index++) { | ||
86 | ide_init_hwif_ports(&hw, ide_default_io_base(index), 0, NULL); | ||
87 | hw.irq = ide_default_irq(ide_default_io_base(index)); | ||
88 | ide_register_hw(&hw, NULL); | ||
89 | } | ||
90 | } | ||
91 | |||
92 | /* some configuration options we don't need */ | ||
93 | |||
94 | #undef SUPPORT_VLB_SYNC | ||
95 | #define SUPPORT_VLB_SYNC 0 | ||
96 | |||
97 | #endif /* __KERNEL__ */ | ||
98 | |||
99 | #endif /* __ASMCRIS_IDE_H */ | ||
diff --git a/include/asm-cris/arch-v10/io.h b/include/asm-cris/arch-v10/io.h index 0bc38a0313c1..dd39198ec67d 100644 --- a/include/asm-cris/arch-v10/io.h +++ b/include/asm-cris/arch-v10/io.h | |||
@@ -6,6 +6,7 @@ | |||
6 | 6 | ||
7 | /* Etrax shadow registers - which live in arch/cris/kernel/shadows.c */ | 7 | /* Etrax shadow registers - which live in arch/cris/kernel/shadows.c */ |
8 | 8 | ||
9 | extern unsigned long gen_config_ii_shadow; | ||
9 | extern unsigned long port_g_data_shadow; | 10 | extern unsigned long port_g_data_shadow; |
10 | extern unsigned char port_pa_dir_shadow; | 11 | extern unsigned char port_pa_dir_shadow; |
11 | extern unsigned char port_pa_data_shadow; | 12 | extern unsigned char port_pa_data_shadow; |
diff --git a/include/asm-cris/arch-v10/io_interface_mux.h b/include/asm-cris/arch-v10/io_interface_mux.h new file mode 100644 index 000000000000..d92500080883 --- /dev/null +++ b/include/asm-cris/arch-v10/io_interface_mux.h | |||
@@ -0,0 +1,75 @@ | |||
1 | /* IO interface mux allocator for ETRAX100LX. | ||
2 | * Copyright 2004, Axis Communications AB | ||
3 | * $Id: io_interface_mux.h,v 1.1 2004/12/13 12:21:53 starvik Exp $ | ||
4 | */ | ||
5 | |||
6 | |||
7 | #ifndef _IO_INTERFACE_MUX_H | ||
8 | #define _IO_INTERFACE_MUX_H | ||
9 | |||
10 | |||
11 | /* C.f. ETRAX100LX Designer's Reference 20.9 */ | ||
12 | |||
13 | /* The order in enum must match the order of interfaces[] in | ||
14 | * io_interface_mux.c */ | ||
15 | enum cris_io_interface { | ||
16 | /* Begin Non-multiplexed interfaces */ | ||
17 | if_eth = 0, | ||
18 | if_serial_0, | ||
19 | /* End Non-multiplexed interfaces */ | ||
20 | if_serial_1, | ||
21 | if_serial_2, | ||
22 | if_serial_3, | ||
23 | if_sync_serial_1, | ||
24 | if_sync_serial_3, | ||
25 | if_shared_ram, | ||
26 | if_shared_ram_w, | ||
27 | if_par_0, | ||
28 | if_par_1, | ||
29 | if_par_w, | ||
30 | if_scsi8_0, | ||
31 | if_scsi8_1, | ||
32 | if_scsi_w, | ||
33 | if_ata, | ||
34 | if_csp, | ||
35 | if_i2c, | ||
36 | if_usb_1, | ||
37 | if_usb_2, | ||
38 | /* GPIO pins */ | ||
39 | if_gpio_grp_a, | ||
40 | if_gpio_grp_b, | ||
41 | if_gpio_grp_c, | ||
42 | if_gpio_grp_d, | ||
43 | if_gpio_grp_e, | ||
44 | if_gpio_grp_f, | ||
45 | if_max_interfaces, | ||
46 | if_unclaimed | ||
47 | }; | ||
48 | |||
49 | int cris_request_io_interface(enum cris_io_interface ioif, const char *device_id); | ||
50 | |||
51 | void cris_free_io_interface(enum cris_io_interface ioif); | ||
52 | |||
53 | /* port can be 'a', 'b' or 'g' */ | ||
54 | int cris_io_interface_allocate_pins(const enum cris_io_interface ioif, | ||
55 | const char port, | ||
56 | const unsigned start_bit, | ||
57 | const unsigned stop_bit); | ||
58 | |||
59 | /* port can be 'a', 'b' or 'g' */ | ||
60 | int cris_io_interface_free_pins(const enum cris_io_interface ioif, | ||
61 | const char port, | ||
62 | const unsigned start_bit, | ||
63 | const unsigned stop_bit); | ||
64 | |||
65 | int cris_io_interface_register_watcher(void (*notify)(const unsigned int gpio_in_available, | ||
66 | const unsigned int gpio_out_available, | ||
67 | const unsigned char pa_available, | ||
68 | const unsigned char pb_available)); | ||
69 | |||
70 | void cris_io_interface_delete_watcher(void (*notify)(const unsigned int gpio_in_available, | ||
71 | const unsigned int gpio_out_available, | ||
72 | const unsigned char pa_available, | ||
73 | const unsigned char pb_available)); | ||
74 | |||
75 | #endif /* _IO_INTERFACE_MUX_H */ | ||
diff --git a/include/asm-cris/arch-v10/irq.h b/include/asm-cris/arch-v10/irq.h index a2a6e1533ea0..4fa8945b0263 100644 --- a/include/asm-cris/arch-v10/irq.h +++ b/include/asm-cris/arch-v10/irq.h | |||
@@ -74,12 +74,9 @@ struct etrax_interrupt_vector { | |||
74 | }; | 74 | }; |
75 | 75 | ||
76 | extern struct etrax_interrupt_vector *etrax_irv; | 76 | extern struct etrax_interrupt_vector *etrax_irv; |
77 | void set_int_vector(int n, irqvectptr addr, irqvectptr saddr); | 77 | void set_int_vector(int n, irqvectptr addr); |
78 | void set_break_vector(int n, irqvectptr addr); | 78 | void set_break_vector(int n, irqvectptr addr); |
79 | 79 | ||
80 | #define mask_irq(irq_nr) (*R_VECT_MASK_CLR = 1 << (irq_nr)); | ||
81 | #define unmask_irq(irq_nr) (*R_VECT_MASK_SET = 1 << (irq_nr)); | ||
82 | |||
83 | #define __STR(x) #x | 80 | #define __STR(x) #x |
84 | #define STR(x) __STR(x) | 81 | #define STR(x) __STR(x) |
85 | 82 | ||
@@ -121,26 +118,17 @@ void set_break_vector(int n, irqvectptr addr); | |||
121 | 118 | ||
122 | #define BUILD_IRQ(nr,mask) \ | 119 | #define BUILD_IRQ(nr,mask) \ |
123 | void IRQ_NAME(nr); \ | 120 | void IRQ_NAME(nr); \ |
124 | void sIRQ_NAME(nr); \ | ||
125 | void BAD_IRQ_NAME(nr); \ | ||
126 | __asm__ ( \ | 121 | __asm__ ( \ |
127 | ".text\n\t" \ | 122 | ".text\n\t" \ |
128 | "IRQ" #nr "_interrupt:\n\t" \ | 123 | "IRQ" #nr "_interrupt:\n\t" \ |
129 | SAVE_ALL \ | 124 | SAVE_ALL \ |
130 | "sIRQ" #nr "_interrupt:\n\t" /* shortcut for the multiple irq handler */ \ | ||
131 | BLOCK_IRQ(mask,nr) /* this must be done to prevent irq loops when we ei later */ \ | 125 | BLOCK_IRQ(mask,nr) /* this must be done to prevent irq loops when we ei later */ \ |
132 | "moveq "#nr",$r10\n\t" \ | 126 | "moveq "#nr",$r10\n\t" \ |
133 | "move.d $sp,$r11\n\t" \ | 127 | "move.d $sp,$r11\n\t" \ |
134 | "jsr do_IRQ\n\t" /* irq.c, r10 and r11 are arguments */ \ | 128 | "jsr do_IRQ\n\t" /* irq.c, r10 and r11 are arguments */ \ |
135 | UNBLOCK_IRQ(mask) \ | 129 | UNBLOCK_IRQ(mask) \ |
136 | "moveq 0,$r9\n\t" /* make ret_from_intr realise we came from an irq */ \ | 130 | "moveq 0,$r9\n\t" /* make ret_from_intr realise we came from an irq */ \ |
137 | "jump ret_from_intr\n\t" \ | 131 | "jump ret_from_intr\n\t"); |
138 | "bad_IRQ" #nr "_interrupt:\n\t" \ | ||
139 | "push $r0\n\t" \ | ||
140 | BLOCK_IRQ(mask,nr) \ | ||
141 | "pop $r0\n\t" \ | ||
142 | "reti\n\t" \ | ||
143 | "nop\n"); | ||
144 | 132 | ||
145 | /* This is subtle. The timer interrupt is crucial and it should not be disabled for | 133 | /* This is subtle. The timer interrupt is crucial and it should not be disabled for |
146 | * too long. However, if it had been a normal interrupt as per BUILD_IRQ, it would | 134 | * too long. However, if it had been a normal interrupt as per BUILD_IRQ, it would |
@@ -159,23 +147,14 @@ __asm__ ( \ | |||
159 | 147 | ||
160 | #define BUILD_TIMER_IRQ(nr,mask) \ | 148 | #define BUILD_TIMER_IRQ(nr,mask) \ |
161 | void IRQ_NAME(nr); \ | 149 | void IRQ_NAME(nr); \ |
162 | void sIRQ_NAME(nr); \ | ||
163 | void BAD_IRQ_NAME(nr); \ | ||
164 | __asm__ ( \ | 150 | __asm__ ( \ |
165 | ".text\n\t" \ | 151 | ".text\n\t" \ |
166 | "IRQ" #nr "_interrupt:\n\t" \ | 152 | "IRQ" #nr "_interrupt:\n\t" \ |
167 | SAVE_ALL \ | 153 | SAVE_ALL \ |
168 | "sIRQ" #nr "_interrupt:\n\t" /* shortcut for the multiple irq handler */ \ | ||
169 | "moveq "#nr",$r10\n\t" \ | 154 | "moveq "#nr",$r10\n\t" \ |
170 | "move.d $sp,$r11\n\t" \ | 155 | "move.d $sp,$r11\n\t" \ |
171 | "jsr do_IRQ\n\t" /* irq.c, r10 and r11 are arguments */ \ | 156 | "jsr do_IRQ\n\t" /* irq.c, r10 and r11 are arguments */ \ |
172 | "moveq 0,$r9\n\t" /* make ret_from_intr realise we came from an irq */ \ | 157 | "moveq 0,$r9\n\t" /* make ret_from_intr realise we came from an irq */ \ |
173 | "jump ret_from_intr\n\t" \ | 158 | "jump ret_from_intr\n\t"); |
174 | "bad_IRQ" #nr "_interrupt:\n\t" \ | ||
175 | "push $r0\n\t" \ | ||
176 | BLOCK_IRQ(mask,nr) \ | ||
177 | "pop $r0\n\t" \ | ||
178 | "reti\n\t" \ | ||
179 | "nop\n"); | ||
180 | 159 | ||
181 | #endif | 160 | #endif |
diff --git a/include/asm-cris/arch-v10/memmap.h b/include/asm-cris/arch-v10/memmap.h new file mode 100644 index 000000000000..13f3b971407f --- /dev/null +++ b/include/asm-cris/arch-v10/memmap.h | |||
@@ -0,0 +1,22 @@ | |||
1 | #ifndef _ASM_ARCH_MEMMAP_H | ||
2 | #define _ASM_ARCH_MEMMAP_H | ||
3 | |||
4 | #define MEM_CSE0_START (0x00000000) | ||
5 | #define MEM_CSE0_SIZE (0x04000000) | ||
6 | #define MEM_CSE1_START (0x04000000) | ||
7 | #define MEM_CSE1_SIZE (0x04000000) | ||
8 | #define MEM_CSR0_START (0x08000000) | ||
9 | #define MEM_CSR1_START (0x0c000000) | ||
10 | #define MEM_CSP0_START (0x10000000) | ||
11 | #define MEM_CSP1_START (0x14000000) | ||
12 | #define MEM_CSP2_START (0x18000000) | ||
13 | #define MEM_CSP3_START (0x1c000000) | ||
14 | #define MEM_CSP4_START (0x20000000) | ||
15 | #define MEM_CSP5_START (0x24000000) | ||
16 | #define MEM_CSP6_START (0x28000000) | ||
17 | #define MEM_CSP7_START (0x2c000000) | ||
18 | #define MEM_DRAM_START (0x40000000) | ||
19 | |||
20 | #define MEM_NON_CACHEABLE (0x80000000) | ||
21 | |||
22 | #endif | ||
diff --git a/include/asm-cris/arch-v10/mmu.h b/include/asm-cris/arch-v10/mmu.h index d18aa00e50bc..df84f1716e6b 100644 --- a/include/asm-cris/arch-v10/mmu.h +++ b/include/asm-cris/arch-v10/mmu.h | |||
@@ -7,7 +7,10 @@ | |||
7 | 7 | ||
8 | /* type used in struct mm to couple an MMU context to an active mm */ | 8 | /* type used in struct mm to couple an MMU context to an active mm */ |
9 | 9 | ||
10 | typedef unsigned int mm_context_t; | 10 | typedef struct |
11 | { | ||
12 | unsigned int page_id; | ||
13 | } mm_context_t; | ||
11 | 14 | ||
12 | /* kernel memory segments */ | 15 | /* kernel memory segments */ |
13 | 16 | ||
diff --git a/include/asm-cris/arch-v10/offset.h b/include/asm-cris/arch-v10/offset.h index fcbd77eab281..675b51d85639 100644 --- a/include/asm-cris/arch-v10/offset.h +++ b/include/asm-cris/arch-v10/offset.h | |||
@@ -25,7 +25,7 @@ | |||
25 | #define THREAD_usp 4 /* offsetof(struct thread_struct, usp) */ | 25 | #define THREAD_usp 4 /* offsetof(struct thread_struct, usp) */ |
26 | #define THREAD_dccr 8 /* offsetof(struct thread_struct, dccr) */ | 26 | #define THREAD_dccr 8 /* offsetof(struct thread_struct, dccr) */ |
27 | 27 | ||
28 | #define TASK_pid 133 /* offsetof(struct task_struct, pid) */ | 28 | #define TASK_pid 141 /* offsetof(struct task_struct, pid) */ |
29 | 29 | ||
30 | #define LCLONE_VM 256 /* CLONE_VM */ | 30 | #define LCLONE_VM 256 /* CLONE_VM */ |
31 | #define LCLONE_UNTRACED 8388608 /* CLONE_UNTRACED */ | 31 | #define LCLONE_UNTRACED 8388608 /* CLONE_UNTRACED */ |
diff --git a/include/asm-cris/arch-v10/processor.h b/include/asm-cris/arch-v10/processor.h index 9355d8675a58..e23df8dc96e8 100644 --- a/include/asm-cris/arch-v10/processor.h +++ b/include/asm-cris/arch-v10/processor.h | |||
@@ -59,4 +59,12 @@ struct thread_struct { | |||
59 | wrusp(usp); \ | 59 | wrusp(usp); \ |
60 | } while(0) | 60 | } while(0) |
61 | 61 | ||
62 | /* Called when handling a kernel bus fault fixup. | ||
63 | * | ||
64 | * After a fixup we do not want to return by restoring the CPU-state | ||
65 | * anymore, so switch frame-types (see ptrace.h) | ||
66 | */ | ||
67 | #define arch_fixup(regs) \ | ||
68 | regs->frametype = CRIS_FRAME_NORMAL; | ||
69 | |||
62 | #endif | 70 | #endif |
diff --git a/include/asm-cris/arch-v10/system.h b/include/asm-cris/arch-v10/system.h index 781ca30229a8..6cc35642b8ab 100644 --- a/include/asm-cris/arch-v10/system.h +++ b/include/asm-cris/arch-v10/system.h | |||
@@ -11,6 +11,8 @@ extern inline unsigned long rdvr(void) { | |||
11 | return vr; | 11 | return vr; |
12 | } | 12 | } |
13 | 13 | ||
14 | #define cris_machine_name "cris" | ||
15 | |||
14 | /* read/write the user-mode stackpointer */ | 16 | /* read/write the user-mode stackpointer */ |
15 | 17 | ||
16 | extern inline unsigned long rdusp(void) { | 18 | extern inline unsigned long rdusp(void) { |