diff options
author | Adrian Bunk <bunk@kernel.org> | 2008-07-24 00:28:50 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-07-24 13:47:24 -0400 |
commit | f606ddf42fd4edc558eeb48bfee66d2c591571d2 (patch) | |
tree | 193f00db121201255b2629fce43b99a53c4ec735 /include/asm-v850 | |
parent | 99764fa4ceeecba8b9e0a8a5565b418a2e94f83b (diff) |
remove the v850 port
Trying to compile the v850 port brings many compile errors, one of them exists
since at least kernel 2.6.19.
There also seems to be noone willing to bring this port back into a usable
state.
This patch therefore removes the v850 port.
If anyone ever decides to revive the v850 port the code will still be
available from older kernels, and it wouldn't be impossible for the port to
reenter the kernel if it would become actively maintained again.
Signed-off-by: Adrian Bunk <bunk@kernel.org>
Acked-by: Greg Ungerer <gerg@uclinux.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'include/asm-v850')
121 files changed, 0 insertions, 7154 deletions
diff --git a/include/asm-v850/Kbuild b/include/asm-v850/Kbuild deleted file mode 100644 index c68e1680da01..000000000000 --- a/include/asm-v850/Kbuild +++ /dev/null | |||
@@ -1 +0,0 @@ | |||
1 | include include/asm-generic/Kbuild.asm | ||
diff --git a/include/asm-v850/a.out.h b/include/asm-v850/a.out.h deleted file mode 100644 index e9439a0708f6..000000000000 --- a/include/asm-v850/a.out.h +++ /dev/null | |||
@@ -1,21 +0,0 @@ | |||
1 | #ifndef __V850_A_OUT_H__ | ||
2 | #define __V850_A_OUT_H__ | ||
3 | |||
4 | struct exec | ||
5 | { | ||
6 | unsigned long a_info; /* Use macros N_MAGIC, etc for access */ | ||
7 | unsigned a_text; /* length of text, in bytes */ | ||
8 | unsigned a_data; /* length of data, in bytes */ | ||
9 | unsigned a_bss; /* length of uninitialized data area for file, in bytes */ | ||
10 | unsigned a_syms; /* length of symbol table data in file, in bytes */ | ||
11 | unsigned a_entry; /* start address */ | ||
12 | unsigned a_trsize; /* length of relocation info for text, in bytes */ | ||
13 | unsigned a_drsize; /* length of relocation info for data, in bytes */ | ||
14 | }; | ||
15 | |||
16 | #define N_TRSIZE(a) ((a).a_trsize) | ||
17 | #define N_DRSIZE(a) ((a).a_drsize) | ||
18 | #define N_SYMSIZE(a) ((a).a_syms) | ||
19 | |||
20 | |||
21 | #endif /* __V850_A_OUT_H__ */ | ||
diff --git a/include/asm-v850/anna.h b/include/asm-v850/anna.h deleted file mode 100644 index cd5eaee103b0..000000000000 --- a/include/asm-v850/anna.h +++ /dev/null | |||
@@ -1,137 +0,0 @@ | |||
1 | /* | ||
2 | * include/asm-v850/anna.h -- Anna V850E2 evaluation cpu chip/board | ||
3 | * | ||
4 | * Copyright (C) 2001,02,03 NEC Electronics Corporation | ||
5 | * Copyright (C) 2001,02,03 Miles Bader <miles@gnu.org> | ||
6 | * | ||
7 | * This file is subject to the terms and conditions of the GNU General | ||
8 | * Public License. See the file COPYING in the main directory of this | ||
9 | * archive for more details. | ||
10 | * | ||
11 | * Written by Miles Bader <miles@gnu.org> | ||
12 | */ | ||
13 | |||
14 | #ifndef __V850_ANNA_H__ | ||
15 | #define __V850_ANNA_H__ | ||
16 | |||
17 | #include <asm/v850e2.h> /* Based on V850E2 core. */ | ||
18 | |||
19 | |||
20 | #define CPU_MODEL "v850e2/anna" | ||
21 | #define CPU_MODEL_LONG "NEC V850E2/Anna" | ||
22 | #define PLATFORM "anna" | ||
23 | #define PLATFORM_LONG "NEC/Midas lab V850E2/Anna evaluation board" | ||
24 | |||
25 | #define CPU_CLOCK_FREQ 200000000 /* 200MHz */ | ||
26 | #define SYS_CLOCK_FREQ 33300000 /* 33.3MHz */ | ||
27 | |||
28 | |||
29 | /* 1MB of static RAM. This memory is mirrored 64 times. */ | ||
30 | #define SRAM_ADDR 0x04000000 | ||
31 | #define SRAM_SIZE 0x00100000 /* 1MB */ | ||
32 | /* 64MB of DRAM. */ | ||
33 | #define SDRAM_ADDR 0x08000000 | ||
34 | #define SDRAM_SIZE 0x04000000 /* 64MB */ | ||
35 | |||
36 | |||
37 | /* For <asm/page.h> */ | ||
38 | #define PAGE_OFFSET SRAM_ADDR | ||
39 | |||
40 | /* We use on-chip RAM, for a few miscellaneous variables that must be | ||
41 | accessible using a load instruction relative to R0. The Anna chip has | ||
42 | 128K of `dLB' ram nominally located at 0xFFF00000, but it's mirrored | ||
43 | every 128K, so we can use the `last mirror' (except for the portion at | ||
44 | the top which is overridden by I/O space). In addition, the early | ||
45 | sample chip we're using has lots of memory errors in the dLB ram, so we | ||
46 | use a specially chosen location that has at least 20 bytes of contiguous | ||
47 | valid memory (xxxF0020 - xxxF003F). */ | ||
48 | #define R0_RAM_ADDR 0xFFFF8020 | ||
49 | |||
50 | |||
51 | /* Anna specific control registers. */ | ||
52 | #define ANNA_ILBEN_ADDR 0xFFFFF7F2 | ||
53 | #define ANNA_ILBEN (*(volatile u16 *)ANNA_ILBEN_ADDR) | ||
54 | |||
55 | |||
56 | /* I/O port P0-P3. */ | ||
57 | /* Direct I/O. Bits 0-7 are pins Pn0-Pn7. */ | ||
58 | #define ANNA_PORT_IO_ADDR(n) (0xFFFFF400 + (n) * 2) | ||
59 | #define ANNA_PORT_IO(n) (*(volatile u8 *)ANNA_PORT_IO_ADDR(n)) | ||
60 | /* Port mode (for direct I/O, 0 = output, 1 = input). */ | ||
61 | #define ANNA_PORT_PM_ADDR(n) (0xFFFFF410 + (n) * 2) | ||
62 | #define ANNA_PORT_PM(n) (*(volatile u8 *)ANNA_PORT_PM_ADDR(n)) | ||
63 | |||
64 | |||
65 | /* Hardware-specific interrupt numbers (in the kernel IRQ namespace). */ | ||
66 | #define IRQ_INTP(n) (n) /* Pnnn (pin) interrupts 0-15 */ | ||
67 | #define IRQ_INTP_NUM 16 | ||
68 | #define IRQ_INTOV(n) (0x10 + (n)) /* 0-2 */ | ||
69 | #define IRQ_INTOV_NUM 2 | ||
70 | #define IRQ_INTCCC(n) (0x12 + (n)) | ||
71 | #define IRQ_INTCCC_NUM 4 | ||
72 | #define IRQ_INTCMD(n) (0x16 + (n)) /* interval timer interrupts 0-5 */ | ||
73 | #define IRQ_INTCMD_NUM 6 | ||
74 | #define IRQ_INTDMA(n) (0x1C + (n)) /* DMA interrupts 0-3 */ | ||
75 | #define IRQ_INTDMA_NUM 4 | ||
76 | #define IRQ_INTDMXER 0x20 | ||
77 | #define IRQ_INTSRE(n) (0x21 + (n)*3) /* UART 0-1 reception error */ | ||
78 | #define IRQ_INTSRE_NUM 2 | ||
79 | #define IRQ_INTSR(n) (0x22 + (n)*3) /* UART 0-1 reception completion */ | ||
80 | #define IRQ_INTSR_NUM 2 | ||
81 | #define IRQ_INTST(n) (0x23 + (n)*3) /* UART 0-1 transmission completion */ | ||
82 | #define IRQ_INTST_NUM 2 | ||
83 | |||
84 | #define NUM_CPU_IRQS 64 | ||
85 | |||
86 | #ifndef __ASSEMBLY__ | ||
87 | /* Initialize chip interrupts. */ | ||
88 | extern void anna_init_irqs (void); | ||
89 | #endif | ||
90 | |||
91 | |||
92 | /* Anna UART details (basically the same as the V850E/MA1, but 2 channels). */ | ||
93 | #define V850E_UART_NUM_CHANNELS 2 | ||
94 | #define V850E_UART_BASE_FREQ (SYS_CLOCK_FREQ / 2) | ||
95 | #define V850E_UART_CHIP_NAME "V850E2/NA85E2A" | ||
96 | |||
97 | /* This is the UART channel that's actually connected on the board. */ | ||
98 | #define V850E_UART_CONSOLE_CHANNEL 1 | ||
99 | |||
100 | /* This is a function that gets called before configuring the UART. */ | ||
101 | #define V850E_UART_PRE_CONFIGURE anna_uart_pre_configure | ||
102 | #ifndef __ASSEMBLY__ | ||
103 | extern void anna_uart_pre_configure (unsigned chan, | ||
104 | unsigned cflags, unsigned baud); | ||
105 | #endif | ||
106 | |||
107 | /* This board supports RTS/CTS for the on-chip UART, but only for channel 1. */ | ||
108 | |||
109 | /* CTS for UART channel 1 is pin P37 (bit 7 of port 3). */ | ||
110 | #define V850E_UART_CTS(chan) ((chan) == 1 ? !(ANNA_PORT_IO(3) & 0x80) : 1) | ||
111 | /* RTS for UART channel 1 is pin P07 (bit 7 of port 0). */ | ||
112 | #define V850E_UART_SET_RTS(chan, val) \ | ||
113 | do { \ | ||
114 | if (chan == 1) { \ | ||
115 | unsigned old = ANNA_PORT_IO(0); \ | ||
116 | if (val) \ | ||
117 | ANNA_PORT_IO(0) = old & ~0x80; \ | ||
118 | else \ | ||
119 | ANNA_PORT_IO(0) = old | 0x80; \ | ||
120 | } \ | ||
121 | } while (0) | ||
122 | |||
123 | |||
124 | /* Timer C details. */ | ||
125 | #define V850E_TIMER_C_BASE_ADDR 0xFFFFF600 | ||
126 | |||
127 | /* Timer D details (the Anna actually has 5 of these; should change later). */ | ||
128 | #define V850E_TIMER_D_BASE_ADDR 0xFFFFF540 | ||
129 | #define V850E_TIMER_D_TMD_BASE_ADDR (V850E_TIMER_D_BASE_ADDR + 0x0) | ||
130 | #define V850E_TIMER_D_CMD_BASE_ADDR (V850E_TIMER_D_BASE_ADDR + 0x2) | ||
131 | #define V850E_TIMER_D_TMCD_BASE_ADDR (V850E_TIMER_D_BASE_ADDR + 0x4) | ||
132 | |||
133 | #define V850E_TIMER_D_BASE_FREQ SYS_CLOCK_FREQ | ||
134 | #define V850E_TIMER_D_TMCD_CS_MIN 1 /* min 2^1 divider */ | ||
135 | |||
136 | |||
137 | #endif /* __V850_ANNA_H__ */ | ||
diff --git a/include/asm-v850/as85ep1.h b/include/asm-v850/as85ep1.h deleted file mode 100644 index 5a5ca9073d09..000000000000 --- a/include/asm-v850/as85ep1.h +++ /dev/null | |||
@@ -1,152 +0,0 @@ | |||
1 | /* | ||
2 | * include/asm-v850/as85ep1.h -- AS85EP1 evaluation CPU chip/board | ||
3 | * | ||
4 | * Copyright (C) 2001,02,03 NEC Electronics Corporation | ||
5 | * Copyright (C) 2001,02,03 Miles Bader <miles@gnu.org> | ||
6 | * | ||
7 | * This file is subject to the terms and conditions of the GNU General | ||
8 | * Public License. See the file COPYING in the main directory of this | ||
9 | * archive for more details. | ||
10 | * | ||
11 | * Written by Miles Bader <miles@gnu.org> | ||
12 | */ | ||
13 | |||
14 | #ifndef __V850_AS85EP1_H__ | ||
15 | #define __V850_AS85EP1_H__ | ||
16 | |||
17 | #include <asm/v850e.h> | ||
18 | |||
19 | |||
20 | #define CPU_MODEL "as85ep1" | ||
21 | #define CPU_MODEL_LONG "NEC V850E/AS85EP1" | ||
22 | #define PLATFORM "AS85EP1" | ||
23 | #define PLATFORM_LONG "NEC V850E/AS85EP1 evaluation board" | ||
24 | |||
25 | #define CPU_CLOCK_FREQ 96000000 /* 96MHz */ | ||
26 | #define SYS_CLOCK_FREQ CPU_CLOCK_FREQ | ||
27 | |||
28 | |||
29 | /* 1MB of static RAM. */ | ||
30 | #define SRAM_ADDR 0x00400000 | ||
31 | #define SRAM_SIZE 0x00100000 /* 1MB */ | ||
32 | /* About 58MB of DRAM. This can actually be at one of two positions, | ||
33 | determined by jump JP3; we have to use the first position because the | ||
34 | second is partially out of processor instruction addressing range | ||
35 | (though in the second position there's actually 64MB available). */ | ||
36 | #define SDRAM_ADDR 0x00600000 | ||
37 | #define SDRAM_SIZE 0x039F8000 /* approx 58MB */ | ||
38 | |||
39 | /* For <asm/page.h> */ | ||
40 | #define PAGE_OFFSET SRAM_ADDR | ||
41 | |||
42 | /* We use on-chip RAM, for a few miscellaneous variables that must be | ||
43 | accessible using a load instruction relative to R0. The AS85EP1 chip | ||
44 | 16K of internal RAM located slightly before I/O space. */ | ||
45 | #define R0_RAM_ADDR 0xFFFF8000 | ||
46 | |||
47 | |||
48 | /* AS85EP1 specific control registers. */ | ||
49 | #define AS85EP1_CSC_ADDR(n) (0xFFFFF060 + (n) * 2) | ||
50 | #define AS85EP1_CSC(n) (*(volatile u16 *)AS85EP1_CSC_ADDR(n)) | ||
51 | #define AS85EP1_BSC_ADDR 0xFFFFF066 | ||
52 | #define AS85EP1_BSC (*(volatile u16 *)AS85EP1_BSC_ADDR) | ||
53 | #define AS85EP1_BCT_ADDR(n) (0xFFFFF480 + (n) * 2) | ||
54 | #define AS85EP1_BCT(n) (*(volatile u16 *)AS85EP1_BCT_ADDR(n)) | ||
55 | #define AS85EP1_DWC_ADDR(n) (0xFFFFF484 + (n) * 2) | ||
56 | #define AS85EP1_DWC(n) (*(volatile u16 *)AS85EP1_DWC_ADDR(n)) | ||
57 | #define AS85EP1_BCC_ADDR 0xFFFFF488 | ||
58 | #define AS85EP1_BCC (*(volatile u16 *)AS85EP1_BCC_ADDR) | ||
59 | #define AS85EP1_ASC_ADDR 0xFFFFF48A | ||
60 | #define AS85EP1_ASC (*(volatile u16 *)AS85EP1_ASC_ADDR) | ||
61 | #define AS85EP1_BCP_ADDR 0xFFFFF48C | ||
62 | #define AS85EP1_BCP (*(volatile u16 *)AS85EP1_BCP_ADDR) | ||
63 | #define AS85EP1_LBS_ADDR 0xFFFFF48E | ||
64 | #define AS85EP1_LBS (*(volatile u16 *)AS85EP1_LBS_ADDR) | ||
65 | #define AS85EP1_BMC_ADDR 0xFFFFF498 | ||
66 | #define AS85EP1_BMC (*(volatile u16 *)AS85EP1_BMC_ADDR) | ||
67 | #define AS85EP1_PRC_ADDR 0xFFFFF49A | ||
68 | #define AS85EP1_PRC (*(volatile u16 *)AS85EP1_PRC_ADDR) | ||
69 | #define AS85EP1_SCR_ADDR(n) (0xFFFFF4A0 + (n) * 4) | ||
70 | #define AS85EP1_SCR(n) (*(volatile u16 *)AS85EP1_SCR_ADDR(n)) | ||
71 | #define AS85EP1_RFS_ADDR(n) (0xFFFFF4A2 + (n) * 4) | ||
72 | #define AS85EP1_RFS(n) (*(volatile u16 *)AS85EP1_RFS_ADDR(n)) | ||
73 | #define AS85EP1_IRAMM_ADDR 0xFFFFF80A | ||
74 | #define AS85EP1_IRAMM (*(volatile u8 *)AS85EP1_IRAMM_ADDR) | ||
75 | |||
76 | |||
77 | |||
78 | /* I/O port P0-P13. */ | ||
79 | /* Direct I/O. Bits 0-7 are pins Pn0-Pn7. */ | ||
80 | #define AS85EP1_PORT_IO_ADDR(n) (0xFFFFF400 + (n) * 2) | ||
81 | #define AS85EP1_PORT_IO(n) (*(volatile u8 *)AS85EP1_PORT_IO_ADDR(n)) | ||
82 | /* Port mode (for direct I/O, 0 = output, 1 = input). */ | ||
83 | #define AS85EP1_PORT_PM_ADDR(n) (0xFFFFF420 + (n) * 2) | ||
84 | #define AS85EP1_PORT_PM(n) (*(volatile u8 *)AS85EP1_PORT_PM_ADDR(n)) | ||
85 | /* Port mode control (0 = direct I/O mode, 1 = alternative I/O mode). */ | ||
86 | #define AS85EP1_PORT_PMC_ADDR(n) (0xFFFFF440 + (n) * 2) | ||
87 | #define AS85EP1_PORT_PMC(n) (*(volatile u8 *)AS85EP1_PORT_PMC_ADDR(n)) | ||
88 | |||
89 | |||
90 | /* Hardware-specific interrupt numbers (in the kernel IRQ namespace). */ | ||
91 | #define IRQ_INTCCC(n) (0x0C + (n)) | ||
92 | #define IRQ_INTCCC_NUM 8 | ||
93 | #define IRQ_INTCMD(n) (0x14 + (n)) /* interval timer interrupts 0-5 */ | ||
94 | #define IRQ_INTCMD_NUM 6 | ||
95 | #define IRQ_INTSRE(n) (0x1E + (n)*3) /* UART 0-1 reception error */ | ||
96 | #define IRQ_INTSRE_NUM 2 | ||
97 | #define IRQ_INTSR(n) (0x1F + (n)*3) /* UART 0-1 reception completion */ | ||
98 | #define IRQ_INTSR_NUM 2 | ||
99 | #define IRQ_INTST(n) (0x20 + (n)*3) /* UART 0-1 transmission completion */ | ||
100 | #define IRQ_INTST_NUM 2 | ||
101 | |||
102 | #define NUM_CPU_IRQS 64 | ||
103 | |||
104 | #ifndef __ASSEMBLY__ | ||
105 | /* Initialize chip interrupts. */ | ||
106 | extern void as85ep1_init_irqs (void); | ||
107 | #endif | ||
108 | |||
109 | |||
110 | /* AS85EP1 UART details (basically the same as the V850E/MA1, but 2 channels). */ | ||
111 | #define V850E_UART_NUM_CHANNELS 2 | ||
112 | #define V850E_UART_BASE_FREQ (SYS_CLOCK_FREQ / 4) | ||
113 | #define V850E_UART_CHIP_NAME "V850E/NA85E" | ||
114 | |||
115 | /* This is a function that gets called before configuring the UART. */ | ||
116 | #define V850E_UART_PRE_CONFIGURE as85ep1_uart_pre_configure | ||
117 | #ifndef __ASSEMBLY__ | ||
118 | extern void as85ep1_uart_pre_configure (unsigned chan, | ||
119 | unsigned cflags, unsigned baud); | ||
120 | #endif | ||
121 | |||
122 | /* This board supports RTS/CTS for the on-chip UART, but only for channel 1. */ | ||
123 | |||
124 | /* CTS for UART channel 1 is pin P54 (bit 4 of port 5). */ | ||
125 | #define V850E_UART_CTS(chan) ((chan) == 1 ? !(AS85EP1_PORT_IO(5) & 0x10) : 1) | ||
126 | /* RTS for UART channel 1 is pin P53 (bit 3 of port 5). */ | ||
127 | #define V850E_UART_SET_RTS(chan, val) \ | ||
128 | do { \ | ||
129 | if (chan == 1) { \ | ||
130 | unsigned old = AS85EP1_PORT_IO(5); \ | ||
131 | if (val) \ | ||
132 | AS85EP1_PORT_IO(5) = old & ~0x8; \ | ||
133 | else \ | ||
134 | AS85EP1_PORT_IO(5) = old | 0x8; \ | ||
135 | } \ | ||
136 | } while (0) | ||
137 | |||
138 | |||
139 | /* Timer C details. */ | ||
140 | #define V850E_TIMER_C_BASE_ADDR 0xFFFFF600 | ||
141 | |||
142 | /* Timer D details (the AS85EP1 actually has 5 of these; should change later). */ | ||
143 | #define V850E_TIMER_D_BASE_ADDR 0xFFFFF540 | ||
144 | #define V850E_TIMER_D_TMD_BASE_ADDR (V850E_TIMER_D_BASE_ADDR + 0x0) | ||
145 | #define V850E_TIMER_D_CMD_BASE_ADDR (V850E_TIMER_D_BASE_ADDR + 0x2) | ||
146 | #define V850E_TIMER_D_TMCD_BASE_ADDR (V850E_TIMER_D_BASE_ADDR + 0x4) | ||
147 | |||
148 | #define V850E_TIMER_D_BASE_FREQ SYS_CLOCK_FREQ | ||
149 | #define V850E_TIMER_D_TMCD_CS_MIN 2 /* min 2^2 divider */ | ||
150 | |||
151 | |||
152 | #endif /* __V850_AS85EP1_H__ */ | ||
diff --git a/include/asm-v850/asm.h b/include/asm-v850/asm.h deleted file mode 100644 index bf1e785a5dde..000000000000 --- a/include/asm-v850/asm.h +++ /dev/null | |||
@@ -1,32 +0,0 @@ | |||
1 | /* | ||
2 | * include/asm-v850/asm.h -- Macros for writing assembly code | ||
3 | * | ||
4 | * Copyright (C) 2001,02,03 NEC Electronics Corporation | ||
5 | * Copyright (C) 2001,02,03 Miles Bader <miles@gnu.org> | ||
6 | * | ||
7 | * This file is subject to the terms and conditions of the GNU General | ||
8 | * Public License. See the file COPYING in the main directory of this | ||
9 | * archive for more details. | ||
10 | * | ||
11 | * Written by Miles Bader <miles@gnu.org> | ||
12 | */ | ||
13 | |||
14 | #define G_ENTRY(name) \ | ||
15 | .balign 4; \ | ||
16 | .globl name; \ | ||
17 | .type name,@function; \ | ||
18 | name | ||
19 | #define G_DATA(name) \ | ||
20 | .globl name; \ | ||
21 | .type name,@object; \ | ||
22 | name | ||
23 | #define END(name) \ | ||
24 | .size name,.-name | ||
25 | |||
26 | #define L_ENTRY(name) \ | ||
27 | .balign 4; \ | ||
28 | .type name,@function; \ | ||
29 | name | ||
30 | #define L_DATA(name) \ | ||
31 | .type name,@object; \ | ||
32 | name | ||
diff --git a/include/asm-v850/atomic.h b/include/asm-v850/atomic.h deleted file mode 100644 index e4e57de08f73..000000000000 --- a/include/asm-v850/atomic.h +++ /dev/null | |||
@@ -1,131 +0,0 @@ | |||
1 | /* | ||
2 | * include/asm-v850/atomic.h -- Atomic operations | ||
3 | * | ||
4 | * Copyright (C) 2001,02 NEC Corporation | ||
5 | * Copyright (C) 2001,02 Miles Bader <miles@gnu.org> | ||
6 | * | ||
7 | * This file is subject to the terms and conditions of the GNU General | ||
8 | * Public License. See the file COPYING in the main directory of this | ||
9 | * archive for more details. | ||
10 | * | ||
11 | * Written by Miles Bader <miles@gnu.org> | ||
12 | */ | ||
13 | |||
14 | #ifndef __V850_ATOMIC_H__ | ||
15 | #define __V850_ATOMIC_H__ | ||
16 | |||
17 | |||
18 | #include <asm/system.h> | ||
19 | |||
20 | #ifdef CONFIG_SMP | ||
21 | #error SMP not supported | ||
22 | #endif | ||
23 | |||
24 | typedef struct { int counter; } atomic_t; | ||
25 | |||
26 | #define ATOMIC_INIT(i) { (i) } | ||
27 | |||
28 | #ifdef __KERNEL__ | ||
29 | |||
30 | #define atomic_read(v) ((v)->counter) | ||
31 | #define atomic_set(v,i) (((v)->counter) = (i)) | ||
32 | |||
33 | static inline int atomic_add_return (int i, volatile atomic_t *v) | ||
34 | { | ||
35 | unsigned long flags; | ||
36 | int res; | ||
37 | |||
38 | local_irq_save (flags); | ||
39 | res = v->counter + i; | ||
40 | v->counter = res; | ||
41 | local_irq_restore (flags); | ||
42 | |||
43 | return res; | ||
44 | } | ||
45 | |||
46 | static __inline__ int atomic_sub_return (int i, volatile atomic_t *v) | ||
47 | { | ||
48 | unsigned long flags; | ||
49 | int res; | ||
50 | |||
51 | local_irq_save (flags); | ||
52 | res = v->counter - i; | ||
53 | v->counter = res; | ||
54 | local_irq_restore (flags); | ||
55 | |||
56 | return res; | ||
57 | } | ||
58 | |||
59 | static __inline__ void atomic_clear_mask (unsigned long mask, unsigned long *addr) | ||
60 | { | ||
61 | unsigned long flags; | ||
62 | |||
63 | local_irq_save (flags); | ||
64 | *addr &= ~mask; | ||
65 | local_irq_restore (flags); | ||
66 | } | ||
67 | |||
68 | #endif | ||
69 | |||
70 | #define atomic_add(i, v) atomic_add_return ((i), (v)) | ||
71 | #define atomic_sub(i, v) atomic_sub_return ((i), (v)) | ||
72 | |||
73 | #define atomic_dec_return(v) atomic_sub_return (1, (v)) | ||
74 | #define atomic_inc_return(v) atomic_add_return (1, (v)) | ||
75 | #define atomic_inc(v) atomic_inc_return (v) | ||
76 | #define atomic_dec(v) atomic_dec_return (v) | ||
77 | |||
78 | /* | ||
79 | * atomic_inc_and_test - increment and test | ||
80 | * @v: pointer of type atomic_t | ||
81 | * | ||
82 | * Atomically increments @v by 1 | ||
83 | * and returns true if the result is zero, or false for all | ||
84 | * other cases. | ||
85 | */ | ||
86 | #define atomic_inc_and_test(v) (atomic_inc_return(v) == 0) | ||
87 | |||
88 | #define atomic_sub_and_test(i,v) (atomic_sub_return ((i), (v)) == 0) | ||
89 | #define atomic_dec_and_test(v) (atomic_sub_return (1, (v)) == 0) | ||
90 | #define atomic_add_negative(i,v) (atomic_add_return ((i), (v)) < 0) | ||
91 | |||
92 | static inline int atomic_cmpxchg(atomic_t *v, int old, int new) | ||
93 | { | ||
94 | int ret; | ||
95 | unsigned long flags; | ||
96 | |||
97 | local_irq_save(flags); | ||
98 | ret = v->counter; | ||
99 | if (likely(ret == old)) | ||
100 | v->counter = new; | ||
101 | local_irq_restore(flags); | ||
102 | |||
103 | return ret; | ||
104 | } | ||
105 | |||
106 | #define atomic_xchg(v, new) (xchg(&((v)->counter), new)) | ||
107 | |||
108 | static inline int atomic_add_unless(atomic_t *v, int a, int u) | ||
109 | { | ||
110 | int ret; | ||
111 | unsigned long flags; | ||
112 | |||
113 | local_irq_save(flags); | ||
114 | ret = v->counter; | ||
115 | if (ret != u) | ||
116 | v->counter += a; | ||
117 | local_irq_restore(flags); | ||
118 | |||
119 | return ret != u; | ||
120 | } | ||
121 | |||
122 | #define atomic_inc_not_zero(v) atomic_add_unless((v), 1, 0) | ||
123 | |||
124 | /* Atomic operations are already serializing on ARM */ | ||
125 | #define smp_mb__before_atomic_dec() barrier() | ||
126 | #define smp_mb__after_atomic_dec() barrier() | ||
127 | #define smp_mb__before_atomic_inc() barrier() | ||
128 | #define smp_mb__after_atomic_inc() barrier() | ||
129 | |||
130 | #include <asm-generic/atomic.h> | ||
131 | #endif /* __V850_ATOMIC_H__ */ | ||
diff --git a/include/asm-v850/auxvec.h b/include/asm-v850/auxvec.h deleted file mode 100644 index f493232d0224..000000000000 --- a/include/asm-v850/auxvec.h +++ /dev/null | |||
@@ -1,4 +0,0 @@ | |||
1 | #ifndef __V850_AUXVEC_H__ | ||
2 | #define __V850_AUXVEC_H__ | ||
3 | |||
4 | #endif /* __V850_AUXVEC_H__ */ | ||
diff --git a/include/asm-v850/bitops.h b/include/asm-v850/bitops.h deleted file mode 100644 index f82f5b4a56e0..000000000000 --- a/include/asm-v850/bitops.h +++ /dev/null | |||
@@ -1,161 +0,0 @@ | |||
1 | /* | ||
2 | * include/asm-v850/bitops.h -- Bit operations | ||
3 | * | ||
4 | * Copyright (C) 2001,02,03,04,05 NEC Electronics Corporation | ||
5 | * Copyright (C) 2001,02,03,04,05 Miles Bader <miles@gnu.org> | ||
6 | * Copyright (C) 1992 Linus Torvalds. | ||
7 | * | ||
8 | * This file is subject to the terms and conditions of the GNU General | ||
9 | * Public License. See the file COPYING in the main directory of this | ||
10 | * archive for more details. | ||
11 | */ | ||
12 | |||
13 | #ifndef __V850_BITOPS_H__ | ||
14 | #define __V850_BITOPS_H__ | ||
15 | |||
16 | #ifndef _LINUX_BITOPS_H | ||
17 | #error only <linux/bitops.h> can be included directly | ||
18 | #endif | ||
19 | |||
20 | #include <linux/compiler.h> /* unlikely */ | ||
21 | #include <asm/byteorder.h> /* swab32 */ | ||
22 | #include <asm/system.h> /* interrupt enable/disable */ | ||
23 | |||
24 | |||
25 | #ifdef __KERNEL__ | ||
26 | |||
27 | #include <asm-generic/bitops/ffz.h> | ||
28 | |||
29 | /* | ||
30 | * The __ functions are not atomic | ||
31 | */ | ||
32 | |||
33 | /* In the following constant-bit-op macros, a "g" constraint is used when | ||
34 | we really need an integer ("i" constraint). This is to avoid | ||
35 | warnings/errors from the compiler in the case where the associated | ||
36 | operand _isn't_ an integer, and shouldn't produce bogus assembly because | ||
37 | use of that form is protected by a guard statement that checks for | ||
38 | constants, and should otherwise be removed by the optimizer. This | ||
39 | _usually_ works -- however, __builtin_constant_p returns true for a | ||
40 | variable with a known constant value too, and unfortunately gcc will | ||
41 | happily put the variable in a register and use the register for the "g" | ||
42 | constraint'd asm operand. To avoid the latter problem, we add a | ||
43 | constant offset to the operand and subtract it back in the asm code; | ||
44 | forcing gcc to do arithmetic on the value is usually enough to get it | ||
45 | to use a real constant value. This is horrible, and ultimately | ||
46 | unreliable too, but it seems to work for now (hopefully gcc will offer | ||
47 | us more control in the future, so we can do a better job). */ | ||
48 | |||
49 | #define __const_bit_op(op, nr, addr) \ | ||
50 | ({ __asm__ (op " (%0 - 0x123), %1" \ | ||
51 | :: "g" (((nr) & 0x7) + 0x123), \ | ||
52 | "m" (*((char *)(addr) + ((nr) >> 3))) \ | ||
53 | : "memory"); }) | ||
54 | #define __var_bit_op(op, nr, addr) \ | ||
55 | ({ int __nr = (nr); \ | ||
56 | __asm__ (op " %0, [%1]" \ | ||
57 | :: "r" (__nr & 0x7), \ | ||
58 | "r" ((char *)(addr) + (__nr >> 3)) \ | ||
59 | : "memory"); }) | ||
60 | #define __bit_op(op, nr, addr) \ | ||
61 | ((__builtin_constant_p (nr) && (unsigned)(nr) <= 0x7FFFF) \ | ||
62 | ? __const_bit_op (op, nr, addr) \ | ||
63 | : __var_bit_op (op, nr, addr)) | ||
64 | |||
65 | #define __set_bit(nr, addr) __bit_op ("set1", nr, addr) | ||
66 | #define __clear_bit(nr, addr) __bit_op ("clr1", nr, addr) | ||
67 | #define __change_bit(nr, addr) __bit_op ("not1", nr, addr) | ||
68 | |||
69 | /* The bit instructions used by `non-atomic' variants are actually atomic. */ | ||
70 | #define set_bit __set_bit | ||
71 | #define clear_bit __clear_bit | ||
72 | #define change_bit __change_bit | ||
73 | |||
74 | |||
75 | #define __const_tns_bit_op(op, nr, addr) \ | ||
76 | ({ int __tns_res; \ | ||
77 | __asm__ __volatile__ ( \ | ||
78 | "tst1 (%1 - 0x123), %2; setf nz, %0; " op " (%1 - 0x123), %2" \ | ||
79 | : "=&r" (__tns_res) \ | ||
80 | : "g" (((nr) & 0x7) + 0x123), \ | ||
81 | "m" (*((char *)(addr) + ((nr) >> 3))) \ | ||
82 | : "memory"); \ | ||
83 | __tns_res; \ | ||
84 | }) | ||
85 | #define __var_tns_bit_op(op, nr, addr) \ | ||
86 | ({ int __nr = (nr); \ | ||
87 | int __tns_res; \ | ||
88 | __asm__ __volatile__ ( \ | ||
89 | "tst1 %1, [%2]; setf nz, %0; " op " %1, [%2]" \ | ||
90 | : "=&r" (__tns_res) \ | ||
91 | : "r" (__nr & 0x7), \ | ||
92 | "r" ((char *)(addr) + (__nr >> 3)) \ | ||
93 | : "memory"); \ | ||
94 | __tns_res; \ | ||
95 | }) | ||
96 | #define __tns_bit_op(op, nr, addr) \ | ||
97 | ((__builtin_constant_p (nr) && (unsigned)(nr) <= 0x7FFFF) \ | ||
98 | ? __const_tns_bit_op (op, nr, addr) \ | ||
99 | : __var_tns_bit_op (op, nr, addr)) | ||
100 | #define __tns_atomic_bit_op(op, nr, addr) \ | ||
101 | ({ int __tns_atomic_res, __tns_atomic_flags; \ | ||
102 | local_irq_save (__tns_atomic_flags); \ | ||
103 | __tns_atomic_res = __tns_bit_op (op, nr, addr); \ | ||
104 | local_irq_restore (__tns_atomic_flags); \ | ||
105 | __tns_atomic_res; \ | ||
106 | }) | ||
107 | |||
108 | #define __test_and_set_bit(nr, addr) __tns_bit_op ("set1", nr, addr) | ||
109 | #define test_and_set_bit(nr, addr) __tns_atomic_bit_op ("set1", nr, addr) | ||
110 | |||
111 | #define __test_and_clear_bit(nr, addr) __tns_bit_op ("clr1", nr, addr) | ||
112 | #define test_and_clear_bit(nr, addr) __tns_atomic_bit_op ("clr1", nr, addr) | ||
113 | |||
114 | #define __test_and_change_bit(nr, addr) __tns_bit_op ("not1", nr, addr) | ||
115 | #define test_and_change_bit(nr, addr) __tns_atomic_bit_op ("not1", nr, addr) | ||
116 | |||
117 | |||
118 | #define __const_test_bit(nr, addr) \ | ||
119 | ({ int __test_bit_res; \ | ||
120 | __asm__ __volatile__ ("tst1 (%1 - 0x123), %2; setf nz, %0" \ | ||
121 | : "=r" (__test_bit_res) \ | ||
122 | : "g" (((nr) & 0x7) + 0x123), \ | ||
123 | "m" (*((const char *)(addr) + ((nr) >> 3)))); \ | ||
124 | __test_bit_res; \ | ||
125 | }) | ||
126 | static inline int __test_bit (int nr, const void *addr) | ||
127 | { | ||
128 | int res; | ||
129 | __asm__ __volatile__ ("tst1 %1, [%2]; setf nz, %0" | ||
130 | : "=r" (res) | ||
131 | : "r" (nr & 0x7), "r" (addr + (nr >> 3))); | ||
132 | return res; | ||
133 | } | ||
134 | #define test_bit(nr,addr) \ | ||
135 | ((__builtin_constant_p (nr) && (unsigned)(nr) <= 0x7FFFF) \ | ||
136 | ? __const_test_bit ((nr), (addr)) \ | ||
137 | : __test_bit ((nr), (addr))) | ||
138 | |||
139 | |||
140 | /* clear_bit doesn't provide any barrier for the compiler. */ | ||
141 | #define smp_mb__before_clear_bit() barrier () | ||
142 | #define smp_mb__after_clear_bit() barrier () | ||
143 | |||
144 | #include <asm-generic/bitops/ffs.h> | ||
145 | #include <asm-generic/bitops/fls.h> | ||
146 | #include <asm-generic/bitops/fls64.h> | ||
147 | #include <asm-generic/bitops/__ffs.h> | ||
148 | #include <asm-generic/bitops/find.h> | ||
149 | #include <asm-generic/bitops/sched.h> | ||
150 | #include <asm-generic/bitops/hweight.h> | ||
151 | #include <asm-generic/bitops/lock.h> | ||
152 | |||
153 | #include <asm-generic/bitops/ext2-non-atomic.h> | ||
154 | #define ext2_set_bit_atomic(l,n,a) test_and_set_bit(n,a) | ||
155 | #define ext2_clear_bit_atomic(l,n,a) test_and_clear_bit(n,a) | ||
156 | |||
157 | #include <asm-generic/bitops/minix.h> | ||
158 | |||
159 | #endif /* __KERNEL__ */ | ||
160 | |||
161 | #endif /* __V850_BITOPS_H__ */ | ||
diff --git a/include/asm-v850/bug.h b/include/asm-v850/bug.h deleted file mode 100644 index b0ed2d35f3e8..000000000000 --- a/include/asm-v850/bug.h +++ /dev/null | |||
@@ -1,25 +0,0 @@ | |||
1 | /* | ||
2 | * include/asm-v850/bug.h -- Bug reporting | ||
3 | * | ||
4 | * Copyright (C) 2003 NEC Electronics Corporation | ||
5 | * Copyright (C) 2003 Miles Bader <miles@gnu.org> | ||
6 | * | ||
7 | * This file is subject to the terms and conditions of the GNU General | ||
8 | * Public License. See the file COPYING in the main directory of this | ||
9 | * archive for more details. | ||
10 | * | ||
11 | * Written by Miles Bader <miles@gnu.org> | ||
12 | */ | ||
13 | |||
14 | #ifndef __V850_BUG_H__ | ||
15 | #define __V850_BUG_H__ | ||
16 | |||
17 | #ifdef CONFIG_BUG | ||
18 | extern void __bug (void) __attribute__ ((noreturn)); | ||
19 | #define BUG() __bug() | ||
20 | #define HAVE_ARCH_BUG | ||
21 | #endif | ||
22 | |||
23 | #include <asm-generic/bug.h> | ||
24 | |||
25 | #endif /* __V850_BUG_H__ */ | ||
diff --git a/include/asm-v850/bugs.h b/include/asm-v850/bugs.h deleted file mode 100644 index 71110a65c1d7..000000000000 --- a/include/asm-v850/bugs.h +++ /dev/null | |||
@@ -1,16 +0,0 @@ | |||
1 | /* | ||
2 | * include/asm-v850e/bugs.h | ||
3 | * | ||
4 | * Copyright (C) 1994 Linus Torvalds | ||
5 | */ | ||
6 | |||
7 | /* | ||
8 | * This is included by init/main.c to check for architecture-dependent bugs. | ||
9 | * | ||
10 | * Needs: | ||
11 | * void check_bugs(void); | ||
12 | */ | ||
13 | |||
14 | static void check_bugs(void) | ||
15 | { | ||
16 | } | ||
diff --git a/include/asm-v850/byteorder.h b/include/asm-v850/byteorder.h deleted file mode 100644 index a6f07530050e..000000000000 --- a/include/asm-v850/byteorder.h +++ /dev/null | |||
@@ -1,48 +0,0 @@ | |||
1 | /* | ||
2 | * include/asm-v850/byteorder.h -- Endian id and conversion ops | ||
3 | * | ||
4 | * Copyright (C) 2001 NEC Corporation | ||
5 | * Copyright (C) 2001 Miles Bader <miles@gnu.org> | ||
6 | * | ||
7 | * This file is subject to the terms and conditions of the GNU General | ||
8 | * Public License. See the file COPYING in the main directory of this | ||
9 | * archive for more details. | ||
10 | * | ||
11 | * Written by Miles Bader <miles@gnu.org> | ||
12 | */ | ||
13 | |||
14 | #ifndef __V850_BYTEORDER_H__ | ||
15 | #define __V850_BYTEORDER_H__ | ||
16 | |||
17 | #include <asm/types.h> | ||
18 | #include <linux/compiler.h> | ||
19 | |||
20 | #ifdef __GNUC__ | ||
21 | |||
22 | static __inline__ __attribute_const__ __u32 ___arch__swab32 (__u32 word) | ||
23 | { | ||
24 | __u32 res; | ||
25 | __asm__ ("bsw %1, %0" : "=r" (res) : "r" (word)); | ||
26 | return res; | ||
27 | } | ||
28 | |||
29 | static __inline__ __attribute_const__ __u16 ___arch__swab16 (__u16 half_word) | ||
30 | { | ||
31 | __u16 res; | ||
32 | __asm__ ("bsh %1, %0" : "=r" (res) : "r" (half_word)); | ||
33 | return res; | ||
34 | } | ||
35 | |||
36 | #define __arch__swab32(x) ___arch__swab32(x) | ||
37 | #define __arch__swab16(x) ___arch__swab16(x) | ||
38 | |||
39 | #if !defined(__STRICT_ANSI__) || defined(__KERNEL__) | ||
40 | # define __BYTEORDER_HAS_U64__ | ||
41 | # define __SWAB_64_THRU_32__ | ||
42 | #endif | ||
43 | |||
44 | #endif /* __GNUC__ */ | ||
45 | |||
46 | #include <linux/byteorder/little_endian.h> | ||
47 | |||
48 | #endif /* __V850_BYTEORDER_H__ */ | ||
diff --git a/include/asm-v850/cache.h b/include/asm-v850/cache.h deleted file mode 100644 index 8832c7ea3242..000000000000 --- a/include/asm-v850/cache.h +++ /dev/null | |||
@@ -1,26 +0,0 @@ | |||
1 | /* | ||
2 | * include/asm-v850/cache.h -- Cache operations | ||
3 | * | ||
4 | * Copyright (C) 2001,05 NEC Corporation | ||
5 | * Copyright (C) 2001,05 Miles Bader <miles@gnu.org> | ||
6 | * | ||
7 | * This file is subject to the terms and conditions of the GNU General | ||
8 | * Public License. See the file COPYING in the main directory of this | ||
9 | * archive for more details. | ||
10 | * | ||
11 | * Written by Miles Bader <miles@gnu.org> | ||
12 | */ | ||
13 | |||
14 | #ifndef __V850_CACHE_H__ | ||
15 | #define __V850_CACHE_H__ | ||
16 | |||
17 | /* All cache operations are machine-dependent. */ | ||
18 | #include <asm/machdep.h> | ||
19 | |||
20 | #ifndef L1_CACHE_BYTES | ||
21 | /* This processor has no cache, so just choose an arbitrary value. */ | ||
22 | #define L1_CACHE_BYTES 16 | ||
23 | #define L1_CACHE_SHIFT 4 | ||
24 | #endif | ||
25 | |||
26 | #endif /* __V850_CACHE_H__ */ | ||
diff --git a/include/asm-v850/cacheflush.h b/include/asm-v850/cacheflush.h deleted file mode 100644 index 9ece05a202ef..000000000000 --- a/include/asm-v850/cacheflush.h +++ /dev/null | |||
@@ -1,70 +0,0 @@ | |||
1 | /* | ||
2 | * include/asm-v850/cacheflush.h | ||
3 | * | ||
4 | * Copyright (C) 2001,02,03 NEC Electronics Corporation | ||
5 | * Copyright (C) 2001,02,03 Miles Bader <miles@gnu.org> | ||
6 | * | ||
7 | * This file is subject to the terms and conditions of the GNU General | ||
8 | * Public License. See the file COPYING in the main directory of this | ||
9 | * archive for more details. | ||
10 | * | ||
11 | * Written by Miles Bader <miles@gnu.org> | ||
12 | */ | ||
13 | |||
14 | #ifndef __V850_CACHEFLUSH_H__ | ||
15 | #define __V850_CACHEFLUSH_H__ | ||
16 | |||
17 | /* Somebody depends on this; sigh... */ | ||
18 | #include <linux/mm.h> | ||
19 | |||
20 | #include <asm/machdep.h> | ||
21 | |||
22 | |||
23 | /* The following are all used by the kernel in ways that only affect | ||
24 | systems with MMUs, so we don't need them. */ | ||
25 | #define flush_cache_all() ((void)0) | ||
26 | #define flush_cache_mm(mm) ((void)0) | ||
27 | #define flush_cache_dup_mm(mm) ((void)0) | ||
28 | #define flush_cache_range(vma, start, end) ((void)0) | ||
29 | #define flush_cache_page(vma, vmaddr, pfn) ((void)0) | ||
30 | #define flush_dcache_page(page) ((void)0) | ||
31 | #define flush_dcache_mmap_lock(mapping) ((void)0) | ||
32 | #define flush_dcache_mmap_unlock(mapping) ((void)0) | ||
33 | #define flush_cache_vmap(start, end) ((void)0) | ||
34 | #define flush_cache_vunmap(start, end) ((void)0) | ||
35 | |||
36 | #ifdef CONFIG_NO_CACHE | ||
37 | |||
38 | /* Some systems have no cache at all, in which case we don't need these | ||
39 | either. */ | ||
40 | #define flush_icache() ((void)0) | ||
41 | #define flush_icache_range(start, end) ((void)0) | ||
42 | #define flush_icache_page(vma,pg) ((void)0) | ||
43 | #define flush_icache_user_range(vma,pg,adr,len) ((void)0) | ||
44 | #define flush_cache_sigtramp(vaddr) ((void)0) | ||
45 | |||
46 | #else /* !CONFIG_NO_CACHE */ | ||
47 | |||
48 | struct page; | ||
49 | struct mm_struct; | ||
50 | struct vm_area_struct; | ||
51 | |||
52 | /* Otherwise, somebody had better define them. */ | ||
53 | extern void flush_icache (void); | ||
54 | extern void flush_icache_range (unsigned long start, unsigned long end); | ||
55 | extern void flush_icache_page (struct vm_area_struct *vma, struct page *page); | ||
56 | extern void flush_icache_user_range (struct vm_area_struct *vma, | ||
57 | struct page *page, | ||
58 | unsigned long adr, int len); | ||
59 | extern void flush_cache_sigtramp (unsigned long addr); | ||
60 | |||
61 | #endif /* CONFIG_NO_CACHE */ | ||
62 | |||
63 | #define copy_to_user_page(vma, page, vaddr, dst, src, len) \ | ||
64 | do { memcpy(dst, src, len); \ | ||
65 | flush_icache_user_range(vma, page, vaddr, len); \ | ||
66 | } while (0) | ||
67 | #define copy_from_user_page(vma, page, vaddr, dst, src, len) \ | ||
68 | memcpy(dst, src, len) | ||
69 | |||
70 | #endif /* __V850_CACHEFLUSH_H__ */ | ||
diff --git a/include/asm-v850/checksum.h b/include/asm-v850/checksum.h deleted file mode 100644 index d1dddd938262..000000000000 --- a/include/asm-v850/checksum.h +++ /dev/null | |||
@@ -1,112 +0,0 @@ | |||
1 | /* | ||
2 | * include/asm-v850/checksum.h -- Checksum ops | ||
3 | * | ||
4 | * Copyright (C) 2001,2005 NEC Corporation | ||
5 | * Copyright (C) 2001,2005 Miles Bader <miles@gnu.org> | ||
6 | * | ||
7 | * This file is subject to the terms and conditions of the GNU General | ||
8 | * Public License. See the file COPYING in the main directory of this | ||
9 | * archive for more details. | ||
10 | * | ||
11 | * Written by Miles Bader <miles@gnu.org> | ||
12 | */ | ||
13 | |||
14 | #ifndef __V850_CHECKSUM_H__ | ||
15 | #define __V850_CHECKSUM_H__ | ||
16 | |||
17 | /* | ||
18 | * computes the checksum of a memory block at buff, length len, | ||
19 | * and adds in "sum" (32-bit) | ||
20 | * | ||
21 | * returns a 32-bit number suitable for feeding into itself | ||
22 | * or csum_tcpudp_magic | ||
23 | * | ||
24 | * this function must be called with even lengths, except | ||
25 | * for the last fragment, which may be odd | ||
26 | * | ||
27 | * it's best to have buff aligned on a 32-bit boundary | ||
28 | */ | ||
29 | extern __wsum csum_partial(const void *buff, int len, __wsum sum); | ||
30 | |||
31 | /* | ||
32 | * the same as csum_partial, but copies from src while it | ||
33 | * checksums | ||
34 | * | ||
35 | * here even more important to align src and dst on a 32-bit (or even | ||
36 | * better 64-bit) boundary | ||
37 | */ | ||
38 | extern __wsum csum_partial_copy_nocheck(const void *src, | ||
39 | void *dst, int len, __wsum sum); | ||
40 | |||
41 | |||
42 | /* | ||
43 | * the same as csum_partial_copy, but copies from user space. | ||
44 | * | ||
45 | * here even more important to align src and dst on a 32-bit (or even | ||
46 | * better 64-bit) boundary | ||
47 | */ | ||
48 | extern __wsum csum_partial_copy_from_user (const void *src, | ||
49 | void *dst, | ||
50 | int len, __wsum sum, | ||
51 | int *csum_err); | ||
52 | |||
53 | __sum16 ip_fast_csum(const void *iph, unsigned int ihl); | ||
54 | |||
55 | /* | ||
56 | * Fold a partial checksum | ||
57 | */ | ||
58 | static inline __sum16 csum_fold (__wsum sum) | ||
59 | { | ||
60 | unsigned int result; | ||
61 | /* | ||
62 | %0 %1 | ||
63 | hsw %1, %0 H L L H | ||
64 | add %1, %0 H L H+L+C H+L | ||
65 | */ | ||
66 | asm ("hsw %1, %0; add %1, %0" : "=&r" (result) : "r" (sum)); | ||
67 | return (__force __sum16)(~result >> 16); | ||
68 | } | ||
69 | |||
70 | |||
71 | /* | ||
72 | * computes the checksum of the TCP/UDP pseudo-header | ||
73 | * returns a 16-bit checksum, already complemented | ||
74 | */ | ||
75 | static inline __wsum | ||
76 | csum_tcpudp_nofold (__be32 saddr, __be32 daddr, | ||
77 | unsigned short len, | ||
78 | unsigned short proto, __wsum sum) | ||
79 | { | ||
80 | int __carry; | ||
81 | __asm__ ("add %2, %0;" | ||
82 | "setf c, %1;" | ||
83 | "add %1, %0;" | ||
84 | "add %3, %0;" | ||
85 | "setf c, %1;" | ||
86 | "add %1, %0;" | ||
87 | "add %4, %0;" | ||
88 | "setf c, %1;" | ||
89 | "add %1, %0" | ||
90 | : "=&r" (sum), "=&r" (__carry) | ||
91 | : "r" (daddr), "r" (saddr), | ||
92 | "r" ((len + proto) << 8), | ||
93 | "0" (sum)); | ||
94 | return sum; | ||
95 | } | ||
96 | |||
97 | static inline __sum16 | ||
98 | csum_tcpudp_magic (__be32 saddr, __be32 daddr, | ||
99 | unsigned short len, | ||
100 | unsigned short proto, __wsum sum) | ||
101 | { | ||
102 | return csum_fold (csum_tcpudp_nofold (saddr, daddr, len, proto, sum)); | ||
103 | } | ||
104 | |||
105 | /* | ||
106 | * this routine is used for miscellaneous IP-like checksums, mainly | ||
107 | * in icmp.c | ||
108 | */ | ||
109 | extern __sum16 ip_compute_csum(const void *buff, int len); | ||
110 | |||
111 | |||
112 | #endif /* __V850_CHECKSUM_H__ */ | ||
diff --git a/include/asm-v850/clinkage.h b/include/asm-v850/clinkage.h deleted file mode 100644 index c389691d6f86..000000000000 --- a/include/asm-v850/clinkage.h +++ /dev/null | |||
@@ -1,26 +0,0 @@ | |||
1 | /* | ||
2 | * include/asm-v850/clinkage.h -- Macros to reflect C symbol-naming conventions | ||
3 | * | ||
4 | * Copyright (C) 2001,02 NEC Corporatione | ||
5 | * Copyright (C) 2001,02 Miles Bader <miles@gnu.org> | ||
6 | * | ||
7 | * This file is subject to the terms and conditions of the GNU General | ||
8 | * Public License. See the file COPYING in the main directory of this | ||
9 | * archive for more details. | ||
10 | * | ||
11 | * Written by Miles Bader <miles@gnu.org> | ||
12 | */ | ||
13 | |||
14 | #ifndef __V850_CLINKAGE_H__ | ||
15 | #define __V850_CLINKAGE_H__ | ||
16 | |||
17 | #include <asm/macrology.h> | ||
18 | #include <asm/asm.h> | ||
19 | |||
20 | #define C_SYMBOL_NAME(name) macrology_paste(_, name) | ||
21 | #define C_SYMBOL_STRING(name) macrology_stringify(C_SYMBOL_NAME(name)) | ||
22 | #define C_ENTRY(name) G_ENTRY(C_SYMBOL_NAME(name)) | ||
23 | #define C_DATA(name) G_DATA(C_SYMBOL_NAME(name)) | ||
24 | #define C_END(name) END(C_SYMBOL_NAME(name)) | ||
25 | |||
26 | #endif /* __V850_CLINKAGE_H__ */ | ||
diff --git a/include/asm-v850/cputime.h b/include/asm-v850/cputime.h deleted file mode 100644 index 7c799c33b8a9..000000000000 --- a/include/asm-v850/cputime.h +++ /dev/null | |||
@@ -1,6 +0,0 @@ | |||
1 | #ifndef __V850_CPUTIME_H | ||
2 | #define __V850_CPUTIME_H | ||
3 | |||
4 | #include <asm-generic/cputime.h> | ||
5 | |||
6 | #endif /* __V850_CPUTIME_H */ | ||
diff --git a/include/asm-v850/current.h b/include/asm-v850/current.h deleted file mode 100644 index 30aae5673770..000000000000 --- a/include/asm-v850/current.h +++ /dev/null | |||
@@ -1,47 +0,0 @@ | |||
1 | /* | ||
2 | * include/asm-v850/current.h -- Current task | ||
3 | * | ||
4 | * Copyright (C) 2001,02 NEC Corporation | ||
5 | * Copyright (C) 2001,02 Miles Bader <miles@gnu.org> | ||
6 | * | ||
7 | * This file is subject to the terms and conditions of the GNU General | ||
8 | * Public License. See the file COPYING in the main directory of this | ||
9 | * archive for more details. | ||
10 | * | ||
11 | * Written by Miles Bader <miles@gnu.org> | ||
12 | */ | ||
13 | |||
14 | #ifndef __V850_CURRENT_H__ | ||
15 | #define __V850_CURRENT_H__ | ||
16 | |||
17 | #ifndef __ASSEMBLY__ /* <linux/thread_info.h> is not asm-safe. */ | ||
18 | #include <linux/thread_info.h> | ||
19 | #endif | ||
20 | |||
21 | #include <asm/macrology.h> | ||
22 | |||
23 | |||
24 | /* Register used to hold the current task pointer while in the kernel. | ||
25 | Any `call clobbered' register without a special meaning should be OK, | ||
26 | but check asm/v850/kernel/entry.S to be sure. */ | ||
27 | #define CURRENT_TASK_REGNUM 16 | ||
28 | #define CURRENT_TASK macrology_paste (r, CURRENT_TASK_REGNUM) | ||
29 | |||
30 | |||
31 | #ifdef __ASSEMBLY__ | ||
32 | |||
33 | /* Put a pointer to the current task structure into REG. */ | ||
34 | #define GET_CURRENT_TASK(reg) \ | ||
35 | GET_CURRENT_THREAD(reg); \ | ||
36 | ld.w TI_TASK[reg], reg | ||
37 | |||
38 | #else /* !__ASSEMBLY__ */ | ||
39 | |||
40 | /* A pointer to the current task. */ | ||
41 | register struct task_struct *current \ | ||
42 | __asm__ (macrology_stringify (CURRENT_TASK)); | ||
43 | |||
44 | #endif /* __ASSEMBLY__ */ | ||
45 | |||
46 | |||
47 | #endif /* _V850_CURRENT_H */ | ||
diff --git a/include/asm-v850/delay.h b/include/asm-v850/delay.h deleted file mode 100644 index 6d028e6b2354..000000000000 --- a/include/asm-v850/delay.h +++ /dev/null | |||
@@ -1,47 +0,0 @@ | |||
1 | /* | ||
2 | * include/asm-v850/delay.h -- Delay routines, using a pre-computed | ||
3 | * "loops_per_second" value | ||
4 | * | ||
5 | * Copyright (C) 2001,03 NEC Corporation | ||
6 | * Copyright (C) 2001,03 Miles Bader <miles@gnu.org> | ||
7 | * Copyright (C) 1994 Hamish Macdonald | ||
8 | * | ||
9 | * This file is subject to the terms and conditions of the GNU General | ||
10 | * Public License. See the file COPYING in the main directory of this | ||
11 | * archive for more details. | ||
12 | */ | ||
13 | |||
14 | #ifndef __V850_DELAY_H__ | ||
15 | #define __V850_DELAY_H__ | ||
16 | |||
17 | #include <asm/param.h> | ||
18 | |||
19 | static inline void __delay(unsigned long loops) | ||
20 | { | ||
21 | if (loops) | ||
22 | __asm__ __volatile__ ("1: add -1, %0; bnz 1b" | ||
23 | : "=r" (loops) : "0" (loops)); | ||
24 | } | ||
25 | |||
26 | /* | ||
27 | * Use only for very small delays ( < 1 msec). Should probably use a | ||
28 | * lookup table, really, as the multiplications take much too long with | ||
29 | * short delays. This is a "reasonable" implementation, though (and the | ||
30 | * first constant multiplications gets optimized away if the delay is | ||
31 | * a constant) | ||
32 | */ | ||
33 | |||
34 | extern unsigned long loops_per_jiffy; | ||
35 | |||
36 | static inline void udelay(unsigned long usecs) | ||
37 | { | ||
38 | register unsigned long full_loops, part_loops; | ||
39 | |||
40 | full_loops = ((usecs * HZ) / 1000000) * loops_per_jiffy; | ||
41 | usecs %= (1000000 / HZ); | ||
42 | part_loops = (usecs * HZ * loops_per_jiffy) / 1000000; | ||
43 | |||
44 | __delay(full_loops + part_loops); | ||
45 | } | ||
46 | |||
47 | #endif /* __V850_DELAY_H__ */ | ||
diff --git a/include/asm-v850/device.h b/include/asm-v850/device.h deleted file mode 100644 index d8f9872b0e2d..000000000000 --- a/include/asm-v850/device.h +++ /dev/null | |||
@@ -1,7 +0,0 @@ | |||
1 | /* | ||
2 | * Arch specific extensions to struct device | ||
3 | * | ||
4 | * This file is released under the GPLv2 | ||
5 | */ | ||
6 | #include <asm-generic/device.h> | ||
7 | |||
diff --git a/include/asm-v850/div64.h b/include/asm-v850/div64.h deleted file mode 100644 index 6cd978cefb28..000000000000 --- a/include/asm-v850/div64.h +++ /dev/null | |||
@@ -1 +0,0 @@ | |||
1 | #include <asm-generic/div64.h> | ||
diff --git a/include/asm-v850/dma-mapping.h b/include/asm-v850/dma-mapping.h deleted file mode 100644 index 1cc42c603a1b..000000000000 --- a/include/asm-v850/dma-mapping.h +++ /dev/null | |||
@@ -1,11 +0,0 @@ | |||
1 | #ifndef __V850_DMA_MAPPING_H__ | ||
2 | #define __V850_DMA_MAPPING_H__ | ||
3 | |||
4 | |||
5 | #ifdef CONFIG_PCI | ||
6 | #include <asm-generic/dma-mapping.h> | ||
7 | #else | ||
8 | #include <asm-generic/dma-mapping-broken.h> | ||
9 | #endif | ||
10 | |||
11 | #endif /* __V850_DMA_MAPPING_H__ */ | ||
diff --git a/include/asm-v850/dma.h b/include/asm-v850/dma.h deleted file mode 100644 index 2369849e2d0a..000000000000 --- a/include/asm-v850/dma.h +++ /dev/null | |||
@@ -1,18 +0,0 @@ | |||
1 | #ifndef __V850_DMA_H__ | ||
2 | #define __V850_DMA_H__ | ||
3 | |||
4 | /* What should this be? */ | ||
5 | #define MAX_DMA_ADDRESS 0xFFFFFFFF | ||
6 | |||
7 | /* reserve a DMA channel */ | ||
8 | extern int request_dma (unsigned int dmanr, const char * device_id); | ||
9 | /* release it again */ | ||
10 | extern void free_dma (unsigned int dmanr); | ||
11 | |||
12 | #ifdef CONFIG_PCI | ||
13 | extern int isa_dma_bridge_buggy; | ||
14 | #else | ||
15 | #define isa_dma_bridge_buggy (0) | ||
16 | #endif | ||
17 | |||
18 | #endif /* __V850_DMA_H__ */ | ||
diff --git a/include/asm-v850/elf.h b/include/asm-v850/elf.h deleted file mode 100644 index 28f5b176ff1a..000000000000 --- a/include/asm-v850/elf.h +++ /dev/null | |||
@@ -1,99 +0,0 @@ | |||
1 | #ifndef __V850_ELF_H__ | ||
2 | #define __V850_ELF_H__ | ||
3 | |||
4 | /* | ||
5 | * ELF register definitions.. | ||
6 | */ | ||
7 | |||
8 | #include <asm/ptrace.h> | ||
9 | #include <asm/user.h> | ||
10 | #include <asm/byteorder.h> | ||
11 | |||
12 | typedef unsigned long elf_greg_t; | ||
13 | |||
14 | #define ELF_NGREG (sizeof (struct pt_regs) / sizeof(elf_greg_t)) | ||
15 | typedef elf_greg_t elf_gregset_t[ELF_NGREG]; | ||
16 | |||
17 | typedef struct user_fpu_struct elf_fpregset_t; | ||
18 | |||
19 | /* | ||
20 | * This is used to ensure we don't load something for the wrong architecture. | ||
21 | */ | ||
22 | #define elf_check_arch(x) \ | ||
23 | ((x)->e_machine == EM_V850 || (x)->e_machine == EM_CYGNUS_V850) | ||
24 | |||
25 | |||
26 | /* v850 relocation types. */ | ||
27 | #define R_V850_NONE 0 | ||
28 | #define R_V850_9_PCREL 1 | ||
29 | #define R_V850_22_PCREL 2 | ||
30 | #define R_V850_HI16_S 3 | ||
31 | #define R_V850_HI16 4 | ||
32 | #define R_V850_LO16 5 | ||
33 | #define R_V850_32 6 | ||
34 | #define R_V850_16 7 | ||
35 | #define R_V850_8 8 | ||
36 | #define R_V850_SDA_16_16_OFFSET 9 /* For ld.b, st.b, set1, clr1, | ||
37 | not1, tst1, movea, movhi */ | ||
38 | #define R_V850_SDA_15_16_OFFSET 10 /* For ld.w, ld.h, ld.hu, st.w, st.h */ | ||
39 | #define R_V850_ZDA_16_16_OFFSET 11 /* For ld.b, st.b, set1, clr1, | ||
40 | not1, tst1, movea, movhi */ | ||
41 | #define R_V850_ZDA_15_16_OFFSET 12 /* For ld.w, ld.h, ld.hu, st.w, st.h */ | ||
42 | #define R_V850_TDA_6_8_OFFSET 13 /* For sst.w, sld.w */ | ||
43 | #define R_V850_TDA_7_8_OFFSET 14 /* For sst.h, sld.h */ | ||
44 | #define R_V850_TDA_7_7_OFFSET 15 /* For sst.b, sld.b */ | ||
45 | #define R_V850_TDA_16_16_OFFSET 16 /* For set1, clr1, not1, tst1, | ||
46 | movea, movhi */ | ||
47 | #define R_V850_NUM 17 | ||
48 | |||
49 | |||
50 | /* | ||
51 | * These are used to set parameters in the core dumps. | ||
52 | */ | ||
53 | #define ELF_CLASS ELFCLASS32 | ||
54 | #ifdef __LITTLE_ENDIAN__ | ||
55 | #define ELF_DATA ELFDATA2LSB | ||
56 | #else | ||
57 | #define ELF_DATA ELFDATA2MSB | ||
58 | #endif | ||
59 | #define ELF_ARCH EM_V850 | ||
60 | |||
61 | #define USE_ELF_CORE_DUMP | ||
62 | #define ELF_EXEC_PAGESIZE 4096 | ||
63 | |||
64 | |||
65 | #define ELF_CORE_COPY_REGS(_dest,_regs) \ | ||
66 | memcpy((char *) &_dest, (char *) _regs, \ | ||
67 | sizeof(struct pt_regs)); | ||
68 | |||
69 | /* This yields a mask that user programs can use to figure out what | ||
70 | instruction set this CPU supports. This could be done in user space, | ||
71 | but it's not easy, and we've already done it here. */ | ||
72 | |||
73 | #define ELF_HWCAP (0) | ||
74 | |||
75 | /* This yields a string that ld.so will use to load implementation | ||
76 | specific libraries for optimization. This is more specific in | ||
77 | intent than poking at uname or /proc/cpuinfo. | ||
78 | |||
79 | For the moment, we have only optimizations for the Intel generations, | ||
80 | but that could change... */ | ||
81 | |||
82 | #define ELF_PLATFORM (NULL) | ||
83 | |||
84 | #define ELF_PLAT_INIT(_r, load_addr) \ | ||
85 | do { \ | ||
86 | _r->gpr[0] = _r->gpr[1] = _r->gpr[2] = _r->gpr[3] = \ | ||
87 | _r->gpr[4] = _r->gpr[5] = _r->gpr[6] = _r->gpr[7] = \ | ||
88 | _r->gpr[8] = _r->gpr[9] = _r->gpr[10] = _r->gpr[11] = \ | ||
89 | _r->gpr[12] = _r->gpr[13] = _r->gpr[14] = _r->gpr[15] = \ | ||
90 | _r->gpr[16] = _r->gpr[17] = _r->gpr[18] = _r->gpr[19] = \ | ||
91 | _r->gpr[20] = _r->gpr[21] = _r->gpr[22] = _r->gpr[23] = \ | ||
92 | _r->gpr[24] = _r->gpr[25] = _r->gpr[26] = _r->gpr[27] = \ | ||
93 | _r->gpr[28] = _r->gpr[29] = _r->gpr[30] = _r->gpr[31] = \ | ||
94 | 0; \ | ||
95 | } while (0) | ||
96 | |||
97 | #define SET_PERSONALITY(ex, ibcs2) set_personality(PER_LINUX_32BIT) | ||
98 | |||
99 | #endif /* __V850_ELF_H__ */ | ||
diff --git a/include/asm-v850/emergency-restart.h b/include/asm-v850/emergency-restart.h deleted file mode 100644 index 108d8c48e42e..000000000000 --- a/include/asm-v850/emergency-restart.h +++ /dev/null | |||
@@ -1,6 +0,0 @@ | |||
1 | #ifndef _ASM_EMERGENCY_RESTART_H | ||
2 | #define _ASM_EMERGENCY_RESTART_H | ||
3 | |||
4 | #include <asm-generic/emergency-restart.h> | ||
5 | |||
6 | #endif /* _ASM_EMERGENCY_RESTART_H */ | ||
diff --git a/include/asm-v850/entry.h b/include/asm-v850/entry.h deleted file mode 100644 index d9df8ac48584..000000000000 --- a/include/asm-v850/entry.h +++ /dev/null | |||
@@ -1,113 +0,0 @@ | |||
1 | /* | ||
2 | * include/asm-v850/entry.h -- Definitions used by low-level trap handlers | ||
3 | * | ||
4 | * Copyright (C) 2001,02,03 NEC Electronics Corporation | ||
5 | * Copyright (C) 2001,02,03 Miles Bader <miles@gnu.org> | ||
6 | * | ||
7 | * This file is subject to the terms and conditions of the GNU General | ||
8 | * Public License. See the file COPYING in the main directory of this | ||
9 | * archive for more details. | ||
10 | * | ||
11 | * Written by Miles Bader <miles@gnu.org> | ||
12 | */ | ||
13 | |||
14 | #ifndef __V850_ENTRY_H__ | ||
15 | #define __V850_ENTRY_H__ | ||
16 | |||
17 | |||
18 | #include <asm/ptrace.h> | ||
19 | #include <asm/machdep.h> | ||
20 | |||
21 | |||
22 | /* These are special variables using by the kernel trap/interrupt code | ||
23 | to save registers in, at a time when there are no spare registers we | ||
24 | can use to do so, and we can't depend on the value of the stack | ||
25 | pointer. This means that they must be within a signed 16-bit | ||
26 | displacement of 0x00000000. */ | ||
27 | |||
28 | #define KERNEL_VAR_SPACE_ADDR R0_RAM_ADDR | ||
29 | |||
30 | #ifdef __ASSEMBLY__ | ||
31 | #define KERNEL_VAR(addr) addr[r0] | ||
32 | #else | ||
33 | #define KERNEL_VAR(addr) (*(volatile unsigned long *)(addr)) | ||
34 | #endif | ||
35 | |||
36 | /* Kernel stack pointer, 4 bytes. */ | ||
37 | #define KSP_ADDR (KERNEL_VAR_SPACE_ADDR + 0) | ||
38 | #define KSP KERNEL_VAR (KSP_ADDR) | ||
39 | /* 1 if in kernel-mode, 0 if in user mode, 1 byte. */ | ||
40 | #define KM_ADDR (KERNEL_VAR_SPACE_ADDR + 4) | ||
41 | #define KM KERNEL_VAR (KM_ADDR) | ||
42 | /* Temporary storage for interrupt handlers, 4 bytes. */ | ||
43 | #define INT_SCRATCH_ADDR (KERNEL_VAR_SPACE_ADDR + 8) | ||
44 | #define INT_SCRATCH KERNEL_VAR (INT_SCRATCH_ADDR) | ||
45 | /* Where the stack-pointer is saved when jumping to various sorts of | ||
46 | interrupt handlers. ENTRY_SP is used by everything except NMIs, | ||
47 | which have their own location. Higher-priority NMIs can clobber the | ||
48 | value written by a lower priority NMI, since they can't be disabled, | ||
49 | but that's OK, because only NMI0 (the lowest-priority one) is allowed | ||
50 | to return. */ | ||
51 | #define ENTRY_SP_ADDR (KERNEL_VAR_SPACE_ADDR + 12) | ||
52 | #define ENTRY_SP KERNEL_VAR (ENTRY_SP_ADDR) | ||
53 | #define NMI_ENTRY_SP_ADDR (KERNEL_VAR_SPACE_ADDR + 16) | ||
54 | #define NMI_ENTRY_SP KERNEL_VAR (NMI_ENTRY_SP_ADDR) | ||
55 | |||
56 | #ifdef CONFIG_RESET_GUARD | ||
57 | /* Used to detect unexpected resets (since the v850 has no MMU, any call | ||
58 | through a null pointer will jump to the reset vector). We detect | ||
59 | such resets by checking for a magic value, RESET_GUARD_ACTIVE, in | ||
60 | this location. Properly resetting the machine stores zero there, so | ||
61 | it shouldn't trigger the guard; the power-on value is uncertain, but | ||
62 | it's unlikely to be RESET_GUARD_ACTIVE. */ | ||
63 | #define RESET_GUARD_ADDR (KERNEL_VAR_SPACE_ADDR + 28) | ||
64 | #define RESET_GUARD KERNEL_VAR (RESET_GUARD_ADDR) | ||
65 | #define RESET_GUARD_ACTIVE 0xFAB4BEEF | ||
66 | #endif /* CONFIG_RESET_GUARD */ | ||
67 | |||
68 | #ifdef CONFIG_V850E_HIGHRES_TIMER | ||
69 | #define HIGHRES_TIMER_SLOW_TICKS_ADDR (KERNEL_VAR_SPACE_ADDR + 32) | ||
70 | #define HIGHRES_TIMER_SLOW_TICKS KERNEL_VAR (HIGHRES_TIMER_SLOW_TICKS_ADDR) | ||
71 | #endif /* CONFIG_V850E_HIGHRES_TIMER */ | ||
72 | |||
73 | #ifndef __ASSEMBLY__ | ||
74 | |||
75 | #ifdef CONFIG_RESET_GUARD | ||
76 | /* Turn off reset guard, so that resetting the machine works normally. | ||
77 | This should be called in the various machine_halt, etc., functions. */ | ||
78 | static inline void disable_reset_guard (void) | ||
79 | { | ||
80 | RESET_GUARD = 0; | ||
81 | } | ||
82 | #endif /* CONFIG_RESET_GUARD */ | ||
83 | |||
84 | #endif /* !__ASSEMBLY__ */ | ||
85 | |||
86 | |||
87 | /* A `state save frame' is a struct pt_regs preceded by some extra space | ||
88 | suitable for a function call stack frame. */ | ||
89 | |||
90 | /* Amount of room on the stack reserved for arguments and to satisfy the | ||
91 | C calling conventions, in addition to the space used by the struct | ||
92 | pt_regs that actually holds saved values. */ | ||
93 | #define STATE_SAVE_ARG_SPACE (6*4) /* Up to six arguments. */ | ||
94 | |||
95 | |||
96 | #ifdef __ASSEMBLY__ | ||
97 | |||
98 | /* The size of a state save frame. */ | ||
99 | #define STATE_SAVE_SIZE (PT_SIZE + STATE_SAVE_ARG_SPACE) | ||
100 | |||
101 | #else /* !__ASSEMBLY__ */ | ||
102 | |||
103 | /* The size of a state save frame. */ | ||
104 | #define STATE_SAVE_SIZE (sizeof (struct pt_regs) + STATE_SAVE_ARG_SPACE) | ||
105 | |||
106 | #endif /* __ASSEMBLY__ */ | ||
107 | |||
108 | |||
109 | /* Offset of the struct pt_regs in a state save frame. */ | ||
110 | #define STATE_SAVE_PT_OFFSET STATE_SAVE_ARG_SPACE | ||
111 | |||
112 | |||
113 | #endif /* __V850_ENTRY_H__ */ | ||
diff --git a/include/asm-v850/errno.h b/include/asm-v850/errno.h deleted file mode 100644 index 31c91df01205..000000000000 --- a/include/asm-v850/errno.h +++ /dev/null | |||
@@ -1,6 +0,0 @@ | |||
1 | #ifndef __V850_ERRNO_H__ | ||
2 | #define __V850_ERRNO_H__ | ||
3 | |||
4 | #include <asm-generic/errno.h> | ||
5 | |||
6 | #endif /* __V850_ERRNO_H__ */ | ||
diff --git a/include/asm-v850/fb.h b/include/asm-v850/fb.h deleted file mode 100644 index c7df38030992..000000000000 --- a/include/asm-v850/fb.h +++ /dev/null | |||
@@ -1,12 +0,0 @@ | |||
1 | #ifndef _ASM_FB_H_ | ||
2 | #define _ASM_FB_H_ | ||
3 | #include <linux/fb.h> | ||
4 | |||
5 | #define fb_pgprotect(...) do {} while (0) | ||
6 | |||
7 | static inline int fb_is_primary_device(struct fb_info *info) | ||
8 | { | ||
9 | return 0; | ||
10 | } | ||
11 | |||
12 | #endif /* _ASM_FB_H_ */ | ||
diff --git a/include/asm-v850/fcntl.h b/include/asm-v850/fcntl.h deleted file mode 100644 index 3af4d56776dd..000000000000 --- a/include/asm-v850/fcntl.h +++ /dev/null | |||
@@ -1,11 +0,0 @@ | |||
1 | #ifndef __V850_FCNTL_H__ | ||
2 | #define __V850_FCNTL_H__ | ||
3 | |||
4 | #define O_DIRECTORY 040000 /* must be a directory */ | ||
5 | #define O_NOFOLLOW 0100000 /* don't follow links */ | ||
6 | #define O_DIRECT 0200000 /* direct disk access hint - currently ignored */ | ||
7 | #define O_LARGEFILE 0400000 | ||
8 | |||
9 | #include <asm-generic/fcntl.h> | ||
10 | |||
11 | #endif /* __V850_FCNTL_H__ */ | ||
diff --git a/include/asm-v850/flat.h b/include/asm-v850/flat.h deleted file mode 100644 index 17f0ea566611..000000000000 --- a/include/asm-v850/flat.h +++ /dev/null | |||
@@ -1,133 +0,0 @@ | |||
1 | /* | ||
2 | * include/asm-v850/flat.h -- uClinux flat-format executables | ||
3 | * | ||
4 | * Copyright (C) 2002,03 NEC Electronics Corporation | ||
5 | * Copyright (C) 2002,03 Miles Bader <miles@gnu.org> | ||
6 | * | ||
7 | * This file is subject to the terms and conditions of the GNU General | ||
8 | * Public License. See the file COPYING in the main directory of this | ||
9 | * archive for more details. | ||
10 | * | ||
11 | * Written by Miles Bader <miles@gnu.org> | ||
12 | */ | ||
13 | |||
14 | #ifndef __V850_FLAT_H__ | ||
15 | #define __V850_FLAT_H__ | ||
16 | |||
17 | /* The amount by which a relocation can exceed the program image limits | ||
18 | without being regarded as an error. On the v850, the relocations of | ||
19 | some base-pointers can be offset by 0x8000 (to allow better usage of the | ||
20 | space offered by 16-bit signed offsets -- in most cases the offsets used | ||
21 | with such a base-pointer will be negative). */ | ||
22 | |||
23 | #define flat_reloc_valid(reloc, size) ((reloc) <= (size + 0x8000)) | ||
24 | |||
25 | #define flat_stack_align(sp) /* nothing needed */ | ||
26 | #define flat_argvp_envp_on_stack() 0 | ||
27 | #define flat_old_ram_flag(flags) (flags) | ||
28 | #define flat_set_persistent(relval, p) 0 | ||
29 | |||
30 | /* We store the type of relocation in the top 4 bits of the `relval.' */ | ||
31 | |||
32 | /* Convert a relocation entry into an address. */ | ||
33 | static inline unsigned long | ||
34 | flat_get_relocate_addr (unsigned long relval) | ||
35 | { | ||
36 | return relval & 0x0fffffff; /* Mask out top 4-bits */ | ||
37 | } | ||
38 | |||
39 | #define flat_v850_get_reloc_type(relval) ((relval) >> 28) | ||
40 | |||
41 | #define FLAT_V850_R_32 0 /* Normal 32-bit reloc */ | ||
42 | #define FLAT_V850_R_HI16S_LO15 1 /* High 16-bits + signed 15-bit low field */ | ||
43 | #define FLAT_V850_R_HI16S_LO16 2 /* High 16-bits + signed 16-bit low field */ | ||
44 | |||
45 | /* Extract the address to be relocated from the symbol reference at RP; | ||
46 | RELVAL is the raw relocation-table entry from which RP is derived. | ||
47 | For the v850, RP should always be half-word aligned. */ | ||
48 | static inline unsigned long flat_get_addr_from_rp (unsigned long *rp, | ||
49 | unsigned long relval, | ||
50 | unsigned long flags, | ||
51 | unsigned long *persistent) | ||
52 | { | ||
53 | short *srp = (short *)rp; | ||
54 | |||
55 | switch (flat_v850_get_reloc_type (relval)) | ||
56 | { | ||
57 | case FLAT_V850_R_32: | ||
58 | /* Simple 32-bit address. */ | ||
59 | return srp[0] | (srp[1] << 16); | ||
60 | |||
61 | case FLAT_V850_R_HI16S_LO16: | ||
62 | /* The high and low halves of the address are in the 16 | ||
63 | bits at RP, and the 2nd word of the 32-bit instruction | ||
64 | following that, respectively. The low half is _signed_ | ||
65 | so we have to sign-extend it and add it to the upper | ||
66 | half instead of simply or-ing them together. | ||
67 | |||
68 | Unlike most relocated address, this one is stored in | ||
69 | native (little-endian) byte-order to avoid problems with | ||
70 | trashing the low-order bit, so we have to convert to | ||
71 | network-byte-order before returning, as that's what the | ||
72 | caller expects. */ | ||
73 | return htonl ((srp[0] << 16) + srp[2]); | ||
74 | |||
75 | case FLAT_V850_R_HI16S_LO15: | ||
76 | /* The high and low halves of the address are in the 16 | ||
77 | bits at RP, and the upper 15 bits of the 2nd word of the | ||
78 | 32-bit instruction following that, respectively. The | ||
79 | low half is _signed_ so we have to sign-extend it and | ||
80 | add it to the upper half instead of simply or-ing them | ||
81 | together. The lowest bit is always zero. | ||
82 | |||
83 | Unlike most relocated address, this one is stored in | ||
84 | native (little-endian) byte-order to avoid problems with | ||
85 | trashing the low-order bit, so we have to convert to | ||
86 | network-byte-order before returning, as that's what the | ||
87 | caller expects. */ | ||
88 | return htonl ((srp[0] << 16) + (srp[2] & ~0x1)); | ||
89 | |||
90 | default: | ||
91 | return ~0; /* bogus value */ | ||
92 | } | ||
93 | } | ||
94 | |||
95 | /* Insert the address ADDR into the symbol reference at RP; | ||
96 | RELVAL is the raw relocation-table entry from which RP is derived. | ||
97 | For the v850, RP should always be half-word aligned. */ | ||
98 | static inline void flat_put_addr_at_rp (unsigned long *rp, unsigned long addr, | ||
99 | unsigned long relval) | ||
100 | { | ||
101 | short *srp = (short *)rp; | ||
102 | |||
103 | switch (flat_v850_get_reloc_type (relval)) { | ||
104 | case FLAT_V850_R_32: | ||
105 | /* Simple 32-bit address. */ | ||
106 | srp[0] = addr & 0xFFFF; | ||
107 | srp[1] = (addr >> 16); | ||
108 | break; | ||
109 | |||
110 | case FLAT_V850_R_HI16S_LO16: | ||
111 | /* The high and low halves of the address are in the 16 | ||
112 | bits at RP, and the 2nd word of the 32-bit instruction | ||
113 | following that, respectively. The low half is _signed_ | ||
114 | so we must carry its sign bit to the upper half before | ||
115 | writing the upper half. */ | ||
116 | srp[0] = (addr >> 16) + ((addr >> 15) & 0x1); | ||
117 | srp[2] = addr & 0xFFFF; | ||
118 | break; | ||
119 | |||
120 | case FLAT_V850_R_HI16S_LO15: | ||
121 | /* The high and low halves of the address are in the 16 | ||
122 | bits at RP, and the upper 15 bits of the 2nd word of the | ||
123 | 32-bit instruction following that, respectively. The | ||
124 | low half is _signed_ so we must carry its sign bit to | ||
125 | the upper half before writing the upper half. The | ||
126 | lowest bit we preserve from the existing instruction. */ | ||
127 | srp[0] = (addr >> 16) + ((addr >> 15) & 0x1); | ||
128 | srp[2] = (addr & 0xFFFE) | (srp[2] & 0x1); | ||
129 | break; | ||
130 | } | ||
131 | } | ||
132 | |||
133 | #endif /* __V850_FLAT_H__ */ | ||
diff --git a/include/asm-v850/fpga85e2c.h b/include/asm-v850/fpga85e2c.h deleted file mode 100644 index 23aae666c718..000000000000 --- a/include/asm-v850/fpga85e2c.h +++ /dev/null | |||
@@ -1,82 +0,0 @@ | |||
1 | /* | ||
2 | * include/asm-v850/fpga85e2c.h -- Machine-dependent defs for | ||
3 | * FPGA implementation of V850E2/NA85E2C | ||
4 | * | ||
5 | * Copyright (C) 2002,03 NEC Electronics Corporation | ||
6 | * Copyright (C) 2002,03 Miles Bader <miles@gnu.org> | ||
7 | * | ||
8 | * This file is subject to the terms and conditions of the GNU General | ||
9 | * Public License. See the file COPYING in the main directory of this | ||
10 | * archive for more details. | ||
11 | * | ||
12 | * Written by Miles Bader <miles@gnu.org> | ||
13 | */ | ||
14 | |||
15 | #ifndef __V850_FPGA85E2C_H__ | ||
16 | #define __V850_FPGA85E2C_H__ | ||
17 | |||
18 | #include <asm/v850e2.h> | ||
19 | #include <asm/clinkage.h> | ||
20 | |||
21 | |||
22 | #define CPU_MODEL "v850e2/fpga85e2c" | ||
23 | #define CPU_MODEL_LONG "NEC V850E2/NA85E2C" | ||
24 | #define PLATFORM "fpga85e2c" | ||
25 | #define PLATFORM_LONG "NA85E2C FPGA implementation" | ||
26 | |||
27 | |||
28 | /* `external ram'. */ | ||
29 | #define ERAM_ADDR 0 | ||
30 | #define ERAM_SIZE 0x00100000 /* 1MB */ | ||
31 | |||
32 | |||
33 | /* FPGA specific control registers. */ | ||
34 | |||
35 | /* Writing a non-zero value to FLGREG(0) will signal the controlling CPU | ||
36 | to stop execution. */ | ||
37 | #define FLGREG_ADDR(n) (0xFFE80100 + 2*(n)) | ||
38 | #define FLGREG(n) (*(volatile unsigned char *)FLGREG_ADDR (n)) | ||
39 | #define FLGREG_NUM 2 | ||
40 | |||
41 | #define CSDEV_ADDR(n) (0xFFE80110 + 2*(n)) | ||
42 | #define CSDEV(n) (*(volatile unsigned char *)CSDEV_ADDR (n)) | ||
43 | |||
44 | |||
45 | /* Timer interrupts 0-3, interrupt at intervals from CLK/4096 to CLK/16384. */ | ||
46 | #define IRQ_RPU(n) (60 + (n)) | ||
47 | #define IRQ_RPU_NUM 4 | ||
48 | |||
49 | /* For <asm/irq.h> */ | ||
50 | #define NUM_CPU_IRQS 64 | ||
51 | |||
52 | |||
53 | /* General-purpose timer. */ | ||
54 | /* control/status register (can only be read/written via bit insns) */ | ||
55 | #define RPU_GTMC_ADDR 0xFFFFFB00 | ||
56 | #define RPU_GTMC (*(volatile unsigned char *)RPU_GTMC_ADDR) | ||
57 | #define RPU_GTMC_CE_BIT 7 /* clock enable (control) */ | ||
58 | #define RPU_GTMC_OV_BIT 6 /* overflow (status) */ | ||
59 | #define RPU_GTMC_CLK_BIT 1 /* 0 = .5 MHz CLK, 1 = 1 Mhz (control) */ | ||
60 | /* 32-bit count (8 least-significant bits are always zero). */ | ||
61 | #define RPU_GTM_ADDR 0xFFFFFB28 | ||
62 | #define RPU_GTM (*(volatile unsigned long *)RPU_GTMC_ADDR) | ||
63 | |||
64 | |||
65 | /* For <asm/page.h> */ | ||
66 | #define PAGE_OFFSET ERAM_ADDR /* minimum allocatable address */ | ||
67 | |||
68 | |||
69 | /* For <asm/entry.h> */ | ||
70 | /* `R0 RAM', used for a few miscellaneous variables that must be accessible | ||
71 | using a load instruction relative to R0. The FPGA implementation | ||
72 | actually has no on-chip RAM, so we use part of main ram just after the | ||
73 | interrupt vectors. */ | ||
74 | #ifdef __ASSEMBLY__ | ||
75 | #define R0_RAM_ADDR lo(C_SYMBOL_NAME(_r0_ram)) | ||
76 | #else | ||
77 | extern char _r0_ram; | ||
78 | #define R0_RAM_ADDR ((unsigned long)&_r0_ram); | ||
79 | #endif | ||
80 | |||
81 | |||
82 | #endif /* __V850_FPGA85E2C_H__ */ | ||
diff --git a/include/asm-v850/futex.h b/include/asm-v850/futex.h deleted file mode 100644 index 6a332a9f099c..000000000000 --- a/include/asm-v850/futex.h +++ /dev/null | |||
@@ -1,6 +0,0 @@ | |||
1 | #ifndef _ASM_FUTEX_H | ||
2 | #define _ASM_FUTEX_H | ||
3 | |||
4 | #include <asm-generic/futex.h> | ||
5 | |||
6 | #endif | ||
diff --git a/include/asm-v850/gbus_int.h b/include/asm-v850/gbus_int.h deleted file mode 100644 index 0c4bce753c7e..000000000000 --- a/include/asm-v850/gbus_int.h +++ /dev/null | |||
@@ -1,97 +0,0 @@ | |||
1 | /* | ||
2 | * include/asm-v850/gbus_int.h -- Midas labs GBUS interrupt support | ||
3 | * | ||
4 | * Copyright (C) 2001,02 NEC Corporation | ||
5 | * Copyright (C) 2001,02 Miles Bader <miles@gnu.org> | ||
6 | * | ||
7 | * This file is subject to the terms and conditions of the GNU General | ||
8 | * Public License. See the file COPYING in the main directory of this | ||
9 | * archive for more details. | ||
10 | * | ||
11 | * Written by Miles Bader <miles@gnu.org> | ||
12 | */ | ||
13 | |||
14 | #ifndef __V850_GBUS_INT_H__ | ||
15 | #define __V850_GBUS_INT_H__ | ||
16 | |||
17 | |||
18 | /* The GBUS interrupt interface has 32 interrupts shared among 4 | ||
19 | processor interrupts. The 32 GBUS interrupts are divided into two | ||
20 | sets of 16 each, for allocating among control registers, etc (there | ||
21 | are two of each control register, with bits 0-15 controlling an | ||
22 | interrupt each). */ | ||
23 | |||
24 | /* The GBUS interrupts themselves. */ | ||
25 | #define IRQ_GBUS_INT(n) (GBUS_INT_BASE_IRQ + (n)) | ||
26 | #define IRQ_GBUS_INT_NUM 32 | ||
27 | |||
28 | /* Control registers. */ | ||
29 | #define GBUS_INT_STATUS_ADDR(w) (GBUS_INT_BASE_ADDR + (w)*0x40) | ||
30 | #define GBUS_INT_STATUS(w) (*(volatile u16 *)GBUS_INT_STATUS_ADDR(w)) | ||
31 | #define GBUS_INT_CLEAR_ADDR(w) (GBUS_INT_BASE_ADDR + 0x10 + (w)*0x40) | ||
32 | #define GBUS_INT_CLEAR(w) (*(volatile u16 *)GBUS_INT_CLEAR_ADDR(w)) | ||
33 | #define GBUS_INT_EDGE_ADDR(w) (GBUS_INT_BASE_ADDR + 0x20 + (w)*0x40) | ||
34 | #define GBUS_INT_EDGE(w) (*(volatile u16 *)GBUS_INT_EDGE_ADDR(w)) | ||
35 | #define GBUS_INT_POLARITY_ADDR(w) (GBUS_INT_BASE_ADDR + 0x30 + (w)*0x40) | ||
36 | #define GBUS_INT_POLARITY(w) (*(volatile u16 *)GBUS_INT_POLARITY_ADDR(w)) | ||
37 | /* This allows enabling interrupt bits in word W for interrupt GINTn. */ | ||
38 | #define GBUS_INT_ENABLE_ADDR(w, n) \ | ||
39 | (GBUS_INT_BASE_ADDR + 0x100 + (w)*0x10 + (n)*0x20) | ||
40 | #define GBUS_INT_ENABLE(w, n) (*(volatile u16 *)GBUS_INT_ENABLE_ADDR(w, n)) | ||
41 | |||
42 | /* Mapping between kernel interrupt numbers and hardware control regs/bits. */ | ||
43 | #define GBUS_INT_BITS_PER_WORD 16 | ||
44 | #define GBUS_INT_NUM_WORDS (IRQ_GBUS_INT_NUM / GBUS_INT_BITS_PER_WORD) | ||
45 | #define GBUS_INT_IRQ_WORD(irq) (((irq) - GBUS_INT_BASE_IRQ) >> 4) | ||
46 | #define GBUS_INT_IRQ_BIT(irq) (((irq) - GBUS_INT_BASE_IRQ) & 0xF) | ||
47 | #define GBUS_INT_IRQ_MASK(irq) (1 << GBUS_INT_IRQ_BIT(irq)) | ||
48 | |||
49 | |||
50 | /* Possible priorities for GBUS interrupts. */ | ||
51 | #define GBUS_INT_PRIORITY_HIGH 2 | ||
52 | #define GBUS_INT_PRIORITY_MEDIUM 4 | ||
53 | #define GBUS_INT_PRIORITY_LOW 6 | ||
54 | |||
55 | |||
56 | #ifndef __ASSEMBLY__ | ||
57 | |||
58 | /* Enable interrupt handling for interrupt IRQ. */ | ||
59 | extern void gbus_int_enable_irq (unsigned irq); | ||
60 | /* Disable interrupt handling for interrupt IRQ. Note that any | ||
61 | interrupts received while disabled will be delivered once the | ||
62 | interrupt is enabled again, unless they are explicitly cleared using | ||
63 | `gbus_int_clear_pending_irq'. */ | ||
64 | extern void gbus_int_disable_irq (unsigned irq); | ||
65 | /* Return true if interrupt handling for interrupt IRQ is enabled. */ | ||
66 | extern int gbus_int_irq_enabled (unsigned irq); | ||
67 | /* Disable all GBUS irqs. */ | ||
68 | extern void gbus_int_disable_irqs (void); | ||
69 | /* Clear any pending interrupts for IRQ. */ | ||
70 | extern void gbus_int_clear_pending_irq (unsigned irq); | ||
71 | /* Return true if interrupt IRQ is pending (but disabled). */ | ||
72 | extern int gbus_int_irq_pending (unsigned irq); | ||
73 | |||
74 | |||
75 | struct gbus_int_irq_init { | ||
76 | const char *name; /* name of interrupt type */ | ||
77 | |||
78 | /* Range of kernel irq numbers for this type: | ||
79 | BASE, BASE+INTERVAL, ..., BASE+INTERVAL*NUM */ | ||
80 | unsigned base, num, interval; | ||
81 | |||
82 | unsigned priority; /* interrupt priority to assign */ | ||
83 | }; | ||
84 | struct hw_interrupt_type; /* fwd decl */ | ||
85 | |||
86 | /* Initialize HW_IRQ_TYPES for GBUS irqs described in array | ||
87 | INITS (which is terminated by an entry with the name field == 0). */ | ||
88 | extern void gbus_int_init_irq_types (struct gbus_int_irq_init *inits, | ||
89 | struct hw_interrupt_type *hw_irq_types); | ||
90 | |||
91 | /* Initialize GBUS interrupts. */ | ||
92 | extern void gbus_int_init_irqs (void); | ||
93 | |||
94 | #endif /* !__ASSEMBLY__ */ | ||
95 | |||
96 | |||
97 | #endif /* __V850_GBUS_INT_H__ */ | ||
diff --git a/include/asm-v850/hardirq.h b/include/asm-v850/hardirq.h deleted file mode 100644 index 04e20127c5af..000000000000 --- a/include/asm-v850/hardirq.h +++ /dev/null | |||
@@ -1,28 +0,0 @@ | |||
1 | #ifndef __V850_HARDIRQ_H__ | ||
2 | #define __V850_HARDIRQ_H__ | ||
3 | |||
4 | #include <linux/threads.h> | ||
5 | #include <linux/cache.h> | ||
6 | |||
7 | #include <asm/irq.h> | ||
8 | |||
9 | typedef struct { | ||
10 | unsigned int __softirq_pending; | ||
11 | } ____cacheline_aligned irq_cpustat_t; | ||
12 | |||
13 | #include <linux/irq_cpustat.h> /* Standard mappings for irq_cpustat_t above */ | ||
14 | |||
15 | #define HARDIRQ_BITS 8 | ||
16 | |||
17 | /* | ||
18 | * The hardirq mask has to be large enough to have | ||
19 | * space for potentially all IRQ sources in the system | ||
20 | * nesting on a single CPU: | ||
21 | */ | ||
22 | #if (1 << HARDIRQ_BITS) < NR_IRQS | ||
23 | # error HARDIRQ_BITS is too low! | ||
24 | #endif | ||
25 | |||
26 | void ack_bad_irq(unsigned int irq); | ||
27 | |||
28 | #endif /* __V850_HARDIRQ_H__ */ | ||
diff --git a/include/asm-v850/highres_timer.h b/include/asm-v850/highres_timer.h deleted file mode 100644 index 486fb49ceab6..000000000000 --- a/include/asm-v850/highres_timer.h +++ /dev/null | |||
@@ -1,44 +0,0 @@ | |||
1 | /* | ||
2 | * include/asm-v850/highres_timer.h -- High resolution timing routines | ||
3 | * | ||
4 | * Copyright (C) 2001,03 NEC Electronics Corporation | ||
5 | * Copyright (C) 2001,03 Miles Bader <miles@gnu.org> | ||
6 | * | ||
7 | * This file is subject to the terms and conditions of the GNU General | ||
8 | * Public License. See the file COPYING in the main directory of this | ||
9 | * archive for more details. | ||
10 | * | ||
11 | * Written by Miles Bader <miles@gnu.org> | ||
12 | */ | ||
13 | |||
14 | #ifndef __V850_HIGHRES_TIMER_H__ | ||
15 | #define __V850_HIGHRES_TIMER_H__ | ||
16 | |||
17 | #ifndef __ASSEMBLY__ | ||
18 | #include <linux/time.h> | ||
19 | #endif | ||
20 | |||
21 | #include <asm/entry.h> | ||
22 | |||
23 | |||
24 | /* Frequency of the `slow ticks' (one tick each time the fast-tick | ||
25 | counter overflows). */ | ||
26 | #define HIGHRES_TIMER_SLOW_TICK_RATE 25 | ||
27 | |||
28 | /* Which timer in the V850E `Timer D' we use. */ | ||
29 | #define HIGHRES_TIMER_TIMER_D_UNIT 3 | ||
30 | |||
31 | |||
32 | #ifndef __ASSEMBLY__ | ||
33 | |||
34 | extern void highres_timer_start (void), highres_timer_stop (void); | ||
35 | extern void highres_timer_reset (void); | ||
36 | extern void highres_timer_read_ticks (u32 *slow_ticks, u32 *fast_ticks); | ||
37 | extern void highres_timer_ticks_to_timeval (u32 slow_ticks, u32 fast_ticks, | ||
38 | struct timeval *tv); | ||
39 | extern void highres_timer_read (struct timeval *tv); | ||
40 | |||
41 | #endif /* !__ASSEMBLY__ */ | ||
42 | |||
43 | |||
44 | #endif /* __V850_HIGHRES_TIMER_H__ */ | ||
diff --git a/include/asm-v850/hw_irq.h b/include/asm-v850/hw_irq.h deleted file mode 100644 index 043e94bb6bd8..000000000000 --- a/include/asm-v850/hw_irq.h +++ /dev/null | |||
@@ -1,4 +0,0 @@ | |||
1 | #ifndef __V850_HW_IRQ_H__ | ||
2 | #define __V850_HW_IRQ_H__ | ||
3 | |||
4 | #endif /* __V850_HW_IRQ_H__ */ | ||
diff --git a/include/asm-v850/io.h b/include/asm-v850/io.h deleted file mode 100644 index cdad251fba9f..000000000000 --- a/include/asm-v850/io.h +++ /dev/null | |||
@@ -1,142 +0,0 @@ | |||
1 | /* | ||
2 | * include/asm-v850/io.h -- Misc I/O operations | ||
3 | * | ||
4 | * Copyright (C) 2001,02,03,04,05 NEC Electronics Corporation | ||
5 | * Copyright (C) 2001,02,03,04,05 Miles Bader <miles@gnu.org> | ||
6 | * | ||
7 | * This file is subject to the terms and conditions of the GNU General | ||
8 | * Public License. See the file COPYING in the main directory of this | ||
9 | * archive for more details. | ||
10 | * | ||
11 | * Written by Miles Bader <miles@gnu.org> | ||
12 | */ | ||
13 | |||
14 | #ifndef __V850_IO_H__ | ||
15 | #define __V850_IO_H__ | ||
16 | |||
17 | #define IO_SPACE_LIMIT 0xFFFFFFFF | ||
18 | |||
19 | #define readb(addr) \ | ||
20 | ({ unsigned char __v = (*(volatile unsigned char *) (addr)); __v; }) | ||
21 | #define readw(addr) \ | ||
22 | ({ unsigned short __v = (*(volatile unsigned short *) (addr)); __v; }) | ||
23 | #define readl(addr) \ | ||
24 | ({ unsigned long __v = (*(volatile unsigned long *) (addr)); __v; }) | ||
25 | |||
26 | #define readb_relaxed(a) readb(a) | ||
27 | #define readw_relaxed(a) readw(a) | ||
28 | #define readl_relaxed(a) readl(a) | ||
29 | |||
30 | #define writeb(val, addr) \ | ||
31 | (void)((*(volatile unsigned char *) (addr)) = (val)) | ||
32 | #define writew(val, addr) \ | ||
33 | (void)((*(volatile unsigned short *) (addr)) = (val)) | ||
34 | #define writel(val, addr) \ | ||
35 | (void)((*(volatile unsigned int *) (addr)) = (val)) | ||
36 | |||
37 | #define __raw_readb readb | ||
38 | #define __raw_readw readw | ||
39 | #define __raw_readl readl | ||
40 | #define __raw_writeb writeb | ||
41 | #define __raw_writew writew | ||
42 | #define __raw_writel writel | ||
43 | |||
44 | #define inb(addr) readb (addr) | ||
45 | #define inw(addr) readw (addr) | ||
46 | #define inl(addr) readl (addr) | ||
47 | #define outb(x, addr) ((void) writeb (x, addr)) | ||
48 | #define outw(x, addr) ((void) writew (x, addr)) | ||
49 | #define outl(x, addr) ((void) writel (x, addr)) | ||
50 | |||
51 | #define inb_p(port) inb((port)) | ||
52 | #define outb_p(val, port) outb((val), (port)) | ||
53 | #define inw_p(port) inw((port)) | ||
54 | #define outw_p(val, port) outw((val), (port)) | ||
55 | #define inl_p(port) inl((port)) | ||
56 | #define outl_p(val, port) outl((val), (port)) | ||
57 | |||
58 | static inline void insb (unsigned long port, void *dst, unsigned long count) | ||
59 | { | ||
60 | unsigned char *p = dst; | ||
61 | while (count--) | ||
62 | *p++ = inb (port); | ||
63 | } | ||
64 | static inline void insw (unsigned long port, void *dst, unsigned long count) | ||
65 | { | ||
66 | unsigned short *p = dst; | ||
67 | while (count--) | ||
68 | *p++ = inw (port); | ||
69 | } | ||
70 | static inline void insl (unsigned long port, void *dst, unsigned long count) | ||
71 | { | ||
72 | unsigned long *p = dst; | ||
73 | while (count--) | ||
74 | *p++ = inl (port); | ||
75 | } | ||
76 | |||
77 | static inline void | ||
78 | outsb (unsigned long port, const void *src, unsigned long count) | ||
79 | { | ||
80 | const unsigned char *p = src; | ||
81 | while (count--) | ||
82 | outb (*p++, port); | ||
83 | } | ||
84 | static inline void | ||
85 | outsw (unsigned long port, const void *src, unsigned long count) | ||
86 | { | ||
87 | const unsigned short *p = src; | ||
88 | while (count--) | ||
89 | outw (*p++, port); | ||
90 | } | ||
91 | static inline void | ||
92 | outsl (unsigned long port, const void *src, unsigned long count) | ||
93 | { | ||
94 | const unsigned long *p = src; | ||
95 | while (count--) | ||
96 | outl (*p++, port); | ||
97 | } | ||
98 | |||
99 | |||
100 | /* Some places try to pass in an loff_t for PHYSADDR (?!), so we cast it to | ||
101 | long before casting it to a pointer to avoid compiler warnings. */ | ||
102 | #define ioremap(physaddr, size) ((void __iomem *)(unsigned long)(physaddr)) | ||
103 | #define iounmap(addr) ((void)0) | ||
104 | |||
105 | #define ioremap_nocache(physaddr, size) ioremap (physaddr, size) | ||
106 | #define ioremap_writethrough(physaddr, size) ioremap (physaddr, size) | ||
107 | #define ioremap_fullcache(physaddr, size) ioremap (physaddr, size) | ||
108 | |||
109 | #define ioread8(addr) readb (addr) | ||
110 | #define ioread16(addr) readw (addr) | ||
111 | #define ioread32(addr) readl (addr) | ||
112 | #define iowrite8(val, addr) writeb (val, addr) | ||
113 | #define iowrite16(val, addr) writew (val, addr) | ||
114 | #define iowrite32(val, addr) writel (val, addr) | ||
115 | |||
116 | #define mmiowb() | ||
117 | |||
118 | #define page_to_phys(page) ((page - mem_map) << PAGE_SHIFT) | ||
119 | #if 0 | ||
120 | /* This is really stupid; don't define it. */ | ||
121 | #define page_to_bus(page) page_to_phys (page) | ||
122 | #endif | ||
123 | |||
124 | /* Conversion between virtual and physical mappings. */ | ||
125 | #define phys_to_virt(addr) ((void *)__phys_to_virt (addr)) | ||
126 | #define virt_to_phys(addr) ((unsigned long)__virt_to_phys (addr)) | ||
127 | |||
128 | #define memcpy_fromio(dst, src, len) memcpy (dst, (void *)src, len) | ||
129 | #define memcpy_toio(dst, src, len) memcpy ((void *)dst, src, len) | ||
130 | |||
131 | /* | ||
132 | * Convert a physical pointer to a virtual kernel pointer for /dev/mem | ||
133 | * access | ||
134 | */ | ||
135 | #define xlate_dev_mem_ptr(p) __va(p) | ||
136 | |||
137 | /* | ||
138 | * Convert a virtual cached pointer to an uncached pointer | ||
139 | */ | ||
140 | #define xlate_dev_kmem_ptr(p) p | ||
141 | |||
142 | #endif /* __V850_IO_H__ */ | ||
diff --git a/include/asm-v850/ioctl.h b/include/asm-v850/ioctl.h deleted file mode 100644 index b279fe06dfe5..000000000000 --- a/include/asm-v850/ioctl.h +++ /dev/null | |||
@@ -1 +0,0 @@ | |||
1 | #include <asm-generic/ioctl.h> | ||
diff --git a/include/asm-v850/ioctls.h b/include/asm-v850/ioctls.h deleted file mode 100644 index 5313abd5f388..000000000000 --- a/include/asm-v850/ioctls.h +++ /dev/null | |||
@@ -1,84 +0,0 @@ | |||
1 | #ifndef __V850_IOCTLS_H__ | ||
2 | #define __V850_IOCTLS_H__ | ||
3 | |||
4 | #include <asm/ioctl.h> | ||
5 | |||
6 | /* 0x54 is just a magic number to make these relatively unique ('T') */ | ||
7 | |||
8 | #define TCGETS 0x5401 | ||
9 | #define TCSETS 0x5402 | ||
10 | #define TCSETSW 0x5403 | ||
11 | #define TCSETSF 0x5404 | ||
12 | #define TCGETA 0x5405 | ||
13 | #define TCSETA 0x5406 | ||
14 | #define TCSETAW 0x5407 | ||
15 | #define TCSETAF 0x5408 | ||
16 | #define TCSBRK 0x5409 | ||
17 | #define TCXONC 0x540A | ||
18 | #define TCFLSH 0x540B | ||
19 | #define TIOCEXCL 0x540C | ||
20 | #define TIOCNXCL 0x540D | ||
21 | #define TIOCSCTTY 0x540E | ||
22 | #define TIOCGPGRP 0x540F | ||
23 | #define TIOCSPGRP 0x5410 | ||
24 | #define TIOCOUTQ 0x5411 | ||
25 | #define TIOCSTI 0x5412 | ||
26 | #define TIOCGWINSZ 0x5413 | ||
27 | #define TIOCSWINSZ 0x5414 | ||
28 | #define TIOCMGET 0x5415 | ||
29 | #define TIOCMBIS 0x5416 | ||
30 | #define TIOCMBIC 0x5417 | ||
31 | #define TIOCMSET 0x5418 | ||
32 | #define TIOCGSOFTCAR 0x5419 | ||
33 | #define TIOCSSOFTCAR 0x541A | ||
34 | #define FIONREAD 0x541B | ||
35 | #define TIOCINQ FIONREAD | ||
36 | #define TIOCLINUX 0x541C | ||
37 | #define TIOCCONS 0x541D | ||
38 | #define TIOCGSERIAL 0x541E | ||
39 | #define TIOCSSERIAL 0x541F | ||
40 | #define TIOCPKT 0x5420 | ||
41 | #define FIONBIO 0x5421 | ||
42 | #define TIOCNOTTY 0x5422 | ||
43 | #define TIOCSETD 0x5423 | ||
44 | #define TIOCGETD 0x5424 | ||
45 | #define TCSBRKP 0x5425 /* Needed for POSIX tcsendbreak() */ | ||
46 | #define TIOCSBRK 0x5427 /* BSD compatibility */ | ||
47 | #define TIOCCBRK 0x5428 /* BSD compatibility */ | ||
48 | #define TIOCGSID 0x5429 /* Return the session ID of FD */ | ||
49 | #define TCGETS2 _IOR('T',0x2A, struct termios2) | ||
50 | #define TCSETS2 _IOW('T',0x2B, struct termios2) | ||
51 | #define TCSETSW2 _IOW('T',0x2C, struct termios2) | ||
52 | #define TCSETSF2 _IOW('T',0x2D, struct termios2) | ||
53 | #define TIOCGPTN _IOR('T',0x30, unsigned int) /* Get Pty Number (of pty-mux device) */ | ||
54 | #define TIOCSPTLCK _IOW('T',0x31, int) /* Lock/unlock Pty */ | ||
55 | |||
56 | #define FIONCLEX 0x5450 /* these numbers need to be adjusted. */ | ||
57 | #define FIOCLEX 0x5451 | ||
58 | #define FIOASYNC 0x5452 | ||
59 | #define TIOCSERCONFIG 0x5453 | ||
60 | #define TIOCSERGWILD 0x5454 | ||
61 | #define TIOCSERSWILD 0x5455 | ||
62 | #define TIOCGLCKTRMIOS 0x5456 | ||
63 | #define TIOCSLCKTRMIOS 0x5457 | ||
64 | #define TIOCSERGSTRUCT 0x5458 /* For debugging only */ | ||
65 | #define TIOCSERGETLSR 0x5459 /* Get line status register */ | ||
66 | #define TIOCSERGETMULTI 0x545A /* Get multiport config */ | ||
67 | #define TIOCSERSETMULTI 0x545B /* Set multiport config */ | ||
68 | |||
69 | #define TIOCMIWAIT 0x545C /* wait for a change on serial input line(s) */ | ||
70 | #define TIOCGICOUNT 0x545D /* read serial port inline interrupt counts */ | ||
71 | #define FIOQSIZE 0x545E | ||
72 | |||
73 | /* Used for packet mode */ | ||
74 | #define TIOCPKT_DATA 0 | ||
75 | #define TIOCPKT_FLUSHREAD 1 | ||
76 | #define TIOCPKT_FLUSHWRITE 2 | ||
77 | #define TIOCPKT_STOP 4 | ||
78 | #define TIOCPKT_START 8 | ||
79 | #define TIOCPKT_NOSTOP 16 | ||
80 | #define TIOCPKT_DOSTOP 32 | ||
81 | |||
82 | #define TIOCSER_TEMT 0x01 /* Transmitter physically empty */ | ||
83 | |||
84 | #endif /* __V850_IOCTLS_H__ */ | ||
diff --git a/include/asm-v850/ipcbuf.h b/include/asm-v850/ipcbuf.h deleted file mode 100644 index d8cbe9886d95..000000000000 --- a/include/asm-v850/ipcbuf.h +++ /dev/null | |||
@@ -1,29 +0,0 @@ | |||
1 | #ifndef __V850E_IPCBUF_H__ | ||
2 | #define __V850E_IPCBUF_H__ | ||
3 | |||
4 | /* | ||
5 | * The user_ipc_perm structure for v850e architecture. | ||
6 | * Note extra padding because this structure is passed back and forth | ||
7 | * between kernel and user space. | ||
8 | * | ||
9 | * Pad space is left for: | ||
10 | * - 32-bit mode_t and seq | ||
11 | * - 2 miscellaneous 32-bit values | ||
12 | */ | ||
13 | |||
14 | struct ipc64_perm | ||
15 | { | ||
16 | __kernel_key_t key; | ||
17 | __kernel_uid32_t uid; | ||
18 | __kernel_gid32_t gid; | ||
19 | __kernel_uid32_t cuid; | ||
20 | __kernel_gid32_t cgid; | ||
21 | __kernel_mode_t mode; | ||
22 | unsigned short __pad1; | ||
23 | unsigned short seq; | ||
24 | unsigned short __pad2; | ||
25 | unsigned long __unused1; | ||
26 | unsigned long __unused2; | ||
27 | }; | ||
28 | |||
29 | #endif /* __V850E_IPCBUF_H__ */ | ||
diff --git a/include/asm-v850/irq.h b/include/asm-v850/irq.h deleted file mode 100644 index 7d0d4cd1ce54..000000000000 --- a/include/asm-v850/irq.h +++ /dev/null | |||
@@ -1,55 +0,0 @@ | |||
1 | /* | ||
2 | * include/asm-v850/irq.h -- Machine interrupt handling | ||
3 | * | ||
4 | * Copyright (C) 2001,02,04 NEC Electronics Corporation | ||
5 | * Copyright (C) 2001,02,04 Miles Bader <miles@gnu.org> | ||
6 | * | ||
7 | * This file is subject to the terms and conditions of the GNU General | ||
8 | * Public License. See the file COPYING in the main directory of this | ||
9 | * archive for more details. | ||
10 | * | ||
11 | * Written by Miles Bader <miles@gnu.org> | ||
12 | */ | ||
13 | |||
14 | #ifndef __V850_IRQ_H__ | ||
15 | #define __V850_IRQ_H__ | ||
16 | |||
17 | #include <asm/machdep.h> | ||
18 | |||
19 | /* Default NUM_MACH_IRQS. */ | ||
20 | #ifndef NUM_MACH_IRQS | ||
21 | #define NUM_MACH_IRQS NUM_CPU_IRQS | ||
22 | #endif | ||
23 | |||
24 | /* NMIs have IRQ numbers from FIRST_NMI to FIRST_NMI+NUM_NMIS-1. */ | ||
25 | #define FIRST_NMI NUM_MACH_IRQS | ||
26 | #define IRQ_NMI(n) (FIRST_NMI + (n)) | ||
27 | /* v850 processors have 3 non-maskable interrupts. */ | ||
28 | #define NUM_NMIS 3 | ||
29 | |||
30 | /* Includes both maskable and non-maskable irqs. */ | ||
31 | #define NR_IRQS (NUM_MACH_IRQS + NUM_NMIS) | ||
32 | |||
33 | |||
34 | #ifndef __ASSEMBLY__ | ||
35 | |||
36 | struct pt_regs; | ||
37 | struct hw_interrupt_type; | ||
38 | struct irqaction; | ||
39 | |||
40 | #define irq_canonicalize(irq) (irq) | ||
41 | |||
42 | /* Initialize irq handling for IRQs. | ||
43 | BASE_IRQ, BASE_IRQ+INTERVAL, ..., BASE_IRQ+NUM*INTERVAL | ||
44 | to IRQ_TYPE. An IRQ_TYPE of 0 means to use a generic interrupt type. */ | ||
45 | extern void | ||
46 | init_irq_handlers (int base_irq, int num, int interval, | ||
47 | struct hw_interrupt_type *irq_type); | ||
48 | |||
49 | /* Handle interrupt IRQ. REGS are the registers at the time of ther | ||
50 | interrupt. */ | ||
51 | extern unsigned int handle_irq (int irq, struct pt_regs *regs); | ||
52 | |||
53 | #endif /* !__ASSEMBLY__ */ | ||
54 | |||
55 | #endif /* __V850_IRQ_H__ */ | ||
diff --git a/include/asm-v850/irq_regs.h b/include/asm-v850/irq_regs.h deleted file mode 100644 index 3dd9c0b70270..000000000000 --- a/include/asm-v850/irq_regs.h +++ /dev/null | |||
@@ -1 +0,0 @@ | |||
1 | #include <asm-generic/irq_regs.h> | ||
diff --git a/include/asm-v850/kdebug.h b/include/asm-v850/kdebug.h deleted file mode 100644 index 6ece1b037665..000000000000 --- a/include/asm-v850/kdebug.h +++ /dev/null | |||
@@ -1 +0,0 @@ | |||
1 | #include <asm-generic/kdebug.h> | ||
diff --git a/include/asm-v850/kmap_types.h b/include/asm-v850/kmap_types.h deleted file mode 100644 index 3288976b161f..000000000000 --- a/include/asm-v850/kmap_types.h +++ /dev/null | |||
@@ -1,19 +0,0 @@ | |||
1 | #ifndef __V850_KMAP_TYPES_H__ | ||
2 | #define __V850_KMAP_TYPES_H__ | ||
3 | |||
4 | enum km_type { | ||
5 | KM_BOUNCE_READ, | ||
6 | KM_SKB_SUNRPC_DATA, | ||
7 | KM_SKB_DATA_SOFTIRQ, | ||
8 | KM_USER0, | ||
9 | KM_USER1, | ||
10 | KM_BIO_SRC_IRQ, | ||
11 | KM_BIO_DST_IRQ, | ||
12 | KM_PTE0, | ||
13 | KM_PTE1, | ||
14 | KM_IRQ0, | ||
15 | KM_IRQ1, | ||
16 | KM_TYPE_NR | ||
17 | }; | ||
18 | |||
19 | #endif /* __V850_KMAP_TYPES_H__ */ | ||
diff --git a/include/asm-v850/kvm.h b/include/asm-v850/kvm.h deleted file mode 100644 index 3f729b79febc..000000000000 --- a/include/asm-v850/kvm.h +++ /dev/null | |||
@@ -1,6 +0,0 @@ | |||
1 | #ifndef __LINUX_KVM_V850_H | ||
2 | #define __LINUX_KVM_V850_H | ||
3 | |||
4 | /* v850 does not support KVM */ | ||
5 | |||
6 | #endif | ||
diff --git a/include/asm-v850/linkage.h b/include/asm-v850/linkage.h deleted file mode 100644 index b6185d3cfe68..000000000000 --- a/include/asm-v850/linkage.h +++ /dev/null | |||
@@ -1,8 +0,0 @@ | |||
1 | #ifndef __ASM_LINKAGE_H | ||
2 | #define __ASM_LINKAGE_H | ||
3 | |||
4 | #ifdef __ASSEMBLY__ | ||
5 | #include <asm/asm.h> | ||
6 | #endif | ||
7 | |||
8 | #endif | ||
diff --git a/include/asm-v850/local.h b/include/asm-v850/local.h deleted file mode 100644 index 705148abe276..000000000000 --- a/include/asm-v850/local.h +++ /dev/null | |||
@@ -1,6 +0,0 @@ | |||
1 | #ifndef __V850_LOCAL_H__ | ||
2 | #define __V850_LOCAL_H__ | ||
3 | |||
4 | #include <asm-generic/local.h> | ||
5 | |||
6 | #endif /* __V850_LOCAL_H__ */ | ||
diff --git a/include/asm-v850/ma.h b/include/asm-v850/ma.h deleted file mode 100644 index 89e66473a176..000000000000 --- a/include/asm-v850/ma.h +++ /dev/null | |||
@@ -1,101 +0,0 @@ | |||
1 | /* | ||
2 | * include/asm-v850/ma.h -- V850E/MA series of cpu chips | ||
3 | * | ||
4 | * Copyright (C) 2001,02,03 NEC Electronics Corporation | ||
5 | * Copyright (C) 2001,02,03 Miles Bader <miles@gnu.org> | ||
6 | * | ||
7 | * This file is subject to the terms and conditions of the GNU General | ||
8 | * Public License. See the file COPYING in the main directory of this | ||
9 | * archive for more details. | ||
10 | * | ||
11 | * Written by Miles Bader <miles@gnu.org> | ||
12 | */ | ||
13 | |||
14 | #ifndef __V850_MA_H__ | ||
15 | #define __V850_MA_H__ | ||
16 | |||
17 | /* The MA series uses the V850E cpu core. */ | ||
18 | #include <asm/v850e.h> | ||
19 | |||
20 | |||
21 | /* For <asm/entry.h> */ | ||
22 | /* We use on-chip RAM, for a few miscellaneous variables that must be | ||
23 | accessible using a load instruction relative to R0. The amount | ||
24 | varies between chip models, but there's always at least 4K, and it | ||
25 | should always start at FFFFC000. */ | ||
26 | #define R0_RAM_ADDR 0xFFFFC000 | ||
27 | |||
28 | |||
29 | /* MA series UART details. */ | ||
30 | #define V850E_UART_BASE_FREQ CPU_CLOCK_FREQ | ||
31 | |||
32 | /* This is a function that gets called before configuring the UART. */ | ||
33 | #define V850E_UART_PRE_CONFIGURE ma_uart_pre_configure | ||
34 | #ifndef __ASSEMBLY__ | ||
35 | extern void ma_uart_pre_configure (unsigned chan, | ||
36 | unsigned cflags, unsigned baud); | ||
37 | #endif | ||
38 | |||
39 | |||
40 | /* MA series timer C details. */ | ||
41 | #define V850E_TIMER_C_BASE_ADDR 0xFFFFF600 | ||
42 | |||
43 | |||
44 | /* MA series timer D details. */ | ||
45 | #define V850E_TIMER_D_BASE_ADDR 0xFFFFF540 | ||
46 | #define V850E_TIMER_D_TMD_BASE_ADDR (V850E_TIMER_D_BASE_ADDR + 0x0) | ||
47 | #define V850E_TIMER_D_CMD_BASE_ADDR (V850E_TIMER_D_BASE_ADDR + 0x2) | ||
48 | #define V850E_TIMER_D_TMCD_BASE_ADDR (V850E_TIMER_D_BASE_ADDR + 0x4) | ||
49 | |||
50 | #define V850E_TIMER_D_BASE_FREQ CPU_CLOCK_FREQ | ||
51 | |||
52 | |||
53 | /* Port 0 */ | ||
54 | /* Direct I/O. Bits 0-7 are pins P00-P07. */ | ||
55 | #define MA_PORT0_IO_ADDR 0xFFFFF400 | ||
56 | #define MA_PORT0_IO (*(volatile u8 *)MA_PORT0_IO_ADDR) | ||
57 | /* Port mode (for direct I/O, 0 = output, 1 = input). */ | ||
58 | #define MA_PORT0_PM_ADDR 0xFFFFF420 | ||
59 | #define MA_PORT0_PM (*(volatile u8 *)MA_PORT0_PM_ADDR) | ||
60 | /* Port mode control (0 = direct I/O mode, 1 = alternative I/O mode). */ | ||
61 | #define MA_PORT0_PMC_ADDR 0xFFFFF440 | ||
62 | #define MA_PORT0_PMC (*(volatile u8 *)MA_PORT0_PMC_ADDR) | ||
63 | /* Port function control (for P04-P07, 0 = IRQ, 1 = DMARQ). */ | ||
64 | #define MA_PORT0_PFC_ADDR 0xFFFFF460 | ||
65 | #define MA_PORT0_PFC (*(volatile u8 *)MA_PORT0_PFC_ADDR) | ||
66 | |||
67 | /* Port 1 */ | ||
68 | /* Direct I/O. Bits 0-3 are pins P10-P13. */ | ||
69 | #define MA_PORT1_IO_ADDR 0xFFFFF402 | ||
70 | #define MA_PORT1_IO (*(volatile u8 *)MA_PORT1_IO_ADDR) | ||
71 | /* Port mode (for direct I/O, 0 = output, 1 = input). */ | ||
72 | #define MA_PORT1_PM_ADDR 0xFFFFF420 | ||
73 | #define MA_PORT1_PM (*(volatile u8 *)MA_PORT1_PM_ADDR) | ||
74 | /* Port mode control (0 = direct I/O mode, 1 = alternative I/O mode). */ | ||
75 | #define MA_PORT1_PMC_ADDR 0xFFFFF442 | ||
76 | #define MA_PORT1_PMC (*(volatile u8 *)MA_PORT1_PMC_ADDR) | ||
77 | |||
78 | /* Port 4 */ | ||
79 | /* Direct I/O. Bits 0-5 are pins P40-P45. */ | ||
80 | #define MA_PORT4_IO_ADDR 0xFFFFF408 | ||
81 | #define MA_PORT4_IO (*(volatile u8 *)MA_PORT4_IO_ADDR) | ||
82 | /* Port mode (for direct I/O, 0 = output, 1 = input). */ | ||
83 | #define MA_PORT4_PM_ADDR 0xFFFFF428 | ||
84 | #define MA_PORT4_PM (*(volatile u8 *)MA_PORT4_PM_ADDR) | ||
85 | /* Port mode control (0 = direct I/O mode, 1 = alternative I/O mode). */ | ||
86 | #define MA_PORT4_PMC_ADDR 0xFFFFF448 | ||
87 | #define MA_PORT4_PMC (*(volatile u8 *)MA_PORT4_PMC_ADDR) | ||
88 | /* Port function control (for serial interfaces, 0 = CSI, 1 = UART). */ | ||
89 | #define MA_PORT4_PFC_ADDR 0xFFFFF468 | ||
90 | #define MA_PORT4_PFC (*(volatile u8 *)MA_PORT4_PFC_ADDR) | ||
91 | |||
92 | |||
93 | #ifndef __ASSEMBLY__ | ||
94 | |||
95 | /* Initialize MA chip interrupts. */ | ||
96 | extern void ma_init_irqs (void); | ||
97 | |||
98 | #endif /* !__ASSEMBLY__ */ | ||
99 | |||
100 | |||
101 | #endif /* __V850_MA_H__ */ | ||
diff --git a/include/asm-v850/ma1.h b/include/asm-v850/ma1.h deleted file mode 100644 index ede1f1de2b7a..000000000000 --- a/include/asm-v850/ma1.h +++ /dev/null | |||
@@ -1,50 +0,0 @@ | |||
1 | /* | ||
2 | * include/asm-v850/ma1.h -- V850E/MA1 cpu chip | ||
3 | * | ||
4 | * Copyright (C) 2001,02,03 NEC Electronics Corporation | ||
5 | * Copyright (C) 2001,02,03 Miles Bader <miles@gnu.org> | ||
6 | * | ||
7 | * This file is subject to the terms and conditions of the GNU General | ||
8 | * Public License. See the file COPYING in the main directory of this | ||
9 | * archive for more details. | ||
10 | * | ||
11 | * Written by Miles Bader <miles@gnu.org> | ||
12 | */ | ||
13 | |||
14 | #ifndef __V850_MA1_H__ | ||
15 | #define __V850_MA1_H__ | ||
16 | |||
17 | /* Inherit more generic details from MA series. */ | ||
18 | #include <asm/ma.h> | ||
19 | |||
20 | |||
21 | #define CPU_MODEL "v850e/ma1" | ||
22 | #define CPU_MODEL_LONG "NEC V850E/MA1" | ||
23 | |||
24 | |||
25 | /* Hardware-specific interrupt numbers (in the kernel IRQ namespace). */ | ||
26 | #define IRQ_INTOV(n) (n) /* 0-3 */ | ||
27 | #define IRQ_INTOV_NUM 4 | ||
28 | #define IRQ_INTP(n) (0x4 + (n)) /* Pnnn (pin) interrupts */ | ||
29 | #define IRQ_INTP_NUM 24 | ||
30 | #define IRQ_INTCMD(n) (0x1c + (n)) /* interval timer interrupts 0-3 */ | ||
31 | #define IRQ_INTCMD_NUM 4 | ||
32 | #define IRQ_INTDMA(n) (0x20 + (n)) /* DMA interrupts 0-3 */ | ||
33 | #define IRQ_INTDMA_NUM 4 | ||
34 | #define IRQ_INTCSI(n) (0x24 + (n)*4)/* CSI 0-2 transmit/receive completion */ | ||
35 | #define IRQ_INTCSI_NUM 3 | ||
36 | #define IRQ_INTSER(n) (0x25 + (n)*4) /* UART 0-2 reception error */ | ||
37 | #define IRQ_INTSER_NUM 3 | ||
38 | #define IRQ_INTSR(n) (0x26 + (n)*4) /* UART 0-2 reception completion */ | ||
39 | #define IRQ_INTSR_NUM 3 | ||
40 | #define IRQ_INTST(n) (0x27 + (n)*4) /* UART 0-2 transmission completion */ | ||
41 | #define IRQ_INTST_NUM 3 | ||
42 | |||
43 | #define NUM_CPU_IRQS 0x30 | ||
44 | |||
45 | |||
46 | /* The MA1 has a UART with 3 channels. */ | ||
47 | #define V850E_UART_NUM_CHANNELS 3 | ||
48 | |||
49 | |||
50 | #endif /* __V850_MA1_H__ */ | ||
diff --git a/include/asm-v850/machdep.h b/include/asm-v850/machdep.h deleted file mode 100644 index f1e3b8b91508..000000000000 --- a/include/asm-v850/machdep.h +++ /dev/null | |||
@@ -1,60 +0,0 @@ | |||
1 | /* | ||
2 | * include/asm-v850/machdep.h -- Machine-dependent definitions | ||
3 | * | ||
4 | * Copyright (C) 2001,02,03 NEC Electronics Corporation | ||
5 | * Copyright (C) 2001,02,03 Miles Bader <miles@gnu.org> | ||
6 | * | ||
7 | * This file is subject to the terms and conditions of the GNU General | ||
8 | * Public License. See the file COPYING in the main directory of this | ||
9 | * archive for more details. | ||
10 | * | ||
11 | * Written by Miles Bader <miles@gnu.org> | ||
12 | */ | ||
13 | |||
14 | #ifndef __V850_MACHDEP_H__ | ||
15 | #define __V850_MACHDEP_H__ | ||
16 | |||
17 | |||
18 | /* chips */ | ||
19 | #ifdef CONFIG_V850E_MA1 | ||
20 | #include <asm/ma1.h> | ||
21 | #endif | ||
22 | #ifdef CONFIG_V850E_ME2 | ||
23 | #include <asm/me2.h> | ||
24 | #endif | ||
25 | #ifdef CONFIG_V850E_TEG | ||
26 | #include <asm/teg.h> | ||
27 | #endif | ||
28 | |||
29 | /* These are both chips _and_ platforms, so put them in the middle... */ | ||
30 | #ifdef CONFIG_V850E2_ANNA | ||
31 | #include <asm/anna.h> | ||
32 | #endif | ||
33 | #ifdef CONFIG_V850E_AS85EP1 | ||
34 | #include <asm/as85ep1.h> | ||
35 | #endif | ||
36 | |||
37 | /* platforms */ | ||
38 | #ifdef CONFIG_RTE_CB_MA1 | ||
39 | #include <asm/rte_ma1_cb.h> | ||
40 | #endif | ||
41 | #ifdef CONFIG_RTE_CB_ME2 | ||
42 | #include <asm/rte_me2_cb.h> | ||
43 | #endif | ||
44 | #ifdef CONFIG_RTE_CB_NB85E | ||
45 | #include <asm/rte_nb85e_cb.h> | ||
46 | #endif | ||
47 | #ifdef CONFIG_V850E_SIM | ||
48 | #include <asm/sim.h> | ||
49 | #endif | ||
50 | #ifdef CONFIG_V850E2_SIM85E2C | ||
51 | #include <asm/sim85e2c.h> | ||
52 | #endif | ||
53 | #ifdef CONFIG_V850E2_SIM85E2S | ||
54 | #include <asm/sim85e2s.h> | ||
55 | #endif | ||
56 | #ifdef CONFIG_V850E2_FPGA85E2C | ||
57 | #include <asm/fpga85e2c.h> | ||
58 | #endif | ||
59 | |||
60 | #endif /* __V850_MACHDEP_H__ */ | ||
diff --git a/include/asm-v850/macrology.h b/include/asm-v850/macrology.h deleted file mode 100644 index 37abf874832c..000000000000 --- a/include/asm-v850/macrology.h +++ /dev/null | |||
@@ -1,17 +0,0 @@ | |||
1 | /* | ||
2 | * include/asm-v850/macrology.h -- Various useful CPP macros | ||
3 | * | ||
4 | * Copyright (C) 2001 NEC Corporation | ||
5 | * Copyright (C) 2001 Miles Bader <miles@gnu.org> | ||
6 | * | ||
7 | * This file is subject to the terms and conditions of the GNU General | ||
8 | * Public License. See the file COPYING in the main directory of this | ||
9 | * archive for more details. | ||
10 | * | ||
11 | * Written by Miles Bader <miles@gnu.org> | ||
12 | */ | ||
13 | |||
14 | #define macrology_paste(arg1, arg2) macrology_paste_1(arg1, arg2) | ||
15 | #define macrology_paste_1(arg1, arg2) arg1 ## arg2 | ||
16 | #define macrology_stringify(sym) macrology_stringify_1(sym) | ||
17 | #define macrology_stringify_1(sym) #sym | ||
diff --git a/include/asm-v850/me2.h b/include/asm-v850/me2.h deleted file mode 100644 index ac7c9ce0bdc1..000000000000 --- a/include/asm-v850/me2.h +++ /dev/null | |||
@@ -1,182 +0,0 @@ | |||
1 | /* | ||
2 | * include/asm-v850/me2.h -- V850E/ME2 cpu chip | ||
3 | * | ||
4 | * Copyright (C) 2001,02,03 NEC Electronics Corporation | ||
5 | * Copyright (C) 2001,02,03 Miles Bader <miles@gnu.org> | ||
6 | * | ||
7 | * This file is subject to the terms and conditions of the GNU General | ||
8 | * Public License. See the file COPYING in the main directory of this | ||
9 | * archive for more details. | ||
10 | * | ||
11 | * Written by Miles Bader <miles@gnu.org> | ||
12 | */ | ||
13 | |||
14 | #ifndef __V850_ME2_H__ | ||
15 | #define __V850_ME2_H__ | ||
16 | |||
17 | #include <asm/v850e.h> | ||
18 | #include <asm/v850e_cache.h> | ||
19 | |||
20 | |||
21 | #define CPU_MODEL "v850e/me2" | ||
22 | #define CPU_MODEL_LONG "NEC V850E/ME2" | ||
23 | |||
24 | |||
25 | /* Hardware-specific interrupt numbers (in the kernel IRQ namespace). */ | ||
26 | #define IRQ_INTP(n) (n) /* Pnnn (pin) interrupts */ | ||
27 | #define IRQ_INTP_NUM 31 | ||
28 | #define IRQ_INTCMD(n) (0x31 + (n)) /* interval timer interrupts 0-3 */ | ||
29 | #define IRQ_INTCMD_NUM 4 | ||
30 | #define IRQ_INTDMA(n) (0x41 + (n)) /* DMA interrupts 0-3 */ | ||
31 | #define IRQ_INTDMA_NUM 4 | ||
32 | #define IRQ_INTUBTIRE(n) (0x49 + (n)*5)/* UARTB 0-1 reception error */ | ||
33 | #define IRQ_INTUBTIRE_NUM 2 | ||
34 | #define IRQ_INTUBTIR(n) (0x4a + (n)*5) /* UARTB 0-1 reception complete */ | ||
35 | #define IRQ_INTUBTIR_NUM 2 | ||
36 | #define IRQ_INTUBTIT(n) (0x4b + (n)*5) /* UARTB 0-1 transmission complete */ | ||
37 | #define IRQ_INTUBTIT_NUM 2 | ||
38 | #define IRQ_INTUBTIF(n) (0x4c + (n)*5) /* UARTB 0-1 FIFO trans. complete */ | ||
39 | #define IRQ_INTUBTIF_NUM 2 | ||
40 | #define IRQ_INTUBTITO(n) (0x4d + (n)*5) /* UARTB 0-1 reception timeout */ | ||
41 | #define IRQ_INTUBTITO_NUM 2 | ||
42 | |||
43 | /* For <asm/irq.h> */ | ||
44 | #define NUM_CPU_IRQS 0x59 /* V850E/ME2 */ | ||
45 | |||
46 | |||
47 | /* For <asm/entry.h> */ | ||
48 | /* We use on-chip RAM, for a few miscellaneous variables that must be | ||
49 | accessible using a load instruction relative to R0. */ | ||
50 | #define R0_RAM_ADDR 0xFFFFB000 /* V850E/ME2 */ | ||
51 | |||
52 | |||
53 | /* V850E/ME2 UARTB details.*/ | ||
54 | #define V850E_UART_NUM_CHANNELS 2 | ||
55 | #define V850E_UARTB_BASE_FREQ (CPU_CLOCK_FREQ / 4) | ||
56 | |||
57 | /* This is a function that gets called before configuring the UART. */ | ||
58 | #define V850E_UART_PRE_CONFIGURE me2_uart_pre_configure | ||
59 | #ifndef __ASSEMBLY__ | ||
60 | extern void me2_uart_pre_configure (unsigned chan, | ||
61 | unsigned cflags, unsigned baud); | ||
62 | #endif /* __ASSEMBLY__ */ | ||
63 | |||
64 | |||
65 | /* V850E/ME2 timer C details. */ | ||
66 | #define V850E_TIMER_C_BASE_ADDR 0xFFFFF600 | ||
67 | |||
68 | |||
69 | /* V850E/ME2 timer D details. */ | ||
70 | #define V850E_TIMER_D_BASE_ADDR 0xFFFFF540 | ||
71 | #define V850E_TIMER_D_TMD_BASE_ADDR (V850E_TIMER_D_BASE_ADDR + 0x0) | ||
72 | #define V850E_TIMER_D_CMD_BASE_ADDR (V850E_TIMER_D_BASE_ADDR + 0x2) | ||
73 | #define V850E_TIMER_D_TMCD_BASE_ADDR (V850E_TIMER_D_BASE_ADDR + 0x4) | ||
74 | |||
75 | #define V850E_TIMER_D_BASE_FREQ (CPU_CLOCK_FREQ / 2) | ||
76 | |||
77 | |||
78 | /* Select iRAM mode. */ | ||
79 | #define ME2_IRAMM_ADDR 0xFFFFF80A | ||
80 | #define ME2_IRAMM (*(volatile u8*)ME2_IRAMM_ADDR) | ||
81 | |||
82 | |||
83 | /* Interrupt edge-detection configuration. INTF(n) and INTR(n) are only | ||
84 | valid for n == 1, 2, or 5. */ | ||
85 | #define ME2_INTF_ADDR(n) (0xFFFFFC00 + (n) * 0x2) | ||
86 | #define ME2_INTF(n) (*(volatile u8*)ME2_INTF_ADDR(n)) | ||
87 | #define ME2_INTR_ADDR(n) (0xFFFFFC20 + (n) * 0x2) | ||
88 | #define ME2_INTR(n) (*(volatile u8*)ME2_INTR_ADDR(n)) | ||
89 | #define ME2_INTFAL_ADDR 0xFFFFFC10 | ||
90 | #define ME2_INTFAL (*(volatile u8*)ME2_INTFAL_ADDR) | ||
91 | #define ME2_INTRAL_ADDR 0xFFFFFC30 | ||
92 | #define ME2_INTRAL (*(volatile u8*)ME2_INTRAL_ADDR) | ||
93 | #define ME2_INTFDH_ADDR 0xFFFFFC16 | ||
94 | #define ME2_INTFDH (*(volatile u16*)ME2_INTFDH_ADDR) | ||
95 | #define ME2_INTRDH_ADDR 0xFFFFFC36 | ||
96 | #define ME2_INTRDH (*(volatile u16*)ME2_INTRDH_ADDR) | ||
97 | #define ME2_SESC_ADDR(n) (0xFFFFF609 + (n) * 0x10) | ||
98 | #define ME2_SESC(n) (*(volatile u8*)ME2_SESC_ADDR(n)) | ||
99 | #define ME2_SESA10_ADDR 0xFFFFF5AD | ||
100 | #define ME2_SESA10 (*(volatile u8*)ME2_SESA10_ADDR) | ||
101 | #define ME2_SESA11_ADDR 0xFFFFF5DD | ||
102 | #define ME2_SESA11 (*(volatile u8*)ME2_SESA11_ADDR) | ||
103 | |||
104 | |||
105 | /* Port 1 */ | ||
106 | /* Direct I/O. Bits 0-3 are pins P10-P13. */ | ||
107 | #define ME2_PORT1_IO_ADDR 0xFFFFF402 | ||
108 | #define ME2_PORT1_IO (*(volatile u8 *)ME2_PORT1_IO_ADDR) | ||
109 | /* Port mode (for direct I/O, 0 = output, 1 = input). */ | ||
110 | #define ME2_PORT1_PM_ADDR 0xFFFFF422 | ||
111 | #define ME2_PORT1_PM (*(volatile u8 *)ME2_PORT1_PM_ADDR) | ||
112 | /* Port mode control (0 = direct I/O mode, 1 = alternative I/O mode). */ | ||
113 | #define ME2_PORT1_PMC_ADDR 0xFFFFF442 | ||
114 | #define ME2_PORT1_PMC (*(volatile u8 *)ME2_PORT1_PMC_ADDR) | ||
115 | /* Port function control (for serial interfaces, 0 = CSI30, 1 = UARTB0 ). */ | ||
116 | #define ME2_PORT1_PFC_ADDR 0xFFFFF462 | ||
117 | #define ME2_PORT1_PFC (*(volatile u8 *)ME2_PORT1_PFC_ADDR) | ||
118 | |||
119 | /* Port 2 */ | ||
120 | /* Direct I/O. Bits 0-3 are pins P20-P25. */ | ||
121 | #define ME2_PORT2_IO_ADDR 0xFFFFF404 | ||
122 | #define ME2_PORT2_IO (*(volatile u8 *)ME2_PORT2_IO_ADDR) | ||
123 | /* Port mode (for direct I/O, 0 = output, 1 = input). */ | ||
124 | #define ME2_PORT2_PM_ADDR 0xFFFFF424 | ||
125 | #define ME2_PORT2_PM (*(volatile u8 *)ME2_PORT2_PM_ADDR) | ||
126 | /* Port mode control (0 = direct I/O mode, 1 = alternative I/O mode). */ | ||
127 | #define ME2_PORT2_PMC_ADDR 0xFFFFF444 | ||
128 | #define ME2_PORT2_PMC (*(volatile u8 *)ME2_PORT2_PMC_ADDR) | ||
129 | /* Port function control (for serial interfaces, 0 = INTP2x, 1 = UARTB1 ). */ | ||
130 | #define ME2_PORT2_PFC_ADDR 0xFFFFF464 | ||
131 | #define ME2_PORT2_PFC (*(volatile u8 *)ME2_PORT2_PFC_ADDR) | ||
132 | |||
133 | /* Port 5 */ | ||
134 | /* Direct I/O. Bits 0-5 are pins P50-P55. */ | ||
135 | #define ME2_PORT5_IO_ADDR 0xFFFFF40A | ||
136 | #define ME2_PORT5_IO (*(volatile u8 *)ME2_PORT5_IO_ADDR) | ||
137 | /* Port mode (for direct I/O, 0 = output, 1 = input). */ | ||
138 | #define ME2_PORT5_PM_ADDR 0xFFFFF42A | ||
139 | #define ME2_PORT5_PM (*(volatile u8 *)ME2_PORT5_PM_ADDR) | ||
140 | /* Port mode control (0 = direct I/O mode, 1 = alternative I/O mode). */ | ||
141 | #define ME2_PORT5_PMC_ADDR 0xFFFFF44A | ||
142 | #define ME2_PORT5_PMC (*(volatile u8 *)ME2_PORT5_PMC_ADDR) | ||
143 | /* Port function control (). */ | ||
144 | #define ME2_PORT5_PFC_ADDR 0xFFFFF46A | ||
145 | #define ME2_PORT5_PFC (*(volatile u8 *)ME2_PORT5_PFC_ADDR) | ||
146 | |||
147 | /* Port 6 */ | ||
148 | /* Direct I/O. Bits 5-7 are pins P65-P67. */ | ||
149 | #define ME2_PORT6_IO_ADDR 0xFFFFF40C | ||
150 | #define ME2_PORT6_IO (*(volatile u8 *)ME2_PORT6_IO_ADDR) | ||
151 | /* Port mode (for direct I/O, 0 = output, 1 = input). */ | ||
152 | #define ME2_PORT6_PM_ADDR 0xFFFFF42C | ||
153 | #define ME2_PORT6_PM (*(volatile u8 *)ME2_PORT6_PM_ADDR) | ||
154 | /* Port mode control (0 = direct I/O mode, 1 = alternative I/O mode). */ | ||
155 | #define ME2_PORT6_PMC_ADDR 0xFFFFF44C | ||
156 | #define ME2_PORT6_PMC (*(volatile u8 *)ME2_PORT6_PMC_ADDR) | ||
157 | /* Port function control (). */ | ||
158 | #define ME2_PORT6_PFC_ADDR 0xFFFFF46C | ||
159 | #define ME2_PORT6_PFC (*(volatile u8 *)ME2_PORT6_PFC_ADDR) | ||
160 | |||
161 | /* Port 7 */ | ||
162 | /* Direct I/O. Bits 2-7 are pins P72-P77. */ | ||
163 | #define ME2_PORT7_IO_ADDR 0xFFFFF40E | ||
164 | #define ME2_PORT7_IO (*(volatile u8 *)ME2_PORT7_IO_ADDR) | ||
165 | /* Port mode (for direct I/O, 0 = output, 1 = input). */ | ||
166 | #define ME2_PORT7_PM_ADDR 0xFFFFF42E | ||
167 | #define ME2_PORT7_PM (*(volatile u8 *)ME2_PORT7_PM_ADDR) | ||
168 | /* Port mode control (0 = direct I/O mode, 1 = alternative I/O mode). */ | ||
169 | #define ME2_PORT7_PMC_ADDR 0xFFFFF44E | ||
170 | #define ME2_PORT7_PMC (*(volatile u8 *)ME2_PORT7_PMC_ADDR) | ||
171 | /* Port function control (). */ | ||
172 | #define ME2_PORT7_PFC_ADDR 0xFFFFF46E | ||
173 | #define ME2_PORT7_PFC (*(volatile u8 *)ME2_PORT7_PFC_ADDR) | ||
174 | |||
175 | |||
176 | #ifndef __ASSEMBLY__ | ||
177 | /* Initialize V850E/ME2 chip interrupts. */ | ||
178 | extern void me2_init_irqs (void); | ||
179 | #endif /* !__ASSEMBLY__ */ | ||
180 | |||
181 | |||
182 | #endif /* __V850_ME2_H__ */ | ||
diff --git a/include/asm-v850/mman.h b/include/asm-v850/mman.h deleted file mode 100644 index edbf6edbfb37..000000000000 --- a/include/asm-v850/mman.h +++ /dev/null | |||
@@ -1,15 +0,0 @@ | |||
1 | #ifndef __V850_MMAN_H__ | ||
2 | #define __V850_MMAN_H__ | ||
3 | |||
4 | #include <asm-generic/mman.h> | ||
5 | |||
6 | #define MAP_GROWSDOWN 0x0100 /* stack-like segment */ | ||
7 | #define MAP_DENYWRITE 0x0800 /* ETXTBSY */ | ||
8 | #define MAP_EXECUTABLE 0x1000 /* mark it as an executable */ | ||
9 | #define MAP_LOCKED 0x2000 /* pages are locked */ | ||
10 | #define MAP_NORESERVE 0x4000 /* don't check for reservations */ | ||
11 | |||
12 | #define MCL_CURRENT 1 /* lock all current mappings */ | ||
13 | #define MCL_FUTURE 2 /* lock all future mappings */ | ||
14 | |||
15 | #endif /* __V850_MMAN_H__ */ | ||
diff --git a/include/asm-v850/mmu.h b/include/asm-v850/mmu.h deleted file mode 100644 index 267768c66ef6..000000000000 --- a/include/asm-v850/mmu.h +++ /dev/null | |||
@@ -1,11 +0,0 @@ | |||
1 | /* Copyright (C) 2002, 2005, David McCullough <davidm@snapgear.com> */ | ||
2 | |||
3 | #ifndef __V850_MMU_H__ | ||
4 | #define __V850_MMU_H__ | ||
5 | |||
6 | typedef struct { | ||
7 | struct vm_list_struct *vmlist; | ||
8 | unsigned long end_brk; | ||
9 | } mm_context_t; | ||
10 | |||
11 | #endif /* __V850_MMU_H__ */ | ||
diff --git a/include/asm-v850/mmu_context.h b/include/asm-v850/mmu_context.h deleted file mode 100644 index 01daacd5474e..000000000000 --- a/include/asm-v850/mmu_context.h +++ /dev/null | |||
@@ -1,13 +0,0 @@ | |||
1 | #ifndef __V850_MMU_CONTEXT_H__ | ||
2 | #define __V850_MMU_CONTEXT_H__ | ||
3 | |||
4 | #include <asm-generic/mm_hooks.h> | ||
5 | |||
6 | #define destroy_context(mm) ((void)0) | ||
7 | #define init_new_context(tsk,mm) 0 | ||
8 | #define switch_mm(prev,next,tsk) ((void)0) | ||
9 | #define deactivate_mm(tsk,mm) do { } while (0) | ||
10 | #define activate_mm(prev,next) ((void)0) | ||
11 | #define enter_lazy_tlb(mm,tsk) ((void)0) | ||
12 | |||
13 | #endif /* __V850_MMU_CONTEXT_H__ */ | ||
diff --git a/include/asm-v850/module.h b/include/asm-v850/module.h deleted file mode 100644 index 2c2f4944f09f..000000000000 --- a/include/asm-v850/module.h +++ /dev/null | |||
@@ -1,62 +0,0 @@ | |||
1 | /* | ||
2 | * include/asm-v850/module.h -- Architecture-specific module hooks | ||
3 | * | ||
4 | * Copyright (C) 2001,02,03,04 NEC Corporation | ||
5 | * Copyright (C) 2001,02,03,04 Miles Bader <miles@gnu.org> | ||
6 | * Copyright (C) 2001,03 Rusty Russell | ||
7 | * | ||
8 | * This file is subject to the terms and conditions of the GNU General | ||
9 | * Public License. See the file COPYING in the main directory of this | ||
10 | * archive for more details. | ||
11 | * | ||
12 | * Written by Miles Bader <miles@gnu.org> | ||
13 | * | ||
14 | * Derived in part from include/asm-ppc/module.h | ||
15 | */ | ||
16 | |||
17 | #ifndef __V850_MODULE_H__ | ||
18 | #define __V850_MODULE_H__ | ||
19 | |||
20 | #define MODULE_SYMBOL_PREFIX "_" | ||
21 | |||
22 | struct v850_plt_entry | ||
23 | { | ||
24 | /* Indirect jump instruction sequence (6-byte mov + 2-byte jr). */ | ||
25 | unsigned long tramp[2]; | ||
26 | }; | ||
27 | |||
28 | struct mod_arch_specific | ||
29 | { | ||
30 | /* Indices of PLT sections within module. */ | ||
31 | unsigned int core_plt_section, init_plt_section; | ||
32 | }; | ||
33 | |||
34 | #define Elf_Shdr Elf32_Shdr | ||
35 | #define Elf_Sym Elf32_Sym | ||
36 | #define Elf_Ehdr Elf32_Ehdr | ||
37 | |||
38 | /* Make empty sections for module_frob_arch_sections to expand. */ | ||
39 | #ifdef MODULE | ||
40 | asm(".section .plt,\"ax\",@nobits; .align 3; .previous"); | ||
41 | asm(".section .init.plt,\"ax\",@nobits; .align 3; .previous"); | ||
42 | #endif | ||
43 | |||
44 | /* We don't do exception tables. */ | ||
45 | struct exception_table_entry; | ||
46 | static inline const struct exception_table_entry * | ||
47 | search_extable(const struct exception_table_entry *first, | ||
48 | const struct exception_table_entry *last, | ||
49 | unsigned long value) | ||
50 | { | ||
51 | return 0; | ||
52 | } | ||
53 | #define ARCH_HAS_SEARCH_EXTABLE | ||
54 | static inline void | ||
55 | sort_extable(struct exception_table_entry *start, | ||
56 | struct exception_table_entry *finish) | ||
57 | { | ||
58 | /* nada */ | ||
59 | } | ||
60 | #define ARCH_HAS_SORT_EXTABLE | ||
61 | |||
62 | #endif /* __V850_MODULE_H__ */ | ||
diff --git a/include/asm-v850/msgbuf.h b/include/asm-v850/msgbuf.h deleted file mode 100644 index ed07dbd01637..000000000000 --- a/include/asm-v850/msgbuf.h +++ /dev/null | |||
@@ -1,31 +0,0 @@ | |||
1 | #ifndef __V850_MSGBUF_H__ | ||
2 | #define __V850_MSGBUF_H__ | ||
3 | |||
4 | /* | ||
5 | * The msqid64_ds structure for v850 architecture. | ||
6 | * Note extra padding because this structure is passed back and forth | ||
7 | * between kernel and user space. | ||
8 | * | ||
9 | * Pad space is left for: | ||
10 | * - 64-bit time_t to solve y2038 problem | ||
11 | * - 2 miscellaneous 32-bit values | ||
12 | */ | ||
13 | |||
14 | struct msqid64_ds { | ||
15 | struct ipc64_perm msg_perm; | ||
16 | __kernel_time_t msg_stime; /* last msgsnd time */ | ||
17 | unsigned long __unused1; | ||
18 | __kernel_time_t msg_rtime; /* last msgrcv time */ | ||
19 | unsigned long __unused2; | ||
20 | __kernel_time_t msg_ctime; /* last change time */ | ||
21 | unsigned long __unused3; | ||
22 | unsigned long msg_cbytes; /* current number of bytes on queue */ | ||
23 | unsigned long msg_qnum; /* number of messages in queue */ | ||
24 | unsigned long msg_qbytes; /* max number of bytes on queue */ | ||
25 | __kernel_pid_t msg_lspid; /* pid of last msgsnd */ | ||
26 | __kernel_pid_t msg_lrpid; /* last receive pid */ | ||
27 | unsigned long __unused4; | ||
28 | unsigned long __unused5; | ||
29 | }; | ||
30 | |||
31 | #endif /* __V850_MSGBUF_H__ */ | ||
diff --git a/include/asm-v850/mutex.h b/include/asm-v850/mutex.h deleted file mode 100644 index 458c1f7fbc18..000000000000 --- a/include/asm-v850/mutex.h +++ /dev/null | |||
@@ -1,9 +0,0 @@ | |||
1 | /* | ||
2 | * Pull in the generic implementation for the mutex fastpath. | ||
3 | * | ||
4 | * TODO: implement optimized primitives instead, or leave the generic | ||
5 | * implementation in place, or pick the atomic_xchg() based generic | ||
6 | * implementation. (see asm-generic/mutex-xchg.h for details) | ||
7 | */ | ||
8 | |||
9 | #include <asm-generic/mutex-dec.h> | ||
diff --git a/include/asm-v850/page.h b/include/asm-v850/page.h deleted file mode 100644 index f9de35d873fa..000000000000 --- a/include/asm-v850/page.h +++ /dev/null | |||
@@ -1,124 +0,0 @@ | |||
1 | /* | ||
2 | * include/asm-v850/page.h -- VM ops | ||
3 | * | ||
4 | * Copyright (C) 2001,02,03,05 NEC Electronics Corporation | ||
5 | * Copyright (C) 2001,02,03,05 Miles Bader <miles@gnu.org> | ||
6 | * | ||
7 | * This file is subject to the terms and conditions of the GNU General | ||
8 | * Public License. See the file COPYING in the main directory of this | ||
9 | * archive for more details. | ||
10 | * | ||
11 | * Written by Miles Bader <miles@gnu.org> | ||
12 | */ | ||
13 | |||
14 | #ifndef __V850_PAGE_H__ | ||
15 | #define __V850_PAGE_H__ | ||
16 | |||
17 | #include <asm/machdep.h> | ||
18 | |||
19 | |||
20 | #define PAGE_SHIFT 12 | ||
21 | #define PAGE_SIZE (1UL << PAGE_SHIFT) | ||
22 | #define PAGE_MASK (~(PAGE_SIZE-1)) | ||
23 | |||
24 | |||
25 | /* | ||
26 | * PAGE_OFFSET -- the first address of the first page of memory. For archs with | ||
27 | * no MMU this corresponds to the first free page in physical memory (aligned | ||
28 | * on a page boundary). | ||
29 | */ | ||
30 | #ifndef PAGE_OFFSET | ||
31 | #define PAGE_OFFSET 0x0000000 | ||
32 | #endif | ||
33 | |||
34 | |||
35 | #ifndef __ASSEMBLY__ | ||
36 | |||
37 | #define STRICT_MM_TYPECHECKS | ||
38 | |||
39 | #define clear_page(page) memset ((void *)(page), 0, PAGE_SIZE) | ||
40 | #define copy_page(to, from) memcpy ((void *)(to), (void *)from, PAGE_SIZE) | ||
41 | |||
42 | #define clear_user_page(addr, vaddr, page) \ | ||
43 | do { clear_page(addr); \ | ||
44 | flush_dcache_page(page); \ | ||
45 | } while (0) | ||
46 | #define copy_user_page(to, from, vaddr, page) \ | ||
47 | do { copy_page(to, from); \ | ||
48 | flush_dcache_page(page); \ | ||
49 | } while (0) | ||
50 | |||
51 | #ifdef STRICT_MM_TYPECHECKS | ||
52 | /* | ||
53 | * These are used to make use of C type-checking.. | ||
54 | */ | ||
55 | |||
56 | typedef struct { unsigned long pte; } pte_t; | ||
57 | typedef struct { unsigned long pmd; } pmd_t; | ||
58 | typedef struct { unsigned long pgd; } pgd_t; | ||
59 | typedef struct { unsigned long pgprot; } pgprot_t; | ||
60 | typedef struct page *pgtable_t; | ||
61 | |||
62 | #define pte_val(x) ((x).pte) | ||
63 | #define pmd_val(x) ((x).pmd) | ||
64 | #define pgd_val(x) ((x).pgd) | ||
65 | #define pgprot_val(x) ((x).pgprot) | ||
66 | |||
67 | #define __pte(x) ((pte_t) { (x) } ) | ||
68 | #define __pmd(x) ((pmd_t) { (x) } ) | ||
69 | #define __pgd(x) ((pgd_t) { (x) } ) | ||
70 | #define __pgprot(x) ((pgprot_t) { (x) } ) | ||
71 | |||
72 | #else /* !STRICT_MM_TYPECHECKS */ | ||
73 | /* | ||
74 | * .. while these make it easier on the compiler | ||
75 | */ | ||
76 | |||
77 | typedef unsigned long pte_t; | ||
78 | typedef unsigned long pmd_t; | ||
79 | typedef unsigned long pgd_t; | ||
80 | typedef unsigned long pgprot_t; | ||
81 | |||
82 | #define pte_val(x) (x) | ||
83 | #define pmd_val(x) (x) | ||
84 | #define pgd_val(x) (x) | ||
85 | #define pgprot_val(x) (x) | ||
86 | |||
87 | #define __pte(x) (x) | ||
88 | #define __pmd(x) (x) | ||
89 | #define __pgd(x) (x) | ||
90 | #define __pgprot(x) (x) | ||
91 | |||
92 | #endif /* STRICT_MM_TYPECHECKS */ | ||
93 | |||
94 | #endif /* !__ASSEMBLY__ */ | ||
95 | |||
96 | |||
97 | /* No current v850 processor has virtual memory. */ | ||
98 | #define __virt_to_phys(addr) (addr) | ||
99 | #define __phys_to_virt(addr) (addr) | ||
100 | |||
101 | #define virt_to_pfn(kaddr) (__virt_to_phys (kaddr) >> PAGE_SHIFT) | ||
102 | #define pfn_to_virt(pfn) __phys_to_virt ((pfn) << PAGE_SHIFT) | ||
103 | |||
104 | #define MAP_NR(kaddr) \ | ||
105 | (((unsigned long)(kaddr) - PAGE_OFFSET) >> PAGE_SHIFT) | ||
106 | #define virt_to_page(kaddr) (mem_map + MAP_NR (kaddr)) | ||
107 | #define page_to_virt(page) \ | ||
108 | ((((page) - mem_map) << PAGE_SHIFT) + PAGE_OFFSET) | ||
109 | |||
110 | #define ARCH_PFN_OFFSET (PAGE_OFFSET >> PAGE_SHIFT) | ||
111 | #define pfn_valid(pfn) ((pfn) < max_mapnr) | ||
112 | |||
113 | #define virt_addr_valid(kaddr) \ | ||
114 | (((void *)(kaddr) >= (void *)PAGE_OFFSET) && MAP_NR (kaddr) < max_mapnr) | ||
115 | |||
116 | |||
117 | #define __pa(x) __virt_to_phys ((unsigned long)(x)) | ||
118 | #define __va(x) ((void *)__phys_to_virt ((unsigned long)(x))) | ||
119 | |||
120 | |||
121 | #include <asm-generic/memory_model.h> | ||
122 | #include <asm-generic/page.h> | ||
123 | |||
124 | #endif /* __V850_PAGE_H__ */ | ||
diff --git a/include/asm-v850/param.h b/include/asm-v850/param.h deleted file mode 100644 index 4391f5fe0204..000000000000 --- a/include/asm-v850/param.h +++ /dev/null | |||
@@ -1,33 +0,0 @@ | |||
1 | /* | ||
2 | * include/asm-v850/param.h -- Varions kernel parameters | ||
3 | * | ||
4 | * Copyright (C) 2001,02 NEC Corporation | ||
5 | * Copyright (C) 2001,02 Miles Bader <miles@gnu.org> | ||
6 | * | ||
7 | * This file is subject to the terms and conditions of the GNU General | ||
8 | * Public License. See the file COPYING in the main directory of this | ||
9 | * archive for more details. | ||
10 | * | ||
11 | * Written by Miles Bader <miles@gnu.org> | ||
12 | */ | ||
13 | |||
14 | #ifndef __V850_PARAM_H__ | ||
15 | #define __V850_PARAM_H__ | ||
16 | |||
17 | #define EXEC_PAGESIZE 4096 | ||
18 | |||
19 | #ifndef NOGROUP | ||
20 | #define NOGROUP (-1) | ||
21 | #endif | ||
22 | |||
23 | #define MAXHOSTNAMELEN 64 /* max length of hostname */ | ||
24 | |||
25 | #ifdef __KERNEL__ | ||
26 | # define HZ CONFIG_HZ | ||
27 | # define USER_HZ 100 | ||
28 | # define CLOCKS_PER_SEC USER_HZ | ||
29 | #else | ||
30 | # define HZ 100 | ||
31 | #endif | ||
32 | |||
33 | #endif /* __V850_PARAM_H__ */ | ||
diff --git a/include/asm-v850/pci.h b/include/asm-v850/pci.h deleted file mode 100644 index de2a7d0a81cc..000000000000 --- a/include/asm-v850/pci.h +++ /dev/null | |||
@@ -1,119 +0,0 @@ | |||
1 | /* | ||
2 | * include/asm-v850/pci.h -- PCI support | ||
3 | * | ||
4 | * Copyright (C) 2001,02,05 NEC Corporation | ||
5 | * Copyright (C) 2001,02,05 Miles Bader <miles@gnu.org> | ||
6 | * | ||
7 | * This file is subject to the terms and conditions of the GNU General | ||
8 | * Public License. See the file COPYING in the main directory of this | ||
9 | * archive for more details. | ||
10 | * | ||
11 | * Written by Miles Bader <miles@gnu.org> | ||
12 | */ | ||
13 | |||
14 | #ifndef __V850_PCI_H__ | ||
15 | #define __V850_PCI_H__ | ||
16 | |||
17 | /* Get any platform-dependent definitions. */ | ||
18 | #include <asm/machdep.h> | ||
19 | |||
20 | #define pcibios_scan_all_fns(a, b) 0 | ||
21 | |||
22 | /* Generic declarations. */ | ||
23 | |||
24 | struct scatterlist; | ||
25 | |||
26 | extern void pcibios_set_master (struct pci_dev *dev); | ||
27 | |||
28 | /* `Grant' to PDEV the memory block at CPU_ADDR, for doing DMA. The | ||
29 | 32-bit PCI bus mastering address to use is returned. the device owns | ||
30 | this memory until either pci_unmap_single or pci_dma_sync_single_for_cpu is | ||
31 | performed. */ | ||
32 | extern dma_addr_t | ||
33 | pci_map_single (struct pci_dev *pdev, void *cpu_addr, size_t size, int dir); | ||
34 | |||
35 | /* Return to the CPU the PCI DMA memory block previously `granted' to | ||
36 | PDEV, at DMA_ADDR. */ | ||
37 | extern void | ||
38 | pci_unmap_single (struct pci_dev *pdev, dma_addr_t dma_addr, size_t size, | ||
39 | int dir); | ||
40 | |||
41 | /* Make physical memory consistent for a single streaming mode DMA | ||
42 | translation after a transfer. | ||
43 | |||
44 | If you perform a pci_map_single() but wish to interrogate the | ||
45 | buffer using the cpu, yet do not wish to teardown the PCI dma | ||
46 | mapping, you must call this function before doing so. At the next | ||
47 | point you give the PCI dma address back to the card, you must first | ||
48 | perform a pci_dma_sync_for_device, and then the device again owns | ||
49 | the buffer. */ | ||
50 | extern void | ||
51 | pci_dma_sync_single_for_cpu (struct pci_dev *dev, dma_addr_t dma_addr, | ||
52 | size_t size, int dir); | ||
53 | |||
54 | extern void | ||
55 | pci_dma_sync_single_for_device (struct pci_dev *dev, dma_addr_t dma_addr, | ||
56 | size_t size, int dir); | ||
57 | |||
58 | |||
59 | /* Do multiple DMA mappings at once. */ | ||
60 | extern int | ||
61 | pci_map_sg (struct pci_dev *pdev, struct scatterlist *sg, int sg_len, int dir); | ||
62 | |||
63 | /* Unmap multiple DMA mappings at once. */ | ||
64 | extern void | ||
65 | pci_unmap_sg (struct pci_dev *pdev, struct scatterlist *sg, int sg_len, | ||
66 | int dir); | ||
67 | |||
68 | /* SG-list versions of pci_dma_sync functions. */ | ||
69 | extern void | ||
70 | pci_dma_sync_sg_for_cpu (struct pci_dev *dev, | ||
71 | struct scatterlist *sg, int sg_len, | ||
72 | int dir); | ||
73 | extern void | ||
74 | pci_dma_sync_sg_for_device (struct pci_dev *dev, | ||
75 | struct scatterlist *sg, int sg_len, | ||
76 | int dir); | ||
77 | |||
78 | #define pci_map_page(dev, page, offs, size, dir) \ | ||
79 | pci_map_single(dev, (page_address(page) + (offs)), size, dir) | ||
80 | #define pci_unmap_page(dev,addr,sz,dir) \ | ||
81 | pci_unmap_single(dev, addr, sz, dir) | ||
82 | |||
83 | /* Test for pci_map_single or pci_map_page having generated an error. */ | ||
84 | static inline int | ||
85 | pci_dma_mapping_error (dma_addr_t dma_addr) | ||
86 | { | ||
87 | return dma_addr == 0; | ||
88 | } | ||
89 | |||
90 | /* Allocate and map kernel buffer using consistent mode DMA for PCI | ||
91 | device. Returns non-NULL cpu-view pointer to the buffer if | ||
92 | successful and sets *DMA_ADDR to the pci side dma address as well, | ||
93 | else DMA_ADDR is undefined. */ | ||
94 | extern void * | ||
95 | pci_alloc_consistent (struct pci_dev *pdev, size_t size, dma_addr_t *dma_addr); | ||
96 | |||
97 | /* Free and unmap a consistent DMA buffer. CPU_ADDR and DMA_ADDR must | ||
98 | be values that were returned from pci_alloc_consistent. SIZE must be | ||
99 | the same as what as passed into pci_alloc_consistent. References to | ||
100 | the memory and mappings assosciated with CPU_ADDR or DMA_ADDR past | ||
101 | this call are illegal. */ | ||
102 | extern void | ||
103 | pci_free_consistent (struct pci_dev *pdev, size_t size, void *cpu_addr, | ||
104 | dma_addr_t dma_addr); | ||
105 | |||
106 | #ifdef CONFIG_PCI | ||
107 | static inline void pci_dma_burst_advice(struct pci_dev *pdev, | ||
108 | enum pci_dma_burst_strategy *strat, | ||
109 | unsigned long *strategy_parameter) | ||
110 | { | ||
111 | *strat = PCI_DMA_BURST_INFINITY; | ||
112 | *strategy_parameter = ~0UL; | ||
113 | } | ||
114 | #endif | ||
115 | |||
116 | extern void __iomem *pci_iomap(struct pci_dev *dev, int bar, unsigned long max); | ||
117 | extern void pci_iounmap (struct pci_dev *dev, void __iomem *addr); | ||
118 | |||
119 | #endif /* __V850_PCI_H__ */ | ||
diff --git a/include/asm-v850/percpu.h b/include/asm-v850/percpu.h deleted file mode 100644 index 755ac6522b63..000000000000 --- a/include/asm-v850/percpu.h +++ /dev/null | |||
@@ -1,14 +0,0 @@ | |||
1 | #ifndef __V850_PERCPU_H__ | ||
2 | #define __V850_PERCPU_H__ | ||
3 | |||
4 | #include <asm-generic/percpu.h> | ||
5 | |||
6 | /* This is a stupid hack to satisfy some grotty implicit include-file | ||
7 | dependency; basically, <linux/smp.h> uses BUG_ON, which calls BUG, but | ||
8 | doesn't include the necessary headers to define it. In the twisted | ||
9 | festering mess of includes this must all be resolved somehow on other | ||
10 | platforms, but I haven't the faintest idea how, and don't care; here will | ||
11 | do, even though doesn't actually make any sense. */ | ||
12 | #include <asm/page.h> | ||
13 | |||
14 | #endif /* __V850_PERCPU_H__ */ | ||
diff --git a/include/asm-v850/pgalloc.h b/include/asm-v850/pgalloc.h deleted file mode 100644 index b91eb2d02bfd..000000000000 --- a/include/asm-v850/pgalloc.h +++ /dev/null | |||
@@ -1,22 +0,0 @@ | |||
1 | /* | ||
2 | * include/asm-v850/pgalloc.h | ||
3 | * | ||
4 | * Copyright (C) 2001,02 NEC Corporation | ||
5 | * Copyright (C) 2001,02 Miles Bader <miles@gnu.org> | ||
6 | * | ||
7 | * This file is subject to the terms and conditions of the GNU General | ||
8 | * Public License. See the file COPYING in the main directory of this | ||
9 | * archive for more details. | ||
10 | * | ||
11 | * Written by Miles Bader <miles@gnu.org> | ||
12 | */ | ||
13 | |||
14 | #ifndef __V850_PGALLOC_H__ | ||
15 | #define __V850_PGALLOC_H__ | ||
16 | |||
17 | #include <linux/mm.h> /* some crap code expects this */ | ||
18 | |||
19 | /* ... and then, there was one. */ | ||
20 | #define check_pgt_cache() ((void)0) | ||
21 | |||
22 | #endif /* __V850_PGALLOC_H__ */ | ||
diff --git a/include/asm-v850/pgtable.h b/include/asm-v850/pgtable.h deleted file mode 100644 index 1ea2a900f0f8..000000000000 --- a/include/asm-v850/pgtable.h +++ /dev/null | |||
@@ -1,59 +0,0 @@ | |||
1 | #ifndef __V850_PGTABLE_H__ | ||
2 | #define __V850_PGTABLE_H__ | ||
3 | |||
4 | #include <asm-generic/4level-fixup.h> | ||
5 | |||
6 | #include <asm/page.h> | ||
7 | |||
8 | |||
9 | #define pgd_present(pgd) (1) /* pages are always present on NO_MM */ | ||
10 | #define pgd_none(pgd) (0) | ||
11 | #define pgd_bad(pgd) (0) | ||
12 | #define pgd_clear(pgdp) ((void)0) | ||
13 | |||
14 | #define pmd_offset(a, b) ((void *)0) | ||
15 | |||
16 | #define kern_addr_valid(addr) (1) | ||
17 | |||
18 | |||
19 | #define __swp_type(x) (0) | ||
20 | #define __swp_offset(x) (0) | ||
21 | #define __swp_entry(typ,off) ((swp_entry_t) { ((typ) | ((off) << 7)) }) | ||
22 | #define __pte_to_swp_entry(pte) ((swp_entry_t) { pte_val(pte) }) | ||
23 | #define __swp_entry_to_pte(x) ((pte_t) { (x).val }) | ||
24 | |||
25 | static inline int pte_file (pte_t pte) { return 0; } | ||
26 | |||
27 | |||
28 | /* These mean nothing to !CONFIG_MMU. */ | ||
29 | #define PAGE_NONE __pgprot(0) | ||
30 | #define PAGE_SHARED __pgprot(0) | ||
31 | #define PAGE_COPY __pgprot(0) | ||
32 | #define PAGE_READONLY __pgprot(0) | ||
33 | #define PAGE_KERNEL __pgprot(0) | ||
34 | |||
35 | |||
36 | /* | ||
37 | * ZERO_PAGE is a global shared page that is always zero: used | ||
38 | * for zero-mapped memory areas etc. When CONFIG_MMU is not defined, this | ||
39 | * should never actually be used, so just define it to something that's | ||
40 | * will hopefully cause a bus error if it is. | ||
41 | */ | ||
42 | #define ZERO_PAGE(vaddr) ((void *)0x87654321) | ||
43 | |||
44 | |||
45 | /* Some bogus code in procfs uses these; whatever. */ | ||
46 | #define VMALLOC_START 0 | ||
47 | #define VMALLOC_END (~0) | ||
48 | |||
49 | |||
50 | extern void paging_init (void); | ||
51 | #define swapper_pg_dir ((pgd_t *) 0) | ||
52 | |||
53 | #define pgtable_cache_init() ((void)0) | ||
54 | |||
55 | |||
56 | extern unsigned int kobjsize(const void *objp); | ||
57 | |||
58 | |||
59 | #endif /* __V850_PGTABLE_H__ */ | ||
diff --git a/include/asm-v850/poll.h b/include/asm-v850/poll.h deleted file mode 100644 index 803cad0b9b59..000000000000 --- a/include/asm-v850/poll.h +++ /dev/null | |||
@@ -1,9 +0,0 @@ | |||
1 | #ifndef __V850_POLL_H__ | ||
2 | #define __V850_POLL_H__ | ||
3 | |||
4 | #define POLLWRNORM POLLOUT | ||
5 | #define POLLWRBAND 0x0100 | ||
6 | |||
7 | #include <asm-generic/poll.h> | ||
8 | |||
9 | #endif /* __V850_POLL_H__ */ | ||
diff --git a/include/asm-v850/posix_types.h b/include/asm-v850/posix_types.h deleted file mode 100644 index 7f403b765390..000000000000 --- a/include/asm-v850/posix_types.h +++ /dev/null | |||
@@ -1,72 +0,0 @@ | |||
1 | /* | ||
2 | * include/asm-v850/posix_types.h -- Kernel versions of standard types | ||
3 | * | ||
4 | * Copyright (C) 2001,02,03 NEC Electronics Corporation | ||
5 | * Copyright (C) 2001,02,03 Miles Bader <miles@gnu.org> | ||
6 | * | ||
7 | * This file is subject to the terms and conditions of the GNU General | ||
8 | * Public License. See the file COPYING in the main directory of this | ||
9 | * archive for more details. | ||
10 | * | ||
11 | * Written by Miles Bader <miles@gnu.org> | ||
12 | */ | ||
13 | |||
14 | #ifndef __V850_POSIX_TYPES_H__ | ||
15 | #define __V850_POSIX_TYPES_H__ | ||
16 | |||
17 | typedef unsigned long __kernel_ino_t; | ||
18 | typedef unsigned long long __kernel_ino64_t; | ||
19 | typedef unsigned int __kernel_mode_t; | ||
20 | typedef unsigned int __kernel_nlink_t; | ||
21 | typedef long __kernel_off_t; | ||
22 | typedef long long __kernel_loff_t; | ||
23 | typedef int __kernel_pid_t; | ||
24 | typedef unsigned short __kernel_ipc_pid_t; | ||
25 | typedef unsigned int __kernel_uid_t; | ||
26 | typedef unsigned int __kernel_gid_t; | ||
27 | typedef unsigned int __kernel_size_t; | ||
28 | typedef int __kernel_ssize_t; | ||
29 | typedef int __kernel_ptrdiff_t; | ||
30 | typedef long __kernel_time_t; | ||
31 | typedef long __kernel_suseconds_t; | ||
32 | typedef long __kernel_clock_t; | ||
33 | typedef int __kernel_timer_t; | ||
34 | typedef int __kernel_clockid_t; | ||
35 | typedef int __kernel_daddr_t; | ||
36 | typedef char * __kernel_caddr_t; | ||
37 | typedef unsigned short __kernel_uid16_t; | ||
38 | typedef unsigned short __kernel_gid16_t; | ||
39 | typedef unsigned int __kernel_uid32_t; | ||
40 | typedef unsigned int __kernel_gid32_t; | ||
41 | |||
42 | /* Some bogus code depends on this; we don't care. */ | ||
43 | typedef __kernel_uid_t __kernel_old_uid_t; | ||
44 | typedef unsigned int __kernel_old_dev_t; | ||
45 | |||
46 | typedef struct { | ||
47 | int val[2]; | ||
48 | } __kernel_fsid_t; | ||
49 | |||
50 | |||
51 | #if defined(__KERNEL__) | ||
52 | |||
53 | /* We used to include <asm/bitops.h> here, which seems the right thing, but | ||
54 | it caused nasty include-file definition order problems. Removing the | ||
55 | include seems to work, so fingers crossed... */ | ||
56 | |||
57 | #undef __FD_SET | ||
58 | #define __FD_SET(fd, fd_set) \ | ||
59 | __set_bit (fd, (void *)&((__kernel_fd_set *)fd_set)->fds_bits) | ||
60 | #undef __FD_CLR | ||
61 | #define __FD_CLR(fd, fd_set) \ | ||
62 | __clear_bit (fd, (void *)&((__kernel_fd_set *)fd_set)->fds_bits) | ||
63 | #undef __FD_ISSET | ||
64 | #define __FD_ISSET(fd, fd_set) \ | ||
65 | __test_bit (fd, (void *)&((__kernel_fd_set *)fd_set)->fds_bits) | ||
66 | #undef __FD_ZERO | ||
67 | #define __FD_ZERO(fd_set) \ | ||
68 | memset (fd_set, 0, sizeof (*(fd_set *)fd_set)) | ||
69 | |||
70 | #endif /* defined(__KERNEL__) */ | ||
71 | |||
72 | #endif /* __V850_POSIX_TYPES_H__ */ | ||
diff --git a/include/asm-v850/processor.h b/include/asm-v850/processor.h deleted file mode 100644 index 979e3467f9af..000000000000 --- a/include/asm-v850/processor.h +++ /dev/null | |||
@@ -1,120 +0,0 @@ | |||
1 | /* | ||
2 | * include/asm-v850/processor.h | ||
3 | * | ||
4 | * Copyright (C) 2001,02,03 NEC Electronics Corporation | ||
5 | * Copyright (C) 2001,02,03 Miles Bader <miles@gnu.org> | ||
6 | * | ||
7 | * This file is subject to the terms and conditions of the GNU General | ||
8 | * Public License. See the file COPYING in the main directory of this | ||
9 | * archive for more details. | ||
10 | * | ||
11 | * Written by Miles Bader <miles@gnu.org> | ||
12 | */ | ||
13 | |||
14 | #ifndef __V850_PROCESSOR_H__ | ||
15 | #define __V850_PROCESSOR_H__ | ||
16 | |||
17 | #ifndef __ASSEMBLY__ /* <linux/thread_info.h> is not asm-safe. */ | ||
18 | #include <linux/thread_info.h> | ||
19 | #endif | ||
20 | |||
21 | #include <linux/compiler.h> | ||
22 | #include <asm/ptrace.h> | ||
23 | #include <asm/entry.h> | ||
24 | |||
25 | /* Some code expects `segment' stuff to be defined here. */ | ||
26 | #include <asm/segment.h> | ||
27 | |||
28 | |||
29 | /* | ||
30 | * The only places this is used seem to be horrible bletcherous kludges, | ||
31 | * so we just define it to be as large as possible. | ||
32 | */ | ||
33 | #define TASK_SIZE (0xFFFFFFFF) | ||
34 | |||
35 | /* | ||
36 | * This decides where the kernel will search for a free chunk of vm | ||
37 | * space during mmap's. We won't be using it. | ||
38 | */ | ||
39 | #define TASK_UNMAPPED_BASE 0 | ||
40 | |||
41 | |||
42 | #ifndef __ASSEMBLY__ | ||
43 | |||
44 | |||
45 | /* | ||
46 | * Default implementation of macro that returns current | ||
47 | * instruction pointer ("program counter"). | ||
48 | */ | ||
49 | #define current_text_addr() ({ __label__ _l; _l: &&_l;}) | ||
50 | |||
51 | /* If you change this, you must change the associated assembly-languages | ||
52 | constants defined below, THREAD_*. */ | ||
53 | struct thread_struct { | ||
54 | /* kernel stack pointer (must be first field in structure) */ | ||
55 | unsigned long ksp; | ||
56 | }; | ||
57 | |||
58 | #define INIT_THREAD { sizeof init_stack + (unsigned long)init_stack } | ||
59 | |||
60 | |||
61 | /* Do necessary setup to start up a newly executed thread. */ | ||
62 | static inline void start_thread (struct pt_regs *regs, | ||
63 | unsigned long pc, unsigned long usp) | ||
64 | { | ||
65 | regs->pc = pc; | ||
66 | regs->gpr[GPR_SP] = usp; | ||
67 | regs->kernel_mode = 0; | ||
68 | } | ||
69 | |||
70 | /* Free all resources held by a thread. */ | ||
71 | static inline void release_thread (struct task_struct *dead_task) | ||
72 | { | ||
73 | } | ||
74 | |||
75 | /* Prepare to copy thread state - unlazy all lazy status */ | ||
76 | #define prepare_to_copy(tsk) do { } while (0) | ||
77 | |||
78 | extern int kernel_thread (int (*fn)(void *), void * arg, unsigned long flags); | ||
79 | |||
80 | /* Free current thread data structures etc. */ | ||
81 | static inline void exit_thread (void) | ||
82 | { | ||
83 | } | ||
84 | |||
85 | |||
86 | /* Return the registers saved during context-switch by the currently | ||
87 | not-running thread T. Note that this only includes some registers! | ||
88 | See entry.S for details. */ | ||
89 | #define thread_saved_regs(t) \ | ||
90 | ((struct pt_regs*)((t)->thread.ksp + STATE_SAVE_PT_OFFSET)) | ||
91 | /* Return saved (kernel) PC of a blocked thread. Actually, we return the | ||
92 | LP register, because the thread is actually blocked in switch_thread, | ||
93 | and we're interested in the PC it will _return_ to. */ | ||
94 | #define thread_saved_pc(t) (thread_saved_regs(t)->gpr[GPR_LP]) | ||
95 | |||
96 | |||
97 | unsigned long get_wchan (struct task_struct *p); | ||
98 | |||
99 | |||
100 | /* Return some info about the user process TASK. */ | ||
101 | #define task_tos(task) ((unsigned long)task_stack_page(task) + THREAD_SIZE) | ||
102 | #define task_pt_regs(task) ((struct pt_regs *)task_tos (task) - 1) | ||
103 | #define task_sp(task) (task_pt_regs (task)->gpr[GPR_SP]) | ||
104 | #define task_pc(task) (task_pt_regs (task)->pc) | ||
105 | /* Grotty old names for some. */ | ||
106 | #define KSTK_EIP(task) task_pc (task) | ||
107 | #define KSTK_ESP(task) task_sp (task) | ||
108 | |||
109 | |||
110 | #define cpu_relax() barrier() | ||
111 | |||
112 | |||
113 | #else /* __ASSEMBLY__ */ | ||
114 | |||
115 | #define THREAD_KSP 0 | ||
116 | |||
117 | #endif /* !__ASSEMBLY__ */ | ||
118 | |||
119 | |||
120 | #endif /* __V850_PROCESSOR_H__ */ | ||
diff --git a/include/asm-v850/ptrace.h b/include/asm-v850/ptrace.h deleted file mode 100644 index 4f35cf2cd641..000000000000 --- a/include/asm-v850/ptrace.h +++ /dev/null | |||
@@ -1,121 +0,0 @@ | |||
1 | /* | ||
2 | * include/asm-v850/ptrace.h -- Access to CPU registers | ||
3 | * | ||
4 | * Copyright (C) 2001,02,03 NEC Electronics Corporation | ||
5 | * Copyright (C) 2001,02,03 Miles Bader <miles@gnu.org> | ||
6 | * | ||
7 | * This file is subject to the terms and conditions of the GNU General | ||
8 | * Public License. See the file COPYING in the main directory of this | ||
9 | * archive for more details. | ||
10 | * | ||
11 | * Written by Miles Bader <miles@gnu.org> | ||
12 | */ | ||
13 | |||
14 | #ifndef __V850_PTRACE_H__ | ||
15 | #define __V850_PTRACE_H__ | ||
16 | |||
17 | |||
18 | /* v850 general purpose registers with special meanings. */ | ||
19 | #define GPR_ZERO 0 /* constant zero */ | ||
20 | #define GPR_ASM 1 /* reserved for assembler */ | ||
21 | #define GPR_SP 3 /* stack pointer */ | ||
22 | #define GPR_GP 4 /* global data pointer */ | ||
23 | #define GPR_TP 5 /* `text pointer' */ | ||
24 | #define GPR_EP 30 /* `element pointer' */ | ||
25 | #define GPR_LP 31 /* link pointer (current return address) */ | ||
26 | |||
27 | /* These aren't official names, but they make some code more descriptive. */ | ||
28 | #define GPR_ARG0 6 | ||
29 | #define GPR_ARG1 7 | ||
30 | #define GPR_ARG2 8 | ||
31 | #define GPR_ARG3 9 | ||
32 | #define GPR_RVAL0 10 | ||
33 | #define GPR_RVAL1 11 | ||
34 | #define GPR_RVAL GPR_RVAL0 | ||
35 | |||
36 | #define NUM_GPRS 32 | ||
37 | |||
38 | /* v850 `system' registers. */ | ||
39 | #define SR_EIPC 0 | ||
40 | #define SR_EIPSW 1 | ||
41 | #define SR_FEPC 2 | ||
42 | #define SR_FEPSW 3 | ||
43 | #define SR_ECR 4 | ||
44 | #define SR_PSW 5 | ||
45 | #define SR_CTPC 16 | ||
46 | #define SR_CTPSW 17 | ||
47 | #define SR_DBPC 18 | ||
48 | #define SR_DBPSW 19 | ||
49 | #define SR_CTBP 20 | ||
50 | #define SR_DIR 21 | ||
51 | #define SR_ASID 23 | ||
52 | |||
53 | |||
54 | #ifndef __ASSEMBLY__ | ||
55 | |||
56 | typedef unsigned long v850_reg_t; | ||
57 | |||
58 | /* How processor state is stored on the stack during a syscall/signal. | ||
59 | If you change this structure, change the associated assembly-language | ||
60 | macros below too (PT_*)! */ | ||
61 | struct pt_regs | ||
62 | { | ||
63 | /* General purpose registers. */ | ||
64 | v850_reg_t gpr[NUM_GPRS]; | ||
65 | |||
66 | v850_reg_t pc; /* program counter */ | ||
67 | v850_reg_t psw; /* program status word */ | ||
68 | |||
69 | /* Registers used by `callt' instruction: */ | ||
70 | v850_reg_t ctpc; /* saved program counter */ | ||
71 | v850_reg_t ctpsw; /* saved psw */ | ||
72 | v850_reg_t ctbp; /* base pointer for callt table */ | ||
73 | |||
74 | char kernel_mode; /* 1 if in `kernel mode', 0 if user mode */ | ||
75 | }; | ||
76 | |||
77 | |||
78 | #define instruction_pointer(regs) ((regs)->pc) | ||
79 | #define profile_pc(regs) instruction_pointer(regs) | ||
80 | #define user_mode(regs) (!(regs)->kernel_mode) | ||
81 | |||
82 | /* When a struct pt_regs is used to save user state for a system call in | ||
83 | the kernel, the system call is stored in the space for R0 (since it's | ||
84 | never used otherwise, R0 being a constant 0). Non-system-calls | ||
85 | simply store 0 there. */ | ||
86 | #define PT_REGS_SYSCALL(regs) (regs)->gpr[0] | ||
87 | #define PT_REGS_SET_SYSCALL(regs, val) ((regs)->gpr[0] = (val)) | ||
88 | |||
89 | #endif /* !__ASSEMBLY__ */ | ||
90 | |||
91 | |||
92 | /* The number of bytes used to store each register. */ | ||
93 | #define _PT_REG_SIZE 4 | ||
94 | |||
95 | /* Offset of a general purpose register in a struct pt_regs. */ | ||
96 | #define PT_GPR(num) ((num) * _PT_REG_SIZE) | ||
97 | |||
98 | /* Offsets of various special registers & fields in a struct pt_regs. */ | ||
99 | #define PT_PC ((NUM_GPRS + 0) * _PT_REG_SIZE) | ||
100 | #define PT_PSW ((NUM_GPRS + 1) * _PT_REG_SIZE) | ||
101 | #define PT_CTPC ((NUM_GPRS + 2) * _PT_REG_SIZE) | ||
102 | #define PT_CTPSW ((NUM_GPRS + 3) * _PT_REG_SIZE) | ||
103 | #define PT_CTBP ((NUM_GPRS + 4) * _PT_REG_SIZE) | ||
104 | #define PT_KERNEL_MODE ((NUM_GPRS + 5) * _PT_REG_SIZE) | ||
105 | |||
106 | /* Where the current syscall number is stashed; obviously only valid in | ||
107 | the kernel! */ | ||
108 | #define PT_CUR_SYSCALL PT_GPR(0) | ||
109 | |||
110 | /* Size of struct pt_regs, including alignment. */ | ||
111 | #define PT_SIZE ((NUM_GPRS + 6) * _PT_REG_SIZE) | ||
112 | |||
113 | |||
114 | /* These are `magic' values for PTRACE_PEEKUSR that return info about where | ||
115 | a process is located in memory. */ | ||
116 | #define PT_TEXT_ADDR (PT_SIZE + 1) | ||
117 | #define PT_TEXT_LEN (PT_SIZE + 2) | ||
118 | #define PT_DATA_ADDR (PT_SIZE + 3) | ||
119 | |||
120 | |||
121 | #endif /* __V850_PTRACE_H__ */ | ||
diff --git a/include/asm-v850/resource.h b/include/asm-v850/resource.h deleted file mode 100644 index 4b9dcd44f8d1..000000000000 --- a/include/asm-v850/resource.h +++ /dev/null | |||
@@ -1,6 +0,0 @@ | |||
1 | #ifndef __V850_RESOURCE_H__ | ||
2 | #define __V850_RESOURCE_H__ | ||
3 | |||
4 | #include <asm-generic/resource.h> | ||
5 | |||
6 | #endif /* __V850_RESOURCE_H__ */ | ||
diff --git a/include/asm-v850/rte_cb.h b/include/asm-v850/rte_cb.h deleted file mode 100644 index db9879f00aa7..000000000000 --- a/include/asm-v850/rte_cb.h +++ /dev/null | |||
@@ -1,78 +0,0 @@ | |||
1 | /* | ||
2 | * include/asm-v850/rte_cb.h -- Midas labs RTE-CB series of evaluation boards | ||
3 | * | ||
4 | * Copyright (C) 2001,02,03 NEC Electronics Corporation | ||
5 | * Copyright (C) 2001,02,03 Miles Bader <miles@gnu.org> | ||
6 | * | ||
7 | * This file is subject to the terms and conditions of the GNU General | ||
8 | * Public License. See the file COPYING in the main directory of this | ||
9 | * archive for more details. | ||
10 | * | ||
11 | * Written by Miles Bader <miles@gnu.org> | ||
12 | */ | ||
13 | |||
14 | #ifndef __V850_RTE_CB_H__ | ||
15 | #define __V850_RTE_CB_H__ | ||
16 | |||
17 | |||
18 | /* The SRAM on the Mother-A motherboard. */ | ||
19 | #define MB_A_SRAM_ADDR GCS0_ADDR | ||
20 | #define MB_A_SRAM_SIZE 0x00200000 /* 2MB */ | ||
21 | |||
22 | |||
23 | #ifdef CONFIG_RTE_GBUS_INT | ||
24 | /* GBUS interrupt support. */ | ||
25 | |||
26 | # include <asm/gbus_int.h> | ||
27 | |||
28 | # define GBUS_INT_BASE_IRQ NUM_RTE_CB_IRQS | ||
29 | # define GBUS_INT_BASE_ADDR (GCS2_ADDR + 0x00006000) | ||
30 | |||
31 | /* Some specific interrupts. */ | ||
32 | # define IRQ_MB_A_LAN IRQ_GBUS_INT(10) | ||
33 | # define IRQ_MB_A_PCI1(n) (IRQ_GBUS_INT(16) + (n)) | ||
34 | # define IRQ_MB_A_PCI1_NUM 4 | ||
35 | # define IRQ_MB_A_PCI2(n) (IRQ_GBUS_INT(20) + (n)) | ||
36 | # define IRQ_MB_A_PCI2_NUM 4 | ||
37 | # define IRQ_MB_A_EXT(n) (IRQ_GBUS_INT(24) + (n)) | ||
38 | # define IRQ_MB_A_EXT_NUM 4 | ||
39 | # define IRQ_MB_A_USB_OC(n) (IRQ_GBUS_INT(28) + (n)) | ||
40 | # define IRQ_MB_A_USB_OC_NUM 2 | ||
41 | # define IRQ_MB_A_PCMCIA_OC IRQ_GBUS_INT(30) | ||
42 | |||
43 | /* We define NUM_MACH_IRQS to include extra interrupts from the GBUS. */ | ||
44 | # define NUM_MACH_IRQS (NUM_RTE_CB_IRQS + IRQ_GBUS_INT_NUM) | ||
45 | |||
46 | #else /* !CONFIG_RTE_GBUS_INT */ | ||
47 | |||
48 | # define NUM_MACH_IRQS NUM_RTE_CB_IRQS | ||
49 | |||
50 | #endif /* CONFIG_RTE_GBUS_INT */ | ||
51 | |||
52 | |||
53 | #ifdef CONFIG_RTE_MB_A_PCI | ||
54 | /* Mother-A PCI bus support. */ | ||
55 | |||
56 | # include <asm/rte_mb_a_pci.h> | ||
57 | |||
58 | /* These are the base addresses used for allocating device address | ||
59 | space. 512K of the motherboard SRAM is in the same space, so we have | ||
60 | to be careful not to let it be allocated. */ | ||
61 | # define PCIBIOS_MIN_MEM (MB_A_PCI_MEM_ADDR + 0x80000) | ||
62 | # define PCIBIOS_MIN_IO MB_A_PCI_IO_ADDR | ||
63 | |||
64 | /* As we don't really support PCI DMA to cpu memory, and use bounce-buffers | ||
65 | instead, perversely enough, this becomes always true! */ | ||
66 | # define pci_dma_supported(dev, mask) 1 | ||
67 | # define pcibios_assign_all_busses() 1 | ||
68 | |||
69 | #endif /* CONFIG_RTE_MB_A_PCI */ | ||
70 | |||
71 | |||
72 | #ifndef __ASSEMBLY__ | ||
73 | extern void rte_cb_early_init (void); | ||
74 | extern void rte_cb_init_irqs (void); | ||
75 | #endif /* !__ASSEMBLY__ */ | ||
76 | |||
77 | |||
78 | #endif /* __V850_RTE_CB_H__ */ | ||
diff --git a/include/asm-v850/rte_ma1_cb.h b/include/asm-v850/rte_ma1_cb.h deleted file mode 100644 index bd3162ab9844..000000000000 --- a/include/asm-v850/rte_ma1_cb.h +++ /dev/null | |||
@@ -1,128 +0,0 @@ | |||
1 | /* | ||
2 | * include/asm-v850/rte_ma1_cb.h -- Midas labs RTE-V850/MA1-CB board | ||
3 | * | ||
4 | * Copyright (C) 2001,02,03 NEC Electronics Corporation | ||
5 | * Copyright (C) 2001,02,03 Miles Bader <miles@gnu.org> | ||
6 | * | ||
7 | * This file is subject to the terms and conditions of the GNU General | ||
8 | * Public License. See the file COPYING in the main directory of this | ||
9 | * archive for more details. | ||
10 | * | ||
11 | * Written by Miles Bader <miles@gnu.org> | ||
12 | */ | ||
13 | |||
14 | #ifndef __V850_RTE_MA1_CB_H__ | ||
15 | #define __V850_RTE_MA1_CB_H__ | ||
16 | |||
17 | #include <asm/rte_cb.h> /* Common defs for Midas RTE-CB boards. */ | ||
18 | |||
19 | |||
20 | #define PLATFORM "rte-v850e/ma1-cb" | ||
21 | #define PLATFORM_LONG "Midas lab RTE-V850E/MA1-CB" | ||
22 | |||
23 | #define CPU_CLOCK_FREQ 50000000 /* 50MHz */ | ||
24 | |||
25 | /* 1MB of onboard SRAM. Note that the monitor ROM uses parts of this | ||
26 | for its own purposes, so care must be taken. Some address lines are | ||
27 | not decoded, so the SRAM area is mirrored every 1MB from 0x400000 to | ||
28 | 0x800000 (exclusive). */ | ||
29 | #define SRAM_ADDR 0x00400000 | ||
30 | #define SRAM_SIZE 0x00100000 /* 1MB */ | ||
31 | |||
32 | /* 32MB of onbard SDRAM. */ | ||
33 | #define SDRAM_ADDR 0x00800000 | ||
34 | #define SDRAM_SIZE 0x02000000 /* 32MB */ | ||
35 | |||
36 | |||
37 | /* CPU addresses of GBUS memory spaces. */ | ||
38 | #define GCS0_ADDR 0x05000000 /* GCS0 - Common SRAM (2MB) */ | ||
39 | #define GCS0_SIZE 0x00200000 /* 2MB */ | ||
40 | #define GCS1_ADDR 0x06000000 /* GCS1 - Flash ROM (8MB) */ | ||
41 | #define GCS1_SIZE 0x00800000 /* 8MB */ | ||
42 | #define GCS2_ADDR 0x07900000 /* GCS2 - I/O registers */ | ||
43 | #define GCS2_SIZE 0x00400000 /* 4MB */ | ||
44 | #define GCS5_ADDR 0x04000000 /* GCS5 - PCI bus space */ | ||
45 | #define GCS5_SIZE 0x01000000 /* 16MB */ | ||
46 | #define GCS6_ADDR 0x07980000 /* GCS6 - PCI control registers */ | ||
47 | #define GCS6_SIZE 0x00000200 /* 512B */ | ||
48 | |||
49 | |||
50 | /* For <asm/page.h> */ | ||
51 | #define PAGE_OFFSET SRAM_ADDR | ||
52 | |||
53 | |||
54 | /* The GBUS GINT0 - GINT3 interrupts are connected to the INTP000 - INTP011 | ||
55 | pins on the CPU. These are shared among the GBUS interrupts. */ | ||
56 | #define IRQ_GINT(n) IRQ_INTP(n) | ||
57 | #define IRQ_GINT_NUM 4 | ||
58 | |||
59 | /* Used by <asm/rte_cb.h> to derive NUM_MACH_IRQS. */ | ||
60 | #define NUM_RTE_CB_IRQS NUM_CPU_IRQS | ||
61 | |||
62 | |||
63 | #ifdef CONFIG_ROM_KERNEL | ||
64 | /* Kernel is in ROM, starting at address 0. */ | ||
65 | |||
66 | #define INTV_BASE 0 | ||
67 | |||
68 | #else /* !CONFIG_ROM_KERNEL */ | ||
69 | |||
70 | #ifdef CONFIG_RTE_CB_MULTI | ||
71 | /* Using RAM kernel with ROM monitor for Multi debugger. */ | ||
72 | |||
73 | /* The chip's real interrupt vectors are in ROM, but they jump to a | ||
74 | secondary interrupt vector table in RAM. */ | ||
75 | #define INTV_BASE 0x004F8000 | ||
76 | |||
77 | /* Scratch memory used by the ROM monitor, which shouldn't be used by | ||
78 | linux (except for the alternate interrupt vector area, defined | ||
79 | above). */ | ||
80 | #define MON_SCRATCH_ADDR 0x004F8000 | ||
81 | #define MON_SCRATCH_SIZE 0x00008000 /* 32KB */ | ||
82 | |||
83 | #else /* !CONFIG_RTE_CB_MULTI */ | ||
84 | /* Using RAM-kernel. Assume some sort of boot-loader got us loaded at | ||
85 | address 0. */ | ||
86 | |||
87 | #define INTV_BASE 0 | ||
88 | |||
89 | #endif /* CONFIG_RTE_CB_MULTI */ | ||
90 | |||
91 | #endif /* CONFIG_ROM_KERNEL */ | ||
92 | |||
93 | |||
94 | /* Some misc. on-board devices. */ | ||
95 | |||
96 | /* Seven-segment LED display (two digits). Write-only. */ | ||
97 | #define LED_ADDR(n) (0x07802000 + (n)) | ||
98 | #define LED(n) (*(volatile unsigned char *)LED_ADDR(n)) | ||
99 | #define LED_NUM_DIGITS 2 | ||
100 | |||
101 | |||
102 | /* Override the basic MA uart pre-initialization so that we can | ||
103 | initialize extra stuff. */ | ||
104 | #undef V850E_UART_PRE_CONFIGURE /* should be defined by <asm/ma.h> */ | ||
105 | #define V850E_UART_PRE_CONFIGURE rte_ma1_cb_uart_pre_configure | ||
106 | #ifndef __ASSEMBLY__ | ||
107 | extern void rte_ma1_cb_uart_pre_configure (unsigned chan, | ||
108 | unsigned cflags, unsigned baud); | ||
109 | #endif | ||
110 | |||
111 | /* This board supports RTS/CTS for the on-chip UART, but only for channel 0. */ | ||
112 | |||
113 | /* CTS for UART channel 0 is pin P43 (bit 3 of port 4). */ | ||
114 | #define V850E_UART_CTS(chan) ((chan) == 0 ? !(MA_PORT4_IO & 0x8) : 1) | ||
115 | /* RTS for UART channel 0 is pin P42 (bit 2 of port 4). */ | ||
116 | #define V850E_UART_SET_RTS(chan, val) \ | ||
117 | do { \ | ||
118 | if (chan == 0) { \ | ||
119 | unsigned old = MA_PORT4_IO; \ | ||
120 | if (val) \ | ||
121 | MA_PORT4_IO = old & ~0x4; \ | ||
122 | else \ | ||
123 | MA_PORT4_IO = old | 0x4; \ | ||
124 | } \ | ||
125 | } while (0) | ||
126 | |||
127 | |||
128 | #endif /* __V850_RTE_MA1_CB_H__ */ | ||
diff --git a/include/asm-v850/rte_mb_a_pci.h b/include/asm-v850/rte_mb_a_pci.h deleted file mode 100644 index 41ac185ca9cd..000000000000 --- a/include/asm-v850/rte_mb_a_pci.h +++ /dev/null | |||
@@ -1,56 +0,0 @@ | |||
1 | /* | ||
2 | * include/asm-v850/mb_a_pci.h -- PCI support for Midas lab RTE-MOTHER-A board | ||
3 | * | ||
4 | * Copyright (C) 2001 NEC Corporation | ||
5 | * Copyright (C) 2001 Miles Bader <miles@gnu.org> | ||
6 | * | ||
7 | * This file is subject to the terms and conditions of the GNU General | ||
8 | * Public License. See the file COPYING in the main directory of this | ||
9 | * archive for more details. | ||
10 | * | ||
11 | * Written by Miles Bader <miles@gnu.org> | ||
12 | */ | ||
13 | |||
14 | #ifndef __V850_MB_A_PCI_H__ | ||
15 | #define __V850_MB_A_PCI_H__ | ||
16 | |||
17 | |||
18 | #define MB_A_PCI_MEM_ADDR GCS5_ADDR | ||
19 | #define MB_A_PCI_MEM_SIZE (GCS5_SIZE / 2) | ||
20 | #define MB_A_PCI_IO_ADDR (GCS5_ADDR + MB_A_PCI_MEM_SIZE) | ||
21 | #define MB_A_PCI_IO_SIZE (GCS5_SIZE / 2) | ||
22 | #define MB_A_PCI_REG_BASE_ADDR GCS6_ADDR | ||
23 | |||
24 | #define MB_A_PCI_PCICR_ADDR (MB_A_PCI_REG_BASE_ADDR + 0x4) | ||
25 | #define MB_A_PCI_PCICR (*(volatile u16 *)MB_A_PCI_PCICR_ADDR) | ||
26 | #define MB_A_PCI_PCISR_ADDR (MB_A_PCI_REG_BASE_ADDR + 0x6) | ||
27 | #define MB_A_PCI_PCISR (*(volatile u16 *)MB_A_PCI_PCISR_ADDR) | ||
28 | #define MB_A_PCI_PCILTR_ADDR (MB_A_PCI_REG_BASE_ADDR + 0xD) | ||
29 | #define MB_A_PCI_PCILTR (*(volatile u8 *)MB_A_PCI_PCILTR_ADDR) | ||
30 | #define MB_A_PCI_PCIBAR0_ADDR (MB_A_PCI_REG_BASE_ADDR + 0x10) | ||
31 | #define MB_A_PCI_PCIBAR0 (*(volatile u32 *)MB_A_PCI_PCIBAR0_ADDR) | ||
32 | #define MB_A_PCI_PCIBAR1_ADDR (MB_A_PCI_REG_BASE_ADDR + 0x14) | ||
33 | #define MB_A_PCI_PCIBAR1 (*(volatile u32 *)MB_A_PCI_PCIBAR1_ADDR) | ||
34 | #define MB_A_PCI_PCIBAR2_ADDR (MB_A_PCI_REG_BASE_ADDR + 0x18) | ||
35 | #define MB_A_PCI_PCIBAR2 (*(volatile u32 *)MB_A_PCI_PCIBAR2_ADDR) | ||
36 | #define MB_A_PCI_VENDOR_ID_ADDR (MB_A_PCI_REG_BASE_ADDR + 0x2C) | ||
37 | #define MB_A_PCI_VENDOR_ID (*(volatile u16 *)MB_A_PCI_VENDOR_ID_ADDR) | ||
38 | #define MB_A_PCI_DEVICE_ID_ADDR (MB_A_PCI_REG_BASE_ADDR + 0x2E) | ||
39 | #define MB_A_PCI_DEVICE_ID (*(volatile u16 *)MB_A_PCI_DEVICE_ID_ADDR) | ||
40 | #define MB_A_PCI_DMRR_ADDR (MB_A_PCI_REG_BASE_ADDR + 0x9C) | ||
41 | #define MB_A_PCI_DMRR (*(volatile u32 *)MB_A_PCI_DMRR_ADDR) | ||
42 | #define MB_A_PCI_DMLBAM_ADDR (MB_A_PCI_REG_BASE_ADDR + 0xA0) | ||
43 | #define MB_A_PCI_DMLBAM (*(volatile u32 *)MB_A_PCI_DMLBAM_ADDR) | ||
44 | #define MB_A_PCI_DMLBAI_ADDR (MB_A_PCI_REG_BASE_ADDR + 0xA4) | ||
45 | #define MB_A_PCI_DMLBAI (*(volatile u32 *)MB_A_PCI_DMLBAI_ADDR) | ||
46 | #define MB_A_PCI_PCIPBAM_ADDR (MB_A_PCI_REG_BASE_ADDR + 0xA8) | ||
47 | #define MB_A_PCI_PCIPBAM (*(volatile u32 *)MB_A_PCI_PCIPBAM_ADDR) | ||
48 | /* `PCI Configuration Address Register for Direct Master to PCI IO/CFG' */ | ||
49 | #define MB_A_PCI_DMCFGA_ADDR (MB_A_PCI_REG_BASE_ADDR + 0xAC) | ||
50 | #define MB_A_PCI_DMCFGA (*(volatile u32 *)MB_A_PCI_DMCFGA_ADDR) | ||
51 | /* `PCI Permanent Configuration ID Register' */ | ||
52 | #define MB_A_PCI_PCIHIDR_ADDR (MB_A_PCI_REG_BASE_ADDR + 0xF0) | ||
53 | #define MB_A_PCI_PCIHIDR (*(volatile u32 *)MB_A_PCI_PCIHIDR_ADDR) | ||
54 | |||
55 | |||
56 | #endif /* __V850_MB_A_PCI_H__ */ | ||
diff --git a/include/asm-v850/rte_me2_cb.h b/include/asm-v850/rte_me2_cb.h deleted file mode 100644 index 9922c85c85a8..000000000000 --- a/include/asm-v850/rte_me2_cb.h +++ /dev/null | |||
@@ -1,202 +0,0 @@ | |||
1 | /* | ||
2 | * include/asm-v850/rte_me2_cb.h -- Midas labs RTE-V850E/ME2-CB board | ||
3 | * | ||
4 | * Copyright (C) 2001,02,03 NEC Corporation | ||
5 | * Copyright (C) 2001,02,03 Miles Bader <miles@gnu.org> | ||
6 | * | ||
7 | * This file is subject to the terms and conditions of the GNU General | ||
8 | * Public License. See the file COPYING in the main directory of this | ||
9 | * archive for more details. | ||
10 | * | ||
11 | * Written by Miles Bader <miles@gnu.org> | ||
12 | */ | ||
13 | |||
14 | #ifndef __V850_RTE_ME2_CB_H__ | ||
15 | #define __V850_RTE_ME2_CB_H__ | ||
16 | |||
17 | #include <asm/rte_cb.h> /* Common defs for Midas RTE-CB boards. */ | ||
18 | |||
19 | |||
20 | #define PLATFORM "rte-v850e/me2-cb" | ||
21 | #define PLATFORM_LONG "Midas lab RTE-V850E/ME2-CB" | ||
22 | |||
23 | #define CPU_CLOCK_FREQ 150000000 /* 150MHz */ | ||
24 | #define FIXED_BOGOMIPS 50 | ||
25 | |||
26 | /* 32MB of onbard SDRAM. */ | ||
27 | #define SDRAM_ADDR 0x00800000 | ||
28 | #define SDRAM_SIZE 0x02000000 /* 32MB */ | ||
29 | |||
30 | |||
31 | /* CPU addresses of GBUS memory spaces. */ | ||
32 | #define GCS0_ADDR 0x04000000 /* GCS0 - Common SRAM (2MB) */ | ||
33 | #define GCS0_SIZE 0x00800000 /* 8MB */ | ||
34 | #define GCS1_ADDR 0x04800000 /* GCS1 - Flash ROM (8MB) */ | ||
35 | #define GCS1_SIZE 0x00800000 /* 8MB */ | ||
36 | #define GCS2_ADDR 0x07000000 /* GCS2 - I/O registers */ | ||
37 | #define GCS2_SIZE 0x00800000 /* 8MB */ | ||
38 | #define GCS5_ADDR 0x08000000 /* GCS5 - PCI bus space */ | ||
39 | #define GCS5_SIZE 0x02000000 /* 32MB */ | ||
40 | #define GCS6_ADDR 0x07800000 /* GCS6 - PCI control registers */ | ||
41 | #define GCS6_SIZE 0x00800000 /* 8MB */ | ||
42 | |||
43 | |||
44 | /* For <asm/page.h> */ | ||
45 | #define PAGE_OFFSET SDRAM_ADDR | ||
46 | |||
47 | |||
48 | #ifdef CONFIG_ROM_KERNEL | ||
49 | /* Kernel is in ROM, starting at address 0. */ | ||
50 | |||
51 | #define INTV_BASE 0 | ||
52 | #define ROOT_FS_IMAGE_RW 0 | ||
53 | |||
54 | #else /* !CONFIG_ROM_KERNEL */ | ||
55 | /* Using RAM-kernel. Assume some sort of boot-loader got us loaded at | ||
56 | address 0. */ | ||
57 | |||
58 | #define INTV_BASE 0 | ||
59 | #define ROOT_FS_IMAGE_RW 1 | ||
60 | |||
61 | #endif /* CONFIG_ROM_KERNEL */ | ||
62 | |||
63 | |||
64 | /* Some misc. on-board devices. */ | ||
65 | |||
66 | /* Seven-segment LED display (four digits). */ | ||
67 | #define LED_ADDR(n) (0x0FE02000 + (n)) | ||
68 | #define LED(n) (*(volatile unsigned char *)LED_ADDR(n)) | ||
69 | #define LED_NUM_DIGITS 4 | ||
70 | |||
71 | |||
72 | /* On-board PIC. */ | ||
73 | |||
74 | #define CB_PIC_BASE_ADDR 0x0FE04000 | ||
75 | |||
76 | #define CB_PIC_INT0M_ADDR (CB_PIC_BASE_ADDR + 0x00) | ||
77 | #define CB_PIC_INT0M (*(volatile u16 *)CB_PIC_INT0M_ADDR) | ||
78 | #define CB_PIC_INT1M_ADDR (CB_PIC_BASE_ADDR + 0x10) | ||
79 | #define CB_PIC_INT1M (*(volatile u16 *)CB_PIC_INT1M_ADDR) | ||
80 | #define CB_PIC_INTR_ADDR (CB_PIC_BASE_ADDR + 0x20) | ||
81 | #define CB_PIC_INTR (*(volatile u16 *)CB_PIC_INTR_ADDR) | ||
82 | #define CB_PIC_INTEN_ADDR (CB_PIC_BASE_ADDR + 0x30) | ||
83 | #define CB_PIC_INTEN (*(volatile u16 *)CB_PIC_INTEN_ADDR) | ||
84 | |||
85 | #define CB_PIC_INT0EN 0x0001 | ||
86 | #define CB_PIC_INT1EN 0x0002 | ||
87 | #define CB_PIC_INT0SEL 0x0080 | ||
88 | |||
89 | /* The PIC interrupts themselves. */ | ||
90 | #define CB_PIC_BASE_IRQ NUM_CPU_IRQS | ||
91 | #define IRQ_CB_PIC_NUM 10 | ||
92 | |||
93 | /* Some specific CB_PIC interrupts. */ | ||
94 | #define IRQ_CB_EXTTM0 (CB_PIC_BASE_IRQ + 0) | ||
95 | #define IRQ_CB_EXTSIO (CB_PIC_BASE_IRQ + 1) | ||
96 | #define IRQ_CB_TOVER (CB_PIC_BASE_IRQ + 2) | ||
97 | #define IRQ_CB_GINT0 (CB_PIC_BASE_IRQ + 3) | ||
98 | #define IRQ_CB_USB (CB_PIC_BASE_IRQ + 4) | ||
99 | #define IRQ_CB_LANC (CB_PIC_BASE_IRQ + 5) | ||
100 | #define IRQ_CB_USB_VBUS_ON (CB_PIC_BASE_IRQ + 6) | ||
101 | #define IRQ_CB_USB_VBUS_OFF (CB_PIC_BASE_IRQ + 7) | ||
102 | #define IRQ_CB_EXTTM1 (CB_PIC_BASE_IRQ + 8) | ||
103 | #define IRQ_CB_EXTTM2 (CB_PIC_BASE_IRQ + 9) | ||
104 | |||
105 | /* The GBUS GINT1 - GINT3 (note, not GINT0!) interrupts are connected to | ||
106 | the INTP65 - INTP67 pins on the CPU. These are shared among the GBUS | ||
107 | interrupts. */ | ||
108 | #define IRQ_GINT(n) IRQ_INTP((n) + 9) /* 0 is unused! */ | ||
109 | #define IRQ_GINT_NUM 4 /* 0 is unused! */ | ||
110 | |||
111 | /* The shared interrupt line from the PIC is connected to CPU pin INTP23. */ | ||
112 | #define IRQ_CB_PIC IRQ_INTP(4) /* P23 */ | ||
113 | |||
114 | /* Used by <asm/rte_cb.h> to derive NUM_MACH_IRQS. */ | ||
115 | #define NUM_RTE_CB_IRQS (NUM_CPU_IRQS + IRQ_CB_PIC_NUM) | ||
116 | |||
117 | |||
118 | #ifndef __ASSEMBLY__ | ||
119 | struct cb_pic_irq_init { | ||
120 | const char *name; /* name of interrupt type */ | ||
121 | |||
122 | /* Range of kernel irq numbers for this type: | ||
123 | BASE, BASE+INTERVAL, ..., BASE+INTERVAL*NUM */ | ||
124 | unsigned base, num, interval; | ||
125 | |||
126 | unsigned priority; /* interrupt priority to assign */ | ||
127 | }; | ||
128 | struct hw_interrupt_type; /* fwd decl */ | ||
129 | |||
130 | /* Enable interrupt handling for interrupt IRQ. */ | ||
131 | extern void cb_pic_enable_irq (unsigned irq); | ||
132 | /* Disable interrupt handling for interrupt IRQ. Note that any interrupts | ||
133 | received while disabled will be delivered once the interrupt is enabled | ||
134 | again, unless they are explicitly cleared using `cb_pic_clear_pending_irq'. */ | ||
135 | extern void cb_pic_disable_irq (unsigned irq); | ||
136 | /* Initialize HW_IRQ_TYPES for PIC irqs described in array INITS (which is | ||
137 | terminated by an entry with the name field == 0). */ | ||
138 | extern void cb_pic_init_irq_types (struct cb_pic_irq_init *inits, | ||
139 | struct hw_interrupt_type *hw_irq_types); | ||
140 | /* Initialize PIC interrupts. */ | ||
141 | extern void cb_pic_init_irqs (void); | ||
142 | #endif /* __ASSEMBLY__ */ | ||
143 | |||
144 | |||
145 | /* TL16C550C on board UART see also asm/serial.h */ | ||
146 | #define CB_UART_BASE 0x0FE08000 | ||
147 | #define CB_UART_REG_GAP 0x10 | ||
148 | #define CB_UART_CLOCK 0x16000000 | ||
149 | |||
150 | /* CompactFlash setting */ | ||
151 | #define CB_CF_BASE 0x0FE0C000 | ||
152 | #define CB_CF_CCR_ADDR (CB_CF_BASE+0x200) | ||
153 | #define CB_CF_CCR (*(volatile u8 *)CB_CF_CCR_ADDR) | ||
154 | #define CB_CF_REG0_ADDR (CB_CF_BASE+0x1000) | ||
155 | #define CB_CF_REG0 (*(volatile u16 *)CB_CF_REG0_ADDR) | ||
156 | #define CB_CF_STS0_ADDR (CB_CF_BASE+0x1004) | ||
157 | #define CB_CF_STS0 (*(volatile u16 *)CB_CF_STS0_ADDR) | ||
158 | #define CB_PCATA_BASE (CB_CF_BASE+0x800) | ||
159 | #define CB_IDE_BASE (CB_CF_BASE+0x9F0) | ||
160 | #define CB_IDE_CTRL (CB_CF_BASE+0xBF6) | ||
161 | #define CB_IDE_REG_OFFS 0x1 | ||
162 | |||
163 | |||
164 | /* SMSC LAN91C111 setting */ | ||
165 | #if defined(CONFIG_SMC91111) | ||
166 | #define CB_LANC_BASE 0x0FE10300 | ||
167 | #define CONFIG_SMC16BITONLY | ||
168 | #define ETH0_ADDR CB_LANC_BASE | ||
169 | #define ETH0_IRQ IRQ_CB_LANC | ||
170 | #endif /* CONFIG_SMC16BITONLY */ | ||
171 | |||
172 | |||
173 | #undef V850E_UART_PRE_CONFIGURE | ||
174 | #define V850E_UART_PRE_CONFIGURE rte_me2_cb_uart_pre_configure | ||
175 | #ifndef __ASSEMBLY__ | ||
176 | extern void rte_me2_cb_uart_pre_configure (unsigned chan, | ||
177 | unsigned cflags, unsigned baud); | ||
178 | #endif /* __ASSEMBLY__ */ | ||
179 | |||
180 | /* This board supports RTS/CTS for the on-chip UART, but only for channel 0. */ | ||
181 | |||
182 | /* CTS for UART channel 0 is pin P22 (bit 2 of port 2). */ | ||
183 | #define V850E_UART_CTS(chan) ((chan) == 0 ? !(ME2_PORT2_IO & 0x4) : 1) | ||
184 | /* RTS for UART channel 0 is pin P21 (bit 1 of port 2). */ | ||
185 | #define V850E_UART_SET_RTS(chan, val) \ | ||
186 | do { \ | ||
187 | if (chan == 0) { \ | ||
188 | unsigned old = ME2_PORT2_IO; \ | ||
189 | if (val) \ | ||
190 | ME2_PORT2_IO = old & ~0x2; \ | ||
191 | else \ | ||
192 | ME2_PORT2_IO = old | 0x2; \ | ||
193 | } \ | ||
194 | } while (0) | ||
195 | |||
196 | |||
197 | #ifndef __ASSEMBLY__ | ||
198 | extern void rte_me2_cb_init_irqs (void); | ||
199 | #endif /* !__ASSEMBLY__ */ | ||
200 | |||
201 | |||
202 | #endif /* __V850_RTE_ME2_CB_H__ */ | ||
diff --git a/include/asm-v850/rte_nb85e_cb.h b/include/asm-v850/rte_nb85e_cb.h deleted file mode 100644 index f56591cad90a..000000000000 --- a/include/asm-v850/rte_nb85e_cb.h +++ /dev/null | |||
@@ -1,111 +0,0 @@ | |||
1 | /* | ||
2 | * include/asm-v850/rte_nb85e_cb.h -- Midas labs RTE-V850/NB85E-CB board | ||
3 | * | ||
4 | * Copyright (C) 2001,02,03 NEC Electronics Corporation | ||
5 | * Copyright (C) 2001,02,03 Miles Bader <miles@gnu.org> | ||
6 | * | ||
7 | * This file is subject to the terms and conditions of the GNU General | ||
8 | * Public License. See the file COPYING in the main directory of this | ||
9 | * archive for more details. | ||
10 | * | ||
11 | * Written by Miles Bader <miles@gnu.org> | ||
12 | */ | ||
13 | |||
14 | #ifndef __V850_RTE_NB85E_CB_H__ | ||
15 | #define __V850_RTE_NB85E_CB_H__ | ||
16 | |||
17 | #include <asm/rte_cb.h> /* Common defs for Midas RTE-CB boards. */ | ||
18 | |||
19 | |||
20 | #define PLATFORM "rte-v850e/nb85e-cb" | ||
21 | #define PLATFORM_LONG "Midas lab RTE-V850E/NB85E-CB" | ||
22 | |||
23 | #define CPU_CLOCK_FREQ 50000000 /* 50MHz */ | ||
24 | |||
25 | /* 1MB of onboard SRAM. Note that the monitor ROM uses parts of this | ||
26 | for its own purposes, so care must be taken. */ | ||
27 | #define SRAM_ADDR 0x03C00000 | ||
28 | #define SRAM_SIZE 0x00100000 /* 1MB */ | ||
29 | |||
30 | /* 16MB of onbard SDRAM. */ | ||
31 | #define SDRAM_ADDR 0x01000000 | ||
32 | #define SDRAM_SIZE 0x01000000 /* 16MB */ | ||
33 | |||
34 | |||
35 | /* CPU addresses of GBUS memory spaces. */ | ||
36 | #define GCS0_ADDR 0x00400000 /* GCS0 - Common SRAM (2MB) */ | ||
37 | #define GCS0_SIZE 0x00400000 /* 4MB */ | ||
38 | #define GCS1_ADDR 0x02000000 /* GCS1 - Flash ROM (8MB) */ | ||
39 | #define GCS1_SIZE 0x00800000 /* 8MB */ | ||
40 | #define GCS2_ADDR 0x03900000 /* GCS2 - I/O registers */ | ||
41 | #define GCS2_SIZE 0x00080000 /* 512KB */ | ||
42 | #define GCS3_ADDR 0x02800000 /* GCS3 - EXT-bus: memory space */ | ||
43 | #define GCS3_SIZE 0x00800000 /* 8MB */ | ||
44 | #define GCS4_ADDR 0x03A00000 /* GCS4 - EXT-bus: I/O space */ | ||
45 | #define GCS4_SIZE 0x00200000 /* 2MB */ | ||
46 | #define GCS5_ADDR 0x00800000 /* GCS5 - PCI bus space */ | ||
47 | #define GCS5_SIZE 0x00800000 /* 8MB */ | ||
48 | #define GCS6_ADDR 0x03980000 /* GCS6 - PCI control registers */ | ||
49 | #define GCS6_SIZE 0x00010000 /* 64KB */ | ||
50 | |||
51 | |||
52 | /* The GBUS GINT0 - GINT3 interrupts are connected to CPU interrupts 10-12. | ||
53 | These are shared among the GBUS interrupts. */ | ||
54 | #define IRQ_GINT(n) (10 + (n)) | ||
55 | #define IRQ_GINT_NUM 3 | ||
56 | |||
57 | /* Used by <asm/rte_cb.h> to derive NUM_MACH_IRQS. */ | ||
58 | #define NUM_RTE_CB_IRQS NUM_CPU_IRQS | ||
59 | |||
60 | |||
61 | #ifdef CONFIG_ROM_KERNEL | ||
62 | /* Kernel is in ROM, starting at address 0. */ | ||
63 | |||
64 | #define INTV_BASE 0 | ||
65 | |||
66 | #else /* !CONFIG_ROM_KERNEL */ | ||
67 | /* We're using the ROM monitor. */ | ||
68 | |||
69 | /* The chip's real interrupt vectors are in ROM, but they jump to a | ||
70 | secondary interrupt vector table in RAM. */ | ||
71 | #define INTV_BASE 0x03CF8000 | ||
72 | |||
73 | /* Scratch memory used by the ROM monitor, which shouldn't be used by | ||
74 | linux (except for the alternate interrupt vector area, defined | ||
75 | above). */ | ||
76 | #define MON_SCRATCH_ADDR 0x03CE8000 | ||
77 | #define MON_SCRATCH_SIZE 0x00018000 /* 96KB */ | ||
78 | |||
79 | #endif /* CONFIG_ROM_KERNEL */ | ||
80 | |||
81 | |||
82 | /* Some misc. on-board devices. */ | ||
83 | |||
84 | /* Seven-segment LED display (two digits). Write-only. */ | ||
85 | #define LED_ADDR(n) (0x03802000 + (n)) | ||
86 | #define LED(n) (*(volatile unsigned char *)LED_ADDR(n)) | ||
87 | #define LED_NUM_DIGITS 4 | ||
88 | |||
89 | |||
90 | /* Override the basic TEG UART pre-initialization so that we can | ||
91 | initialize extra stuff. */ | ||
92 | #undef V850E_UART_PRE_CONFIGURE /* should be defined by <asm/teg.h> */ | ||
93 | #define V850E_UART_PRE_CONFIGURE rte_nb85e_cb_uart_pre_configure | ||
94 | #ifndef __ASSEMBLY__ | ||
95 | extern void rte_nb85e_cb_uart_pre_configure (unsigned chan, | ||
96 | unsigned cflags, unsigned baud); | ||
97 | #endif | ||
98 | |||
99 | /* This board supports RTS/CTS for the on-chip UART. */ | ||
100 | |||
101 | /* CTS is pin P00. */ | ||
102 | #define V850E_UART_CTS(chan) (! (TEG_PORT0_IO & 0x1)) | ||
103 | /* RTS is pin P02. */ | ||
104 | #define V850E_UART_SET_RTS(chan, val) \ | ||
105 | do { \ | ||
106 | unsigned old = TEG_PORT0_IO; \ | ||
107 | TEG_PORT0_IO = val ? (old & ~0x4) : (old | 0x4); \ | ||
108 | } while (0) | ||
109 | |||
110 | |||
111 | #endif /* __V850_RTE_NB85E_CB_H__ */ | ||
diff --git a/include/asm-v850/scatterlist.h b/include/asm-v850/scatterlist.h deleted file mode 100644 index 02d27b3fb061..000000000000 --- a/include/asm-v850/scatterlist.h +++ /dev/null | |||
@@ -1,31 +0,0 @@ | |||
1 | /* | ||
2 | * include/asm-v850/scatterlist.h | ||
3 | * | ||
4 | * Copyright (C) 2001,02 NEC Corporation | ||
5 | * Copyright (C) 2001,02 Miles Bader <miles@gnu.org> | ||
6 | * | ||
7 | * This file is subject to the terms and conditions of the GNU General | ||
8 | * Public License. See the file COPYING in the main directory of this | ||
9 | * archive for more details. | ||
10 | * | ||
11 | * Written by Miles Bader <miles@gnu.org> | ||
12 | */ | ||
13 | |||
14 | #ifndef __V850_SCATTERLIST_H__ | ||
15 | #define __V850_SCATTERLIST_H__ | ||
16 | |||
17 | #include <asm/types.h> | ||
18 | |||
19 | struct scatterlist { | ||
20 | #ifdef CONFIG_DEBUG_SG | ||
21 | unsigned long sg_magic; | ||
22 | #endif | ||
23 | unsigned long page_link; | ||
24 | unsigned offset; | ||
25 | dma_addr_t dma_address; | ||
26 | unsigned length; | ||
27 | }; | ||
28 | |||
29 | #define ISA_DMA_THRESHOLD (~0UL) | ||
30 | |||
31 | #endif /* __V850_SCATTERLIST_H__ */ | ||
diff --git a/include/asm-v850/sections.h b/include/asm-v850/sections.h deleted file mode 100644 index e0238253a0d0..000000000000 --- a/include/asm-v850/sections.h +++ /dev/null | |||
@@ -1,6 +0,0 @@ | |||
1 | #ifndef __V850_SECTIONS_H__ | ||
2 | #define __V850_SECTIONS_H__ | ||
3 | |||
4 | #include <asm-generic/sections.h> | ||
5 | |||
6 | #endif /* __V850_SECTIONS_H__ */ | ||
diff --git a/include/asm-v850/segment.h b/include/asm-v850/segment.h deleted file mode 100644 index 5e2b15dcf3d9..000000000000 --- a/include/asm-v850/segment.h +++ /dev/null | |||
@@ -1,36 +0,0 @@ | |||
1 | #ifndef __V850_SEGMENT_H__ | ||
2 | #define __V850_SEGMENT_H__ | ||
3 | |||
4 | |||
5 | #ifndef __ASSEMBLY__ | ||
6 | |||
7 | typedef unsigned long mm_segment_t; /* domain register */ | ||
8 | |||
9 | #endif /* !__ASSEMBLY__ */ | ||
10 | |||
11 | |||
12 | #define __KERNEL_CS 0x0 | ||
13 | #define __KERNEL_DS 0x0 | ||
14 | |||
15 | #define __USER_CS 0x1 | ||
16 | #define __USER_DS 0x1 | ||
17 | |||
18 | #define KERNEL_DS __KERNEL_DS | ||
19 | #define KERNEL_CS __KERNEL_CS | ||
20 | #define USER_DS __USER_DS | ||
21 | #define USER_CS __USER_CS | ||
22 | |||
23 | #define segment_eq(a,b) ((a) == (b)) | ||
24 | |||
25 | #define get_ds() (KERNEL_DS) | ||
26 | #define get_fs() (USER_DS) | ||
27 | |||
28 | #define set_fs(seg) ((void)(seg)) | ||
29 | |||
30 | |||
31 | #define copy_segments(task, mm) ((void)((void)(task), (mm))) | ||
32 | #define release_segments(mm) ((void)(mm)) | ||
33 | #define forget_segments() ((void)0) | ||
34 | |||
35 | |||
36 | #endif /* __V850_SEGMENT_H__ */ | ||
diff --git a/include/asm-v850/semaphore.h b/include/asm-v850/semaphore.h deleted file mode 100644 index d9b2034ed1d2..000000000000 --- a/include/asm-v850/semaphore.h +++ /dev/null | |||
@@ -1 +0,0 @@ | |||
1 | #include <linux/semaphore.h> | ||
diff --git a/include/asm-v850/sembuf.h b/include/asm-v850/sembuf.h deleted file mode 100644 index 1622231a8b85..000000000000 --- a/include/asm-v850/sembuf.h +++ /dev/null | |||
@@ -1,25 +0,0 @@ | |||
1 | #ifndef __V850_SEMBUF_H__ | ||
2 | #define __V850_SEMBUF_H__ | ||
3 | |||
4 | /* | ||
5 | * The semid64_ds structure for v850 architecture. | ||
6 | * Note extra padding because this structure is passed back and forth | ||
7 | * between kernel and user space. | ||
8 | * | ||
9 | * Pad space is left for: | ||
10 | * - 64-bit time_t to solve y2038 problem | ||
11 | * - 2 miscellaneous 32-bit values | ||
12 | */ | ||
13 | |||
14 | struct semid64_ds { | ||
15 | struct ipc64_perm sem_perm; /* permissions .. see ipc.h */ | ||
16 | __kernel_time_t sem_otime; /* last semop time */ | ||
17 | unsigned long __unused1; | ||
18 | __kernel_time_t sem_ctime; /* last change time */ | ||
19 | unsigned long __unused2; | ||
20 | unsigned long sem_nsems; /* no. of semaphores in array */ | ||
21 | unsigned long __unused3; | ||
22 | unsigned long __unused4; | ||
23 | }; | ||
24 | |||
25 | #endif /* __V850_SEMBUF_H__ */ | ||
diff --git a/include/asm-v850/serial.h b/include/asm-v850/serial.h deleted file mode 100644 index 36d8f4cbbf39..000000000000 --- a/include/asm-v850/serial.h +++ /dev/null | |||
@@ -1,56 +0,0 @@ | |||
1 | /* | ||
2 | * This file is subject to the terms and conditions of the GNU General Public | ||
3 | * License. See the file "COPYING" in the main directory of this archive | ||
4 | * for more details. | ||
5 | * | ||
6 | * Copyright (C) 1999 by Ralf Baechle | ||
7 | * Copyright (C) 1999, 2000 Silicon Graphics, Inc. | ||
8 | */ | ||
9 | |||
10 | #ifdef CONFIG_RTE_CB_ME2 | ||
11 | |||
12 | #include <asm/rte_me2_cb.h> | ||
13 | |||
14 | #define STD_COM_FLAGS (ASYNC_BOOT_AUTOCONF | ASYNC_SKIP_TEST) | ||
15 | |||
16 | #define irq_cannonicalize(x) (x) | ||
17 | #define BASE_BAUD 250000 /* (16MHz / (16 * 38400)) * 9600 */ | ||
18 | #define SERIAL_PORT_DFNS \ | ||
19 | { 0, BASE_BAUD, CB_UART_BASE, IRQ_CB_EXTSIO, STD_COM_FLAGS }, | ||
20 | |||
21 | /* Redefine UART register offsets. */ | ||
22 | #undef UART_RX | ||
23 | #undef UART_TX | ||
24 | #undef UART_DLL | ||
25 | #undef UART_TRG | ||
26 | #undef UART_DLM | ||
27 | #undef UART_IER | ||
28 | #undef UART_FCTR | ||
29 | #undef UART_IIR | ||
30 | #undef UART_FCR | ||
31 | #undef UART_EFR | ||
32 | #undef UART_LCR | ||
33 | #undef UART_MCR | ||
34 | #undef UART_LSR | ||
35 | #undef UART_MSR | ||
36 | #undef UART_SCR | ||
37 | #undef UART_EMSR | ||
38 | |||
39 | #define UART_RX (0 * CB_UART_REG_GAP) | ||
40 | #define UART_TX (0 * CB_UART_REG_GAP) | ||
41 | #define UART_DLL (0 * CB_UART_REG_GAP) | ||
42 | #define UART_TRG (0 * CB_UART_REG_GAP) | ||
43 | #define UART_DLM (1 * CB_UART_REG_GAP) | ||
44 | #define UART_IER (1 * CB_UART_REG_GAP) | ||
45 | #define UART_FCTR (1 * CB_UART_REG_GAP) | ||
46 | #define UART_IIR (2 * CB_UART_REG_GAP) | ||
47 | #define UART_FCR (2 * CB_UART_REG_GAP) | ||
48 | #define UART_EFR (2 * CB_UART_REG_GAP) | ||
49 | #define UART_LCR (3 * CB_UART_REG_GAP) | ||
50 | #define UART_MCR (4 * CB_UART_REG_GAP) | ||
51 | #define UART_LSR (5 * CB_UART_REG_GAP) | ||
52 | #define UART_MSR (6 * CB_UART_REG_GAP) | ||
53 | #define UART_SCR (7 * CB_UART_REG_GAP) | ||
54 | #define UART_EMSR (7 * CB_UART_REG_GAP) | ||
55 | |||
56 | #endif /* CONFIG_RTE_CB_ME2 */ | ||
diff --git a/include/asm-v850/setup.h b/include/asm-v850/setup.h deleted file mode 100644 index c48a9b97d05b..000000000000 --- a/include/asm-v850/setup.h +++ /dev/null | |||
@@ -1,6 +0,0 @@ | |||
1 | #ifndef _V850_SETUP_H | ||
2 | #define _V850_SETUP_H | ||
3 | |||
4 | #define COMMAND_LINE_SIZE 512 | ||
5 | |||
6 | #endif /* __SETUP_H */ | ||
diff --git a/include/asm-v850/shmbuf.h b/include/asm-v850/shmbuf.h deleted file mode 100644 index 3d085c9c418e..000000000000 --- a/include/asm-v850/shmbuf.h +++ /dev/null | |||
@@ -1,42 +0,0 @@ | |||
1 | #ifndef __V850_SHMBUF_H__ | ||
2 | #define __V850_SHMBUF_H__ | ||
3 | |||
4 | /* | ||
5 | * The shmid64_ds structure for v850 architecture. | ||
6 | * Note extra padding because this structure is passed back and forth | ||
7 | * between kernel and user space. | ||
8 | * | ||
9 | * Pad space is left for: | ||
10 | * - 64-bit time_t to solve y2038 problem | ||
11 | * - 2 miscellaneous 32-bit values | ||
12 | */ | ||
13 | |||
14 | struct shmid64_ds { | ||
15 | struct ipc64_perm shm_perm; /* operation perms */ | ||
16 | size_t shm_segsz; /* size of segment (bytes) */ | ||
17 | __kernel_time_t shm_atime; /* last attach time */ | ||
18 | unsigned long __unused1; | ||
19 | __kernel_time_t shm_dtime; /* last detach time */ | ||
20 | unsigned long __unused2; | ||
21 | __kernel_time_t shm_ctime; /* last change time */ | ||
22 | unsigned long __unused3; | ||
23 | __kernel_pid_t shm_cpid; /* pid of creator */ | ||
24 | __kernel_pid_t shm_lpid; /* pid of last operator */ | ||
25 | unsigned long shm_nattch; /* no. of current attaches */ | ||
26 | unsigned long __unused4; | ||
27 | unsigned long __unused5; | ||
28 | }; | ||
29 | |||
30 | struct shminfo64 { | ||
31 | unsigned long shmmax; | ||
32 | unsigned long shmmin; | ||
33 | unsigned long shmmni; | ||
34 | unsigned long shmseg; | ||
35 | unsigned long shmall; | ||
36 | unsigned long __unused1; | ||
37 | unsigned long __unused2; | ||
38 | unsigned long __unused3; | ||
39 | unsigned long __unused4; | ||
40 | }; | ||
41 | |||
42 | #endif /* __V850_SHMBUF_H__ */ | ||
diff --git a/include/asm-v850/shmparam.h b/include/asm-v850/shmparam.h deleted file mode 100644 index 7dcb6739073e..000000000000 --- a/include/asm-v850/shmparam.h +++ /dev/null | |||
@@ -1,6 +0,0 @@ | |||
1 | #ifndef __V850_SHMPARAM_H__ | ||
2 | #define __V850_SHMPARAM_H__ | ||
3 | |||
4 | #define SHMLBA PAGE_SIZE /* attach addr a multiple of this */ | ||
5 | |||
6 | #endif /* __V850_SHMPARAM_H__ */ | ||
diff --git a/include/asm-v850/sigcontext.h b/include/asm-v850/sigcontext.h deleted file mode 100644 index e0890f6f4bc9..000000000000 --- a/include/asm-v850/sigcontext.h +++ /dev/null | |||
@@ -1,25 +0,0 @@ | |||
1 | /* | ||
2 | * include/asm-v850/sigcontext.h -- Signal contexts | ||
3 | * | ||
4 | * Copyright (C) 2001 NEC Corporation | ||
5 | * Copyright (C) 2001 Miles Bader <miles@gnu.org> | ||
6 | * | ||
7 | * This file is subject to the terms and conditions of the GNU General | ||
8 | * Public License. See the file COPYING in the main directory of this | ||
9 | * archive for more details. | ||
10 | * | ||
11 | * Written by Miles Bader <miles@gnu.org> | ||
12 | */ | ||
13 | |||
14 | #ifndef __V850_SIGCONTEXT_H__ | ||
15 | #define __V850_SIGCONTEXT_H__ | ||
16 | |||
17 | #include <asm/ptrace.h> | ||
18 | |||
19 | struct sigcontext | ||
20 | { | ||
21 | struct pt_regs regs; | ||
22 | unsigned long oldmask; | ||
23 | }; | ||
24 | |||
25 | #endif /* __V850_SIGCONTEXT_H__ */ | ||
diff --git a/include/asm-v850/siginfo.h b/include/asm-v850/siginfo.h deleted file mode 100644 index 7eb94703dce0..000000000000 --- a/include/asm-v850/siginfo.h +++ /dev/null | |||
@@ -1,6 +0,0 @@ | |||
1 | #ifndef __V850_SIGINFO_H__ | ||
2 | #define __V850_SIGINFO_H__ | ||
3 | |||
4 | #include <asm-generic/siginfo.h> | ||
5 | |||
6 | #endif /* __V850_SIGINFO_H__ */ | ||
diff --git a/include/asm-v850/signal.h b/include/asm-v850/signal.h deleted file mode 100644 index a38df0834bbf..000000000000 --- a/include/asm-v850/signal.h +++ /dev/null | |||
@@ -1,168 +0,0 @@ | |||
1 | #ifndef __V850_SIGNAL_H__ | ||
2 | #define __V850_SIGNAL_H__ | ||
3 | |||
4 | #include <linux/types.h> | ||
5 | |||
6 | /* Avoid too many header ordering problems. */ | ||
7 | struct siginfo; | ||
8 | |||
9 | |||
10 | #ifdef __KERNEL__ | ||
11 | |||
12 | /* Most things should be clean enough to redefine this at will, if care | ||
13 | is taken to make libc match. */ | ||
14 | #define _NSIG 64 | ||
15 | #define _NSIG_BPW 32 | ||
16 | #define _NSIG_WORDS (_NSIG / _NSIG_BPW) | ||
17 | |||
18 | typedef unsigned long old_sigset_t; /* at least 32 bits */ | ||
19 | |||
20 | typedef struct { | ||
21 | unsigned long sig[_NSIG_WORDS]; | ||
22 | } sigset_t; | ||
23 | |||
24 | #else /* !__KERNEL__ */ | ||
25 | |||
26 | /* Here we must cater to libcs that poke about in kernel headers. */ | ||
27 | |||
28 | #define NSIG 32 | ||
29 | typedef unsigned long sigset_t; | ||
30 | |||
31 | #endif /* __KERNEL__ */ | ||
32 | |||
33 | |||
34 | #define SIGHUP 1 | ||
35 | #define SIGINT 2 | ||
36 | #define SIGQUIT 3 | ||
37 | #define SIGILL 4 | ||
38 | #define SIGTRAP 5 | ||
39 | #define SIGABRT 6 | ||
40 | #define SIGIOT 6 | ||
41 | #define SIGBUS 7 | ||
42 | #define SIGFPE 8 | ||
43 | #define SIGKILL 9 | ||
44 | #define SIGUSR1 10 | ||
45 | #define SIGSEGV 11 | ||
46 | #define SIGUSR2 12 | ||
47 | #define SIGPIPE 13 | ||
48 | #define SIGALRM 14 | ||
49 | #define SIGTERM 15 | ||
50 | #define SIGSTKFLT 16 | ||
51 | #define SIGCHLD 17 | ||
52 | #define SIGCONT 18 | ||
53 | #define SIGSTOP 19 | ||
54 | #define SIGTSTP 20 | ||
55 | #define SIGTTIN 21 | ||
56 | #define SIGTTOU 22 | ||
57 | #define SIGURG 23 | ||
58 | #define SIGXCPU 24 | ||
59 | #define SIGXFSZ 25 | ||
60 | #define SIGVTALRM 26 | ||
61 | #define SIGPROF 27 | ||
62 | #define SIGWINCH 28 | ||
63 | #define SIGIO 29 | ||
64 | #define SIGPOLL SIGIO | ||
65 | /* | ||
66 | #define SIGLOST 29 | ||
67 | */ | ||
68 | #define SIGPWR 30 | ||
69 | #define SIGSYS 31 | ||
70 | #define SIGUNUSED 31 | ||
71 | |||
72 | /* These should not be considered constants from userland. */ | ||
73 | #define SIGRTMIN 32 | ||
74 | #define SIGRTMAX _NSIG | ||
75 | |||
76 | /* | ||
77 | * SA_FLAGS values: | ||
78 | * | ||
79 | * SA_ONSTACK indicates that a registered stack_t will be used. | ||
80 | * SA_RESTART flag to get restarting signals (which were the default long ago) | ||
81 | * SA_NOCLDSTOP flag to turn off SIGCHLD when children stop. | ||
82 | * SA_RESETHAND clears the handler when the signal is delivered. | ||
83 | * SA_NOCLDWAIT flag on SIGCHLD to inhibit zombies. | ||
84 | * SA_NODEFER prevents the current signal from being masked in the handler. | ||
85 | * | ||
86 | * SA_ONESHOT and SA_NOMASK are the historical Linux names for the Single | ||
87 | * Unix names RESETHAND and NODEFER respectively. | ||
88 | */ | ||
89 | #define SA_NOCLDSTOP 0x00000001 | ||
90 | #define SA_NOCLDWAIT 0x00000002 | ||
91 | #define SA_SIGINFO 0x00000004 | ||
92 | #define SA_ONSTACK 0x08000000 | ||
93 | #define SA_RESTART 0x10000000 | ||
94 | #define SA_NODEFER 0x40000000 | ||
95 | #define SA_RESETHAND 0x80000000 | ||
96 | |||
97 | #define SA_NOMASK SA_NODEFER | ||
98 | #define SA_ONESHOT SA_RESETHAND | ||
99 | |||
100 | #define SA_RESTORER 0x04000000 | ||
101 | |||
102 | /* | ||
103 | * sigaltstack controls | ||
104 | */ | ||
105 | #define SS_ONSTACK 1 | ||
106 | #define SS_DISABLE 2 | ||
107 | |||
108 | #define MINSIGSTKSZ 2048 | ||
109 | #define SIGSTKSZ 8192 | ||
110 | |||
111 | #include <asm-generic/signal.h> | ||
112 | |||
113 | #ifdef __KERNEL__ | ||
114 | |||
115 | struct old_sigaction { | ||
116 | __sighandler_t sa_handler; | ||
117 | old_sigset_t sa_mask; | ||
118 | unsigned long sa_flags; | ||
119 | void (*sa_restorer)(void); | ||
120 | }; | ||
121 | |||
122 | struct sigaction { | ||
123 | __sighandler_t sa_handler; | ||
124 | unsigned long sa_flags; | ||
125 | void (*sa_restorer)(void); | ||
126 | sigset_t sa_mask; /* mask last for extensibility */ | ||
127 | }; | ||
128 | |||
129 | struct k_sigaction { | ||
130 | struct sigaction sa; | ||
131 | }; | ||
132 | |||
133 | #else /* !__KERNEL__ */ | ||
134 | |||
135 | /* Here we must cater to libcs that poke about in kernel headers. */ | ||
136 | |||
137 | struct sigaction { | ||
138 | union { | ||
139 | __sighandler_t _sa_handler; | ||
140 | void (*_sa_sigaction)(int, struct siginfo *, void *); | ||
141 | } _u; | ||
142 | sigset_t sa_mask; | ||
143 | unsigned long sa_flags; | ||
144 | void (*sa_restorer)(void); | ||
145 | }; | ||
146 | |||
147 | #define sa_handler _u._sa_handler | ||
148 | #define sa_sigaction _u._sa_sigaction | ||
149 | |||
150 | #endif /* __KERNEL__ */ | ||
151 | |||
152 | |||
153 | typedef struct sigaltstack { | ||
154 | void *ss_sp; | ||
155 | int ss_flags; | ||
156 | size_t ss_size; | ||
157 | } stack_t; | ||
158 | |||
159 | #ifdef __KERNEL__ | ||
160 | |||
161 | #include <asm/sigcontext.h> | ||
162 | #undef __HAVE_ARCH_SIG_BITOPS | ||
163 | |||
164 | #define ptrace_signal_deliver(regs, cookie) do { } while (0) | ||
165 | |||
166 | #endif /* __KERNEL__ */ | ||
167 | |||
168 | #endif /* __V850_SIGNAL_H__ */ | ||
diff --git a/include/asm-v850/sim.h b/include/asm-v850/sim.h deleted file mode 100644 index 026932d476cd..000000000000 --- a/include/asm-v850/sim.h +++ /dev/null | |||
@@ -1,47 +0,0 @@ | |||
1 | /* | ||
2 | * include/asm-v850/sim.h -- Machine-dependent defs for GDB v850e simulator | ||
3 | * | ||
4 | * Copyright (C) 2001,02,03 NEC Electronics Corporation | ||
5 | * Copyright (C) 2001,02,03 Miles Bader <miles@gnu.org> | ||
6 | * | ||
7 | * This file is subject to the terms and conditions of the GNU General | ||
8 | * Public License. See the file COPYING in the main directory of this | ||
9 | * archive for more details. | ||
10 | * | ||
11 | * Written by Miles Bader <miles@gnu.org> | ||
12 | */ | ||
13 | |||
14 | #ifndef __V850_SIM_H__ | ||
15 | #define __V850_SIM_H__ | ||
16 | |||
17 | |||
18 | #define CPU_ARCH "v850e" | ||
19 | #define CPU_MODEL "v850e" | ||
20 | #define CPU_MODEL_LONG "NEC V850E" | ||
21 | #define PLATFORM "gdb/v850e" | ||
22 | #define PLATFORM_LONG "GDB V850E simulator" | ||
23 | |||
24 | |||
25 | /* We use a weird value for RAM, not just 0, for testing purposes. | ||
26 | These must match the values used in the linker script. */ | ||
27 | #define RAM_ADDR 0x8F000000 | ||
28 | #define RAM_SIZE 0x03000000 | ||
29 | |||
30 | |||
31 | /* For <asm/page.h> */ | ||
32 | #define PAGE_OFFSET RAM_ADDR | ||
33 | |||
34 | |||
35 | /* For <asm/entry.h> */ | ||
36 | /* `R0 RAM', used for a few miscellaneous variables that must be | ||
37 | accessible using a load instruction relative to R0. On real | ||
38 | processors, this usually is on-chip RAM, but here we just | ||
39 | choose an arbitrary address that meets the above constraint. */ | ||
40 | #define R0_RAM_ADDR 0xFFFFF000 | ||
41 | |||
42 | |||
43 | /* For <asm/irq.h> */ | ||
44 | #define NUM_CPU_IRQS 6 | ||
45 | |||
46 | |||
47 | #endif /* __V850_SIM_H__ */ | ||
diff --git a/include/asm-v850/sim85e2.h b/include/asm-v850/sim85e2.h deleted file mode 100644 index 8b4d6974066c..000000000000 --- a/include/asm-v850/sim85e2.h +++ /dev/null | |||
@@ -1,69 +0,0 @@ | |||
1 | /* | ||
2 | * include/asm-v850/sim85e2.h -- Machine-dependent defs for | ||
3 | * V850E2 RTL simulator | ||
4 | * | ||
5 | * Copyright (C) 2002,03 NEC Electronics Corporation | ||
6 | * Copyright (C) 2002,03 Miles Bader <miles@gnu.org> | ||
7 | * | ||
8 | * This file is subject to the terms and conditions of the GNU General | ||
9 | * Public License. See the file COPYING in the main directory of this | ||
10 | * archive for more details. | ||
11 | * | ||
12 | * Written by Miles Bader <miles@gnu.org> | ||
13 | */ | ||
14 | |||
15 | #ifndef __V850_SIM85E2_H__ | ||
16 | #define __V850_SIM85E2_H__ | ||
17 | |||
18 | |||
19 | #include <asm/v850e2.h> /* Based on V850E2 core. */ | ||
20 | |||
21 | |||
22 | /* Various memory areas supported by the simulator. | ||
23 | These should match the corresponding definitions in the linker script. */ | ||
24 | |||
25 | /* `instruction RAM'; instruction fetches are much faster from IRAM than | ||
26 | from DRAM. */ | ||
27 | #define IRAM_ADDR 0 | ||
28 | #define IRAM_SIZE 0x00100000 /* 1MB */ | ||
29 | /* `data RAM', below and contiguous with the I/O space. | ||
30 | Data fetches are much faster from DRAM than from IRAM. */ | ||
31 | #define DRAM_ADDR 0xfff00000 | ||
32 | #define DRAM_SIZE 0x000ff000 /* 1020KB */ | ||
33 | /* `external ram'. Unlike the above RAM areas, this memory is cached, | ||
34 | so both instruction and data fetches should be (mostly) fast -- | ||
35 | however, currently only write-through caching is supported, so writes | ||
36 | to ERAM will be slow. */ | ||
37 | #define ERAM_ADDR 0x00100000 | ||
38 | #define ERAM_SIZE 0x07f00000 /* 127MB (max) */ | ||
39 | /* Dynamic RAM; uses memory controller. */ | ||
40 | #define SDRAM_ADDR 0x10000000 | ||
41 | #define SDRAM_SIZE 0x01000000 /* 16MB */ | ||
42 | |||
43 | |||
44 | /* Simulator specific control registers. */ | ||
45 | /* NOTHAL controls whether the simulator will stop at a `halt' insn. */ | ||
46 | #define SIM85E2_NOTHAL_ADDR 0xffffff22 | ||
47 | #define SIM85E2_NOTHAL (*(volatile u8 *)SIM85E2_NOTHAL_ADDR) | ||
48 | /* The simulator will stop N cycles after N is written to SIMFIN. */ | ||
49 | #define SIM85E2_SIMFIN_ADDR 0xffffff24 | ||
50 | #define SIM85E2_SIMFIN (*(volatile u16 *)SIM85E2_SIMFIN_ADDR) | ||
51 | |||
52 | |||
53 | /* For <asm/irq.h> */ | ||
54 | #define NUM_CPU_IRQS 64 | ||
55 | |||
56 | |||
57 | /* For <asm/page.h> */ | ||
58 | #define PAGE_OFFSET SDRAM_ADDR | ||
59 | |||
60 | |||
61 | /* For <asm/entry.h> */ | ||
62 | /* `R0 RAM', used for a few miscellaneous variables that must be accessible | ||
63 | using a load instruction relative to R0. The sim85e2 simulator | ||
64 | actually puts 1020K of RAM from FFF00000 to FFFFF000, so we arbitarily | ||
65 | choose a small portion at the end of that. */ | ||
66 | #define R0_RAM_ADDR 0xFFFFE000 | ||
67 | |||
68 | |||
69 | #endif /* __V850_SIM85E2_H__ */ | ||
diff --git a/include/asm-v850/sim85e2c.h b/include/asm-v850/sim85e2c.h deleted file mode 100644 index eee543ff3af8..000000000000 --- a/include/asm-v850/sim85e2c.h +++ /dev/null | |||
@@ -1,26 +0,0 @@ | |||
1 | /* | ||
2 | * include/asm-v850/sim85e2c.h -- Machine-dependent defs for | ||
3 | * V850E2 RTL simulator | ||
4 | * | ||
5 | * Copyright (C) 2002 NEC Corporation | ||
6 | * Copyright (C) 2002 Miles Bader <miles@gnu.org> | ||
7 | * | ||
8 | * This file is subject to the terms and conditions of the GNU General | ||
9 | * Public License. See the file COPYING in the main directory of this | ||
10 | * archive for more details. | ||
11 | * | ||
12 | * Written by Miles Bader <miles@gnu.org> | ||
13 | */ | ||
14 | |||
15 | #ifndef __V850_SIM85E2C_H__ | ||
16 | #define __V850_SIM85E2C_H__ | ||
17 | |||
18 | /* Use generic sim85e2 settings, other than the various names. */ | ||
19 | #include <asm/sim85e2.h> | ||
20 | |||
21 | #define CPU_MODEL "v850e2" | ||
22 | #define CPU_MODEL_LONG "NEC V850E2" | ||
23 | #define PLATFORM "sim85e2c" | ||
24 | #define PLATFORM_LONG "SIM85E2C V850E2 simulator" | ||
25 | |||
26 | #endif /* __V850_SIM85E2C_H__ */ | ||
diff --git a/include/asm-v850/sim85e2s.h b/include/asm-v850/sim85e2s.h deleted file mode 100644 index ee066d5d3c51..000000000000 --- a/include/asm-v850/sim85e2s.h +++ /dev/null | |||
@@ -1,28 +0,0 @@ | |||
1 | /* | ||
2 | * include/asm-v850/sim85e2s.h -- Machine-dependent defs for | ||
3 | * V850E2 RTL simulator | ||
4 | * | ||
5 | * Copyright (C) 2003 NEC Electronics Corporation | ||
6 | * Copyright (C) 2003 Miles Bader <miles@gnu.org> | ||
7 | * | ||
8 | * This file is subject to the terms and conditions of the GNU General | ||
9 | * Public License. See the file COPYING in the main directory of this | ||
10 | * archive for more details. | ||
11 | * | ||
12 | * Written by Miles Bader <miles@gnu.org> | ||
13 | */ | ||
14 | |||
15 | #ifndef __V850_SIM85E2S_H__ | ||
16 | #define __V850_SIM85E2S_H__ | ||
17 | |||
18 | #include <asm/sim85e2.h> /* Use generic sim85e2 settings. */ | ||
19 | #if 0 | ||
20 | #include <asm/v850e2_cache.h> /* + cache */ | ||
21 | #endif | ||
22 | |||
23 | #define CPU_MODEL "v850e2" | ||
24 | #define CPU_MODEL_LONG "NEC V850E2" | ||
25 | #define PLATFORM "sim85e2s" | ||
26 | #define PLATFORM_LONG "SIM85E2S V850E2 simulator" | ||
27 | |||
28 | #endif /* __V850_SIM85E2S_H__ */ | ||
diff --git a/include/asm-v850/simsyscall.h b/include/asm-v850/simsyscall.h deleted file mode 100644 index 4a19d5ae9d17..000000000000 --- a/include/asm-v850/simsyscall.h +++ /dev/null | |||
@@ -1,99 +0,0 @@ | |||
1 | /* | ||
2 | * include/asm-v850/simsyscall.h -- `System calls' under the v850e emulator | ||
3 | * | ||
4 | * Copyright (C) 2001 NEC Corporation | ||
5 | * Copyright (C) 2001 Miles Bader <miles@gnu.org> | ||
6 | * | ||
7 | * This file is subject to the terms and conditions of the GNU General | ||
8 | * Public License. See the file COPYING in the main directory of this | ||
9 | * archive for more details. | ||
10 | * | ||
11 | * Written by Miles Bader <miles@gnu.org> | ||
12 | */ | ||
13 | |||
14 | #ifndef __V850_SIMSYSCALL_H__ | ||
15 | #define __V850_SIMSYSCALL_H__ | ||
16 | |||
17 | #define V850_SIM_SYS_exit(a...) V850_SIM_SYSCALL_1 (1 , ##a) | ||
18 | #define V850_SIM_SYS_fork(a...) V850_SIM_SYSCALL_0 (2 , ##a) | ||
19 | #define V850_SIM_SYS_read(a...) V850_SIM_SYSCALL_3 (3 , ##a) | ||
20 | #define V850_SIM_SYS_write(a...) V850_SIM_SYSCALL_3 (4 , ##a) | ||
21 | #define V850_SIM_SYS_open(a...) V850_SIM_SYSCALL_2 (5 , ##a) | ||
22 | #define V850_SIM_SYS_close(a...) V850_SIM_SYSCALL_1 (6 , ##a) | ||
23 | #define V850_SIM_SYS_wait4(a...) V850_SIM_SYSCALL_4 (7 , ##a) | ||
24 | /* #define V850_SIM_SYS_creat(a...) V850_SIM_SYSCALL_1 (8 , ##a) */ | ||
25 | /* #define V850_SIM_SYS_link(a...) V850_SIM_SYSCALL_1 (9 , ##a) */ | ||
26 | /* #define V850_SIM_SYS_unlink(a...) V850_SIM_SYSCALL_1 (10 , ##a) */ | ||
27 | #define V850_SIM_SYS_execv(a...) V850_SIM_SYSCALL_2 (11 , ##a) | ||
28 | /* #define V850_SIM_SYS_chdir(a...) V850_SIM_SYSCALL_1 (12 , ##a) */ | ||
29 | /* #define V850_SIM_SYS_mknod(a...) V850_SIM_SYSCALL_1 (14 , ##a) */ | ||
30 | #define V850_SIM_SYS_chmod(a...) V850_SIM_SYSCALL_2 (15 , ##a) | ||
31 | #define V850_SIM_SYS_chown(a...) V850_SIM_SYSCALL_2 (16 , ##a) | ||
32 | #define V850_SIM_SYS_lseek(a...) V850_SIM_SYSCALL_3 (19 , ##a) | ||
33 | /* #define V850_SIM_SYS_getpid(a...) V850_SIM_SYSCALL_1 (20 , ##a) */ | ||
34 | /* #define V850_SIM_SYS_isatty(a...) V850_SIM_SYSCALL_1 (21 , ##a) */ | ||
35 | /* #define V850_SIM_SYS_fstat(a...) V850_SIM_SYSCALL_1 (22 , ##a) */ | ||
36 | #define V850_SIM_SYS_time(a...) V850_SIM_SYSCALL_1 (23 , ##a) | ||
37 | #define V850_SIM_SYS_poll(a...) V850_SIM_SYSCALL_3 (24 , ##a) | ||
38 | #define V850_SIM_SYS_stat(a...) V850_SIM_SYSCALL_2 (38 , ##a) | ||
39 | #define V850_SIM_SYS_pipe(a...) V850_SIM_SYSCALL_1 (42 , ##a) | ||
40 | #define V850_SIM_SYS_times(a...) V850_SIM_SYSCALL_1 (43 , ##a) | ||
41 | #define V850_SIM_SYS_execve(a...) V850_SIM_SYSCALL_3 (59 , ##a) | ||
42 | #define V850_SIM_SYS_gettimeofday(a...) V850_SIM_SYSCALL_2 (116 , ##a) | ||
43 | /* #define V850_SIM_SYS_utime(a...) V850_SIM_SYSCALL_2 (201 , ##a) */ | ||
44 | /* #define V850_SIM_SYS_wait(a...) V850_SIM_SYSCALL_1 (202 , ##a) */ | ||
45 | |||
46 | #define V850_SIM_SYS_make_raw(a...) V850_SIM_SYSCALL_1 (1024 , ##a) | ||
47 | |||
48 | |||
49 | #define V850_SIM_SYSCALL_0(_call) \ | ||
50 | ({ \ | ||
51 | register int call __asm__ ("r6") = _call; \ | ||
52 | register int rval __asm__ ("r10"); \ | ||
53 | __asm__ __volatile__ ("trap 31" \ | ||
54 | : "=r" (rval) \ | ||
55 | : "r" (call) \ | ||
56 | : "r11", "memory"); \ | ||
57 | rval; \ | ||
58 | }) | ||
59 | #define V850_SIM_SYSCALL_1(_call, _arg0) \ | ||
60 | ({ \ | ||
61 | register int call __asm__ ("r6") = _call; \ | ||
62 | register long arg0 __asm__ ("r7") = (long)_arg0; \ | ||
63 | register int rval __asm__ ("r10"); \ | ||
64 | __asm__ __volatile__ ("trap 31" \ | ||
65 | : "=r" (rval) \ | ||
66 | : "r" (call), "r" (arg0) \ | ||
67 | : "r11", "memory"); \ | ||
68 | rval; \ | ||
69 | }) | ||
70 | #define V850_SIM_SYSCALL_2(_call, _arg0, _arg1) \ | ||
71 | ({ \ | ||
72 | register int call __asm__ ("r6") = _call; \ | ||
73 | register long arg0 __asm__ ("r7") = (long)_arg0; \ | ||
74 | register long arg1 __asm__ ("r8") = (long)_arg1; \ | ||
75 | register int rval __asm__ ("r10"); \ | ||
76 | __asm__ __volatile__ ("trap 31" \ | ||
77 | : "=r" (rval) \ | ||
78 | : "r" (call), "r" (arg0), "r" (arg1) \ | ||
79 | : "r11", "memory"); \ | ||
80 | rval; \ | ||
81 | }) | ||
82 | #define V850_SIM_SYSCALL_3(_call, _arg0, _arg1, _arg2) \ | ||
83 | ({ \ | ||
84 | register int call __asm__ ("r6") = _call; \ | ||
85 | register long arg0 __asm__ ("r7") = (long)_arg0; \ | ||
86 | register long arg1 __asm__ ("r8") = (long)_arg1; \ | ||
87 | register long arg2 __asm__ ("r9") = (long)_arg2; \ | ||
88 | register int rval __asm__ ("r10"); \ | ||
89 | __asm__ __volatile__ ("trap 31" \ | ||
90 | : "=r" (rval) \ | ||
91 | : "r" (call), "r" (arg0), "r" (arg1), "r" (arg2)\ | ||
92 | : "r11", "memory"); \ | ||
93 | rval; \ | ||
94 | }) | ||
95 | |||
96 | #define V850_SIM_SYSCALL(call, args...) \ | ||
97 | V850_SIM_SYS_##call (args) | ||
98 | |||
99 | #endif /* __V850_SIMSYSCALL_H__ */ | ||
diff --git a/include/asm-v850/socket.h b/include/asm-v850/socket.h deleted file mode 100644 index e199a2bf12aa..000000000000 --- a/include/asm-v850/socket.h +++ /dev/null | |||
@@ -1,57 +0,0 @@ | |||
1 | #ifndef __V850_SOCKET_H__ | ||
2 | #define __V850_SOCKET_H__ | ||
3 | |||
4 | #include <asm/sockios.h> | ||
5 | |||
6 | /* For setsockoptions(2) */ | ||
7 | #define SOL_SOCKET 1 | ||
8 | |||
9 | #define SO_DEBUG 1 | ||
10 | #define SO_REUSEADDR 2 | ||
11 | #define SO_TYPE 3 | ||
12 | #define SO_ERROR 4 | ||
13 | #define SO_DONTROUTE 5 | ||
14 | #define SO_BROADCAST 6 | ||
15 | #define SO_SNDBUF 7 | ||
16 | #define SO_RCVBUF 8 | ||
17 | #define SO_SNDBUFFORCE 32 | ||
18 | #define SO_RCVBUFFORCE 33 | ||
19 | #define SO_KEEPALIVE 9 | ||
20 | #define SO_OOBINLINE 10 | ||
21 | #define SO_NO_CHECK 11 | ||
22 | #define SO_PRIORITY 12 | ||
23 | #define SO_LINGER 13 | ||
24 | #define SO_BSDCOMPAT 14 | ||
25 | /* To add :#define SO_REUSEPORT 15 */ | ||
26 | #define SO_PASSCRED 16 | ||
27 | #define SO_PEERCRED 17 | ||
28 | #define SO_RCVLOWAT 18 | ||
29 | #define SO_SNDLOWAT 19 | ||
30 | #define SO_RCVTIMEO 20 | ||
31 | #define SO_SNDTIMEO 21 | ||
32 | |||
33 | /* Security levels - as per NRL IPv6 - don't actually do anything */ | ||
34 | #define SO_SECURITY_AUTHENTICATION 22 | ||
35 | #define SO_SECURITY_ENCRYPTION_TRANSPORT 23 | ||
36 | #define SO_SECURITY_ENCRYPTION_NETWORK 24 | ||
37 | |||
38 | #define SO_BINDTODEVICE 25 | ||
39 | |||
40 | /* Socket filtering */ | ||
41 | #define SO_ATTACH_FILTER 26 | ||
42 | #define SO_DETACH_FILTER 27 | ||
43 | |||
44 | #define SO_PEERNAME 28 | ||
45 | #define SO_TIMESTAMP 29 | ||
46 | #define SCM_TIMESTAMP SO_TIMESTAMP | ||
47 | |||
48 | #define SO_ACCEPTCONN 30 | ||
49 | |||
50 | #define SO_PEERSEC 31 | ||
51 | #define SO_PASSSEC 34 | ||
52 | #define SO_TIMESTAMPNS 35 | ||
53 | #define SCM_TIMESTAMPNS SO_TIMESTAMPNS | ||
54 | |||
55 | #define SO_MARK 36 | ||
56 | |||
57 | #endif /* __V850_SOCKET_H__ */ | ||
diff --git a/include/asm-v850/sockios.h b/include/asm-v850/sockios.h deleted file mode 100644 index 823e106e6cd0..000000000000 --- a/include/asm-v850/sockios.h +++ /dev/null | |||
@@ -1,13 +0,0 @@ | |||
1 | #ifndef __V850_SOCKIOS_H__ | ||
2 | #define __V850_SOCKIOS_H__ | ||
3 | |||
4 | /* Socket-level I/O control calls. */ | ||
5 | #define FIOSETOWN 0x8901 | ||
6 | #define SIOCSPGRP 0x8902 | ||
7 | #define FIOGETOWN 0x8903 | ||
8 | #define SIOCGPGRP 0x8904 | ||
9 | #define SIOCATMARK 0x8905 | ||
10 | #define SIOCGSTAMP 0x8906 /* Get stamp (timeval) */ | ||
11 | #define SIOCGSTAMPNS 0x8907 /* Get stamp (timespec) */ | ||
12 | |||
13 | #endif /* __V850_SOCKIOS_H__ */ | ||
diff --git a/include/asm-v850/stat.h b/include/asm-v850/stat.h deleted file mode 100644 index c68c60d06e2f..000000000000 --- a/include/asm-v850/stat.h +++ /dev/null | |||
@@ -1,73 +0,0 @@ | |||
1 | /* | ||
2 | * include/asm-v850/stat.h -- v850 stat structure | ||
3 | * | ||
4 | * Copyright (C) 2001,02,03 NEC Electronics Corporation | ||
5 | * Copyright (C) 2001,02,03 Miles Bader <miles@gnu.org> | ||
6 | * | ||
7 | * This file is subject to the terms and conditions of the GNU General | ||
8 | * Public License. See the file COPYING in the main directory of this | ||
9 | * archive for more details. | ||
10 | * | ||
11 | * Written by Miles Bader <miles@gnu.org> | ||
12 | */ | ||
13 | |||
14 | #ifndef __V850_STAT_H__ | ||
15 | #define __V850_STAT_H__ | ||
16 | |||
17 | #include <asm/posix_types.h> | ||
18 | |||
19 | struct stat { | ||
20 | unsigned int st_dev; | ||
21 | unsigned long st_ino; | ||
22 | unsigned int st_mode; | ||
23 | unsigned int st_nlink; | ||
24 | unsigned int st_uid; | ||
25 | unsigned int st_gid; | ||
26 | unsigned int st_rdev; | ||
27 | long st_size; | ||
28 | unsigned long st_blksize; | ||
29 | unsigned long st_blocks; | ||
30 | unsigned long st_atime; | ||
31 | unsigned long __unused1; | ||
32 | unsigned long st_mtime; | ||
33 | unsigned long __unused2; | ||
34 | unsigned long st_ctime; | ||
35 | unsigned long __unused3; | ||
36 | unsigned long __unused4; | ||
37 | unsigned long __unused5; | ||
38 | }; | ||
39 | |||
40 | struct stat64 { | ||
41 | unsigned long long st_dev; | ||
42 | unsigned long __unused1; | ||
43 | |||
44 | unsigned long long st_ino; | ||
45 | |||
46 | unsigned int st_mode; | ||
47 | unsigned int st_nlink; | ||
48 | |||
49 | unsigned int st_uid; | ||
50 | unsigned int st_gid; | ||
51 | |||
52 | unsigned long long st_rdev; | ||
53 | unsigned long __unused3; | ||
54 | |||
55 | long long st_size; | ||
56 | unsigned long st_blksize; | ||
57 | |||
58 | unsigned long st_blocks; /* No. of 512-byte blocks allocated */ | ||
59 | unsigned long __unused4; /* future possible st_blocks high bits */ | ||
60 | |||
61 | unsigned long st_atime; | ||
62 | unsigned long st_atime_nsec; | ||
63 | |||
64 | unsigned long st_mtime; | ||
65 | unsigned long st_mtime_nsec; | ||
66 | |||
67 | unsigned long st_ctime; | ||
68 | unsigned long st_ctime_nsec; | ||
69 | |||
70 | unsigned long __unused8; | ||
71 | }; | ||
72 | |||
73 | #endif /* __V850_STAT_H__ */ | ||
diff --git a/include/asm-v850/statfs.h b/include/asm-v850/statfs.h deleted file mode 100644 index ea1596607f26..000000000000 --- a/include/asm-v850/statfs.h +++ /dev/null | |||
@@ -1,6 +0,0 @@ | |||
1 | #ifndef __V850_STATFS_H__ | ||
2 | #define __V850_STATFS_H__ | ||
3 | |||
4 | #include <asm-generic/statfs.h> | ||
5 | |||
6 | #endif /* __V850_STATFS_H__ */ | ||
diff --git a/include/asm-v850/string.h b/include/asm-v850/string.h deleted file mode 100644 index 478e234789d6..000000000000 --- a/include/asm-v850/string.h +++ /dev/null | |||
@@ -1,25 +0,0 @@ | |||
1 | /* | ||
2 | * include/asm-v850/string.h -- Architecture specific string routines | ||
3 | * | ||
4 | * Copyright (C) 2001,02 NEC Corporation | ||
5 | * Copyright (C) 2001,02 Miles Bader <miles@gnu.org> | ||
6 | * | ||
7 | * This file is subject to the terms and conditions of the GNU General | ||
8 | * Public License. See the file COPYING in the main directory of this | ||
9 | * archive for more details. | ||
10 | * | ||
11 | * Written by Miles Bader <miles@gnu.org> | ||
12 | */ | ||
13 | |||
14 | #ifndef __V850_STRING_H__ | ||
15 | #define __V850_STRING_H__ | ||
16 | |||
17 | #define __HAVE_ARCH_MEMCPY | ||
18 | #define __HAVE_ARCH_MEMSET | ||
19 | #define __HAVE_ARCH_MEMMOVE | ||
20 | |||
21 | extern void *memcpy (void *, const void *, __kernel_size_t); | ||
22 | extern void *memset (void *, int, __kernel_size_t); | ||
23 | extern void *memmove (void *, const void *, __kernel_size_t); | ||
24 | |||
25 | #endif /* __V850_STRING_H__ */ | ||
diff --git a/include/asm-v850/system.h b/include/asm-v850/system.h deleted file mode 100644 index 7daf1fdee119..000000000000 --- a/include/asm-v850/system.h +++ /dev/null | |||
@@ -1,123 +0,0 @@ | |||
1 | /* | ||
2 | * include/asm-v850/system.h -- Low-level interrupt/thread ops | ||
3 | * | ||
4 | * Copyright (C) 2001,02,03 NEC Electronics Corporation | ||
5 | * Copyright (C) 2001,02,03 Miles Bader <miles@gnu.org> | ||
6 | * | ||
7 | * This file is subject to the terms and conditions of the GNU General | ||
8 | * Public License. See the file COPYING in the main directory of this | ||
9 | * archive for more details. | ||
10 | * | ||
11 | * Written by Miles Bader <miles@gnu.org> | ||
12 | */ | ||
13 | |||
14 | #ifndef __V850_SYSTEM_H__ | ||
15 | #define __V850_SYSTEM_H__ | ||
16 | |||
17 | #include <linux/linkage.h> | ||
18 | #include <asm/ptrace.h> | ||
19 | |||
20 | |||
21 | /* | ||
22 | * switch_to(n) should switch tasks to task ptr, first checking that | ||
23 | * ptr isn't the current task, in which case it does nothing. | ||
24 | */ | ||
25 | struct thread_struct; | ||
26 | extern void *switch_thread (struct thread_struct *last, | ||
27 | struct thread_struct *next); | ||
28 | #define switch_to(prev,next,last) \ | ||
29 | do { \ | ||
30 | if (prev != next) { \ | ||
31 | (last) = switch_thread (&prev->thread, &next->thread); \ | ||
32 | } \ | ||
33 | } while (0) | ||
34 | |||
35 | |||
36 | /* Enable/disable interrupts. */ | ||
37 | #define local_irq_enable() __asm__ __volatile__ ("ei") | ||
38 | #define local_irq_disable() __asm__ __volatile__ ("di") | ||
39 | |||
40 | #define local_save_flags(flags) \ | ||
41 | __asm__ __volatile__ ("stsr %1, %0" : "=r" (flags) : "i" (SR_PSW)) | ||
42 | #define local_restore_flags(flags) \ | ||
43 | __asm__ __volatile__ ("ldsr %0, %1" :: "r" (flags), "i" (SR_PSW)) | ||
44 | |||
45 | /* For spinlocks etc */ | ||
46 | #define local_irq_save(flags) \ | ||
47 | do { local_save_flags (flags); local_irq_disable (); } while (0) | ||
48 | #define local_irq_restore(flags) \ | ||
49 | local_restore_flags (flags); | ||
50 | |||
51 | |||
52 | static inline int irqs_disabled (void) | ||
53 | { | ||
54 | unsigned flags; | ||
55 | local_save_flags (flags); | ||
56 | return !!(flags & 0x20); | ||
57 | } | ||
58 | |||
59 | |||
60 | /* | ||
61 | * Force strict CPU ordering. | ||
62 | * Not really required on v850... | ||
63 | */ | ||
64 | #define nop() __asm__ __volatile__ ("nop") | ||
65 | #define mb() __asm__ __volatile__ ("" ::: "memory") | ||
66 | #define rmb() mb () | ||
67 | #define wmb() mb () | ||
68 | #define read_barrier_depends() ((void)0) | ||
69 | #define set_mb(var, value) do { xchg (&var, value); } while (0) | ||
70 | |||
71 | #define smp_mb() mb () | ||
72 | #define smp_rmb() rmb () | ||
73 | #define smp_wmb() wmb () | ||
74 | #define smp_read_barrier_depends() read_barrier_depends() | ||
75 | |||
76 | #define xchg(ptr, with) \ | ||
77 | ((__typeof__ (*(ptr)))__xchg ((unsigned long)(with), (ptr), sizeof (*(ptr)))) | ||
78 | |||
79 | static inline unsigned long __xchg (unsigned long with, | ||
80 | __volatile__ void *ptr, int size) | ||
81 | { | ||
82 | unsigned long tmp, flags; | ||
83 | |||
84 | local_irq_save (flags); | ||
85 | |||
86 | switch (size) { | ||
87 | case 1: | ||
88 | tmp = *(unsigned char *)ptr; | ||
89 | *(unsigned char *)ptr = with; | ||
90 | break; | ||
91 | case 2: | ||
92 | tmp = *(unsigned short *)ptr; | ||
93 | *(unsigned short *)ptr = with; | ||
94 | break; | ||
95 | case 4: | ||
96 | tmp = *(unsigned long *)ptr; | ||
97 | *(unsigned long *)ptr = with; | ||
98 | break; | ||
99 | } | ||
100 | |||
101 | local_irq_restore (flags); | ||
102 | |||
103 | return tmp; | ||
104 | } | ||
105 | |||
106 | #include <asm-generic/cmpxchg-local.h> | ||
107 | |||
108 | /* | ||
109 | * cmpxchg_local and cmpxchg64_local are atomic wrt current CPU. Always make | ||
110 | * them available. | ||
111 | */ | ||
112 | #define cmpxchg_local(ptr, o, n) \ | ||
113 | ((__typeof__(*(ptr)))__cmpxchg_local_generic((ptr), (unsigned long)(o),\ | ||
114 | (unsigned long)(n), sizeof(*(ptr)))) | ||
115 | #define cmpxchg64_local(ptr, o, n) __cmpxchg64_local_generic((ptr), (o), (n)) | ||
116 | |||
117 | #ifndef CONFIG_SMP | ||
118 | #include <asm-generic/cmpxchg.h> | ||
119 | #endif | ||
120 | |||
121 | #define arch_align_stack(x) (x) | ||
122 | |||
123 | #endif /* __V850_SYSTEM_H__ */ | ||
diff --git a/include/asm-v850/teg.h b/include/asm-v850/teg.h deleted file mode 100644 index acc8c7d95329..000000000000 --- a/include/asm-v850/teg.h +++ /dev/null | |||
@@ -1,101 +0,0 @@ | |||
1 | /* | ||
2 | * include/asm-v850/teg.h -- NB85E-TEG cpu chip | ||
3 | * | ||
4 | * Copyright (C) 2001,02,03 NEC Electronics Corporation | ||
5 | * Copyright (C) 2001,02,03 Miles Bader <miles@gnu.org> | ||
6 | * | ||
7 | * This file is subject to the terms and conditions of the GNU General | ||
8 | * Public License. See the file COPYING in the main directory of this | ||
9 | * archive for more details. | ||
10 | * | ||
11 | * Written by Miles Bader <miles@gnu.org> | ||
12 | */ | ||
13 | |||
14 | #ifndef __V850_TEG_H__ | ||
15 | #define __V850_TEG_H__ | ||
16 | |||
17 | |||
18 | /* The TEG uses the V850E cpu core. */ | ||
19 | #include <asm/v850e.h> | ||
20 | #include <asm/v850e_cache.h> | ||
21 | |||
22 | |||
23 | #define CPU_MODEL "v850e/nb85e-teg" | ||
24 | #define CPU_MODEL_LONG "NEC V850E/NB85E TEG" | ||
25 | |||
26 | |||
27 | /* For <asm/entry.h> */ | ||
28 | /* We use on-chip RAM, for a few miscellaneous variables that must be | ||
29 | accessible using a load instruction relative to R0. On the NB85E/TEG, | ||
30 | There's 60KB of iRAM starting at 0xFFFF0000, however we need the base | ||
31 | address to be addressable by a 16-bit signed offset, so we only use the | ||
32 | second half of it starting from 0xFFFF8000. */ | ||
33 | #define R0_RAM_ADDR 0xFFFF8000 | ||
34 | |||
35 | |||
36 | /* Hardware-specific interrupt numbers (in the kernel IRQ namespace). | ||
37 | Some of these are parameterized even though there's only a single | ||
38 | interrupt, for compatibility with some generic code that works on other | ||
39 | processor models. */ | ||
40 | #define IRQ_INTCMD(n) 6 /* interval timer interrupt */ | ||
41 | #define IRQ_INTCMD_NUM 1 | ||
42 | #define IRQ_INTSER(n) 16 /* UART reception error */ | ||
43 | #define IRQ_INTSER_NUM 1 | ||
44 | #define IRQ_INTSR(n) 17 /* UART reception completion */ | ||
45 | #define IRQ_INTSR_NUM 1 | ||
46 | #define IRQ_INTST(n) 18 /* UART transmission completion */ | ||
47 | #define IRQ_INTST_NUM 1 | ||
48 | |||
49 | /* For <asm/irq.h> */ | ||
50 | #define NUM_CPU_IRQS 64 | ||
51 | |||
52 | |||
53 | /* TEG UART details. */ | ||
54 | #define V850E_UART_BASE_ADDR(n) (0xFFFFF600 + 0x10 * (n)) | ||
55 | #define V850E_UART_ASIM_ADDR(n) (V850E_UART_BASE_ADDR(n) + 0x0) | ||
56 | #define V850E_UART_ASIS_ADDR(n) (V850E_UART_BASE_ADDR(n) + 0x2) | ||
57 | #define V850E_UART_ASIF_ADDR(n) (V850E_UART_BASE_ADDR(n) + 0x4) | ||
58 | #define V850E_UART_CKSR_ADDR(n) (V850E_UART_BASE_ADDR(n) + 0x6) | ||
59 | #define V850E_UART_BRGC_ADDR(n) (V850E_UART_BASE_ADDR(n) + 0x8) | ||
60 | #define V850E_UART_TXB_ADDR(n) (V850E_UART_BASE_ADDR(n) + 0xA) | ||
61 | #define V850E_UART_RXB_ADDR(n) (V850E_UART_BASE_ADDR(n) + 0xC) | ||
62 | #define V850E_UART_NUM_CHANNELS 1 | ||
63 | #define V850E_UART_BASE_FREQ CPU_CLOCK_FREQ | ||
64 | /* This is a function that gets called before configuring the UART. */ | ||
65 | #define V850E_UART_PRE_CONFIGURE teg_uart_pre_configure | ||
66 | #ifndef __ASSEMBLY__ | ||
67 | extern void teg_uart_pre_configure (unsigned chan, | ||
68 | unsigned cflags, unsigned baud); | ||
69 | #endif | ||
70 | |||
71 | |||
72 | /* The TEG RTPU. */ | ||
73 | #define V850E_RTPU_BASE_ADDR 0xFFFFF210 | ||
74 | |||
75 | |||
76 | /* TEG series timer D details. */ | ||
77 | #define V850E_TIMER_D_BASE_ADDR 0xFFFFF210 | ||
78 | #define V850E_TIMER_D_TMCD_BASE_ADDR (V850E_TIMER_D_BASE_ADDR + 0x0) | ||
79 | #define V850E_TIMER_D_TMD_BASE_ADDR (V850E_TIMER_D_BASE_ADDR + 0x4) | ||
80 | #define V850E_TIMER_D_CMD_BASE_ADDR (V850E_TIMER_D_BASE_ADDR + 0x8) | ||
81 | #define V850E_TIMER_D_BASE_FREQ CPU_CLOCK_FREQ | ||
82 | |||
83 | |||
84 | /* `Interrupt Source Select' control register. */ | ||
85 | #define TEG_ISS_ADDR 0xFFFFF7FA | ||
86 | #define TEG_ISS (*(volatile u8 *)TEG_ISS_ADDR) | ||
87 | |||
88 | /* Port 0 I/O register (bits 0-3 used). */ | ||
89 | #define TEG_PORT0_IO_ADDR 0xFFFFF7F2 | ||
90 | #define TEG_PORT0_IO (*(volatile u8 *)TEG_PORT0_IO_ADDR) | ||
91 | /* Port 0 control register (bits 0-3 control mode, 0 = output, 1 = input). */ | ||
92 | #define TEG_PORT0_PM_ADDR 0xFFFFF7F4 | ||
93 | #define TEG_PORT0_PM (*(volatile u8 *)TEG_PORT0_PM_ADDR) | ||
94 | |||
95 | |||
96 | #ifndef __ASSEMBLY__ | ||
97 | extern void teg_init_irqs (void); | ||
98 | #endif | ||
99 | |||
100 | |||
101 | #endif /* __V850_TEG_H__ */ | ||
diff --git a/include/asm-v850/termbits.h b/include/asm-v850/termbits.h deleted file mode 100644 index 295d7bf69451..000000000000 --- a/include/asm-v850/termbits.h +++ /dev/null | |||
@@ -1,200 +0,0 @@ | |||
1 | #ifndef __V850_TERMBITS_H__ | ||
2 | #define __V850_TERMBITS_H__ | ||
3 | |||
4 | #include <linux/posix_types.h> | ||
5 | |||
6 | typedef unsigned char cc_t; | ||
7 | typedef unsigned int speed_t; | ||
8 | typedef unsigned int tcflag_t; | ||
9 | |||
10 | #define NCCS 19 | ||
11 | struct termios { | ||
12 | tcflag_t c_iflag; /* input mode flags */ | ||
13 | tcflag_t c_oflag; /* output mode flags */ | ||
14 | tcflag_t c_cflag; /* control mode flags */ | ||
15 | tcflag_t c_lflag; /* local mode flags */ | ||
16 | cc_t c_line; /* line discipline */ | ||
17 | cc_t c_cc[NCCS]; /* control characters */ | ||
18 | }; | ||
19 | |||
20 | struct termios2 { | ||
21 | tcflag_t c_iflag; /* input mode flags */ | ||
22 | tcflag_t c_oflag; /* output mode flags */ | ||
23 | tcflag_t c_cflag; /* control mode flags */ | ||
24 | tcflag_t c_lflag; /* local mode flags */ | ||
25 | cc_t c_line; /* line discipline */ | ||
26 | cc_t c_cc[NCCS]; /* control characters */ | ||
27 | speed_t c_ispeed; /* input speed */ | ||
28 | speed_t c_ospeed; /* output speed */ | ||
29 | }; | ||
30 | |||
31 | struct ktermios { | ||
32 | tcflag_t c_iflag; /* input mode flags */ | ||
33 | tcflag_t c_oflag; /* output mode flags */ | ||
34 | tcflag_t c_cflag; /* control mode flags */ | ||
35 | tcflag_t c_lflag; /* local mode flags */ | ||
36 | cc_t c_line; /* line discipline */ | ||
37 | cc_t c_cc[NCCS]; /* control characters */ | ||
38 | speed_t c_ispeed; /* input speed */ | ||
39 | speed_t c_ospeed; /* output speed */ | ||
40 | }; | ||
41 | |||
42 | /* c_cc characters */ | ||
43 | #define VINTR 0 | ||
44 | #define VQUIT 1 | ||
45 | #define VERASE 2 | ||
46 | #define VKILL 3 | ||
47 | #define VEOF 4 | ||
48 | #define VTIME 5 | ||
49 | #define VMIN 6 | ||
50 | #define VSWTC 7 | ||
51 | #define VSTART 8 | ||
52 | #define VSTOP 9 | ||
53 | #define VSUSP 10 | ||
54 | #define VEOL 11 | ||
55 | #define VREPRINT 12 | ||
56 | #define VDISCARD 13 | ||
57 | #define VWERASE 14 | ||
58 | #define VLNEXT 15 | ||
59 | #define VEOL2 16 | ||
60 | |||
61 | |||
62 | /* c_iflag bits */ | ||
63 | #define IGNBRK 0000001 | ||
64 | #define BRKINT 0000002 | ||
65 | #define IGNPAR 0000004 | ||
66 | #define PARMRK 0000010 | ||
67 | #define INPCK 0000020 | ||
68 | #define ISTRIP 0000040 | ||
69 | #define INLCR 0000100 | ||
70 | #define IGNCR 0000200 | ||
71 | #define ICRNL 0000400 | ||
72 | #define IUCLC 0001000 | ||
73 | #define IXON 0002000 | ||
74 | #define IXANY 0004000 | ||
75 | #define IXOFF 0010000 | ||
76 | #define IMAXBEL 0020000 | ||
77 | #define IUTF8 0040000 | ||
78 | |||
79 | /* c_oflag bits */ | ||
80 | #define OPOST 0000001 | ||
81 | #define OLCUC 0000002 | ||
82 | #define ONLCR 0000004 | ||
83 | #define OCRNL 0000010 | ||
84 | #define ONOCR 0000020 | ||
85 | #define ONLRET 0000040 | ||
86 | #define OFILL 0000100 | ||
87 | #define OFDEL 0000200 | ||
88 | #define NLDLY 0000400 | ||
89 | #define NL0 0000000 | ||
90 | #define NL1 0000400 | ||
91 | #define CRDLY 0003000 | ||
92 | #define CR0 0000000 | ||
93 | #define CR1 0001000 | ||
94 | #define CR2 0002000 | ||
95 | #define CR3 0003000 | ||
96 | #define TABDLY 0014000 | ||
97 | #define TAB0 0000000 | ||
98 | #define TAB1 0004000 | ||
99 | #define TAB2 0010000 | ||
100 | #define TAB3 0014000 | ||
101 | #define XTABS 0014000 | ||
102 | #define BSDLY 0020000 | ||
103 | #define BS0 0000000 | ||
104 | #define BS1 0020000 | ||
105 | #define VTDLY 0040000 | ||
106 | #define VT0 0000000 | ||
107 | #define VT1 0040000 | ||
108 | #define FFDLY 0100000 | ||
109 | #define FF0 0000000 | ||
110 | #define FF1 0100000 | ||
111 | |||
112 | /* c_cflag bit meaning */ | ||
113 | #define CBAUD 0010017 | ||
114 | #define B0 0000000 /* hang up */ | ||
115 | #define B50 0000001 | ||
116 | #define B75 0000002 | ||
117 | #define B110 0000003 | ||
118 | #define B134 0000004 | ||
119 | #define B150 0000005 | ||
120 | #define B200 0000006 | ||
121 | #define B300 0000007 | ||
122 | #define B600 0000010 | ||
123 | #define B1200 0000011 | ||
124 | #define B1800 0000012 | ||
125 | #define B2400 0000013 | ||
126 | #define B4800 0000014 | ||
127 | #define B9600 0000015 | ||
128 | #define B19200 0000016 | ||
129 | #define B38400 0000017 | ||
130 | #define EXTA B19200 | ||
131 | #define EXTB B38400 | ||
132 | #define CSIZE 0000060 | ||
133 | #define CS5 0000000 | ||
134 | #define CS6 0000020 | ||
135 | #define CS7 0000040 | ||
136 | #define CS8 0000060 | ||
137 | #define CSTOPB 0000100 | ||
138 | #define CREAD 0000200 | ||
139 | #define PARENB 0000400 | ||
140 | #define PARODD 0001000 | ||
141 | #define HUPCL 0002000 | ||
142 | #define CLOCAL 0004000 | ||
143 | #define CBAUDEX 0010000 | ||
144 | #define BOTHER 0010000 | ||
145 | #define B57600 0010001 | ||
146 | #define B115200 0010002 | ||
147 | #define B230400 0010003 | ||
148 | #define B460800 0010004 | ||
149 | #define B500000 0010005 | ||
150 | #define B576000 0010006 | ||
151 | #define B921600 0010007 | ||
152 | #define B1000000 0010010 | ||
153 | #define B1152000 0010011 | ||
154 | #define B1500000 0010012 | ||
155 | #define B2000000 0010013 | ||
156 | #define B2500000 0010014 | ||
157 | #define B3000000 0010015 | ||
158 | #define B3500000 0010016 | ||
159 | #define B4000000 0010017 | ||
160 | #define CIBAUD 002003600000 /* input baud rate */ | ||
161 | #define CMSPAR 010000000000 /* mark or space (stick) parity */ | ||
162 | #define CRTSCTS 020000000000 /* flow control */ | ||
163 | |||
164 | #define IBSHIFT 16 /* Shifr from CBAUD to CIBAUD */ | ||
165 | |||
166 | /* c_lflag bits */ | ||
167 | #define ISIG 0000001 | ||
168 | #define ICANON 0000002 | ||
169 | #define XCASE 0000004 | ||
170 | #define ECHO 0000010 | ||
171 | #define ECHOE 0000020 | ||
172 | #define ECHOK 0000040 | ||
173 | #define ECHONL 0000100 | ||
174 | #define NOFLSH 0000200 | ||
175 | #define TOSTOP 0000400 | ||
176 | #define ECHOCTL 0001000 | ||
177 | #define ECHOPRT 0002000 | ||
178 | #define ECHOKE 0004000 | ||
179 | #define FLUSHO 0010000 | ||
180 | #define PENDIN 0040000 | ||
181 | #define IEXTEN 0100000 | ||
182 | |||
183 | |||
184 | /* tcflow() and TCXONC use these */ | ||
185 | #define TCOOFF 0 | ||
186 | #define TCOON 1 | ||
187 | #define TCIOFF 2 | ||
188 | #define TCION 3 | ||
189 | |||
190 | /* tcflush() and TCFLSH use these */ | ||
191 | #define TCIFLUSH 0 | ||
192 | #define TCOFLUSH 1 | ||
193 | #define TCIOFLUSH 2 | ||
194 | |||
195 | /* tcsetattr uses these */ | ||
196 | #define TCSANOW 0 | ||
197 | #define TCSADRAIN 1 | ||
198 | #define TCSAFLUSH 2 | ||
199 | |||
200 | #endif /* __V850_TERMBITS_H__ */ | ||
diff --git a/include/asm-v850/termios.h b/include/asm-v850/termios.h deleted file mode 100644 index fcd171838d9c..000000000000 --- a/include/asm-v850/termios.h +++ /dev/null | |||
@@ -1,90 +0,0 @@ | |||
1 | #ifndef __V850_TERMIOS_H__ | ||
2 | #define __V850_TERMIOS_H__ | ||
3 | |||
4 | #include <asm/termbits.h> | ||
5 | #include <asm/ioctls.h> | ||
6 | |||
7 | struct winsize { | ||
8 | unsigned short ws_row; | ||
9 | unsigned short ws_col; | ||
10 | unsigned short ws_xpixel; | ||
11 | unsigned short ws_ypixel; | ||
12 | }; | ||
13 | |||
14 | #define NCC 8 | ||
15 | struct termio { | ||
16 | unsigned short c_iflag; /* input mode flags */ | ||
17 | unsigned short c_oflag; /* output mode flags */ | ||
18 | unsigned short c_cflag; /* control mode flags */ | ||
19 | unsigned short c_lflag; /* local mode flags */ | ||
20 | unsigned char c_line; /* line discipline */ | ||
21 | unsigned char c_cc[NCC]; /* control characters */ | ||
22 | }; | ||
23 | |||
24 | /* modem lines */ | ||
25 | #define TIOCM_LE 0x001 | ||
26 | #define TIOCM_DTR 0x002 | ||
27 | #define TIOCM_RTS 0x004 | ||
28 | #define TIOCM_ST 0x008 | ||
29 | #define TIOCM_SR 0x010 | ||
30 | #define TIOCM_CTS 0x020 | ||
31 | #define TIOCM_CAR 0x040 | ||
32 | #define TIOCM_RNG 0x080 | ||
33 | #define TIOCM_DSR 0x100 | ||
34 | #define TIOCM_CD TIOCM_CAR | ||
35 | #define TIOCM_RI TIOCM_RNG | ||
36 | #define TIOCM_OUT1 0x2000 | ||
37 | #define TIOCM_OUT2 0x4000 | ||
38 | #define TIOCM_LOOP 0x8000 | ||
39 | |||
40 | /* ioctl (fd, TIOCSERGETLSR, &result) where result may be as below */ | ||
41 | |||
42 | #ifdef __KERNEL__ | ||
43 | |||
44 | /* intr=^C quit=^\ erase=del kill=^U | ||
45 | eof=^D vtime=\0 vmin=\1 sxtc=\0 | ||
46 | start=^Q stop=^S susp=^Z eol=\0 | ||
47 | reprint=^R discard=^U werase=^W lnext=^V | ||
48 | eol2=\0 | ||
49 | */ | ||
50 | #define INIT_C_CC "\003\034\177\025\004\0\1\0\021\023\032\0\022\017\027\026\0" | ||
51 | |||
52 | /* | ||
53 | * Translate a "termio" structure into a "termios". Ugh. | ||
54 | */ | ||
55 | #define SET_LOW_TERMIOS_BITS(termios, termio, x) { \ | ||
56 | unsigned short __tmp; \ | ||
57 | get_user(__tmp,&(termio)->x); \ | ||
58 | *(unsigned short *) &(termios)->x = __tmp; \ | ||
59 | } | ||
60 | |||
61 | #define user_termio_to_kernel_termios(termios, termio) \ | ||
62 | ({ \ | ||
63 | SET_LOW_TERMIOS_BITS(termios, termio, c_iflag); \ | ||
64 | SET_LOW_TERMIOS_BITS(termios, termio, c_oflag); \ | ||
65 | SET_LOW_TERMIOS_BITS(termios, termio, c_cflag); \ | ||
66 | SET_LOW_TERMIOS_BITS(termios, termio, c_lflag); \ | ||
67 | copy_from_user((termios)->c_cc, (termio)->c_cc, NCC); \ | ||
68 | }) | ||
69 | |||
70 | /* | ||
71 | * Translate a "termios" structure into a "termio". Ugh. | ||
72 | */ | ||
73 | #define kernel_termios_to_user_termio(termio, termios) \ | ||
74 | ({ \ | ||
75 | put_user((termios)->c_iflag, &(termio)->c_iflag); \ | ||
76 | put_user((termios)->c_oflag, &(termio)->c_oflag); \ | ||
77 | put_user((termios)->c_cflag, &(termio)->c_cflag); \ | ||
78 | put_user((termios)->c_lflag, &(termio)->c_lflag); \ | ||
79 | put_user((termios)->c_line, &(termio)->c_line); \ | ||
80 | copy_to_user((termio)->c_cc, (termios)->c_cc, NCC); \ | ||
81 | }) | ||
82 | |||
83 | #define user_termios_to_kernel_termios(k, u) copy_from_user(k, u, sizeof(struct termios2)) | ||
84 | #define kernel_termios_to_user_termios(u, k) copy_to_user(u, k, sizeof(struct termios2)) | ||
85 | #define user_termios_to_kernel_termios_1(k, u) copy_from_user(k, u, sizeof(struct termios)) | ||
86 | #define kernel_termios_to_user_termios_1(u, k) copy_to_user(u, k, sizeof(struct termios)) | ||
87 | |||
88 | #endif /* __KERNEL__ */ | ||
89 | |||
90 | #endif /* __V850_TERMIOS_H__ */ | ||
diff --git a/include/asm-v850/thread_info.h b/include/asm-v850/thread_info.h deleted file mode 100644 index 1a9e6ae0c5fd..000000000000 --- a/include/asm-v850/thread_info.h +++ /dev/null | |||
@@ -1,129 +0,0 @@ | |||
1 | /* | ||
2 | * include/asm-v850/thread_info.h -- v850 low-level thread information | ||
3 | * | ||
4 | * Copyright (C) 2002 NEC Corporation | ||
5 | * Copyright (C) 2002 Miles Bader <miles@gnu.org> | ||
6 | * Copyright (C) 2002 David Howells (dhowells@redhat.com) | ||
7 | * - Incorporating suggestions made by Linus Torvalds and Dave Miller | ||
8 | * | ||
9 | * This file is subject to the terms and conditions of the GNU General | ||
10 | * Public License. See the file COPYING in the main directory of this | ||
11 | * archive for more details. | ||
12 | * | ||
13 | * This file was derived from the PPC version, include/asm-ppc/thread_info.h | ||
14 | * which was adapted from the i386 version by Paul Mackerras | ||
15 | */ | ||
16 | |||
17 | #ifndef __V850_THREAD_INFO_H__ | ||
18 | #define __V850_THREAD_INFO_H__ | ||
19 | |||
20 | #ifdef __KERNEL__ | ||
21 | |||
22 | #ifndef __ASSEMBLY__ | ||
23 | |||
24 | /* | ||
25 | * low level task data. | ||
26 | * If you change this, change the TI_* offsets below to match. | ||
27 | */ | ||
28 | struct thread_info { | ||
29 | struct task_struct *task; /* main task structure */ | ||
30 | struct exec_domain *exec_domain; /* execution domain */ | ||
31 | unsigned long flags; /* low level flags */ | ||
32 | int cpu; /* cpu we're on */ | ||
33 | int preempt_count; /* 0 => preemptable, | ||
34 | <0 => BUG */ | ||
35 | struct restart_block restart_block; | ||
36 | }; | ||
37 | |||
38 | #define INIT_THREAD_INFO(tsk) \ | ||
39 | { \ | ||
40 | .task = &tsk, \ | ||
41 | .exec_domain = &default_exec_domain, \ | ||
42 | .flags = 0, \ | ||
43 | .cpu = 0, \ | ||
44 | .preempt_count = 1, \ | ||
45 | .restart_block = { \ | ||
46 | .fn = do_no_restart_syscall, \ | ||
47 | }, \ | ||
48 | } | ||
49 | |||
50 | #define init_thread_info (init_thread_union.thread_info) | ||
51 | #define init_stack (init_thread_union.stack) | ||
52 | |||
53 | /* | ||
54 | * macros/functions for gaining access to the thread information structure | ||
55 | */ | ||
56 | |||
57 | /* thread information allocation */ | ||
58 | #define alloc_thread_info(tsk) ((struct thread_info *) \ | ||
59 | __get_free_pages(GFP_KERNEL, 1)) | ||
60 | #define free_thread_info(ti) free_pages((unsigned long) (ti), 1) | ||
61 | |||
62 | #endif /* __ASSEMBLY__ */ | ||
63 | |||
64 | |||
65 | /* | ||
66 | * Offsets in thread_info structure, used in assembly code | ||
67 | */ | ||
68 | #define TI_TASK 0 | ||
69 | #define TI_EXECDOMAIN 4 | ||
70 | #define TI_FLAGS 8 | ||
71 | #define TI_CPU 12 | ||
72 | #define TI_PREEMPT 16 | ||
73 | |||
74 | #define PREEMPT_ACTIVE 0x4000000 | ||
75 | |||
76 | /* | ||
77 | * thread information flag bit numbers | ||
78 | */ | ||
79 | #define TIF_SYSCALL_TRACE 0 /* syscall trace active */ | ||
80 | #define TIF_SIGPENDING 1 /* signal pending */ | ||
81 | #define TIF_NEED_RESCHED 2 /* rescheduling necessary */ | ||
82 | #define TIF_POLLING_NRFLAG 3 /* true if poll_idle() is polling | ||
83 | TIF_NEED_RESCHED */ | ||
84 | #define TIF_MEMDIE 4 | ||
85 | |||
86 | /* as above, but as bit values */ | ||
87 | #define _TIF_SYSCALL_TRACE (1<<TIF_SYSCALL_TRACE) | ||
88 | #define _TIF_SIGPENDING (1<<TIF_SIGPENDING) | ||
89 | #define _TIF_NEED_RESCHED (1<<TIF_NEED_RESCHED) | ||
90 | #define _TIF_POLLING_NRFLAG (1<<TIF_POLLING_NRFLAG) | ||
91 | |||
92 | |||
93 | /* Size of kernel stack for each process. */ | ||
94 | #define THREAD_SIZE 0x2000 | ||
95 | |||
96 | /* The alignment of kernel threads, with thread_info structures at their | ||
97 | base. Thus, a pointer for a task's task structure can be derived from | ||
98 | its kernel stack pointer. */ | ||
99 | #define THREAD_ALIGNMENT THREAD_SIZE | ||
100 | #define THREAD_MASK (-THREAD_ALIGNMENT) | ||
101 | |||
102 | |||
103 | #ifdef __ASSEMBLY__ | ||
104 | |||
105 | /* Put a pointer to the current thread_info structure into REG. Note that | ||
106 | this definition requires THREAD_MASK to be representable as a signed | ||
107 | 16-bit value. */ | ||
108 | #define GET_CURRENT_THREAD(reg) \ | ||
109 | /* Use `addi' and then `and' instead of just `andi', because \ | ||
110 | `addi' sign-extends the immediate value, whereas `andi' \ | ||
111 | zero-extends it. */ \ | ||
112 | addi THREAD_MASK, r0, reg; \ | ||
113 | and sp, reg | ||
114 | |||
115 | #else | ||
116 | |||
117 | /* Return a pointer to the current thread_info structure. */ | ||
118 | static inline struct thread_info *current_thread_info (void) | ||
119 | { | ||
120 | register unsigned long sp __asm__ ("sp"); | ||
121 | return (struct thread_info *)(sp & THREAD_MASK); | ||
122 | } | ||
123 | |||
124 | #endif /* __ASSEMBLY__ */ | ||
125 | |||
126 | |||
127 | #endif /* __KERNEL__ */ | ||
128 | |||
129 | #endif /* __V850_THREAD_INFO_H__ */ | ||
diff --git a/include/asm-v850/timex.h b/include/asm-v850/timex.h deleted file mode 100644 index 6279e5a0ee8e..000000000000 --- a/include/asm-v850/timex.h +++ /dev/null | |||
@@ -1,18 +0,0 @@ | |||
1 | /* | ||
2 | * linux/include/asm-v850/timex.h | ||
3 | * | ||
4 | * v850 architecture timex specifications | ||
5 | */ | ||
6 | #ifndef __V850_TIMEX_H__ | ||
7 | #define __V850_TIMEX_H__ | ||
8 | |||
9 | #define CLOCK_TICK_RATE 1193180 /* Underlying HZ */ | ||
10 | |||
11 | typedef unsigned long cycles_t; | ||
12 | |||
13 | static inline cycles_t get_cycles(void) | ||
14 | { | ||
15 | return 0; | ||
16 | } | ||
17 | |||
18 | #endif /* __V850_TIMEX_H__ */ | ||
diff --git a/include/asm-v850/tlb.h b/include/asm-v850/tlb.h deleted file mode 100644 index 73bc9ead40dd..000000000000 --- a/include/asm-v850/tlb.h +++ /dev/null | |||
@@ -1,21 +0,0 @@ | |||
1 | /* | ||
2 | * include/asm-v850/tlb.h | ||
3 | * | ||
4 | * Copyright (C) 2002 NEC Corporation | ||
5 | * Copyright (C) 2002 Miles Bader <miles@gnu.org> | ||
6 | * | ||
7 | * This file is subject to the terms and conditions of the GNU General | ||
8 | * Public License. See the file COPYING in the main directory of this | ||
9 | * archive for more details. | ||
10 | * | ||
11 | * Written by Miles Bader <miles@gnu.org> | ||
12 | */ | ||
13 | |||
14 | #ifndef __V850_TLB_H__ | ||
15 | #define __V850_TLB_H__ | ||
16 | |||
17 | #define tlb_flush(tlb) ((void)0) | ||
18 | |||
19 | #include <asm-generic/tlb.h> | ||
20 | |||
21 | #endif /* __V850_TLB_H__ */ | ||
diff --git a/include/asm-v850/tlbflush.h b/include/asm-v850/tlbflush.h deleted file mode 100644 index c44aa64449c8..000000000000 --- a/include/asm-v850/tlbflush.h +++ /dev/null | |||
@@ -1,64 +0,0 @@ | |||
1 | /* | ||
2 | * include/asm-v850/tlbflush.h | ||
3 | * | ||
4 | * Copyright (C) 2001,02,03 NEC Electronics Corporation | ||
5 | * Copyright (C) 2001,02,03 Miles Bader <miles@gnu.org> | ||
6 | * | ||
7 | * This file is subject to the terms and conditions of the GNU General | ||
8 | * Public License. See the file COPYING in the main directory of this | ||
9 | * archive for more details. | ||
10 | * | ||
11 | * Written by Miles Bader <miles@gnu.org> | ||
12 | */ | ||
13 | |||
14 | #ifndef __V850_TLBFLUSH_H__ | ||
15 | #define __V850_TLBFLUSH_H__ | ||
16 | |||
17 | #include <asm/machdep.h> | ||
18 | |||
19 | |||
20 | /* | ||
21 | * flush all user-space atc entries. | ||
22 | */ | ||
23 | static inline void __flush_tlb(void) | ||
24 | { | ||
25 | BUG (); | ||
26 | } | ||
27 | |||
28 | static inline void __flush_tlb_one(unsigned long addr) | ||
29 | { | ||
30 | BUG (); | ||
31 | } | ||
32 | |||
33 | #define flush_tlb() __flush_tlb() | ||
34 | |||
35 | /* | ||
36 | * flush all atc entries (both kernel and user-space entries). | ||
37 | */ | ||
38 | static inline void flush_tlb_all(void) | ||
39 | { | ||
40 | BUG (); | ||
41 | } | ||
42 | |||
43 | static inline void flush_tlb_mm(struct mm_struct *mm) | ||
44 | { | ||
45 | BUG (); | ||
46 | } | ||
47 | |||
48 | static inline void flush_tlb_page(struct vm_area_struct *vma, unsigned long addr) | ||
49 | { | ||
50 | BUG (); | ||
51 | } | ||
52 | |||
53 | static inline void flush_tlb_range(struct vm_area_struct *vma, | ||
54 | unsigned long start, unsigned long end) | ||
55 | { | ||
56 | BUG (); | ||
57 | } | ||
58 | |||
59 | static inline void flush_tlb_kernel_page(unsigned long addr) | ||
60 | { | ||
61 | BUG (); | ||
62 | } | ||
63 | |||
64 | #endif /* __V850_TLBFLUSH_H__ */ | ||
diff --git a/include/asm-v850/topology.h b/include/asm-v850/topology.h deleted file mode 100644 index 6040e41d7945..000000000000 --- a/include/asm-v850/topology.h +++ /dev/null | |||
@@ -1,6 +0,0 @@ | |||
1 | #ifndef __V850_TOPOLOGY_H__ | ||
2 | #define __V850_TOPOLOGY_H__ | ||
3 | |||
4 | #include <asm-generic/topology.h> | ||
5 | |||
6 | #endif /* __V850_TOPOLOGY_H__ */ | ||
diff --git a/include/asm-v850/types.h b/include/asm-v850/types.h deleted file mode 100644 index 89f735ee41dd..000000000000 --- a/include/asm-v850/types.h +++ /dev/null | |||
@@ -1,36 +0,0 @@ | |||
1 | #ifndef __V850_TYPES_H__ | ||
2 | #define __V850_TYPES_H__ | ||
3 | |||
4 | #ifndef __ASSEMBLY__ | ||
5 | |||
6 | /* | ||
7 | * This file is never included by application software unless | ||
8 | * explicitly requested (e.g., via linux/types.h) in which case the | ||
9 | * application is Linux specific so (user-) name space pollution is | ||
10 | * not a major issue. However, for interoperability, libraries still | ||
11 | * need to be careful to avoid a name clashes. | ||
12 | */ | ||
13 | #include <asm-generic/int-ll64.h> | ||
14 | |||
15 | typedef unsigned short umode_t; | ||
16 | |||
17 | #endif /* !__ASSEMBLY__ */ | ||
18 | |||
19 | /* | ||
20 | * These aren't exported outside the kernel to avoid name space clashes | ||
21 | */ | ||
22 | #ifdef __KERNEL__ | ||
23 | |||
24 | #define BITS_PER_LONG 32 | ||
25 | |||
26 | #ifndef __ASSEMBLY__ | ||
27 | |||
28 | /* Dma addresses are 32-bits wide. */ | ||
29 | |||
30 | typedef u32 dma_addr_t; | ||
31 | |||
32 | #endif /* !__ASSEMBLY__ */ | ||
33 | |||
34 | #endif /* __KERNEL__ */ | ||
35 | |||
36 | #endif /* __V850_TYPES_H__ */ | ||
diff --git a/include/asm-v850/uaccess.h b/include/asm-v850/uaccess.h deleted file mode 100644 index 64563c409bb2..000000000000 --- a/include/asm-v850/uaccess.h +++ /dev/null | |||
@@ -1,159 +0,0 @@ | |||
1 | #ifndef __V850_UACCESS_H__ | ||
2 | #define __V850_UACCESS_H__ | ||
3 | |||
4 | /* | ||
5 | * User space memory access functions | ||
6 | */ | ||
7 | |||
8 | #include <linux/errno.h> | ||
9 | #include <linux/string.h> | ||
10 | |||
11 | #include <asm/segment.h> | ||
12 | #include <asm/machdep.h> | ||
13 | |||
14 | #define VERIFY_READ 0 | ||
15 | #define VERIFY_WRITE 1 | ||
16 | |||
17 | static inline int access_ok (int type, const void *addr, unsigned long size) | ||
18 | { | ||
19 | /* XXX I guess we should check against real ram bounds at least, and | ||
20 | possibly make sure ADDR is not within the kernel. | ||
21 | For now we just check to make sure it's not a small positive | ||
22 | or negative value, as that will at least catch some kinds of | ||
23 | error. In particular, we make sure that ADDR's not within the | ||
24 | interrupt vector area, which we know starts at zero, or within the | ||
25 | peripheral-I/O area, which is located just _before_ zero. */ | ||
26 | unsigned long val = (unsigned long)addr; | ||
27 | return val >= (0x80 + NUM_CPU_IRQS*16) && val < 0xFFFFF000; | ||
28 | } | ||
29 | |||
30 | /* | ||
31 | * The exception table consists of pairs of addresses: the first is the | ||
32 | * address of an instruction that is allowed to fault, and the second is | ||
33 | * the address at which the program should continue. No registers are | ||
34 | * modified, so it is entirely up to the continuation code to figure out | ||
35 | * what to do. | ||
36 | * | ||
37 | * All the routines below use bits of fixup code that are out of line | ||
38 | * with the main instruction path. This means when everything is well, | ||
39 | * we don't even have to jump over them. Further, they do not intrude | ||
40 | * on our cache or tlb entries. | ||
41 | */ | ||
42 | |||
43 | struct exception_table_entry | ||
44 | { | ||
45 | unsigned long insn, fixup; | ||
46 | }; | ||
47 | |||
48 | /* Returns 0 if exception not found and fixup otherwise. */ | ||
49 | extern unsigned long search_exception_table (unsigned long); | ||
50 | |||
51 | |||
52 | /* | ||
53 | * These are the main single-value transfer routines. They automatically | ||
54 | * use the right size if we just have the right pointer type. | ||
55 | */ | ||
56 | |||
57 | extern int bad_user_access_length (void); | ||
58 | |||
59 | #define __get_user(var, ptr) \ | ||
60 | ({ \ | ||
61 | int __gu_err = 0; \ | ||
62 | typeof(*(ptr)) __gu_val = 0; \ | ||
63 | switch (sizeof (*(ptr))) { \ | ||
64 | case 1: \ | ||
65 | case 2: \ | ||
66 | case 4: \ | ||
67 | __gu_val = *(ptr); \ | ||
68 | break; \ | ||
69 | case 8: \ | ||
70 | memcpy(&__gu_val, ptr, sizeof(__gu_val)); \ | ||
71 | break; \ | ||
72 | default: \ | ||
73 | __gu_val = 0; \ | ||
74 | __gu_err = __get_user_bad (); \ | ||
75 | break; \ | ||
76 | } \ | ||
77 | (var) = __gu_val; \ | ||
78 | __gu_err; \ | ||
79 | }) | ||
80 | #define __get_user_bad() (bad_user_access_length (), (-EFAULT)) | ||
81 | |||
82 | #define __put_user(var, ptr) \ | ||
83 | ({ \ | ||
84 | int __pu_err = 0; \ | ||
85 | switch (sizeof (*(ptr))) { \ | ||
86 | case 1: \ | ||
87 | case 2: \ | ||
88 | case 4: \ | ||
89 | *(ptr) = (var); \ | ||
90 | break; \ | ||
91 | case 8: { \ | ||
92 | typeof(*(ptr)) __pu_val = 0; \ | ||
93 | memcpy(ptr, &__pu_val, sizeof(__pu_val)); \ | ||
94 | } \ | ||
95 | break; \ | ||
96 | default: \ | ||
97 | __pu_err = __put_user_bad (); \ | ||
98 | break; \ | ||
99 | } \ | ||
100 | __pu_err; \ | ||
101 | }) | ||
102 | #define __put_user_bad() (bad_user_access_length (), (-EFAULT)) | ||
103 | |||
104 | #define put_user(x, ptr) __put_user(x, ptr) | ||
105 | #define get_user(x, ptr) __get_user(x, ptr) | ||
106 | |||
107 | #define __copy_from_user(to, from, n) (memcpy (to, from, n), 0) | ||
108 | #define __copy_to_user(to, from, n) (memcpy(to, from, n), 0) | ||
109 | |||
110 | #define __copy_to_user_inatomic __copy_to_user | ||
111 | #define __copy_from_user_inatomic __copy_from_user | ||
112 | |||
113 | #define copy_from_user(to, from, n) __copy_from_user (to, from, n) | ||
114 | #define copy_to_user(to, from, n) __copy_to_user(to, from, n) | ||
115 | |||
116 | #define copy_to_user_ret(to,from,n,retval) \ | ||
117 | ({ if (copy_to_user (to,from,n)) return retval; }) | ||
118 | |||
119 | #define copy_from_user_ret(to,from,n,retval) \ | ||
120 | ({ if (copy_from_user (to,from,n)) return retval; }) | ||
121 | |||
122 | /* | ||
123 | * Copy a null terminated string from userspace. | ||
124 | */ | ||
125 | |||
126 | static inline long | ||
127 | strncpy_from_user (char *dst, const char *src, long count) | ||
128 | { | ||
129 | char *tmp; | ||
130 | strncpy (dst, src, count); | ||
131 | for (tmp = dst; *tmp && count > 0; tmp++, count--) | ||
132 | ; | ||
133 | return tmp - dst; | ||
134 | } | ||
135 | |||
136 | /* | ||
137 | * Return the size of a string (including the ending 0) | ||
138 | * | ||
139 | * Return 0 on exception, a value greater than N if too long | ||
140 | */ | ||
141 | static inline long strnlen_user (const char *src, long n) | ||
142 | { | ||
143 | return strlen (src) + 1; | ||
144 | } | ||
145 | |||
146 | #define strlen_user(str) strnlen_user (str, 32767) | ||
147 | |||
148 | /* | ||
149 | * Zero Userspace | ||
150 | */ | ||
151 | |||
152 | static inline unsigned long | ||
153 | clear_user (void *to, unsigned long n) | ||
154 | { | ||
155 | memset (to, 0, n); | ||
156 | return 0; | ||
157 | } | ||
158 | |||
159 | #endif /* __V850_UACCESS_H__ */ | ||
diff --git a/include/asm-v850/ucontext.h b/include/asm-v850/ucontext.h deleted file mode 100644 index 303c21590cff..000000000000 --- a/include/asm-v850/ucontext.h +++ /dev/null | |||
@@ -1,14 +0,0 @@ | |||
1 | #ifndef __V850_UCONTEXT_H__ | ||
2 | #define __V850_UCONTEXT_H__ | ||
3 | |||
4 | #include <asm/sigcontext.h> | ||
5 | |||
6 | struct ucontext { | ||
7 | unsigned long uc_flags; | ||
8 | struct ucontext *uc_link; | ||
9 | stack_t uc_stack; | ||
10 | struct sigcontext uc_mcontext; | ||
11 | sigset_t uc_sigmask; /* mask last for extensibility */ | ||
12 | }; | ||
13 | |||
14 | #endif /* __V850_UCONTEXT_H__ */ | ||
diff --git a/include/asm-v850/unaligned.h b/include/asm-v850/unaligned.h deleted file mode 100644 index 53122b28491e..000000000000 --- a/include/asm-v850/unaligned.h +++ /dev/null | |||
@@ -1,22 +0,0 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2001 NEC Corporation | ||
3 | * Copyright (C) 2001 Miles Bader <miles@gnu.org> | ||
4 | * | ||
5 | * This file is subject to the terms and conditions of the GNU General | ||
6 | * Public License. See the file COPYING in the main directory of this | ||
7 | * archive for more details. | ||
8 | * | ||
9 | * Note that some v850 chips support unaligned access, but it seems too | ||
10 | * annoying to use. | ||
11 | */ | ||
12 | #ifndef _ASM_V850_UNALIGNED_H | ||
13 | #define _ASM_V850_UNALIGNED_H | ||
14 | |||
15 | #include <linux/unaligned/be_byteshift.h> | ||
16 | #include <linux/unaligned/le_byteshift.h> | ||
17 | #include <linux/unaligned/generic.h> | ||
18 | |||
19 | #define get_unaligned __get_unaligned_le | ||
20 | #define put_unaligned __put_unaligned_le | ||
21 | |||
22 | #endif /* _ASM_V850_UNALIGNED_H */ | ||
diff --git a/include/asm-v850/unistd.h b/include/asm-v850/unistd.h deleted file mode 100644 index 2241ed45ecfe..000000000000 --- a/include/asm-v850/unistd.h +++ /dev/null | |||
@@ -1,244 +0,0 @@ | |||
1 | /* | ||
2 | * include/asm-v850/unistd.h -- System call numbers and invocation mechanism | ||
3 | * | ||
4 | * Copyright (C) 2001,02,03,04 NEC Electronics Corporation | ||
5 | * Copyright (C) 2001,02,03,04 Miles Bader <miles@gnu.org> | ||
6 | * | ||
7 | * This file is subject to the terms and conditions of the GNU General | ||
8 | * Public License. See the file COPYING in the main directory of this | ||
9 | * archive for more details. | ||
10 | * | ||
11 | * Written by Miles Bader <miles@gnu.org> | ||
12 | */ | ||
13 | |||
14 | #ifndef __V850_UNISTD_H__ | ||
15 | #define __V850_UNISTD_H__ | ||
16 | |||
17 | #define __NR_restart_syscall 0 | ||
18 | #define __NR_exit 1 | ||
19 | #define __NR_fork 2 | ||
20 | #define __NR_read 3 | ||
21 | #define __NR_write 4 | ||
22 | #define __NR_open 5 | ||
23 | #define __NR_close 6 | ||
24 | #define __NR_waitpid 7 | ||
25 | #define __NR_creat 8 | ||
26 | #define __NR_link 9 | ||
27 | #define __NR_unlink 10 | ||
28 | #define __NR_execve 11 | ||
29 | #define __NR_chdir 12 | ||
30 | #define __NR_time 13 | ||
31 | #define __NR_mknod 14 | ||
32 | #define __NR_chmod 15 | ||
33 | #define __NR_chown 16 | ||
34 | #define __NR_break 17 | ||
35 | #define __NR_lseek 19 | ||
36 | #define __NR_getpid 20 | ||
37 | #define __NR_mount 21 | ||
38 | #define __NR_umount 22 | ||
39 | #define __NR_setuid 23 | ||
40 | #define __NR_getuid 24 | ||
41 | #define __NR_stime 25 | ||
42 | #define __NR_ptrace 26 | ||
43 | #define __NR_alarm 27 | ||
44 | #define __NR_pause 29 | ||
45 | #define __NR_utime 30 | ||
46 | #define __NR_stty 31 | ||
47 | #define __NR_gtty 32 | ||
48 | #define __NR_access 33 | ||
49 | #define __NR_nice 34 | ||
50 | #define __NR_ftime 35 | ||
51 | #define __NR_sync 36 | ||
52 | #define __NR_kill 37 | ||
53 | #define __NR_rename 38 | ||
54 | #define __NR_mkdir 39 | ||
55 | #define __NR_rmdir 40 | ||
56 | #define __NR_dup 41 | ||
57 | #define __NR_pipe 42 | ||
58 | #define __NR_times 43 | ||
59 | #define __NR_prof 44 | ||
60 | #define __NR_brk 45 | ||
61 | #define __NR_setgid 46 | ||
62 | #define __NR_getgid 47 | ||
63 | #define __NR_signal 48 | ||
64 | #define __NR_geteuid 49 | ||
65 | #define __NR_getegid 50 | ||
66 | #define __NR_acct 51 | ||
67 | #define __NR_umount2 52 | ||
68 | #define __NR_lock 53 | ||
69 | #define __NR_ioctl 54 | ||
70 | #define __NR_fcntl 55 | ||
71 | #define __NR_setpgid 57 | ||
72 | #define __NR_umask 60 | ||
73 | #define __NR_chroot 61 | ||
74 | #define __NR_ustat 62 | ||
75 | #define __NR_dup2 63 | ||
76 | #define __NR_getppid 64 | ||
77 | #define __NR_getpgrp 65 | ||
78 | #define __NR_setsid 66 | ||
79 | #define __NR_sigaction 67 | ||
80 | #define __NR_sgetmask 68 | ||
81 | #define __NR_ssetmask 69 | ||
82 | #define __NR_setreuid 70 | ||
83 | #define __NR_setregid 71 | ||
84 | #define __NR_sigsuspend 72 | ||
85 | #define __NR_sigpending 73 | ||
86 | #define __NR_sethostname 74 | ||
87 | #define __NR_setrlimit 75 | ||
88 | #define __NR_ugetrlimit 76 | ||
89 | #define __NR_getrusage 77 | ||
90 | #define __NR_gettimeofday 78 | ||
91 | #define __NR_settimeofday 79 | ||
92 | #define __NR_getgroups 80 | ||
93 | #define __NR_setgroups 81 | ||
94 | #define __NR_select 82 | ||
95 | #define __NR_symlink 83 | ||
96 | #define __NR_readlink 85 | ||
97 | #define __NR_uselib 86 | ||
98 | #define __NR_swapon 87 | ||
99 | #define __NR_reboot 88 | ||
100 | #define __NR_readdir 89 | ||
101 | #define __NR_mmap 90 | ||
102 | #define __NR_munmap 91 | ||
103 | #define __NR_truncate 92 | ||
104 | #define __NR_ftruncate 93 | ||
105 | #define __NR_fchmod 94 | ||
106 | #define __NR_fchown 95 | ||
107 | #define __NR_getpriority 96 | ||
108 | #define __NR_setpriority 97 | ||
109 | #define __NR_profil 98 | ||
110 | #define __NR_statfs 99 | ||
111 | #define __NR_fstatfs 100 | ||
112 | #define __NR_socketcall 102 | ||
113 | #define __NR_syslog 103 | ||
114 | #define __NR_setitimer 104 | ||
115 | #define __NR_getitimer 105 | ||
116 | #define __NR_stat 106 | ||
117 | #define __NR_lstat 107 | ||
118 | #define __NR_fstat 108 | ||
119 | #define __NR_vhangup 111 | ||
120 | #define __NR_wait4 114 | ||
121 | #define __NR_swapoff 115 | ||
122 | #define __NR_sysinfo 116 | ||
123 | #define __NR_ipc 117 | ||
124 | #define __NR_fsync 118 | ||
125 | #define __NR_sigreturn 119 | ||
126 | #define __NR_clone 120 | ||
127 | #define __NR_setdomainname 121 | ||
128 | #define __NR_uname 122 | ||
129 | #define __NR_cacheflush 123 | ||
130 | #define __NR_adjtimex 124 | ||
131 | #define __NR_mprotect 125 | ||
132 | #define __NR_sigprocmask 126 | ||
133 | #define __NR_create_module 127 | ||
134 | #define __NR_init_module 128 | ||
135 | #define __NR_delete_module 129 | ||
136 | #define __NR_get_kernel_syms 130 | ||
137 | #define __NR_quotactl 131 | ||
138 | #define __NR_getpgid 132 | ||
139 | #define __NR_fchdir 133 | ||
140 | #define __NR_bdflush 134 | ||
141 | #define __NR_sysfs 135 | ||
142 | #define __NR_personality 136 | ||
143 | #define __NR_afs_syscall 137 /* Syscall for Andrew File System */ | ||
144 | #define __NR_setfsuid 138 | ||
145 | #define __NR_setfsgid 139 | ||
146 | #define __NR__llseek 140 | ||
147 | #define __NR_getdents 141 | ||
148 | #define __NR_flock 143 | ||
149 | #define __NR_msync 144 | ||
150 | #define __NR_readv 145 | ||
151 | #define __NR_writev 146 | ||
152 | #define __NR_getsid 147 | ||
153 | #define __NR_fdatasync 148 | ||
154 | #define __NR__sysctl 149 | ||
155 | #define __NR_mlock 150 | ||
156 | #define __NR_munlock 151 | ||
157 | #define __NR_mlockall 152 | ||
158 | #define __NR_munlockall 153 | ||
159 | #define __NR_sched_setparam 154 | ||
160 | #define __NR_sched_getparam 155 | ||
161 | #define __NR_sched_setscheduler 156 | ||
162 | #define __NR_sched_getscheduler 157 | ||
163 | #define __NR_sched_yield 158 | ||
164 | #define __NR_sched_get_priority_max 159 | ||
165 | #define __NR_sched_get_priority_min 160 | ||
166 | #define __NR_sched_rr_get_interval 161 | ||
167 | #define __NR_nanosleep 162 | ||
168 | #define __NR_mremap 163 | ||
169 | #define __NR_setresuid 164 | ||
170 | #define __NR_getresuid 165 | ||
171 | #define __NR_query_module 167 | ||
172 | #define __NR_poll 168 | ||
173 | #define __NR_nfsservctl 169 | ||
174 | #define __NR_setresgid 170 | ||
175 | #define __NR_getresgid 171 | ||
176 | #define __NR_prctl 172 | ||
177 | #define __NR_rt_sigreturn 173 | ||
178 | #define __NR_rt_sigaction 174 | ||
179 | #define __NR_rt_sigprocmask 175 | ||
180 | #define __NR_rt_sigpending 176 | ||
181 | #define __NR_rt_sigtimedwait 177 | ||
182 | #define __NR_rt_sigqueueinfo 178 | ||
183 | #define __NR_rt_sigsuspend 179 | ||
184 | #define __NR_pread 180 | ||
185 | #define __NR_pwrite 181 | ||
186 | #define __NR_lchown 182 | ||
187 | #define __NR_getcwd 183 | ||
188 | #define __NR_capget 184 | ||
189 | #define __NR_capset 185 | ||
190 | #define __NR_sigaltstack 186 | ||
191 | #define __NR_sendfile 187 | ||
192 | #define __NR_getpmsg 188 /* some people actually want streams */ | ||
193 | #define __NR_putpmsg 189 /* some people actually want streams */ | ||
194 | #define __NR_vfork 190 | ||
195 | #define __NR_mmap2 192 | ||
196 | #define __NR_truncate64 193 | ||
197 | #define __NR_ftruncate64 194 | ||
198 | #define __NR_stat64 195 | ||
199 | #define __NR_lstat64 196 | ||
200 | #define __NR_fstat64 197 | ||
201 | #define __NR_fcntl64 198 | ||
202 | #define __NR_getdents64 199 | ||
203 | #define __NR_pivot_root 200 | ||
204 | #define __NR_gettid 201 | ||
205 | #define __NR_tkill 202 | ||
206 | |||
207 | #ifdef __KERNEL__ | ||
208 | |||
209 | #define __ARCH_WANT_IPC_PARSE_VERSION | ||
210 | #define __ARCH_WANT_OLD_READDIR | ||
211 | #define __ARCH_WANT_STAT64 | ||
212 | #define __ARCH_WANT_SYS_ALARM | ||
213 | #define __ARCH_WANT_SYS_GETHOSTNAME | ||
214 | #define __ARCH_WANT_SYS_PAUSE | ||
215 | #define __ARCH_WANT_SYS_SGETMASK | ||
216 | #define __ARCH_WANT_SYS_SIGNAL | ||
217 | #define __ARCH_WANT_SYS_TIME | ||
218 | #define __ARCH_WANT_SYS_UTIME | ||
219 | #define __ARCH_WANT_SYS_WAITPID | ||
220 | #define __ARCH_WANT_SYS_SOCKETCALL | ||
221 | #define __ARCH_WANT_SYS_FADVISE64 | ||
222 | #define __ARCH_WANT_SYS_GETPGRP | ||
223 | #define __ARCH_WANT_SYS_LLSEEK | ||
224 | #define __ARCH_WANT_SYS_NICE | ||
225 | #define __ARCH_WANT_SYS_OLDUMOUNT | ||
226 | #define __ARCH_WANT_SYS_SIGPENDING | ||
227 | #define __ARCH_WANT_SYS_SIGPROCMASK | ||
228 | #define __ARCH_WANT_SYS_RT_SIGACTION | ||
229 | |||
230 | /* | ||
231 | * "Conditional" syscalls | ||
232 | */ | ||
233 | #define cond_syscall(name) \ | ||
234 | asm (".weak\t" C_SYMBOL_STRING(name) ";" \ | ||
235 | ".set\t" C_SYMBOL_STRING(name) "," C_SYMBOL_STRING(sys_ni_syscall)) | ||
236 | #if 0 | ||
237 | /* This doesn't work if there's a function prototype for NAME visible, | ||
238 | because the argument types probably won't match. */ | ||
239 | #define cond_syscall(name) \ | ||
240 | void name (void) __attribute__ ((weak, alias ("sys_ni_syscall"))); | ||
241 | #endif | ||
242 | |||
243 | #endif /* __KERNEL__ */ | ||
244 | #endif /* __V850_UNISTD_H__ */ | ||
diff --git a/include/asm-v850/user.h b/include/asm-v850/user.h deleted file mode 100644 index 63cdc567d272..000000000000 --- a/include/asm-v850/user.h +++ /dev/null | |||
@@ -1,52 +0,0 @@ | |||
1 | #ifndef __V850_USER_H__ | ||
2 | #define __V850_USER_H__ | ||
3 | |||
4 | /* Adapted from <asm-ppc/user.h>. */ | ||
5 | |||
6 | #include <linux/ptrace.h> | ||
7 | #include <asm/page.h> | ||
8 | |||
9 | /* | ||
10 | * Core file format: The core file is written in such a way that gdb | ||
11 | * can understand it and provide useful information to the user (under | ||
12 | * linux we use the `trad-core' bfd, NOT the osf-core). The file contents | ||
13 | * are as follows: | ||
14 | * | ||
15 | * upage: 1 page consisting of a user struct that tells gdb | ||
16 | * what is present in the file. Directly after this is a | ||
17 | * copy of the task_struct, which is currently not used by gdb, | ||
18 | * but it may come in handy at some point. All of the registers | ||
19 | * are stored as part of the upage. The upage should always be | ||
20 | * only one page long. | ||
21 | * data: The data segment follows next. We use current->end_text to | ||
22 | * current->brk to pick up all of the user variables, plus any memory | ||
23 | * that may have been sbrk'ed. No attempt is made to determine if a | ||
24 | * page is demand-zero or if a page is totally unused, we just cover | ||
25 | * the entire range. All of the addresses are rounded in such a way | ||
26 | * that an integral number of pages is written. | ||
27 | * stack: We need the stack information in order to get a meaningful | ||
28 | * backtrace. We need to write the data from usp to | ||
29 | * current->start_stack, so we round each of these in order to be able | ||
30 | * to write an integer number of pages. | ||
31 | */ | ||
32 | struct user { | ||
33 | struct pt_regs regs; /* entire machine state */ | ||
34 | size_t u_tsize; /* text size (pages) */ | ||
35 | size_t u_dsize; /* data size (pages) */ | ||
36 | size_t u_ssize; /* stack size (pages) */ | ||
37 | unsigned long start_code; /* text starting address */ | ||
38 | unsigned long start_data; /* data starting address */ | ||
39 | unsigned long start_stack; /* stack starting address */ | ||
40 | long int signal; /* signal causing core dump */ | ||
41 | unsigned long u_ar0; /* help gdb find registers */ | ||
42 | unsigned long magic; /* identifies a core file */ | ||
43 | char u_comm[32]; /* user command name */ | ||
44 | }; | ||
45 | |||
46 | #define NBPG PAGE_SIZE | ||
47 | #define UPAGES 1 | ||
48 | #define HOST_TEXT_START_ADDR (u.start_code) | ||
49 | #define HOST_DATA_START_ADDR (u.start_data) | ||
50 | #define HOST_STACK_END_ADDR (u.start_stack + u.u_ssize * NBPG) | ||
51 | |||
52 | #endif /* __V850_USER_H__ */ | ||
diff --git a/include/asm-v850/v850e.h b/include/asm-v850/v850e.h deleted file mode 100644 index 5a222eb5117f..000000000000 --- a/include/asm-v850/v850e.h +++ /dev/null | |||
@@ -1,21 +0,0 @@ | |||
1 | /* | ||
2 | * include/asm-v850/v850e.h -- V850E CPU | ||
3 | * | ||
4 | * Copyright (C) 2001,02,03 NEC Electronics Corporation | ||
5 | * Copyright (C) 2001,02,03 Miles Bader <miles@gnu.org> | ||
6 | * | ||
7 | * This file is subject to the terms and conditions of the GNU General | ||
8 | * Public License. See the file COPYING in the main directory of this | ||
9 | * archive for more details. | ||
10 | * | ||
11 | * Written by Miles Bader <miles@gnu.org> | ||
12 | */ | ||
13 | |||
14 | #ifndef __V850_V850E_H__ | ||
15 | #define __V850_V850E_H__ | ||
16 | |||
17 | #include <asm/v850e_intc.h> | ||
18 | |||
19 | #define CPU_ARCH "v850e" | ||
20 | |||
21 | #endif /* __V850_V850E_H__ */ | ||
diff --git a/include/asm-v850/v850e2.h b/include/asm-v850/v850e2.h deleted file mode 100644 index 48680408ab7e..000000000000 --- a/include/asm-v850/v850e2.h +++ /dev/null | |||
@@ -1,69 +0,0 @@ | |||
1 | /* | ||
2 | * include/asm-v850/v850e2.h -- Machine-dependent defs for V850E2 CPUs | ||
3 | * | ||
4 | * Copyright (C) 2002,03 NEC Electronics Corporation | ||
5 | * Copyright (C) 2002,03 Miles Bader <miles@gnu.org> | ||
6 | * | ||
7 | * This file is subject to the terms and conditions of the GNU General | ||
8 | * Public License. See the file COPYING in the main directory of this | ||
9 | * archive for more details. | ||
10 | * | ||
11 | * Written by Miles Bader <miles@gnu.org> | ||
12 | */ | ||
13 | |||
14 | #ifndef __V850_V850E2_H__ | ||
15 | #define __V850_V850E2_H__ | ||
16 | |||
17 | #include <asm/v850e_intc.h> /* v850e-style interrupt system. */ | ||
18 | |||
19 | |||
20 | #define CPU_ARCH "v850e2" | ||
21 | |||
22 | |||
23 | /* Control registers. */ | ||
24 | |||
25 | /* Chip area select control */ | ||
26 | #define V850E2_CSC_ADDR(n) (0xFFFFF060 + (n) * 2) | ||
27 | #define V850E2_CSC(n) (*(volatile u16 *)V850E2_CSC_ADDR(n)) | ||
28 | /* I/O area select control */ | ||
29 | #define V850E2_BPC_ADDR 0xFFFFF064 | ||
30 | #define V850E2_BPC (*(volatile u16 *)V850E2_BPC_ADDR) | ||
31 | /* Bus size configuration */ | ||
32 | #define V850E2_BSC_ADDR 0xFFFFF066 | ||
33 | #define V850E2_BSC (*(volatile u16 *)V850E2_BSC_ADDR) | ||
34 | /* Endian configuration */ | ||
35 | #define V850E2_BEC_ADDR 0xFFFFF068 | ||
36 | #define V850E2_BEC (*(volatile u16 *)V850E2_BEC_ADDR) | ||
37 | /* Cache configuration */ | ||
38 | #define V850E2_BHC_ADDR 0xFFFFF06A | ||
39 | #define V850E2_BHC (*(volatile u16 *)V850E2_BHC_ADDR) | ||
40 | /* NPB strobe-wait configuration */ | ||
41 | #define V850E2_VSWC_ADDR 0xFFFFF06E | ||
42 | #define V850E2_VSWC (*(volatile u16 *)V850E2_VSWC_ADDR) | ||
43 | /* Bus cycle type */ | ||
44 | #define V850E2_BCT_ADDR(n) (0xFFFFF480 + (n) * 2) | ||
45 | #define V850E2_BCT(n) (*(volatile u16 *)V850E2_BCT_ADDR(n)) | ||
46 | /* Data wait control */ | ||
47 | #define V850E2_DWC_ADDR(n) (0xFFFFF484 + (n) * 2) | ||
48 | #define V850E2_DWC(n) (*(volatile u16 *)V850E2_DWC_ADDR(n)) | ||
49 | /* Bus cycle control */ | ||
50 | #define V850E2_BCC_ADDR 0xFFFFF488 | ||
51 | #define V850E2_BCC (*(volatile u16 *)V850E2_BCC_ADDR) | ||
52 | /* Address wait control */ | ||
53 | #define V850E2_ASC_ADDR 0xFFFFF48A | ||
54 | #define V850E2_ASC (*(volatile u16 *)V850E2_ASC_ADDR) | ||
55 | /* Local bus sizing control */ | ||
56 | #define V850E2_LBS_ADDR 0xFFFFF48E | ||
57 | #define V850E2_LBS (*(volatile u16 *)V850E2_LBS_ADDR) | ||
58 | /* Line buffer control */ | ||
59 | #define V850E2_LBC_ADDR(n) (0xFFFFF490 + (n) * 2) | ||
60 | #define V850E2_LBC(n) (*(volatile u16 *)V850E2_LBC_ADDR(n)) | ||
61 | /* SDRAM configuration */ | ||
62 | #define V850E2_SCR_ADDR(n) (0xFFFFF4A0 + (n) * 4) | ||
63 | #define V850E2_SCR(n) (*(volatile u16 *)V850E2_SCR_ADDR(n)) | ||
64 | /* SDRAM refresh cycle control */ | ||
65 | #define V850E2_RFS_ADDR(n) (0xFFFFF4A2 + (n) * 4) | ||
66 | #define V850E2_RFS(n) (*(volatile u16 *)V850E2_RFS_ADDR(n)) | ||
67 | |||
68 | |||
69 | #endif /* __V850_V850E2_H__ */ | ||
diff --git a/include/asm-v850/v850e2_cache.h b/include/asm-v850/v850e2_cache.h deleted file mode 100644 index 87edf0d311d5..000000000000 --- a/include/asm-v850/v850e2_cache.h +++ /dev/null | |||
@@ -1,75 +0,0 @@ | |||
1 | /* | ||
2 | * include/asm-v850/v850e2_cache_cache.h -- Cache control for V850E2 | ||
3 | * cache memories | ||
4 | * | ||
5 | * Copyright (C) 2003,05 NEC Electronics Corporation | ||
6 | * Copyright (C) 2003,05 Miles Bader <miles@gnu.org> | ||
7 | * | ||
8 | * This file is subject to the terms and conditions of the GNU General | ||
9 | * Public License. See the file COPYING in the main directory of this | ||
10 | * archive for more details. | ||
11 | * | ||
12 | * Written by Miles Bader <miles@gnu.org> | ||
13 | */ | ||
14 | |||
15 | #ifndef __V850_V850E2_CACHE_H__ | ||
16 | #define __V850_V850E2_CACHE_H__ | ||
17 | |||
18 | #include <asm/types.h> | ||
19 | |||
20 | |||
21 | /* Cache control registers. */ | ||
22 | |||
23 | /* Bus Transaction Control */ | ||
24 | #define V850E2_CACHE_BTSC_ADDR 0xFFFFF070 | ||
25 | #define V850E2_CACHE_BTSC (*(volatile u16 *)V850E2_CACHE_BTSC_ADDR) | ||
26 | #define V850E2_CACHE_BTSC_ICM 0x0001 /* icache enable */ | ||
27 | #define V850E2_CACHE_BTSC_DCM0 0x0004 /* dcache enable, bit 0 */ | ||
28 | #define V850E2_CACHE_BTSC_DCM1 0x0008 /* dcache enable, bit 1 */ | ||
29 | #define V850E2_CACHE_BTSC_DCM_WT /* write-through */ \ | ||
30 | V850E2_CACHE_BTSC_DCM0 | ||
31 | #ifdef CONFIG_V850E2_V850E2S | ||
32 | # define V850E2_CACHE_BTSC_DCM_WB_NO_ALLOC /* write-back, non-alloc */ \ | ||
33 | V850E2_CACHE_BTSC_DCM1 | ||
34 | # define V850E2_CACHE_BTSC_DCM_WB_ALLOC /* write-back, non-alloc */ \ | ||
35 | (V850E2_CACHE_BTSC_DCM1 | V850E2_CACHE_BTSC_DCM0) | ||
36 | # define V850E2_CACHE_BTSC_ISEQ 0x0010 /* icache `address sequence mode' */ | ||
37 | # define V850E2_CACHE_BTSC_DSEQ 0x0020 /* dcache `address sequence mode' */ | ||
38 | # define V850E2_CACHE_BTSC_IRFC 0x0030 | ||
39 | # define V850E2_CACHE_BTSC_ILCD 0x4000 | ||
40 | # define V850E2_CACHE_BTSC_VABE 0x8000 | ||
41 | #endif /* CONFIG_V850E2_V850E2S */ | ||
42 | |||
43 | /* Cache operation start address register (low-bits). */ | ||
44 | #define V850E2_CACHE_CADL_ADDR 0xFFFFF074 | ||
45 | #define V850E2_CACHE_CADL (*(volatile u16 *)V850E2_CACHE_CADL_ADDR) | ||
46 | /* Cache operation start address register (high-bits). */ | ||
47 | #define V850E2_CACHE_CADH_ADDR 0xFFFFF076 | ||
48 | #define V850E2_CACHE_CADH (*(volatile u16 *)V850E2_CACHE_CADH_ADDR) | ||
49 | /* Cache operation count register. */ | ||
50 | #define V850E2_CACHE_CCNT_ADDR 0xFFFFF078 | ||
51 | #define V850E2_CACHE_CCNT (*(volatile u16 *)V850E2_CACHE_CCNT_ADDR) | ||
52 | /* Cache operation specification register. */ | ||
53 | #define V850E2_CACHE_COPR_ADDR 0xFFFFF07A | ||
54 | #define V850E2_CACHE_COPR (*(volatile u16 *)V850E2_CACHE_COPR_ADDR) | ||
55 | #define V850E2_CACHE_COPR_STRT 0x0001 /* start cache operation */ | ||
56 | #define V850E2_CACHE_COPR_LBSL 0x0100 /* 0 = icache, 1 = dcache */ | ||
57 | #define V850E2_CACHE_COPR_WSLE 0x0200 /* operate on cache way */ | ||
58 | #define V850E2_CACHE_COPR_WSL(way) ((way) * 0x0400) /* way select */ | ||
59 | #define V850E2_CACHE_COPR_CFC(op) ((op) * 0x1000) /* cache function code */ | ||
60 | |||
61 | |||
62 | /* Size of a cache line in bytes. */ | ||
63 | #define V850E2_CACHE_LINE_SIZE_BITS 4 | ||
64 | #define V850E2_CACHE_LINE_SIZE (1 << V850E2_CACHE_LINE_SIZE_BITS) | ||
65 | |||
66 | /* The size of each cache `way' in lines. */ | ||
67 | #define V850E2_CACHE_WAY_SIZE 256 | ||
68 | |||
69 | |||
70 | /* For <asm/cache.h> */ | ||
71 | #define L1_CACHE_BYTES V850E2_CACHE_LINE_SIZE | ||
72 | #define L1_CACHE_SHIFT V850E2_CACHE_LINE_SIZE_BITS | ||
73 | |||
74 | |||
75 | #endif /* __V850_V850E2_CACHE_H__ */ | ||
diff --git a/include/asm-v850/v850e_cache.h b/include/asm-v850/v850e_cache.h deleted file mode 100644 index aa7d7eb9da50..000000000000 --- a/include/asm-v850/v850e_cache.h +++ /dev/null | |||
@@ -1,48 +0,0 @@ | |||
1 | /* | ||
2 | * include/asm-v850/v850e_cache.h -- Cache control for V850E cache memories | ||
3 | * | ||
4 | * Copyright (C) 2001,03 NEC Electronics Corporation | ||
5 | * Copyright (C) 2001,03 Miles Bader <miles@gnu.org> | ||
6 | * | ||
7 | * This file is subject to the terms and conditions of the GNU General | ||
8 | * Public License. See the file COPYING in the main directory of this | ||
9 | * archive for more details. | ||
10 | * | ||
11 | * Written by Miles Bader <miles@gnu.org> | ||
12 | */ | ||
13 | |||
14 | /* This file implements cache control for the rather simple cache used on | ||
15 | some V850E CPUs, specifically the NB85E/TEG CPU-core and the V850E/ME2 | ||
16 | CPU. V850E2 processors have their own (better) cache | ||
17 | implementation. */ | ||
18 | |||
19 | #ifndef __V850_V850E_CACHE_H__ | ||
20 | #define __V850_V850E_CACHE_H__ | ||
21 | |||
22 | #include <asm/types.h> | ||
23 | |||
24 | |||
25 | /* Cache control registers. */ | ||
26 | #define V850E_CACHE_BHC_ADDR 0xFFFFF06A | ||
27 | #define V850E_CACHE_BHC (*(volatile u16 *)V850E_CACHE_BHC_ADDR) | ||
28 | #define V850E_CACHE_ICC_ADDR 0xFFFFF070 | ||
29 | #define V850E_CACHE_ICC (*(volatile u16 *)V850E_CACHE_ICC_ADDR) | ||
30 | #define V850E_CACHE_ISI_ADDR 0xFFFFF072 | ||
31 | #define V850E_CACHE_ISI (*(volatile u16 *)V850E_CACHE_ISI_ADDR) | ||
32 | #define V850E_CACHE_DCC_ADDR 0xFFFFF078 | ||
33 | #define V850E_CACHE_DCC (*(volatile u16 *)V850E_CACHE_DCC_ADDR) | ||
34 | |||
35 | /* Size of a cache line in bytes. */ | ||
36 | #define V850E_CACHE_LINE_SIZE 16 | ||
37 | |||
38 | /* For <asm/cache.h> */ | ||
39 | #define L1_CACHE_BYTES V850E_CACHE_LINE_SIZE | ||
40 | |||
41 | |||
42 | #if defined(__KERNEL__) && !defined(__ASSEMBLY__) | ||
43 | /* Set caching params via the BHC, ICC, and DCC registers. */ | ||
44 | void v850e_cache_enable (u16 bhc, u16 icc, u16 dcc); | ||
45 | #endif /* __KERNEL__ && !__ASSEMBLY__ */ | ||
46 | |||
47 | |||
48 | #endif /* __V850_V850E_CACHE_H__ */ | ||
diff --git a/include/asm-v850/v850e_intc.h b/include/asm-v850/v850e_intc.h deleted file mode 100644 index 6fdf95708317..000000000000 --- a/include/asm-v850/v850e_intc.h +++ /dev/null | |||
@@ -1,133 +0,0 @@ | |||
1 | /* | ||
2 | * include/asm-v850/v850e_intc.h -- V850E CPU interrupt controller (INTC) | ||
3 | * | ||
4 | * Copyright (C) 2001,02,03 NEC Electronics Corporation | ||
5 | * Copyright (C) 2001,02,03 Miles Bader <miles@gnu.org> | ||
6 | * | ||
7 | * This file is subject to the terms and conditions of the GNU General | ||
8 | * Public License. See the file COPYING in the main directory of this | ||
9 | * archive for more details. | ||
10 | * | ||
11 | * Written by Miles Bader <miles@gnu.org> | ||
12 | */ | ||
13 | |||
14 | #ifndef __V850_V850E_INTC_H__ | ||
15 | #define __V850_V850E_INTC_H__ | ||
16 | |||
17 | |||
18 | /* There are 4 16-bit `Interrupt Mask Registers' located contiguously | ||
19 | starting from this base. Each interrupt uses a single bit to | ||
20 | indicated enabled/disabled status. */ | ||
21 | #define V850E_INTC_IMR_BASE_ADDR 0xFFFFF100 | ||
22 | #define V850E_INTC_IMR_ADDR(irq) (V850E_INTC_IMR_BASE_ADDR + ((irq) >> 3)) | ||
23 | #define V850E_INTC_IMR_BIT(irq) ((irq) & 0x7) | ||
24 | |||
25 | /* Each maskable interrupt has a single-byte control register at this | ||
26 | address. */ | ||
27 | #define V850E_INTC_IC_BASE_ADDR 0xFFFFF110 | ||
28 | #define V850E_INTC_IC_ADDR(irq) (V850E_INTC_IC_BASE_ADDR + ((irq) << 1)) | ||
29 | #define V850E_INTC_IC(irq) (*(volatile u8 *)V850E_INTC_IC_ADDR(irq)) | ||
30 | /* Encode priority PR for storing in an interrupt control register. */ | ||
31 | #define V850E_INTC_IC_PR(pr) (pr) | ||
32 | /* Interrupt disable bit in an interrupt control register. */ | ||
33 | #define V850E_INTC_IC_MK_BIT 6 | ||
34 | #define V850E_INTC_IC_MK (1 << V850E_INTC_IC_MK_BIT) | ||
35 | /* Interrupt pending flag in an interrupt control register. */ | ||
36 | #define V850E_INTC_IC_IF_BIT 7 | ||
37 | #define V850E_INTC_IC_IF (1 << V850E_INTC_IC_IF_BIT) | ||
38 | |||
39 | /* The ISPR (In-service priority register) contains one bit for each interrupt | ||
40 | priority level, which is set to one when that level is currently being | ||
41 | serviced (and thus blocking any interrupts of equal or lesser level). */ | ||
42 | #define V850E_INTC_ISPR_ADDR 0xFFFFF1FA | ||
43 | #define V850E_INTC_ISPR (*(volatile u8 *)V850E_INTC_ISPR_ADDR) | ||
44 | |||
45 | |||
46 | #ifndef __ASSEMBLY__ | ||
47 | |||
48 | /* Enable interrupt handling for interrupt IRQ. */ | ||
49 | static inline void v850e_intc_enable_irq (unsigned irq) | ||
50 | { | ||
51 | __asm__ __volatile__ ("clr1 %0, [%1]" | ||
52 | :: "r" (V850E_INTC_IMR_BIT (irq)), | ||
53 | "r" (V850E_INTC_IMR_ADDR (irq)) | ||
54 | : "memory"); | ||
55 | } | ||
56 | |||
57 | /* Disable interrupt handling for interrupt IRQ. Note that any | ||
58 | interrupts received while disabled will be delivered once the | ||
59 | interrupt is enabled again, unless they are explicitly cleared using | ||
60 | `v850e_intc_clear_pending_irq'. */ | ||
61 | static inline void v850e_intc_disable_irq (unsigned irq) | ||
62 | { | ||
63 | __asm__ __volatile__ ("set1 %0, [%1]" | ||
64 | :: "r" (V850E_INTC_IMR_BIT (irq)), | ||
65 | "r" (V850E_INTC_IMR_ADDR (irq)) | ||
66 | : "memory"); | ||
67 | } | ||
68 | |||
69 | /* Return true if interrupt handling for interrupt IRQ is enabled. */ | ||
70 | static inline int v850e_intc_irq_enabled (unsigned irq) | ||
71 | { | ||
72 | int rval; | ||
73 | __asm__ __volatile__ ("tst1 %1, [%2]; setf z, %0" | ||
74 | : "=r" (rval) | ||
75 | : "r" (V850E_INTC_IMR_BIT (irq)), | ||
76 | "r" (V850E_INTC_IMR_ADDR (irq))); | ||
77 | return rval; | ||
78 | } | ||
79 | |||
80 | /* Disable irqs from 0 until LIMIT. LIMIT must be a multiple of 8. */ | ||
81 | static inline void _v850e_intc_disable_irqs (unsigned limit) | ||
82 | { | ||
83 | unsigned long addr; | ||
84 | for (addr = V850E_INTC_IMR_BASE_ADDR; limit >= 8; addr++, limit -= 8) | ||
85 | *(char *)addr = 0xFF; | ||
86 | } | ||
87 | |||
88 | /* Disable all irqs. This is purposely a macro, because NUM_MACH_IRQS | ||
89 | will be only be defined later. */ | ||
90 | #define v850e_intc_disable_irqs() _v850e_intc_disable_irqs (NUM_MACH_IRQS) | ||
91 | |||
92 | /* Clear any pending interrupts for IRQ. */ | ||
93 | static inline void v850e_intc_clear_pending_irq (unsigned irq) | ||
94 | { | ||
95 | __asm__ __volatile__ ("clr1 %0, 0[%1]" | ||
96 | :: "i" (V850E_INTC_IC_IF_BIT), | ||
97 | "r" (V850E_INTC_IC_ADDR (irq)) | ||
98 | : "memory"); | ||
99 | } | ||
100 | |||
101 | /* Return true if interrupt IRQ is pending (but disabled). */ | ||
102 | static inline int v850e_intc_irq_pending (unsigned irq) | ||
103 | { | ||
104 | int rval; | ||
105 | __asm__ __volatile__ ("tst1 %1, 0[%2]; setf nz, %0" | ||
106 | : "=r" (rval) | ||
107 | : "i" (V850E_INTC_IC_IF_BIT), | ||
108 | "r" (V850E_INTC_IC_ADDR (irq))); | ||
109 | return rval; | ||
110 | } | ||
111 | |||
112 | |||
113 | struct v850e_intc_irq_init { | ||
114 | const char *name; /* name of interrupt type */ | ||
115 | |||
116 | /* Range of kernel irq numbers for this type: | ||
117 | BASE, BASE+INTERVAL, ..., BASE+INTERVAL*NUM */ | ||
118 | unsigned base, num, interval; | ||
119 | |||
120 | unsigned priority; /* interrupt priority to assign */ | ||
121 | }; | ||
122 | struct hw_interrupt_type; /* fwd decl */ | ||
123 | |||
124 | /* Initialize HW_IRQ_TYPES for INTC-controlled irqs described in array | ||
125 | INITS (which is terminated by an entry with the name field == 0). */ | ||
126 | extern void v850e_intc_init_irq_types (struct v850e_intc_irq_init *inits, | ||
127 | struct hw_interrupt_type *hw_irq_types); | ||
128 | |||
129 | |||
130 | #endif /* !__ASSEMBLY__ */ | ||
131 | |||
132 | |||
133 | #endif /* __V850_V850E_INTC_H__ */ | ||
diff --git a/include/asm-v850/v850e_timer_c.h b/include/asm-v850/v850e_timer_c.h deleted file mode 100644 index f70575df6ea9..000000000000 --- a/include/asm-v850/v850e_timer_c.h +++ /dev/null | |||
@@ -1,48 +0,0 @@ | |||
1 | /* | ||
2 | * include/asm-v850/v850e_timer_c.h -- `Timer C' component often used | ||
3 | * with the V850E cpu core | ||
4 | * | ||
5 | * Copyright (C) 2001,03 NEC Electronics Corporation | ||
6 | * Copyright (C) 2001,03 Miles Bader <miles@gnu.org> | ||
7 | * | ||
8 | * This file is subject to the terms and conditions of the GNU General | ||
9 | * Public License. See the file COPYING in the main directory of this | ||
10 | * archive for more details. | ||
11 | * | ||
12 | * Written by Miles Bader <miles@gnu.org> | ||
13 | */ | ||
14 | |||
15 | /* NOTE: this include file currently contains only enough to allow us to | ||
16 | use timer C as an interrupt pass-through. */ | ||
17 | |||
18 | #ifndef __V850_V850E_TIMER_C_H__ | ||
19 | #define __V850_V850E_TIMER_C_H__ | ||
20 | |||
21 | #include <asm/types.h> | ||
22 | #include <asm/machdep.h> /* Pick up chip-specific defs. */ | ||
23 | |||
24 | |||
25 | /* Timer C (16-bit interval timers). */ | ||
26 | |||
27 | /* Control register 0 for timer C. */ | ||
28 | #define V850E_TIMER_C_TMCC0_ADDR(n) (V850E_TIMER_C_BASE_ADDR + 0x6 + 0x10 *(n)) | ||
29 | #define V850E_TIMER_C_TMCC0(n) (*(volatile u8 *)V850E_TIMER_C_TMCC0_ADDR(n)) | ||
30 | #define V850E_TIMER_C_TMCC0_CAE 0x01 /* clock action enable */ | ||
31 | #define V850E_TIMER_C_TMCC0_CE 0x02 /* count enable */ | ||
32 | /* ... */ | ||
33 | |||
34 | /* Control register 1 for timer C. */ | ||
35 | #define V850E_TIMER_C_TMCC1_ADDR(n) (V850E_TIMER_C_BASE_ADDR + 0x8 + 0x10 *(n)) | ||
36 | #define V850E_TIMER_C_TMCC1(n) (*(volatile u8 *)V850E_TIMER_C_TMCC1_ADDR(n)) | ||
37 | #define V850E_TIMER_C_TMCC1_CMS0 0x01 /* capture/compare mode select (ccc0) */ | ||
38 | #define V850E_TIMER_C_TMCC1_CMS1 0x02 /* capture/compare mode select (ccc1) */ | ||
39 | /* ... */ | ||
40 | |||
41 | /* Interrupt edge-sensitivity control for timer C. */ | ||
42 | #define V850E_TIMER_C_SESC_ADDR(n) (V850E_TIMER_C_BASE_ADDR + 0x9 + 0x10 *(n)) | ||
43 | #define V850E_TIMER_C_SESC(n) (*(volatile u8 *)V850E_TIMER_C_SESC_ADDR(n)) | ||
44 | |||
45 | /* ...etc... */ | ||
46 | |||
47 | |||
48 | #endif /* __V850_V850E_TIMER_C_H__ */ | ||
diff --git a/include/asm-v850/v850e_timer_d.h b/include/asm-v850/v850e_timer_d.h deleted file mode 100644 index 417612c5b22f..000000000000 --- a/include/asm-v850/v850e_timer_d.h +++ /dev/null | |||
@@ -1,62 +0,0 @@ | |||
1 | /* | ||
2 | * include/asm-v850/v850e_timer_d.h -- `Timer D' component often used | ||
3 | * with the V850E cpu core | ||
4 | * | ||
5 | * Copyright (C) 2001,02,03 NEC Electronics Corporation | ||
6 | * Copyright (C) 2001,02,03 Miles Bader <miles@gnu.org> | ||
7 | * | ||
8 | * This file is subject to the terms and conditions of the GNU General | ||
9 | * Public License. See the file COPYING in the main directory of this | ||
10 | * archive for more details. | ||
11 | * | ||
12 | * Written by Miles Bader <miles@gnu.org> | ||
13 | */ | ||
14 | |||
15 | #ifndef __V850_V850E_TIMER_D_H__ | ||
16 | #define __V850_V850E_TIMER_D_H__ | ||
17 | |||
18 | #include <asm/types.h> | ||
19 | #include <asm/machdep.h> /* Pick up chip-specific defs. */ | ||
20 | |||
21 | |||
22 | /* Timer D (16-bit interval timers). */ | ||
23 | |||
24 | /* Count registers for timer D. */ | ||
25 | #define V850E_TIMER_D_TMD_ADDR(n) (V850E_TIMER_D_TMD_BASE_ADDR + 0x10 * (n)) | ||
26 | #define V850E_TIMER_D_TMD(n) (*(volatile u16 *)V850E_TIMER_D_TMD_ADDR(n)) | ||
27 | |||
28 | /* Count compare registers for timer D. */ | ||
29 | #define V850E_TIMER_D_CMD_ADDR(n) (V850E_TIMER_D_CMD_BASE_ADDR + 0x10 * (n)) | ||
30 | #define V850E_TIMER_D_CMD(n) (*(volatile u16 *)V850E_TIMER_D_CMD_ADDR(n)) | ||
31 | |||
32 | /* Control registers for timer D. */ | ||
33 | #define V850E_TIMER_D_TMCD_ADDR(n) (V850E_TIMER_D_TMCD_BASE_ADDR + 0x10 * (n)) | ||
34 | #define V850E_TIMER_D_TMCD(n) (*(volatile u8 *)V850E_TIMER_D_TMCD_ADDR(n)) | ||
35 | /* Control bits for timer D. */ | ||
36 | #define V850E_TIMER_D_TMCD_CE 0x2 /* count enable */ | ||
37 | #define V850E_TIMER_D_TMCD_CAE 0x1 /* clock action enable */ | ||
38 | /* Clock divider setting (log2). */ | ||
39 | #define V850E_TIMER_D_TMCD_CS(divlog2) (((divlog2) - V850E_TIMER_D_TMCD_CS_MIN) << 4) | ||
40 | /* Minimum clock divider setting (log2). */ | ||
41 | #ifndef V850E_TIMER_D_TMCD_CS_MIN /* Can be overridden by mach-specific hdrs */ | ||
42 | #define V850E_TIMER_D_TMCD_CS_MIN 2 /* Default is correct for the v850e/ma1 */ | ||
43 | #endif | ||
44 | /* Maximum clock divider setting (log2). */ | ||
45 | #define V850E_TIMER_D_TMCD_CS_MAX (V850E_TIMER_D_TMCD_CS_MIN + 7) | ||
46 | |||
47 | /* Return the clock-divider (log2) of timer D unit N. */ | ||
48 | #define V850E_TIMER_D_DIVLOG2(n) \ | ||
49 | (((V850E_TIMER_D_TMCD(n) >> 4) & 0x7) + V850E_TIMER_D_TMCD_CS_MIN) | ||
50 | |||
51 | |||
52 | #ifndef __ASSEMBLY__ | ||
53 | |||
54 | /* Start interval timer TIMER (0-3). The timer will issue the | ||
55 | corresponding INTCMD interrupt RATE times per second. This function | ||
56 | does not enable the interrupt. */ | ||
57 | extern void v850e_timer_d_configure (unsigned timer, unsigned rate); | ||
58 | |||
59 | #endif /* !__ASSEMBLY__ */ | ||
60 | |||
61 | |||
62 | #endif /* __V850_V850E_TIMER_D_H__ */ | ||
diff --git a/include/asm-v850/v850e_uart.h b/include/asm-v850/v850e_uart.h deleted file mode 100644 index 5182fb4cc989..000000000000 --- a/include/asm-v850/v850e_uart.h +++ /dev/null | |||
@@ -1,76 +0,0 @@ | |||
1 | /* | ||
2 | * include/asm-v850/v850e_uart.h -- common V850E on-chip UART driver | ||
3 | * | ||
4 | * Copyright (C) 2001,02,03 NEC Electronics Corporation | ||
5 | * Copyright (C) 2001,02,03 Miles Bader <miles@gnu.org> | ||
6 | * | ||
7 | * This file is subject to the terms and conditions of the GNU General | ||
8 | * Public License. See the file COPYING in the main directory of this | ||
9 | * archive for more details. | ||
10 | * | ||
11 | * Written by Miles Bader <miles@gnu.org> | ||
12 | */ | ||
13 | |||
14 | /* There's not actually a single UART implementation used by V850E CPUs, | ||
15 | but rather a series of implementations that are all `close' to one | ||
16 | another. This file corresponds to the single driver which handles all | ||
17 | of them. */ | ||
18 | |||
19 | #ifndef __V850_V850E_UART_H__ | ||
20 | #define __V850_V850E_UART_H__ | ||
21 | |||
22 | #include <linux/termios.h> | ||
23 | |||
24 | #include <asm/v850e_utils.h> | ||
25 | #include <asm/types.h> | ||
26 | #include <asm/machdep.h> /* Pick up chip-specific defs. */ | ||
27 | |||
28 | |||
29 | /* Include model-specific definitions. */ | ||
30 | #ifdef CONFIG_V850E_UART | ||
31 | # ifdef CONFIG_V850E_UARTB | ||
32 | # include <asm-v850/v850e_uartb.h> | ||
33 | # else | ||
34 | # include <asm-v850/v850e_uarta.h> /* original V850E UART */ | ||
35 | # endif | ||
36 | #endif | ||
37 | |||
38 | |||
39 | /* Optional capabilities some hardware provides. */ | ||
40 | |||
41 | /* This UART doesn't implement RTS/CTS by default, but some platforms | ||
42 | implement them externally, so check to see if <asm/machdep.h> defined | ||
43 | anything. */ | ||
44 | #ifdef V850E_UART_CTS | ||
45 | #define v850e_uart_cts(n) V850E_UART_CTS(n) | ||
46 | #else | ||
47 | #define v850e_uart_cts(n) (1) | ||
48 | #endif | ||
49 | |||
50 | /* Do the same for RTS. */ | ||
51 | #ifdef V850E_UART_SET_RTS | ||
52 | #define v850e_uart_set_rts(n,v) V850E_UART_SET_RTS(n,v) | ||
53 | #else | ||
54 | #define v850e_uart_set_rts(n,v) ((void)0) | ||
55 | #endif | ||
56 | |||
57 | |||
58 | /* This is the serial channel to use for the boot console (if desired). */ | ||
59 | #ifndef V850E_UART_CONSOLE_CHANNEL | ||
60 | # define V850E_UART_CONSOLE_CHANNEL 0 | ||
61 | #endif | ||
62 | |||
63 | |||
64 | #ifndef __ASSEMBLY__ | ||
65 | |||
66 | /* Setup a console using channel 0 of the builtin uart. */ | ||
67 | extern void v850e_uart_cons_init (unsigned chan); | ||
68 | |||
69 | /* Configure and turn on uart channel CHAN, using the termios `control | ||
70 | modes' bits in CFLAGS, and a baud-rate of BAUD. */ | ||
71 | void v850e_uart_configure (unsigned chan, unsigned cflags, unsigned baud); | ||
72 | |||
73 | #endif /* !__ASSEMBLY__ */ | ||
74 | |||
75 | |||
76 | #endif /* __V850_V850E_UART_H__ */ | ||
diff --git a/include/asm-v850/v850e_uarta.h b/include/asm-v850/v850e_uarta.h deleted file mode 100644 index e483e0950725..000000000000 --- a/include/asm-v850/v850e_uarta.h +++ /dev/null | |||
@@ -1,278 +0,0 @@ | |||
1 | /* | ||
2 | * include/asm-v850/v850e_uarta.h -- original V850E on-chip UART | ||
3 | * | ||
4 | * Copyright (C) 2001,02,03 NEC Electronics Corporation | ||
5 | * Copyright (C) 2001,02,03 Miles Bader <miles@gnu.org> | ||
6 | * | ||
7 | * This file is subject to the terms and conditions of the GNU General | ||
8 | * Public License. See the file COPYING in the main directory of this | ||
9 | * archive for more details. | ||
10 | * | ||
11 | * Written by Miles Bader <miles@gnu.org> | ||
12 | */ | ||
13 | |||
14 | /* This is the original V850E UART implementation is called just `UART' in | ||
15 | the docs, but we name this header file <asm/v850e_uarta.h> because the | ||
16 | name <asm/v850e_uart.h> is used for the common driver that handles both | ||
17 | `UART' and `UARTB' implementations. */ | ||
18 | |||
19 | #ifndef __V850_V850E_UARTA_H__ | ||
20 | #define __V850_V850E_UARTA_H__ | ||
21 | |||
22 | |||
23 | /* Raw hardware interface. */ | ||
24 | |||
25 | /* The base address of the UART control registers for channel N. | ||
26 | The default is the address used on the V850E/MA1. */ | ||
27 | #ifndef V850E_UART_BASE_ADDR | ||
28 | #define V850E_UART_BASE_ADDR(n) (0xFFFFFA00 + 0x10 * (n)) | ||
29 | #endif | ||
30 | |||
31 | /* Addresses of specific UART control registers for channel N. | ||
32 | The defaults are the addresses used on the V850E/MA1; if a platform | ||
33 | wants to redefine any of these, it must redefine them all. */ | ||
34 | #ifndef V850E_UART_ASIM_ADDR | ||
35 | #define V850E_UART_ASIM_ADDR(n) (V850E_UART_BASE_ADDR(n) + 0x0) | ||
36 | #define V850E_UART_RXB_ADDR(n) (V850E_UART_BASE_ADDR(n) + 0x2) | ||
37 | #define V850E_UART_ASIS_ADDR(n) (V850E_UART_BASE_ADDR(n) + 0x3) | ||
38 | #define V850E_UART_TXB_ADDR(n) (V850E_UART_BASE_ADDR(n) + 0x4) | ||
39 | #define V850E_UART_ASIF_ADDR(n) (V850E_UART_BASE_ADDR(n) + 0x5) | ||
40 | #define V850E_UART_CKSR_ADDR(n) (V850E_UART_BASE_ADDR(n) + 0x6) | ||
41 | #define V850E_UART_BRGC_ADDR(n) (V850E_UART_BASE_ADDR(n) + 0x7) | ||
42 | #endif | ||
43 | |||
44 | /* UART config registers. */ | ||
45 | #define V850E_UART_ASIM(n) (*(volatile u8 *)V850E_UART_ASIM_ADDR(n)) | ||
46 | /* Control bits for config registers. */ | ||
47 | #define V850E_UART_ASIM_CAE 0x80 /* clock enable */ | ||
48 | #define V850E_UART_ASIM_TXE 0x40 /* transmit enable */ | ||
49 | #define V850E_UART_ASIM_RXE 0x20 /* receive enable */ | ||
50 | #define V850E_UART_ASIM_PS_MASK 0x18 /* mask covering parity-select bits */ | ||
51 | #define V850E_UART_ASIM_PS_NONE 0x00 /* no parity */ | ||
52 | #define V850E_UART_ASIM_PS_ZERO 0x08 /* zero parity */ | ||
53 | #define V850E_UART_ASIM_PS_ODD 0x10 /* odd parity */ | ||
54 | #define V850E_UART_ASIM_PS_EVEN 0x18 /* even parity */ | ||
55 | #define V850E_UART_ASIM_CL_8 0x04 /* char len is 8 bits (otherwise, 7) */ | ||
56 | #define V850E_UART_ASIM_SL_2 0x02 /* 2 stop bits (otherwise, 1) */ | ||
57 | #define V850E_UART_ASIM_ISRM 0x01 /* generate INTSR interrupt on errors | ||
58 | (otherwise, generate INTSER) */ | ||
59 | |||
60 | /* UART serial interface status registers. */ | ||
61 | #define V850E_UART_ASIS(n) (*(volatile u8 *)V850E_UART_ASIS_ADDR(n)) | ||
62 | /* Control bits for status registers. */ | ||
63 | #define V850E_UART_ASIS_PE 0x04 /* parity error */ | ||
64 | #define V850E_UART_ASIS_FE 0x02 /* framing error */ | ||
65 | #define V850E_UART_ASIS_OVE 0x01 /* overrun error */ | ||
66 | |||
67 | /* UART serial interface transmission status registers. */ | ||
68 | #define V850E_UART_ASIF(n) (*(volatile u8 *)V850E_UART_ASIF_ADDR(n)) | ||
69 | #define V850E_UART_ASIF_TXBF 0x02 /* transmit buffer flag (data in TXB) */ | ||
70 | #define V850E_UART_ASIF_TXSF 0x01 /* transmit shift flag (sending data) */ | ||
71 | |||
72 | /* UART receive buffer register. */ | ||
73 | #define V850E_UART_RXB(n) (*(volatile u8 *)V850E_UART_RXB_ADDR(n)) | ||
74 | |||
75 | /* UART transmit buffer register. */ | ||
76 | #define V850E_UART_TXB(n) (*(volatile u8 *)V850E_UART_TXB_ADDR(n)) | ||
77 | |||
78 | /* UART baud-rate generator control registers. */ | ||
79 | #define V850E_UART_CKSR(n) (*(volatile u8 *)V850E_UART_CKSR_ADDR(n)) | ||
80 | #define V850E_UART_CKSR_MAX 11 | ||
81 | #define V850E_UART_BRGC(n) (*(volatile u8 *)V850E_UART_BRGC_ADDR(n)) | ||
82 | #define V850E_UART_BRGC_MIN 8 | ||
83 | |||
84 | |||
85 | #ifndef V850E_UART_CKSR_MAX_FREQ | ||
86 | #define V850E_UART_CKSR_MAX_FREQ (25*1000*1000) | ||
87 | #endif | ||
88 | |||
89 | /* Calculate the minimum value for CKSR on this processor. */ | ||
90 | static inline unsigned v850e_uart_cksr_min (void) | ||
91 | { | ||
92 | int min = 0; | ||
93 | unsigned freq = V850E_UART_BASE_FREQ; | ||
94 | while (freq > V850E_UART_CKSR_MAX_FREQ) { | ||
95 | freq >>= 1; | ||
96 | min++; | ||
97 | } | ||
98 | return min; | ||
99 | } | ||
100 | |||
101 | |||
102 | /* Slightly abstract interface used by driver. */ | ||
103 | |||
104 | |||
105 | /* Interrupts used by the UART. */ | ||
106 | |||
107 | /* Received when the most recently transmitted character has been sent. */ | ||
108 | #define V850E_UART_TX_IRQ(chan) IRQ_INTST (chan) | ||
109 | /* Received when a new character has been received. */ | ||
110 | #define V850E_UART_RX_IRQ(chan) IRQ_INTSR (chan) | ||
111 | |||
112 | |||
113 | /* UART clock generator interface. */ | ||
114 | |||
115 | /* This type encapsulates a particular uart frequency. */ | ||
116 | typedef struct { | ||
117 | unsigned clk_divlog2; | ||
118 | unsigned brgen_count; | ||
119 | } v850e_uart_speed_t; | ||
120 | |||
121 | /* Calculate a uart speed from BAUD for this uart. */ | ||
122 | static inline v850e_uart_speed_t v850e_uart_calc_speed (unsigned baud) | ||
123 | { | ||
124 | v850e_uart_speed_t speed; | ||
125 | |||
126 | /* Calculate the log2 clock divider and baud-rate counter values | ||
127 | (note that the UART divides the resulting clock by 2, so | ||
128 | multiply BAUD by 2 here to compensate). */ | ||
129 | calc_counter_params (V850E_UART_BASE_FREQ, baud * 2, | ||
130 | v850e_uart_cksr_min(), | ||
131 | V850E_UART_CKSR_MAX, 8/*bits*/, | ||
132 | &speed.clk_divlog2, &speed.brgen_count); | ||
133 | |||
134 | return speed; | ||
135 | } | ||
136 | |||
137 | /* Return the current speed of uart channel CHAN. */ | ||
138 | static inline v850e_uart_speed_t v850e_uart_speed (unsigned chan) | ||
139 | { | ||
140 | v850e_uart_speed_t speed; | ||
141 | speed.clk_divlog2 = V850E_UART_CKSR (chan); | ||
142 | speed.brgen_count = V850E_UART_BRGC (chan); | ||
143 | return speed; | ||
144 | } | ||
145 | |||
146 | /* Set the current speed of uart channel CHAN. */ | ||
147 | static inline void v850e_uart_set_speed(unsigned chan,v850e_uart_speed_t speed) | ||
148 | { | ||
149 | V850E_UART_CKSR (chan) = speed.clk_divlog2; | ||
150 | V850E_UART_BRGC (chan) = speed.brgen_count; | ||
151 | } | ||
152 | |||
153 | static inline int | ||
154 | v850e_uart_speed_eq (v850e_uart_speed_t speed1, v850e_uart_speed_t speed2) | ||
155 | { | ||
156 | return speed1.clk_divlog2 == speed2.clk_divlog2 | ||
157 | && speed1.brgen_count == speed2.brgen_count; | ||
158 | } | ||
159 | |||
160 | /* Minimum baud rate possible. */ | ||
161 | #define v850e_uart_min_baud() \ | ||
162 | ((V850E_UART_BASE_FREQ >> V850E_UART_CKSR_MAX) / (2 * 255) + 1) | ||
163 | |||
164 | /* Maximum baud rate possible. The error is quite high at max, though. */ | ||
165 | #define v850e_uart_max_baud() \ | ||
166 | ((V850E_UART_BASE_FREQ >> v850e_uart_cksr_min()) / (2 *V850E_UART_BRGC_MIN)) | ||
167 | |||
168 | /* The `maximum' clock rate the uart can used, which is wanted (though not | ||
169 | really used in any useful way) by the serial framework. */ | ||
170 | #define v850e_uart_max_clock() \ | ||
171 | ((V850E_UART_BASE_FREQ >> v850e_uart_cksr_min()) / 2) | ||
172 | |||
173 | |||
174 | /* UART configuration interface. */ | ||
175 | |||
176 | /* Type of the uart config register; must be a scalar. */ | ||
177 | typedef u16 v850e_uart_config_t; | ||
178 | |||
179 | /* The uart hardware config register for channel CHAN. */ | ||
180 | #define V850E_UART_CONFIG(chan) V850E_UART_ASIM (chan) | ||
181 | |||
182 | /* This config bit set if the uart is enabled. */ | ||
183 | #define V850E_UART_CONFIG_ENABLED V850E_UART_ASIM_CAE | ||
184 | /* If the uart _isn't_ enabled, store this value to it to do so. */ | ||
185 | #define V850E_UART_CONFIG_INIT V850E_UART_ASIM_CAE | ||
186 | /* Store this config value to disable the uart channel completely. */ | ||
187 | #define V850E_UART_CONFIG_FINI 0 | ||
188 | |||
189 | /* Setting/clearing these bits enable/disable TX/RX, respectively (but | ||
190 | otherwise generally leave things running). */ | ||
191 | #define V850E_UART_CONFIG_RX_ENABLE V850E_UART_ASIM_RXE | ||
192 | #define V850E_UART_CONFIG_TX_ENABLE V850E_UART_ASIM_TXE | ||
193 | |||
194 | /* These masks define which config bits affect TX/RX modes, respectively. */ | ||
195 | #define V850E_UART_CONFIG_RX_BITS \ | ||
196 | (V850E_UART_ASIM_PS_MASK | V850E_UART_ASIM_CL_8 | V850E_UART_ASIM_ISRM) | ||
197 | #define V850E_UART_CONFIG_TX_BITS \ | ||
198 | (V850E_UART_ASIM_PS_MASK | V850E_UART_ASIM_CL_8 | V850E_UART_ASIM_SL_2) | ||
199 | |||
200 | static inline v850e_uart_config_t v850e_uart_calc_config (unsigned cflags) | ||
201 | { | ||
202 | v850e_uart_config_t config = 0; | ||
203 | |||
204 | /* Figure out new configuration of control register. */ | ||
205 | if (cflags & CSTOPB) | ||
206 | /* Number of stop bits, 1 or 2. */ | ||
207 | config |= V850E_UART_ASIM_SL_2; | ||
208 | if ((cflags & CSIZE) == CS8) | ||
209 | /* Number of data bits, 7 or 8. */ | ||
210 | config |= V850E_UART_ASIM_CL_8; | ||
211 | if (! (cflags & PARENB)) | ||
212 | /* No parity check/generation. */ | ||
213 | config |= V850E_UART_ASIM_PS_NONE; | ||
214 | else if (cflags & PARODD) | ||
215 | /* Odd parity check/generation. */ | ||
216 | config |= V850E_UART_ASIM_PS_ODD; | ||
217 | else | ||
218 | /* Even parity check/generation. */ | ||
219 | config |= V850E_UART_ASIM_PS_EVEN; | ||
220 | if (cflags & CREAD) | ||
221 | /* Reading enabled. */ | ||
222 | config |= V850E_UART_ASIM_RXE; | ||
223 | |||
224 | config |= V850E_UART_ASIM_CAE; | ||
225 | config |= V850E_UART_ASIM_TXE; /* Writing is always enabled. */ | ||
226 | config |= V850E_UART_ASIM_ISRM; /* Errors generate a read-irq. */ | ||
227 | |||
228 | return config; | ||
229 | } | ||
230 | |||
231 | /* This should delay as long as necessary for a recently written config | ||
232 | setting to settle, before we turn the uart back on. */ | ||
233 | static inline void | ||
234 | v850e_uart_config_delay (v850e_uart_config_t config, v850e_uart_speed_t speed) | ||
235 | { | ||
236 | /* The UART may not be reset properly unless we wait at least 2 | ||
237 | `basic-clocks' until turning on the TXE/RXE bits again. | ||
238 | A `basic clock' is the clock used by the baud-rate generator, | ||
239 | i.e., the cpu clock divided by the 2^new_clk_divlog2. | ||
240 | The loop takes 2 insns, so loop CYCLES / 2 times. */ | ||
241 | register unsigned count = 1 << speed.clk_divlog2; | ||
242 | while (--count != 0) | ||
243 | /* nothing */; | ||
244 | } | ||
245 | |||
246 | |||
247 | /* RX/TX interface. */ | ||
248 | |||
249 | /* Return true if all characters awaiting transmission on uart channel N | ||
250 | have been transmitted. */ | ||
251 | #define v850e_uart_xmit_done(n) \ | ||
252 | (! (V850E_UART_ASIF(n) & V850E_UART_ASIF_TXBF)) | ||
253 | /* Wait for this to be true. */ | ||
254 | #define v850e_uart_wait_for_xmit_done(n) \ | ||
255 | do { } while (! v850e_uart_xmit_done (n)) | ||
256 | |||
257 | /* Return true if uart channel N is ready to transmit a character. */ | ||
258 | #define v850e_uart_xmit_ok(n) \ | ||
259 | (v850e_uart_xmit_done(n) && v850e_uart_cts(n)) | ||
260 | /* Wait for this to be true. */ | ||
261 | #define v850e_uart_wait_for_xmit_ok(n) \ | ||
262 | do { } while (! v850e_uart_xmit_ok (n)) | ||
263 | |||
264 | /* Write character CH to uart channel CHAN. */ | ||
265 | #define v850e_uart_putc(chan, ch) (V850E_UART_TXB(chan) = (ch)) | ||
266 | |||
267 | /* Return latest character read on channel CHAN. */ | ||
268 | #define v850e_uart_getc(chan) V850E_UART_RXB (chan) | ||
269 | |||
270 | /* Return bit-mask of uart error status. */ | ||
271 | #define v850e_uart_err(chan) V850E_UART_ASIS (chan) | ||
272 | /* Various error bits set in the error result. */ | ||
273 | #define V850E_UART_ERR_OVERRUN V850E_UART_ASIS_OVE | ||
274 | #define V850E_UART_ERR_FRAME V850E_UART_ASIS_FE | ||
275 | #define V850E_UART_ERR_PARITY V850E_UART_ASIS_PE | ||
276 | |||
277 | |||
278 | #endif /* __V850_V850E_UARTA_H__ */ | ||
diff --git a/include/asm-v850/v850e_uartb.h b/include/asm-v850/v850e_uartb.h deleted file mode 100644 index 6d4767d5a835..000000000000 --- a/include/asm-v850/v850e_uartb.h +++ /dev/null | |||
@@ -1,262 +0,0 @@ | |||
1 | /* | ||
2 | * include/asm-v850/v850e_uartb.h -- V850E on-chip `UARTB' UART | ||
3 | * | ||
4 | * Copyright (C) 2001,02,03 NEC Electronics Corporation | ||
5 | * Copyright (C) 2001,02,03 Miles Bader <miles@gnu.org> | ||
6 | * | ||
7 | * This file is subject to the terms and conditions of the GNU General | ||
8 | * Public License. See the file COPYING in the main directory of this | ||
9 | * archive for more details. | ||
10 | * | ||
11 | * Written by Miles Bader <miles@gnu.org> | ||
12 | */ | ||
13 | |||
14 | /* The V850E UARTB is basically a superset of the original V850E UART, but | ||
15 | even where it's the same, the names and details have changed a bit. | ||
16 | It's similar enough to use the same driver (v850e_uart.c), but the | ||
17 | details have been abstracted slightly to do so. */ | ||
18 | |||
19 | #ifndef __V850_V850E_UARTB_H__ | ||
20 | #define __V850_V850E_UARTB_H__ | ||
21 | |||
22 | |||
23 | /* Raw hardware interface. */ | ||
24 | |||
25 | #define V850E_UARTB_BASE_ADDR(n) (0xFFFFFA00 + 0x10 * (n)) | ||
26 | |||
27 | /* Addresses of specific UART control registers for channel N. */ | ||
28 | #define V850E_UARTB_CTL0_ADDR(n) (V850E_UARTB_BASE_ADDR(n) + 0x0) | ||
29 | #define V850E_UARTB_CTL2_ADDR(n) (V850E_UARTB_BASE_ADDR(n) + 0x2) | ||
30 | #define V850E_UARTB_STR_ADDR(n) (V850E_UARTB_BASE_ADDR(n) + 0x4) | ||
31 | #define V850E_UARTB_RX_ADDR(n) (V850E_UARTB_BASE_ADDR(n) + 0x6) | ||
32 | #define V850E_UARTB_RXAP_ADDR(n) (V850E_UARTB_BASE_ADDR(n) + 0x6) | ||
33 | #define V850E_UARTB_TX_ADDR(n) (V850E_UARTB_BASE_ADDR(n) + 0x8) | ||
34 | #define V850E_UARTB_FIC0_ADDR(n) (V850E_UARTB_BASE_ADDR(n) + 0xA) | ||
35 | #define V850E_UARTB_FIC1_ADDR(n) (V850E_UARTB_BASE_ADDR(n) + 0xB) | ||
36 | #define V850E_UARTB_FIC2_ADDR(n) (V850E_UARTB_BASE_ADDR(n) + 0xC) | ||
37 | #define V850E_UARTB_FIS0_ADDR(n) (V850E_UARTB_BASE_ADDR(n) + 0xE) | ||
38 | #define V850E_UARTB_FIS1_ADDR(n) (V850E_UARTB_BASE_ADDR(n) + 0xF) | ||
39 | |||
40 | /* UARTB control register 0 (general config). */ | ||
41 | #define V850E_UARTB_CTL0(n) (*(volatile u8 *)V850E_UARTB_CTL0_ADDR(n)) | ||
42 | /* Control bits for config registers. */ | ||
43 | #define V850E_UARTB_CTL0_PWR 0x80 /* clock enable */ | ||
44 | #define V850E_UARTB_CTL0_TXE 0x40 /* transmit enable */ | ||
45 | #define V850E_UARTB_CTL0_RXE 0x20 /* receive enable */ | ||
46 | #define V850E_UARTB_CTL0_DIR 0x10 /* */ | ||
47 | #define V850E_UARTB_CTL0_PS1 0x08 /* parity */ | ||
48 | #define V850E_UARTB_CTL0_PS0 0x04 /* parity */ | ||
49 | #define V850E_UARTB_CTL0_CL 0x02 /* char len 1:8bit, 0:7bit */ | ||
50 | #define V850E_UARTB_CTL0_SL 0x01 /* stop bit 1:2bit, 0:1bit */ | ||
51 | #define V850E_UARTB_CTL0_PS_MASK 0x0C /* mask covering parity bits */ | ||
52 | #define V850E_UARTB_CTL0_PS_NONE 0x00 /* no parity */ | ||
53 | #define V850E_UARTB_CTL0_PS_ZERO 0x04 /* zero parity */ | ||
54 | #define V850E_UARTB_CTL0_PS_ODD 0x08 /* odd parity */ | ||
55 | #define V850E_UARTB_CTL0_PS_EVEN 0x0C /* even parity */ | ||
56 | #define V850E_UARTB_CTL0_CL_8 0x02 /* char len 1:8bit, 0:7bit */ | ||
57 | #define V850E_UARTB_CTL0_SL_2 0x01 /* stop bit 1:2bit, 0:1bit */ | ||
58 | |||
59 | /* UARTB control register 2 (clock divider). */ | ||
60 | #define V850E_UARTB_CTL2(n) (*(volatile u16 *)V850E_UARTB_CTL2_ADDR(n)) | ||
61 | #define V850E_UARTB_CTL2_MIN 4 | ||
62 | #define V850E_UARTB_CTL2_MAX 0xFFFF | ||
63 | |||
64 | /* UARTB serial interface status register. */ | ||
65 | #define V850E_UARTB_STR(n) (*(volatile u8 *)V850E_UARTB_STR_ADDR(n)) | ||
66 | /* Control bits for status registers. */ | ||
67 | #define V850E_UARTB_STR_TSF 0x80 /* UBTX or FIFO exist data */ | ||
68 | #define V850E_UARTB_STR_OVF 0x08 /* overflow error */ | ||
69 | #define V850E_UARTB_STR_PE 0x04 /* parity error */ | ||
70 | #define V850E_UARTB_STR_FE 0x02 /* framing error */ | ||
71 | #define V850E_UARTB_STR_OVE 0x01 /* overrun error */ | ||
72 | |||
73 | /* UARTB receive data register. */ | ||
74 | #define V850E_UARTB_RX(n) (*(volatile u8 *)V850E_UARTB_RX_ADDR(n)) | ||
75 | #define V850E_UARTB_RXAP(n) (*(volatile u16 *)V850E_UARTB_RXAP_ADDR(n)) | ||
76 | /* Control bits for status registers. */ | ||
77 | #define V850E_UARTB_RXAP_PEF 0x0200 /* parity error */ | ||
78 | #define V850E_UARTB_RXAP_FEF 0x0100 /* framing error */ | ||
79 | |||
80 | /* UARTB transmit data register. */ | ||
81 | #define V850E_UARTB_TX(n) (*(volatile u8 *)V850E_UARTB_TX_ADDR(n)) | ||
82 | |||
83 | /* UARTB FIFO control register 0. */ | ||
84 | #define V850E_UARTB_FIC0(n) (*(volatile u8 *)V850E_UARTB_FIC0_ADDR(n)) | ||
85 | |||
86 | /* UARTB FIFO control register 1. */ | ||
87 | #define V850E_UARTB_FIC1(n) (*(volatile u8 *)V850E_UARTB_FIC1_ADDR(n)) | ||
88 | |||
89 | /* UARTB FIFO control register 2. */ | ||
90 | #define V850E_UARTB_FIC2(n) (*(volatile u16 *)V850E_UARTB_FIC2_ADDR(n)) | ||
91 | |||
92 | /* UARTB FIFO status register 0. */ | ||
93 | #define V850E_UARTB_FIS0(n) (*(volatile u8 *)V850E_UARTB_FIS0_ADDR(n)) | ||
94 | |||
95 | /* UARTB FIFO status register 1. */ | ||
96 | #define V850E_UARTB_FIS1(n) (*(volatile u8 *)V850E_UARTB_FIS1_ADDR(n)) | ||
97 | |||
98 | |||
99 | /* Slightly abstract interface used by driver. */ | ||
100 | |||
101 | |||
102 | /* Interrupts used by the UART. */ | ||
103 | |||
104 | /* Received when the most recently transmitted character has been sent. */ | ||
105 | #define V850E_UART_TX_IRQ(chan) IRQ_INTUBTIT (chan) | ||
106 | /* Received when a new character has been received. */ | ||
107 | #define V850E_UART_RX_IRQ(chan) IRQ_INTUBTIR (chan) | ||
108 | |||
109 | /* Use by serial driver for information purposes. */ | ||
110 | #define V850E_UART_BASE_ADDR(chan) V850E_UARTB_BASE_ADDR(chan) | ||
111 | |||
112 | |||
113 | /* UART clock generator interface. */ | ||
114 | |||
115 | /* This type encapsulates a particular uart frequency. */ | ||
116 | typedef u16 v850e_uart_speed_t; | ||
117 | |||
118 | /* Calculate a uart speed from BAUD for this uart. */ | ||
119 | static inline v850e_uart_speed_t v850e_uart_calc_speed (unsigned baud) | ||
120 | { | ||
121 | v850e_uart_speed_t speed; | ||
122 | |||
123 | /* | ||
124 | * V850E/ME2 UARTB baud rate is determined by the value of UBCTL2 | ||
125 | * fx = V850E_UARTB_BASE_FREQ = CPU_CLOCK_FREQ/4 | ||
126 | * baud = fx / 2*speed [ speed >= 4 ] | ||
127 | */ | ||
128 | speed = V850E_UARTB_CTL2_MIN; | ||
129 | while (((V850E_UARTB_BASE_FREQ / 2) / speed ) > baud) | ||
130 | speed++; | ||
131 | |||
132 | return speed; | ||
133 | } | ||
134 | |||
135 | /* Return the current speed of uart channel CHAN. */ | ||
136 | #define v850e_uart_speed(chan) V850E_UARTB_CTL2 (chan) | ||
137 | |||
138 | /* Set the current speed of uart channel CHAN. */ | ||
139 | #define v850e_uart_set_speed(chan, speed) (V850E_UARTB_CTL2 (chan) = (speed)) | ||
140 | |||
141 | /* Return true if SPEED1 and SPEED2 are the same. */ | ||
142 | #define v850e_uart_speed_eq(speed1, speed2) ((speed1) == (speed2)) | ||
143 | |||
144 | /* Minimum baud rate possible. */ | ||
145 | #define v850e_uart_min_baud() \ | ||
146 | ((V850E_UARTB_BASE_FREQ / 2) / V850E_UARTB_CTL2_MAX) | ||
147 | |||
148 | /* Maximum baud rate possible. The error is quite high at max, though. */ | ||
149 | #define v850e_uart_max_baud() \ | ||
150 | ((V850E_UARTB_BASE_FREQ / 2) / V850E_UARTB_CTL2_MIN) | ||
151 | |||
152 | /* The `maximum' clock rate the uart can used, which is wanted (though not | ||
153 | really used in any useful way) by the serial framework. */ | ||
154 | #define v850e_uart_max_clock() \ | ||
155 | (V850E_UARTB_BASE_FREQ / 2) | ||
156 | |||
157 | |||
158 | /* UART configuration interface. */ | ||
159 | |||
160 | /* Type of the uart config register; must be a scalar. */ | ||
161 | typedef u16 v850e_uart_config_t; | ||
162 | |||
163 | /* The uart hardware config register for channel CHAN. */ | ||
164 | #define V850E_UART_CONFIG(chan) V850E_UARTB_CTL0 (chan) | ||
165 | |||
166 | /* This config bit set if the uart is enabled. */ | ||
167 | #define V850E_UART_CONFIG_ENABLED V850E_UARTB_CTL0_PWR | ||
168 | /* If the uart _isn't_ enabled, store this value to it to do so. */ | ||
169 | #define V850E_UART_CONFIG_INIT V850E_UARTB_CTL0_PWR | ||
170 | /* Store this config value to disable the uart channel completely. */ | ||
171 | #define V850E_UART_CONFIG_FINI 0 | ||
172 | |||
173 | /* Setting/clearing these bits enable/disable TX/RX, respectively (but | ||
174 | otherwise generally leave things running). */ | ||
175 | #define V850E_UART_CONFIG_RX_ENABLE V850E_UARTB_CTL0_RXE | ||
176 | #define V850E_UART_CONFIG_TX_ENABLE V850E_UARTB_CTL0_TXE | ||
177 | |||
178 | /* These masks define which config bits affect TX/RX modes, respectively. */ | ||
179 | #define V850E_UART_CONFIG_RX_BITS \ | ||
180 | (V850E_UARTB_CTL0_PS_MASK | V850E_UARTB_CTL0_CL_8) | ||
181 | #define V850E_UART_CONFIG_TX_BITS \ | ||
182 | (V850E_UARTB_CTL0_PS_MASK | V850E_UARTB_CTL0_CL_8 | V850E_UARTB_CTL0_SL_2) | ||
183 | |||
184 | static inline v850e_uart_config_t v850e_uart_calc_config (unsigned cflags) | ||
185 | { | ||
186 | v850e_uart_config_t config = 0; | ||
187 | |||
188 | /* Figure out new configuration of control register. */ | ||
189 | if (cflags & CSTOPB) | ||
190 | /* Number of stop bits, 1 or 2. */ | ||
191 | config |= V850E_UARTB_CTL0_SL_2; | ||
192 | if ((cflags & CSIZE) == CS8) | ||
193 | /* Number of data bits, 7 or 8. */ | ||
194 | config |= V850E_UARTB_CTL0_CL_8; | ||
195 | if (! (cflags & PARENB)) | ||
196 | /* No parity check/generation. */ | ||
197 | config |= V850E_UARTB_CTL0_PS_NONE; | ||
198 | else if (cflags & PARODD) | ||
199 | /* Odd parity check/generation. */ | ||
200 | config |= V850E_UARTB_CTL0_PS_ODD; | ||
201 | else | ||
202 | /* Even parity check/generation. */ | ||
203 | config |= V850E_UARTB_CTL0_PS_EVEN; | ||
204 | if (cflags & CREAD) | ||
205 | /* Reading enabled. */ | ||
206 | config |= V850E_UARTB_CTL0_RXE; | ||
207 | |||
208 | config |= V850E_UARTB_CTL0_PWR; | ||
209 | config |= V850E_UARTB_CTL0_TXE; /* Writing is always enabled. */ | ||
210 | config |= V850E_UARTB_CTL0_DIR; /* LSB first. */ | ||
211 | |||
212 | return config; | ||
213 | } | ||
214 | |||
215 | /* This should delay as long as necessary for a recently written config | ||
216 | setting to settle, before we turn the uart back on. */ | ||
217 | static inline void | ||
218 | v850e_uart_config_delay (v850e_uart_config_t config, v850e_uart_speed_t speed) | ||
219 | { | ||
220 | /* The UART may not be reset properly unless we wait at least 2 | ||
221 | `basic-clocks' until turning on the TXE/RXE bits again. | ||
222 | A `basic clock' is the clock used by the baud-rate generator, | ||
223 | i.e., the cpu clock divided by the 2^new_clk_divlog2. | ||
224 | The loop takes 2 insns, so loop CYCLES / 2 times. */ | ||
225 | register unsigned count = 1 << speed; | ||
226 | while (--count != 0) | ||
227 | /* nothing */; | ||
228 | } | ||
229 | |||
230 | |||
231 | /* RX/TX interface. */ | ||
232 | |||
233 | /* Return true if all characters awaiting transmission on uart channel N | ||
234 | have been transmitted. */ | ||
235 | #define v850e_uart_xmit_done(n) \ | ||
236 | (! (V850E_UARTB_STR(n) & V850E_UARTB_STR_TSF)) | ||
237 | /* Wait for this to be true. */ | ||
238 | #define v850e_uart_wait_for_xmit_done(n) \ | ||
239 | do { } while (! v850e_uart_xmit_done (n)) | ||
240 | |||
241 | /* Return true if uart channel N is ready to transmit a character. */ | ||
242 | #define v850e_uart_xmit_ok(n) \ | ||
243 | (v850e_uart_xmit_done(n) && v850e_uart_cts(n)) | ||
244 | /* Wait for this to be true. */ | ||
245 | #define v850e_uart_wait_for_xmit_ok(n) \ | ||
246 | do { } while (! v850e_uart_xmit_ok (n)) | ||
247 | |||
248 | /* Write character CH to uart channel CHAN. */ | ||
249 | #define v850e_uart_putc(chan, ch) (V850E_UARTB_TX(chan) = (ch)) | ||
250 | |||
251 | /* Return latest character read on channel CHAN. */ | ||
252 | #define v850e_uart_getc(chan) V850E_UARTB_RX (chan) | ||
253 | |||
254 | /* Return bit-mask of uart error status. */ | ||
255 | #define v850e_uart_err(chan) V850E_UARTB_STR (chan) | ||
256 | /* Various error bits set in the error result. */ | ||
257 | #define V850E_UART_ERR_OVERRUN V850E_UARTB_STR_OVE | ||
258 | #define V850E_UART_ERR_FRAME V850E_UARTB_STR_FE | ||
259 | #define V850E_UART_ERR_PARITY V850E_UARTB_STR_PE | ||
260 | |||
261 | |||
262 | #endif /* __V850_V850E_UARTB_H__ */ | ||
diff --git a/include/asm-v850/v850e_utils.h b/include/asm-v850/v850e_utils.h deleted file mode 100644 index 52eb72822d3d..000000000000 --- a/include/asm-v850/v850e_utils.h +++ /dev/null | |||
@@ -1,35 +0,0 @@ | |||
1 | /* | ||
2 | * include/asm-v850/v850e_utils.h -- Utility functions associated with | ||
3 | * V850E CPUs | ||
4 | * | ||
5 | * Copyright (C) 2001,03 NEC Electronics Corporation | ||
6 | * Copyright (C) 2001,03 Miles Bader <miles@gnu.org> | ||
7 | * | ||
8 | * This file is subject to the terms and conditions of the GNU General | ||
9 | * Public License. See the file COPYING in the main directory of this | ||
10 | * archive for more details. | ||
11 | * | ||
12 | * Written by Miles Bader <miles@gnu.org> | ||
13 | */ | ||
14 | |||
15 | #ifndef __V850_V850E_UTILS_H__ | ||
16 | #define __V850_V850E_UTILS_H__ | ||
17 | |||
18 | /* Calculate counter clock-divider and count values to attain the | ||
19 | desired frequency RATE from the base frequency BASE_FREQ. The | ||
20 | counter is expected to have a clock-divider, which can divide the | ||
21 | system cpu clock by a power of two value from MIN_DIVLOG2 to | ||
22 | MAX_DIV_LOG2, and a word-size of COUNTER_SIZE bits (the counter | ||
23 | counts up and resets whenever it's equal to the compare register, | ||
24 | generating an interrupt or whatever when it does so). The returned | ||
25 | values are: *DIVLOG2 -- log2 of the desired clock divider and *COUNT | ||
26 | -- the counter compare value to use. Returns true if it was possible | ||
27 | to find a reasonable value, otherwise false (and the other return | ||
28 | values will be set to be as good as possible). */ | ||
29 | extern int calc_counter_params (unsigned long base_freq, | ||
30 | unsigned long rate, | ||
31 | unsigned min_divlog2, unsigned max_divlog2, | ||
32 | unsigned counter_size, | ||
33 | unsigned *divlog2, unsigned *count); | ||
34 | |||
35 | #endif /* __V850_V850E_UTILS_H__ */ | ||