diff options
author | Thomas Gleixner <tglx@linutronix.de> | 2010-12-09 12:17:25 -0500 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2010-12-09 12:17:25 -0500 |
commit | d834a9dcecae834cd6b2bc5e50e1907738d9cf6a (patch) | |
tree | 0589d753465d3fe359ba451ba6cb7798df03aaa2 /arch/h8300 | |
parent | a38c5380ef9f088be9f49b6e4c5d80af8b1b5cd4 (diff) | |
parent | f658bcfb2607bf0808966a69cf74135ce98e5c2d (diff) |
Merge branch 'x86/amd-nb' into x86/apic-cleanups
Reason: apic cleanup series depends on x86/apic, x86/amd-nb x86/platform
Conflicts:
arch/x86/include/asm/io_apic.h
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'arch/h8300')
-rw-r--r-- | arch/h8300/Kconfig | 7 | ||||
-rw-r--r-- | arch/h8300/Kconfig.cpu | 8 | ||||
-rw-r--r-- | arch/h8300/README | 1 | ||||
-rw-r--r-- | arch/h8300/include/asm/ioctls.h | 81 | ||||
-rw-r--r-- | arch/h8300/kernel/ptrace.c | 33 |
5 files changed, 23 insertions, 107 deletions
diff --git a/arch/h8300/Kconfig b/arch/h8300/Kconfig index 988b6ff34cc4..65f897d8c1e9 100644 --- a/arch/h8300/Kconfig +++ b/arch/h8300/Kconfig | |||
@@ -1,10 +1,3 @@ | |||
1 | # | ||
2 | # For a description of the syntax of this configuration file, | ||
3 | # see Documentation/kbuild/kconfig-language.txt. | ||
4 | # | ||
5 | |||
6 | mainmenu "uClinux/h8300 (w/o MMU) Kernel Configuration" | ||
7 | |||
8 | config H8300 | 1 | config H8300 |
9 | bool | 2 | bool |
10 | default y | 3 | default y |
diff --git a/arch/h8300/Kconfig.cpu b/arch/h8300/Kconfig.cpu index 6e2ecff199c5..d236ab4232ca 100644 --- a/arch/h8300/Kconfig.cpu +++ b/arch/h8300/Kconfig.cpu | |||
@@ -17,7 +17,7 @@ config H8300H_AKI3068NET | |||
17 | help | 17 | help |
18 | AKI-H8/3068F / AKI-H8/3069F Flashmicom LAN Board Support | 18 | AKI-H8/3068F / AKI-H8/3069F Flashmicom LAN Board Support |
19 | More Information. (Japanese Only) | 19 | More Information. (Japanese Only) |
20 | <http://akizukidensi.com/catalog/h8.html> | 20 | <http://akizukidenshi.com/catalog/default.aspx> |
21 | AE-3068/69 Evaluation Board Support | 21 | AE-3068/69 Evaluation Board Support |
22 | More Information. | 22 | More Information. |
23 | <http://www.microtronique.com/ae3069lan.htm> | 23 | <http://www.microtronique.com/ae3069lan.htm> |
@@ -36,7 +36,7 @@ config H8300H_SIM | |||
36 | help | 36 | help |
37 | GDB Simulator Support | 37 | GDB Simulator Support |
38 | More Information. | 38 | More Information. |
39 | arch/h8300/Doc/simulator.txt | 39 | <http://sourceware.org/sid/> |
40 | 40 | ||
41 | config H8S_GENERIC | 41 | config H8S_GENERIC |
42 | bool "H8S Generic" | 42 | bool "H8S Generic" |
@@ -50,14 +50,14 @@ config H8S_EDOSK2674 | |||
50 | Renesas EDOSK-2674 Evaluation Board Support | 50 | Renesas EDOSK-2674 Evaluation Board Support |
51 | More Information. | 51 | More Information. |
52 | <http://www.azpower.com/H8-uClinux/index.html> | 52 | <http://www.azpower.com/H8-uClinux/index.html> |
53 | <http://www.eu.renesas.com/tools/edk/support/edosk2674.html> | 53 | <http://www.renesas.eu/products/tools/introductory_evaluation_tools/evaluation_development_os_kits/edosk2674r/edosk2674r_software_tools_root.jsp> |
54 | 54 | ||
55 | config H8S_SIM | 55 | config H8S_SIM |
56 | bool "H8S Simulator" | 56 | bool "H8S Simulator" |
57 | help | 57 | help |
58 | GDB Simulator Support | 58 | GDB Simulator Support |
59 | More Information. | 59 | More Information. |
60 | arch/h8300/Doc/simulator.txt | 60 | <http://sourceware.org/sid/> |
61 | 61 | ||
62 | endchoice | 62 | endchoice |
63 | 63 | ||
diff --git a/arch/h8300/README b/arch/h8300/README index 2fd6f6d7a019..637f5a02f311 100644 --- a/arch/h8300/README +++ b/arch/h8300/README | |||
@@ -18,6 +18,7 @@ H8/300H and H8S | |||
18 | 18 | ||
19 | 4.EDOSK2674 | 19 | 4.EDOSK2674 |
20 | see http://www.eu.renesas.com/products/mpumcu/tool/edk/support/edosk2674.html | 20 | see http://www.eu.renesas.com/products/mpumcu/tool/edk/support/edosk2674.html |
21 | http://www.uclinux.org/pub/uClinux/ports/h8/HITACHI-EDOSK2674-HOWTO | ||
21 | http://www.azpower.com/H8-uClinux/ | 22 | http://www.azpower.com/H8-uClinux/ |
22 | 23 | ||
23 | * Toolchain Version | 24 | * Toolchain Version |
diff --git a/arch/h8300/include/asm/ioctls.h b/arch/h8300/include/asm/ioctls.h index b6b249f9f308..30eaed2facdb 100644 --- a/arch/h8300/include/asm/ioctls.h +++ b/arch/h8300/include/asm/ioctls.h | |||
@@ -1,87 +1,8 @@ | |||
1 | #ifndef __ARCH_H8300_IOCTLS_H__ | 1 | #ifndef __ARCH_H8300_IOCTLS_H__ |
2 | #define __ARCH_H8300_IOCTLS_H__ | 2 | #define __ARCH_H8300_IOCTLS_H__ |
3 | 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 TIOCTTYGSTRUCT 0x5426 /* For debugging only */ | ||
47 | #define TIOCSBRK 0x5427 /* BSD compatibility */ | ||
48 | #define TIOCCBRK 0x5428 /* BSD compatibility */ | ||
49 | #define TIOCGSID 0x5429 /* Return the session ID of FD */ | ||
50 | #define TCGETS2 _IOR('T',0x2A, struct termios2) | ||
51 | #define TCSETS2 _IOW('T',0x2B, struct termios2) | ||
52 | #define TCSETSW2 _IOW('T',0x2C, struct termios2) | ||
53 | #define TCSETSF2 _IOW('T',0x2D, struct termios2) | ||
54 | #define TIOCGPTN _IOR('T',0x30, unsigned int) /* Get Pty Number (of pty-mux device) */ | ||
55 | #define TIOCSPTLCK _IOW('T',0x31, int) /* Lock/unlock Pty */ | ||
56 | #define TIOCSIG _IOW('T',0x36, int) /* Generate signal on Pty slave */ | ||
57 | |||
58 | #define FIONCLEX 0x5450 /* these numbers need to be adjusted. */ | ||
59 | #define FIOCLEX 0x5451 | ||
60 | #define FIOASYNC 0x5452 | ||
61 | #define TIOCSERCONFIG 0x5453 | ||
62 | #define TIOCSERGWILD 0x5454 | ||
63 | #define TIOCSERSWILD 0x5455 | ||
64 | #define TIOCGLCKTRMIOS 0x5456 | ||
65 | #define TIOCSLCKTRMIOS 0x5457 | ||
66 | #define TIOCSERGSTRUCT 0x5458 /* For debugging only */ | ||
67 | #define TIOCSERGETLSR 0x5459 /* Get line status register */ | ||
68 | #define TIOCSERGETMULTI 0x545A /* Get multiport config */ | ||
69 | #define TIOCSERSETMULTI 0x545B /* Set multiport config */ | ||
70 | |||
71 | #define TIOCMIWAIT 0x545C /* wait for a change on serial input line(s) */ | ||
72 | #define TIOCGICOUNT 0x545D /* read serial port inline interrupt counts */ | ||
73 | #define FIOQSIZE 0x545E | 4 | #define FIOQSIZE 0x545E |
74 | 5 | ||
75 | /* Used for packet mode */ | 6 | #include <asm-generic/ioctls.h> |
76 | #define TIOCPKT_DATA 0 | ||
77 | #define TIOCPKT_FLUSHREAD 1 | ||
78 | #define TIOCPKT_FLUSHWRITE 2 | ||
79 | #define TIOCPKT_STOP 4 | ||
80 | #define TIOCPKT_START 8 | ||
81 | #define TIOCPKT_NOSTOP 16 | ||
82 | #define TIOCPKT_DOSTOP 32 | ||
83 | #define TIOCPKT_IOCTL 64 | ||
84 | |||
85 | #define TIOCSER_TEMT 0x01 /* Transmitter physically empty */ | ||
86 | 7 | ||
87 | #endif /* __ARCH_H8300_IOCTLS_H__ */ | 8 | #endif /* __ARCH_H8300_IOCTLS_H__ */ |
diff --git a/arch/h8300/kernel/ptrace.c b/arch/h8300/kernel/ptrace.c index df114122ebdf..497fa89b5df4 100644 --- a/arch/h8300/kernel/ptrace.c +++ b/arch/h8300/kernel/ptrace.c | |||
@@ -50,27 +50,29 @@ void ptrace_disable(struct task_struct *child) | |||
50 | user_disable_single_step(child); | 50 | user_disable_single_step(child); |
51 | } | 51 | } |
52 | 52 | ||
53 | long arch_ptrace(struct task_struct *child, long request, long addr, long data) | 53 | long arch_ptrace(struct task_struct *child, long request, |
54 | unsigned long addr, unsigned long data) | ||
54 | { | 55 | { |
55 | int ret; | 56 | int ret; |
57 | int regno = addr >> 2; | ||
58 | unsigned long __user *datap = (unsigned long __user *) data; | ||
56 | 59 | ||
57 | switch (request) { | 60 | switch (request) { |
58 | /* read the word at location addr in the USER area. */ | 61 | /* read the word at location addr in the USER area. */ |
59 | case PTRACE_PEEKUSR: { | 62 | case PTRACE_PEEKUSR: { |
60 | unsigned long tmp = 0; | 63 | unsigned long tmp = 0; |
61 | 64 | ||
62 | if ((addr & 3) || addr < 0 || addr >= sizeof(struct user)) { | 65 | if ((addr & 3) || addr >= sizeof(struct user)) { |
63 | ret = -EIO; | 66 | ret = -EIO; |
64 | break ; | 67 | break ; |
65 | } | 68 | } |
66 | 69 | ||
67 | ret = 0; /* Default return condition */ | 70 | ret = 0; /* Default return condition */ |
68 | addr = addr >> 2; /* temporary hack. */ | ||
69 | 71 | ||
70 | if (addr < H8300_REGS_NO) | 72 | if (regno < H8300_REGS_NO) |
71 | tmp = h8300_get_reg(child, addr); | 73 | tmp = h8300_get_reg(child, regno); |
72 | else { | 74 | else { |
73 | switch(addr) { | 75 | switch (regno) { |
74 | case 49: | 76 | case 49: |
75 | tmp = child->mm->start_code; | 77 | tmp = child->mm->start_code; |
76 | break ; | 78 | break ; |
@@ -88,24 +90,23 @@ long arch_ptrace(struct task_struct *child, long request, long addr, long data) | |||
88 | } | 90 | } |
89 | } | 91 | } |
90 | if (!ret) | 92 | if (!ret) |
91 | ret = put_user(tmp,(unsigned long *) data); | 93 | ret = put_user(tmp, datap); |
92 | break ; | 94 | break ; |
93 | } | 95 | } |
94 | 96 | ||
95 | /* when I and D space are separate, this will have to be fixed. */ | 97 | /* when I and D space are separate, this will have to be fixed. */ |
96 | case PTRACE_POKEUSR: /* write the word at location addr in the USER area */ | 98 | case PTRACE_POKEUSR: /* write the word at location addr in the USER area */ |
97 | if ((addr & 3) || addr < 0 || addr >= sizeof(struct user)) { | 99 | if ((addr & 3) || addr >= sizeof(struct user)) { |
98 | ret = -EIO; | 100 | ret = -EIO; |
99 | break ; | 101 | break ; |
100 | } | 102 | } |
101 | addr = addr >> 2; /* temporary hack. */ | ||
102 | 103 | ||
103 | if (addr == PT_ORIG_ER0) { | 104 | if (regno == PT_ORIG_ER0) { |
104 | ret = -EIO; | 105 | ret = -EIO; |
105 | break ; | 106 | break ; |
106 | } | 107 | } |
107 | if (addr < H8300_REGS_NO) { | 108 | if (regno < H8300_REGS_NO) { |
108 | ret = h8300_put_reg(child, addr, data); | 109 | ret = h8300_put_reg(child, regno, data); |
109 | break ; | 110 | break ; |
110 | } | 111 | } |
111 | ret = -EIO; | 112 | ret = -EIO; |
@@ -116,11 +117,11 @@ long arch_ptrace(struct task_struct *child, long request, long addr, long data) | |||
116 | unsigned long tmp; | 117 | unsigned long tmp; |
117 | for (i = 0; i < H8300_REGS_NO; i++) { | 118 | for (i = 0; i < H8300_REGS_NO; i++) { |
118 | tmp = h8300_get_reg(child, i); | 119 | tmp = h8300_get_reg(child, i); |
119 | if (put_user(tmp, (unsigned long *) data)) { | 120 | if (put_user(tmp, datap)) { |
120 | ret = -EFAULT; | 121 | ret = -EFAULT; |
121 | break; | 122 | break; |
122 | } | 123 | } |
123 | data += sizeof(long); | 124 | datap++; |
124 | } | 125 | } |
125 | ret = 0; | 126 | ret = 0; |
126 | break; | 127 | break; |
@@ -130,12 +131,12 @@ long arch_ptrace(struct task_struct *child, long request, long addr, long data) | |||
130 | int i; | 131 | int i; |
131 | unsigned long tmp; | 132 | unsigned long tmp; |
132 | for (i = 0; i < H8300_REGS_NO; i++) { | 133 | for (i = 0; i < H8300_REGS_NO; i++) { |
133 | if (get_user(tmp, (unsigned long *) data)) { | 134 | if (get_user(tmp, datap)) { |
134 | ret = -EFAULT; | 135 | ret = -EFAULT; |
135 | break; | 136 | break; |
136 | } | 137 | } |
137 | h8300_put_reg(child, i, tmp); | 138 | h8300_put_reg(child, i, tmp); |
138 | data += sizeof(long); | 139 | datap++; |
139 | } | 140 | } |
140 | ret = 0; | 141 | ret = 0; |
141 | break; | 142 | break; |