aboutsummaryrefslogtreecommitdiffstats
path: root/arch/m32r/kernel/process.c
diff options
context:
space:
mode:
authorArnd Bergmann <arnd@arndb.de>2018-03-07 15:36:19 -0500
committerArnd Bergmann <arnd@arndb.de>2018-03-09 17:20:00 -0500
commit553b085c2075f6a4a2591108554f830fa61e881f (patch)
tree68d63911f2c12e0fb9fa23498df9300442a88f92 /arch/m32r/kernel/process.c
parentfd8773f9f544955f6f47dc2ac3ab85ad64376b7f (diff)
arch: remove m32r port
The Mitsubishi/Renesas m32r architecture has been around for many years, but the Linux port has been obsolete for a very long time as well, with the last significant updates done for linux-2.6.14. While some m32r microcontrollers are still being marketed by Renesas, those are apparently no longer possible to support, mainly due to the lack of an external memory interface. Hirokazu Takata was the maintainer until the architecture got marked Orphaned in 2014. Link: http://www.linux-m32r.org/ Link: https://www.renesas.com/en-eu/products/microcontrollers-microprocessors/m32r.html Cc: Hirokazu Takata <takata@linux-m32r.org> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Diffstat (limited to 'arch/m32r/kernel/process.c')
-rw-r--r--arch/m32r/kernel/process.c154
1 files changed, 0 insertions, 154 deletions
diff --git a/arch/m32r/kernel/process.c b/arch/m32r/kernel/process.c
deleted file mode 100644
index a1a4cb136e99..000000000000
--- a/arch/m32r/kernel/process.c
+++ /dev/null
@@ -1,154 +0,0 @@
1// SPDX-License-Identifier: GPL-2.0
2/*
3 * linux/arch/m32r/kernel/process.c
4 *
5 * Copyright (c) 2001, 2002 Hiroyuki Kondo, Hirokazu Takata,
6 * Hitoshi Yamamoto
7 * Taken from sh version.
8 * Copyright (C) 1995 Linus Torvalds
9 * SuperH version: Copyright (C) 1999, 2000 Niibe Yutaka & Kaz Kojima
10 */
11
12#undef DEBUG_PROCESS
13#ifdef DEBUG_PROCESS
14#define DPRINTK(fmt, args...) printk("%s:%d:%s: " fmt, __FILE__, __LINE__, \
15 __func__, ##args)
16#else
17#define DPRINTK(fmt, args...)
18#endif
19
20/*
21 * This file handles the architecture-dependent parts of process handling..
22 */
23
24#include <linux/fs.h>
25#include <linux/slab.h>
26#include <linux/sched/debug.h>
27#include <linux/sched/task.h>
28#include <linux/sched/task_stack.h>
29#include <linux/module.h>
30#include <linux/ptrace.h>
31#include <linux/unistd.h>
32#include <linux/hardirq.h>
33#include <linux/rcupdate.h>
34
35#include <asm/io.h>
36#include <linux/uaccess.h>
37#include <asm/mmu_context.h>
38#include <asm/elf.h>
39#include <asm/m32r.h>
40
41#include <linux/err.h>
42
43void (*pm_power_off)(void) = NULL;
44EXPORT_SYMBOL(pm_power_off);
45
46void machine_restart(char *__unused)
47{
48#if defined(CONFIG_PLAT_MAPPI3)
49 outw(1, (unsigned long)PLD_REBOOT);
50#endif
51
52 printk("Please push reset button!\n");
53 while (1)
54 cpu_relax();
55}
56
57void machine_halt(void)
58{
59 printk("Please push reset button!\n");
60 while (1)
61 cpu_relax();
62}
63
64void machine_power_off(void)
65{
66 /* M32R_FIXME */
67}
68
69void show_regs(struct pt_regs * regs)
70{
71 printk("\n");
72 show_regs_print_info(KERN_DEFAULT);
73
74 printk("BPC[%08lx]:PSW[%08lx]:LR [%08lx]:FP [%08lx]\n", \
75 regs->bpc, regs->psw, regs->lr, regs->fp);
76 printk("BBPC[%08lx]:BBPSW[%08lx]:SPU[%08lx]:SPI[%08lx]\n", \
77 regs->bbpc, regs->bbpsw, regs->spu, regs->spi);
78 printk("R0 [%08lx]:R1 [%08lx]:R2 [%08lx]:R3 [%08lx]\n", \
79 regs->r0, regs->r1, regs->r2, regs->r3);
80 printk("R4 [%08lx]:R5 [%08lx]:R6 [%08lx]:R7 [%08lx]\n", \
81 regs->r4, regs->r5, regs->r6, regs->r7);
82 printk("R8 [%08lx]:R9 [%08lx]:R10[%08lx]:R11[%08lx]\n", \
83 regs->r8, regs->r9, regs->r10, regs->r11);
84 printk("R12[%08lx]\n", \
85 regs->r12);
86
87#if defined(CONFIG_ISA_M32R2) && defined(CONFIG_ISA_DSP_LEVEL2)
88 printk("ACC0H[%08lx]:ACC0L[%08lx]\n", \
89 regs->acc0h, regs->acc0l);
90 printk("ACC1H[%08lx]:ACC1L[%08lx]\n", \
91 regs->acc1h, regs->acc1l);
92#elif defined(CONFIG_ISA_M32R2) || defined(CONFIG_ISA_M32R)
93 printk("ACCH[%08lx]:ACCL[%08lx]\n", \
94 regs->acc0h, regs->acc0l);
95#else
96#error unknown isa configuration
97#endif
98}
99
100void flush_thread(void)
101{
102 DPRINTK("pid = %d\n", current->pid);
103 memset(&current->thread.debug_trap, 0, sizeof(struct debug_trap));
104}
105
106void release_thread(struct task_struct *dead_task)
107{
108 /* do nothing */
109 DPRINTK("pid = %d\n", dead_task->pid);
110}
111
112/* Fill in the fpu structure for a core dump.. */
113int dump_fpu(struct pt_regs *regs, elf_fpregset_t *fpu)
114{
115 return 0; /* Task didn't use the fpu at all. */
116}
117
118int copy_thread(unsigned long clone_flags, unsigned long spu,
119 unsigned long arg, struct task_struct *tsk)
120{
121 struct pt_regs *childregs = task_pt_regs(tsk);
122 extern void ret_from_fork(void);
123 extern void ret_from_kernel_thread(void);
124
125 if (unlikely(tsk->flags & PF_KTHREAD)) {
126 memset(childregs, 0, sizeof(struct pt_regs));
127 childregs->psw = M32R_PSW_BIE;
128 childregs->r1 = spu; /* fn */
129 childregs->r0 = arg;
130 tsk->thread.lr = (unsigned long)ret_from_kernel_thread;
131 } else {
132 /* Copy registers */
133 *childregs = *current_pt_regs();
134 if (spu)
135 childregs->spu = spu;
136 childregs->r0 = 0; /* Child gets zero as return value */
137 tsk->thread.lr = (unsigned long)ret_from_fork;
138 }
139 tsk->thread.sp = (unsigned long)childregs;
140
141 return 0;
142}
143
144/*
145 * These bracket the sleeping functions..
146 */
147#define first_sched ((unsigned long) scheduling_functions_start_here)
148#define last_sched ((unsigned long) scheduling_functions_end_here)
149
150unsigned long get_wchan(struct task_struct *p)
151{
152 /* M32R_FIXME */
153 return (0);
154}