remove the h8300 architecture
authorChristoph Hellwig <hch@lst.de>
Wed, 23 Feb 2022 07:47:20 +0000 (08:47 +0100)
committerChristoph Hellwig <hch@lst.de>
Wed, 23 Feb 2022 07:52:50 +0000 (08:52 +0100)
Signed-off-by: Christoph Hellwig <hch@lst.de>
160 files changed:
Documentation/devicetree/bindings/clock/renesas,h8300-div-clock.txt [deleted file]
Documentation/devicetree/bindings/h8300/cpu.txt [deleted file]
Documentation/devicetree/bindings/interrupt-controller/renesas,h8300h-intc.txt [deleted file]
Documentation/devicetree/bindings/interrupt-controller/renesas,h8s-intc.txt [deleted file]
Documentation/devicetree/bindings/memory-controllers/renesas,h8300-bsc.yaml [deleted file]
Documentation/features/core/cBPF-JIT/arch-support.txt
Documentation/features/core/eBPF-JIT/arch-support.txt
Documentation/features/core/generic-idle-thread/arch-support.txt
Documentation/features/core/jump-labels/arch-support.txt
Documentation/features/core/thread-info-in-task/arch-support.txt
Documentation/features/core/tracehook/arch-support.txt
Documentation/features/debug/KASAN/arch-support.txt
Documentation/features/debug/debug-vm-pgtable/arch-support.txt
Documentation/features/debug/gcov-profile-all/arch-support.txt
Documentation/features/debug/kcov/arch-support.txt
Documentation/features/debug/kgdb/arch-support.txt
Documentation/features/debug/kmemleak/arch-support.txt
Documentation/features/debug/kprobes-on-ftrace/arch-support.txt
Documentation/features/debug/kprobes/arch-support.txt
Documentation/features/debug/kretprobes/arch-support.txt
Documentation/features/debug/optprobes/arch-support.txt
Documentation/features/debug/stackprotector/arch-support.txt
Documentation/features/debug/uprobes/arch-support.txt
Documentation/features/debug/user-ret-profiler/arch-support.txt
Documentation/features/io/dma-contiguous/arch-support.txt
Documentation/features/locking/cmpxchg-local/arch-support.txt
Documentation/features/locking/lockdep/arch-support.txt
Documentation/features/locking/queued-rwlocks/arch-support.txt
Documentation/features/locking/queued-spinlocks/arch-support.txt
Documentation/features/perf/kprobes-event/arch-support.txt
Documentation/features/perf/perf-regs/arch-support.txt
Documentation/features/perf/perf-stackdump/arch-support.txt
Documentation/features/sched/membarrier-sync-core/arch-support.txt
Documentation/features/sched/numa-balancing/arch-support.txt
Documentation/features/seccomp/seccomp-filter/arch-support.txt
Documentation/features/time/arch-tick-broadcast/arch-support.txt
Documentation/features/time/clockevents/arch-support.txt
Documentation/features/time/context-tracking/arch-support.txt
Documentation/features/time/irq-time-acct/arch-support.txt
Documentation/features/time/virt-cpuacct/arch-support.txt
Documentation/features/vm/ELF-ASLR/arch-support.txt
Documentation/features/vm/PG_uncached/arch-support.txt
Documentation/features/vm/THP/arch-support.txt
Documentation/features/vm/TLB/arch-support.txt
Documentation/features/vm/huge-vmap/arch-support.txt
Documentation/features/vm/ioremap_prot/arch-support.txt
Documentation/features/vm/pte_special/arch-support.txt
MAINTAINERS
arch/h8300/Kbuild [deleted file]
arch/h8300/Kconfig [deleted file]
arch/h8300/Kconfig.cpu [deleted file]
arch/h8300/Kconfig.debug [deleted file]
arch/h8300/Makefile [deleted file]
arch/h8300/boot/Makefile [deleted file]
arch/h8300/boot/compressed/Makefile [deleted file]
arch/h8300/boot/compressed/head.S [deleted file]
arch/h8300/boot/compressed/misc.c [deleted file]
arch/h8300/boot/compressed/vmlinux.lds [deleted file]
arch/h8300/boot/compressed/vmlinux.scr [deleted file]
arch/h8300/boot/dts/Makefile [deleted file]
arch/h8300/boot/dts/edosk2674.dts [deleted file]
arch/h8300/boot/dts/h8300h_sim.dts [deleted file]
arch/h8300/boot/dts/h8s_sim.dts [deleted file]
arch/h8300/configs/edosk2674_defconfig [deleted file]
arch/h8300/configs/h8300h-sim_defconfig [deleted file]
arch/h8300/configs/h8s-sim_defconfig [deleted file]
arch/h8300/include/asm/Kbuild [deleted file]
arch/h8300/include/asm/bitops.h [deleted file]
arch/h8300/include/asm/bug.h [deleted file]
arch/h8300/include/asm/byteorder.h [deleted file]
arch/h8300/include/asm/cache.h [deleted file]
arch/h8300/include/asm/elf.h [deleted file]
arch/h8300/include/asm/flat.h [deleted file]
arch/h8300/include/asm/hash.h [deleted file]
arch/h8300/include/asm/io.h [deleted file]
arch/h8300/include/asm/irq.h [deleted file]
arch/h8300/include/asm/irqflags.h [deleted file]
arch/h8300/include/asm/kgdb.h [deleted file]
arch/h8300/include/asm/mmu_context.h [deleted file]
arch/h8300/include/asm/page.h [deleted file]
arch/h8300/include/asm/page_offset.h [deleted file]
arch/h8300/include/asm/pgtable.h [deleted file]
arch/h8300/include/asm/processor.h [deleted file]
arch/h8300/include/asm/ptrace.h [deleted file]
arch/h8300/include/asm/segment.h [deleted file]
arch/h8300/include/asm/signal.h [deleted file]
arch/h8300/include/asm/smp.h [deleted file]
arch/h8300/include/asm/string.h [deleted file]
arch/h8300/include/asm/switch_to.h [deleted file]
arch/h8300/include/asm/syscall.h [deleted file]
arch/h8300/include/asm/thread_info.h [deleted file]
arch/h8300/include/asm/tlb.h [deleted file]
arch/h8300/include/asm/traps.h [deleted file]
arch/h8300/include/asm/user.h [deleted file]
arch/h8300/include/asm/vmalloc.h [deleted file]
arch/h8300/include/uapi/asm/Kbuild [deleted file]
arch/h8300/include/uapi/asm/byteorder.h [deleted file]
arch/h8300/include/uapi/asm/posix_types.h [deleted file]
arch/h8300/include/uapi/asm/ptrace.h [deleted file]
arch/h8300/include/uapi/asm/sigcontext.h [deleted file]
arch/h8300/include/uapi/asm/signal.h [deleted file]
arch/h8300/include/uapi/asm/unistd.h [deleted file]
arch/h8300/kernel/.gitignore [deleted file]
arch/h8300/kernel/Makefile [deleted file]
arch/h8300/kernel/asm-offsets.c [deleted file]
arch/h8300/kernel/entry.S [deleted file]
arch/h8300/kernel/h8300_ksyms.c [deleted file]
arch/h8300/kernel/head_ram.S [deleted file]
arch/h8300/kernel/head_rom.S [deleted file]
arch/h8300/kernel/irq.c [deleted file]
arch/h8300/kernel/kgdb.c [deleted file]
arch/h8300/kernel/module.c [deleted file]
arch/h8300/kernel/process.c [deleted file]
arch/h8300/kernel/ptrace.c [deleted file]
arch/h8300/kernel/ptrace_h.c [deleted file]
arch/h8300/kernel/ptrace_s.c [deleted file]
arch/h8300/kernel/setup.c [deleted file]
arch/h8300/kernel/signal.c [deleted file]
arch/h8300/kernel/sim-console.c [deleted file]
arch/h8300/kernel/syscalls.c [deleted file]
arch/h8300/kernel/traps.c [deleted file]
arch/h8300/kernel/vmlinux.lds.S [deleted file]
arch/h8300/lib/Makefile [deleted file]
arch/h8300/lib/abs.S [deleted file]
arch/h8300/lib/ashldi3.c [deleted file]
arch/h8300/lib/ashrdi3.c [deleted file]
arch/h8300/lib/delay.c [deleted file]
arch/h8300/lib/libgcc.h [deleted file]
arch/h8300/lib/lshrdi3.c [deleted file]
arch/h8300/lib/memcpy.S [deleted file]
arch/h8300/lib/memset.S [deleted file]
arch/h8300/lib/moddivsi3.S [deleted file]
arch/h8300/lib/modsi3.S [deleted file]
arch/h8300/lib/muldi3.c [deleted file]
arch/h8300/lib/mulsi3.S [deleted file]
arch/h8300/lib/ucmpdi2.c [deleted file]
arch/h8300/lib/udivsi3.S [deleted file]
arch/h8300/mm/Makefile [deleted file]
arch/h8300/mm/fault.c [deleted file]
arch/h8300/mm/init.c [deleted file]
arch/h8300/mm/memory.c [deleted file]
drivers/clk/Makefile
drivers/clk/h8300/Makefile [deleted file]
drivers/clk/h8300/clk-div.c [deleted file]
drivers/clk/h8300/clk-h8s2678.c [deleted file]
drivers/clocksource/Kconfig
drivers/clocksource/Makefile
drivers/clocksource/h8300_timer16.c [deleted file]
drivers/clocksource/h8300_timer8.c [deleted file]
drivers/clocksource/h8300_tpu.c [deleted file]
drivers/irqchip/Kconfig
drivers/irqchip/Makefile
drivers/irqchip/irq-renesas-h8300h.c [deleted file]
drivers/irqchip/irq-renesas-h8s.c [deleted file]
drivers/net/ethernet/smsc/Kconfig
drivers/net/ethernet/smsc/smc91x.h
drivers/tty/serial/Kconfig
init/Kconfig
tools/arch/h8300/include/asm/bitsperlong.h [deleted file]
tools/arch/h8300/include/uapi/asm/mman.h [deleted file]

diff --git a/Documentation/devicetree/bindings/clock/renesas,h8300-div-clock.txt b/Documentation/devicetree/bindings/clock/renesas,h8300-div-clock.txt
deleted file mode 100644 (file)
index 399e0da..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-* Renesas H8/300 divider clock
-
-Required Properties:
-
-  - compatible: Must be "renesas,h8300-div-clock"
-
-  - clocks: Reference to the parent clocks ("extal1" and "extal2")
-
-  - #clock-cells: Must be 1
-
-  - reg: Base address and length of the divide rate selector
-
-  - renesas,width: bit width of selector
-
-Example
--------
-
-               cclk: cclk {
-                       compatible = "renesas,h8300-div-clock";
-                       clocks = <&xclk>;
-                       #clock-cells = <0>;
-                       reg = <0xfee01b 2>;
-                       renesas,width = <2>;
-               };
diff --git a/Documentation/devicetree/bindings/h8300/cpu.txt b/Documentation/devicetree/bindings/h8300/cpu.txt
deleted file mode 100644 (file)
index 70cd586..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-* H8/300 CPU bindings
-
-Required properties:
-
-- compatible: Compatible property value should be "renesas,h8300".
-- clock-frequency: Contains the clock frequency for CPU, in Hz.
-
-Example:
-
-               cpu@0 {
-                       compatible = "renesas,h8300";
-                       clock-frequency = <20000000>;
-               };
diff --git a/Documentation/devicetree/bindings/interrupt-controller/renesas,h8300h-intc.txt b/Documentation/devicetree/bindings/interrupt-controller/renesas,h8300h-intc.txt
deleted file mode 100644 (file)
index 56e8d82..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-* H8/300H Interrupt controller
-
-Required properties:
-
-- compatible: has to be "renesas,h8300h-intc", "renesas,h8300-intc" as fallback.
-- #interrupt-cells: has to be <2>: an interrupt index and flags, as defined in
-  interrupts.txt in this directory
-- regs: Base address of interrupt controller registers.
-
-Optional properties:
-
-- any properties, listed in interrupts.txt, and any standard resource allocation
-  properties
-
-Example:
-
-       h8intc: interrupt-controller@fee012 {
-               compatible = "renesas,h8300h-intc", "renesas,h8300-intc";
-               #interrupt-cells = <2>;
-               interrupt-controller;
-               reg = <0xfee012 7>;
-       };
diff --git a/Documentation/devicetree/bindings/interrupt-controller/renesas,h8s-intc.txt b/Documentation/devicetree/bindings/interrupt-controller/renesas,h8s-intc.txt
deleted file mode 100644 (file)
index faded2b..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-* H8S Interrupt controller
-
-Required properties:
-
-- compatible: has to be "renesas,h8s-intc", "renesas,h8300-intc" as fallback.
-- #interrupt-cells: has to be <2>: an interrupt index and flags, as defined in
-  interrupts.txt in this directory
-- regs: Base address of interrupt controller registers.
-
-Optional properties:
-
-- any properties, listed in interrupts.txt, and any standard resource allocation
-  properties
-
-Example:
-
-       h8intc: interrupt-controller@fffe00 {
-               compatible = "renesas,h8s-intc", "renesas,h8300-intc";
-               #interrupt-cells = <2>;
-               interrupt-controller;
-               reg = <0xfffe00 24>;
-       };
diff --git a/Documentation/devicetree/bindings/memory-controllers/renesas,h8300-bsc.yaml b/Documentation/devicetree/bindings/memory-controllers/renesas,h8300-bsc.yaml
deleted file mode 100644 (file)
index 2b18cef..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
-%YAML 1.2
----
-$id: http://devicetree.org/schemas/memory-controllers/renesas,h8300-bsc.yaml#
-$schema: http://devicetree.org/meta-schemas/core.yaml#
-
-title: H8/300 bus controller
-
-maintainers:
-  - Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
-  - Yoshinori Sato <ysato@users.sourceforge.jp>
-
-properties:
-  compatible:
-    items:
-      - enum:
-          - renesas,h8300h-bsc
-          - renesas,h8s-bsc
-      - const: renesas,h8300-bsc
-
-  reg:
-    maxItems: 1
-
-required:
-  - compatible
-  - reg
-
-additionalProperties: false
-
-examples:
-  - |
-    memory-controller@fee01e {
-        compatible = "renesas,h8300h-bsc", "renesas,h8300-bsc";
-        reg = <0xfee01e 8>;
-    };
index e59b5215402d0f97936aaec159e3e8564e092531..55b2aca6a2c354da9318a24120c6edecc41514cf 100644 (file)
@@ -11,7 +11,6 @@
     |         arm: | TODO |
     |       arm64: | TODO |
     |        csky: | TODO |
-    |       h8300: | TODO |
     |     hexagon: | TODO |
     |        ia64: | TODO |
     |        m68k: | TODO |
index dcbd8679f514a329d4658a3b9892f9977ea621b9..92b723e897d77950c265e8438574aa981284fc19 100644 (file)
@@ -11,7 +11,6 @@
     |         arm: |  ok  |
     |       arm64: |  ok  |
     |        csky: | TODO |
-    |       h8300: | TODO |
     |     hexagon: | TODO |
     |        ia64: | TODO |
     |        m68k: | TODO |
index 4efcba7b523901b72dccaa2db0402bd883e3d39c..c1e69d518f1d1e690ae077f125a5d0034763e0ad 100644 (file)
@@ -11,7 +11,6 @@
     |         arm: |  ok  |
     |       arm64: |  ok  |
     |        csky: |  ok  |
-    |       h8300: | TODO |
     |     hexagon: |  ok  |
     |        ia64: |  ok  |
     |        m68k: | TODO |
index 0c801d1bd2daaabe2c51dd68d719f4ef302eb2f2..968ffd3fa20bb33789d03759f222f0e9a3888b89 100644 (file)
@@ -11,7 +11,6 @@
     |         arm: |  ok  |
     |       arm64: |  ok  |
     |        csky: | TODO |
-    |       h8300: | TODO |
     |     hexagon: | TODO |
     |        ia64: | TODO |
     |        m68k: | TODO |
index bc74d8beea72b8f62adb098c9e9aa36fa46dd5b1..cefb0ed6adcae4b713f0817aad1b95ee9ad0c389 100644 (file)
@@ -11,7 +11,6 @@
     |         arm: |  ok  |
     |       arm64: |  ok  |
     |        csky: | TODO |
-    |       h8300: | TODO |
     |     hexagon: | TODO |
     |        ia64: | TODO |
     |        m68k: | TODO |
index af34308fce7fdba48f21d47df0e6f50c5d981507..8e1ad2dc15d869e24d1a10dfce606b22dc6081d9 100644 (file)
@@ -11,7 +11,6 @@
     |         arm: |  ok  |
     |       arm64: |  ok  |
     |        csky: |  ok  |
-    |       h8300: | TODO |
     |     hexagon: |  ok  |
     |        ia64: |  ok  |
     |        m68k: | TODO |
index c244ac7eee2687e6bb02c55c7d8082b2907c6190..72392302c5433b99707f86d73dfbe42012ed44ad 100644 (file)
@@ -11,7 +11,6 @@
     |         arm: |  ok  |
     |       arm64: |  ok  |
     |        csky: | TODO |
-    |       h8300: | TODO |
     |     hexagon: | TODO |
     |        ia64: | TODO |
     |        m68k: | TODO |
index fa83403b4aec091dd862571dcf382cce0140afe2..db10ff31805d6f3eb1061c2c7fab957b015a59da 100644 (file)
@@ -11,7 +11,6 @@
     |         arm: | TODO |
     |       arm64: |  ok  |
     |        csky: | TODO |
-    |       h8300: | TODO |
     |     hexagon: | TODO |
     |        ia64: | TODO |
     |        m68k: | TODO |
index b39c1a5de3f36be0c6394f627fed5bc5ead2665a..8c972103d18c0e3e87f5ae09ce44cd3dea4148d9 100644 (file)
@@ -11,7 +11,6 @@
     |         arm: |  ok  |
     |       arm64: |  ok  |
     |        csky: |  ok  |
-    |       h8300: | TODO |
     |     hexagon: | TODO |
     |        ia64: | TODO |
     |        m68k: | TODO |
index 7e44013cc32090ae6871c55f159376ca7f112743..e0412ef3ed7d3ee32f1df37080f3410212a749ba 100644 (file)
@@ -11,7 +11,6 @@
     |         arm: |  ok  |
     |       arm64: |  ok  |
     |        csky: | TODO |
-    |       h8300: | TODO |
     |     hexagon: | TODO |
     |        ia64: | TODO |
     |        m68k: | TODO |
index 2cb0576f9180c4bb37181395d4b662cb04afd337..2dfd383cbe552bcfb9f68d62bb300dc90b655960 100644 (file)
@@ -11,7 +11,6 @@
     |         arm: |  ok  |
     |       arm64: |  ok  |
     |        csky: | TODO |
-    |       h8300: |  ok  |
     |     hexagon: |  ok  |
     |        ia64: | TODO |
     |        m68k: | TODO |
index e9ac415f8aecfe4c6f4a291946e841be4ce8a053..7408dc258f572ceef9bcfb3f8279c616c8da886d 100644 (file)
@@ -11,7 +11,6 @@
     |         arm: |  ok  |
     |       arm64: |  ok  |
     |        csky: |  ok  |
-    |       h8300: | TODO |
     |     hexagon: | TODO |
     |        ia64: | TODO |
     |        m68k: | TODO |
index 96156e8802a77d6834eb51d2478d362106454ec9..fe707c04794aa7cc0079e5d719ba9f5132ad2971 100644 (file)
@@ -11,7 +11,6 @@
     |         arm: | TODO |
     |       arm64: | TODO |
     |        csky: |  ok  |
-    |       h8300: | TODO |
     |     hexagon: | TODO |
     |        ia64: | TODO |
     |        m68k: | TODO |
index ee95ed61909afae96f173ac7c7650cdb5e7c9bc4..7f4ef559ff60d60f6454870ec37121d488b98059 100644 (file)
@@ -11,7 +11,6 @@
     |         arm: |  ok  |
     |       arm64: |  ok  |
     |        csky: |  ok  |
-    |       h8300: | TODO |
     |     hexagon: | TODO |
     |        ia64: |  ok  |
     |        m68k: | TODO |
index 612cb97d47b84d6aa35990731e219fc8261a7980..0eace8acbde1ceb7435caeb2b09444bd50151c13 100644 (file)
@@ -11,7 +11,6 @@
     |         arm: |  ok  |
     |       arm64: |  ok  |
     |        csky: |  ok  |
-    |       h8300: | TODO |
     |     hexagon: | TODO |
     |        ia64: |  ok  |
     |        m68k: | TODO |
index d6ff141a6122e8fecb7b02abd6ba850dd5c28f11..b0cbb80e213811709f03ea4b46f24c76d7fd4ce6 100644 (file)
@@ -11,7 +11,6 @@
     |         arm: |  ok  |
     |       arm64: | TODO |
     |        csky: | TODO |
-    |       h8300: | TODO |
     |     hexagon: | TODO |
     |        ia64: | TODO |
     |        m68k: | TODO |
index ad4de22a71ab9b614d71fc25efd49eba2f5252f2..7776884e9d0d03cd23068fd91f94d7d8167b0220 100644 (file)
@@ -11,7 +11,6 @@
     |         arm: |  ok  |
     |       arm64: |  ok  |
     |        csky: |  ok  |
-    |       h8300: | TODO |
     |     hexagon: | TODO |
     |        ia64: | TODO |
     |        m68k: | TODO |
index 8bd5548a448575ad193b1d5e64ff78853a7eeefd..080257b34ecc14d7a80530ad0fb6ca428520507c 100644 (file)
@@ -11,7 +11,6 @@
     |         arm: |  ok  |
     |       arm64: |  ok  |
     |        csky: |  ok  |
-    |       h8300: | TODO |
     |     hexagon: | TODO |
     |        ia64: | TODO |
     |        m68k: | TODO |
index 2a3fe812a5fa0806b13d312fe8fe6e1572918102..8da784e2d8d1e32ac27904d720f4d750505cb2ca 100644 (file)
@@ -11,7 +11,6 @@
     |         arm: | TODO |
     |       arm64: | TODO |
     |        csky: | TODO |
-    |       h8300: | TODO |
     |     hexagon: | TODO |
     |        ia64: | TODO |
     |        m68k: | TODO |
index bece89586efacd027957730ecb48d3bf72a93bd2..6bd6ff52a0bd7376e7ff385fc5fbadbd116f2645 100644 (file)
@@ -11,7 +11,6 @@
     |         arm: |  ok  |
     |       arm64: |  ok  |
     |        csky: |  ok  |
-    |       h8300: | TODO |
     |     hexagon: | TODO |
     |        ia64: | TODO |
     |        m68k: | TODO |
index 52bdda004f5c1d23972b5292bcbe628c0c9fa303..307d362622c4031bc02cf6c9de5e14d04f1591f7 100644 (file)
@@ -11,7 +11,6 @@
     |         arm: | TODO |
     |       arm64: |  ok  |
     |        csky: | TODO |
-    |       h8300: | TODO |
     |     hexagon: | TODO |
     |        ia64: | TODO |
     |        m68k: | TODO |
index a8cd163c8b7ee25f61c2cbbd009712d0f3a79e2a..ada677830246bdb7db10f39c6395a4604c08e32f 100644 (file)
@@ -11,7 +11,6 @@
     |         arm: |  ok  |
     |       arm64: |  ok  |
     |        csky: |  ok  |
-    |       h8300: | TODO |
     |     hexagon: |  ok  |
     |        ia64: | TODO |
     |        m68k: | TODO |
index 8c85949752b3b1013d396bcf528198021b3fd3ce..c000efd4b0698a5cb456ea68f2440c66fb7745ee 100644 (file)
@@ -11,7 +11,6 @@
     |         arm: | TODO |
     |       arm64: |  ok  |
     |        csky: |  ok  |
-    |       h8300: | TODO |
     |     hexagon: | TODO |
     |        ia64: | TODO |
     |        m68k: | TODO |
index 5f4e1b3841afab68c658f02b38efedc250648591..c4decfc115f5ac10a5930f19ba40fd144f620ff8 100644 (file)
@@ -11,7 +11,6 @@
     |         arm: | TODO |
     |       arm64: |  ok  |
     |        csky: | TODO |
-    |       h8300: | TODO |
     |     hexagon: | TODO |
     |        ia64: | TODO |
     |        m68k: | TODO |
index 78f3fe080f0e9a0817d0294c3b59b4b0463868c4..b2e45810af06abedc704c36e492eee53b92bc16a 100644 (file)
@@ -11,7 +11,6 @@
     |         arm: |  ok  |
     |       arm64: |  ok  |
     |        csky: |  ok  |
-    |       h8300: | TODO |
     |     hexagon: |  ok  |
     |        ia64: | TODO |
     |        m68k: | TODO |
index 5bf3b1854a1f5fac2b1a31d59d7a4a371d119a08..86fa79b8e7199562f7572d88591c1735aefaee93 100644 (file)
@@ -11,7 +11,6 @@
     |         arm: |  ok  |
     |       arm64: |  ok  |
     |        csky: |  ok  |
-    |       h8300: | TODO |
     |     hexagon: | TODO |
     |        ia64: | TODO |
     |        m68k: | TODO |
index d88659bb4fc1c3479f5e688fce267da63e8704e1..9b76c8206b7f784c0a9ebd7ab5522fb6f6ee910b 100644 (file)
@@ -11,7 +11,6 @@
     |         arm: |  ok  |
     |       arm64: |  ok  |
     |        csky: |  ok  |
-    |       h8300: | TODO |
     |     hexagon: | TODO |
     |        ia64: | TODO |
     |        m68k: | TODO |
index 883d33b265d6952e2bea8a014d108946dac45bdf..4ba3b6308aed59aae6d334622c21a6a8ff7e0491 100644 (file)
@@ -34,7 +34,6 @@
     |         arm: |  ok  |
     |       arm64: |  ok  |
     |        csky: | TODO |
-    |       h8300: | TODO |
     |     hexagon: | TODO |
     |        ia64: | TODO |
     |        m68k: | TODO |
index 9affb7c2c500fdad120a143278dc57b39e07d2f6..54814bbb87b2e2ae001d289b3f767acbb40539cd 100644 (file)
@@ -11,7 +11,6 @@
     |         arm: |  ..  |
     |       arm64: |  ok  |
     |        csky: |  ..  |
-    |       h8300: |  ..  |
     |     hexagon: |  ..  |
     |        ia64: | TODO |
     |        m68k: |  ..  |
index 26eec58ab8197375f09e1c73ac0498d64992cec8..e243eaa7696f4eeb53eff519645f83cc5fe67863 100644 (file)
@@ -11,7 +11,6 @@
     |         arm: |  ok  |
     |       arm64: |  ok  |
     |        csky: |  ok  |
-    |       h8300: | TODO |
     |     hexagon: | TODO |
     |        ia64: | TODO |
     |        m68k: | TODO |
index 8dcaab070c7b06c23d0cd779045ce921d38677de..38f06a18bac3a4392147f1c621b66a5daf8036b5 100644 (file)
@@ -11,7 +11,6 @@
     |         arm: |  ok  |
     |       arm64: |  ok  |
     |        csky: | TODO |
-    |       h8300: | TODO |
     |     hexagon: | TODO |
     |        ia64: | TODO |
     |        m68k: | TODO |
index 9a81cb03b1fd50a0367cabc752ab6c76b52a7d05..bf640aaed17b10a27a99bfe60b72eabc3d7e73ea 100644 (file)
@@ -11,7 +11,6 @@
     |         arm: | TODO |
     |       arm64: |  ok  |
     |        csky: |  ok  |
-    |       h8300: |  ok  |
     |     hexagon: |  ok  |
     |        ia64: | TODO |
     |        m68k: | TODO |
index 4ed116c2ec391ee8963ba1e7a53767208e1b2a4d..45bf771065b438d4a160e7916654a7a57f5ac624 100644 (file)
@@ -11,7 +11,6 @@
     |         arm: |  ok  |
     |       arm64: |  ok  |
     |        csky: |  ok  |
-    |       h8300: | TODO |
     |     hexagon: | TODO |
     |        ia64: | TODO |
     |        m68k: | TODO |
index bc30c15557c7d703417e669698e720b35a74c45c..25eac3f7597c8c1a8586163ddd7d3c133a95ab08 100644 (file)
@@ -11,7 +11,6 @@
     |         arm: |  ok  |
     |       arm64: |  ok  |
     |        csky: | TODO |
-    |       h8300: | TODO |
     |     hexagon: | TODO |
     |        ia64: |  ..  |
     |        m68k: | TODO |
index 050de43bbbb938fb4d2ddc9439ec17836212c601..b71a91066e3534c5cbc3538e2d3a249285f4c53f 100644 (file)
@@ -11,7 +11,6 @@
     |         arm: |  ok  |
     |       arm64: |  ok  |
     |        csky: |  ok  |
-    |       h8300: | TODO |
     |     hexagon: | TODO |
     |        ia64: |  ok  |
     |        m68k: | TODO |
index 2949c99fbb2f9585ad8b51e26ad84dc3b87be196..64f387045b3889ce5103c69b63171da15b8e9ac2 100644 (file)
@@ -11,7 +11,6 @@
     |         arm: |  ok  |
     |       arm64: |  ok  |
     |        csky: | TODO |
-    |       h8300: | TODO |
     |     hexagon: | TODO |
     |        ia64: | TODO |
     |        m68k: | TODO |
index 6cde384585965a374f70bd56264776ba91b6a930..334353455540981e35fd8ecdbb66134a736f1908 100644 (file)
@@ -11,7 +11,6 @@
     |         arm: | TODO |
     |       arm64: | TODO |
     |        csky: | TODO |
-    |       h8300: | TODO |
     |     hexagon: | TODO |
     |        ia64: |  ok  |
     |        m68k: | TODO |
index 7dbd6967b37e077062531fea9a0447e8dd9f1878..36b5dfb4f8d60811ce5de9623714befa5a51b7c8 100644 (file)
@@ -11,7 +11,6 @@
     |         arm: |  ok  |
     |       arm64: |  ok  |
     |        csky: |  ..  |
-    |       h8300: |  ..  |
     |     hexagon: |  ..  |
     |        ia64: | TODO |
     |        m68k: |  ..  |
index e1c3a4c4d107a8afa4c2318d7a3be02ffbad826f..7d0de7f173d576c29eaa86587f0f777158c7cb07 100644 (file)
@@ -11,7 +11,6 @@
     |         arm: | TODO |
     |       arm64: | N/A  |
     |        csky: | TODO |
-    |       h8300: |  ..  |
     |     hexagon: | TODO |
     |        ia64: | TODO |
     |        m68k: |  ..  |
index bc53905a03069b1a4c63eb28cdfca914b813c00e..64e8e14e67e0ebc8b0a831018bc6204b004aeac1 100644 (file)
@@ -11,7 +11,6 @@
     |         arm: | TODO |
     |       arm64: |  ok  |
     |        csky: | TODO |
-    |       h8300: | TODO |
     |     hexagon: | TODO |
     |        ia64: | TODO |
     |        m68k: | TODO |
index 9a0c8783b84d423c2a9b3b2b3292fd9b0599ca12..6bc7f77ef20d5e5aee5b0d47217e4a877602e6ea 100644 (file)
@@ -11,7 +11,6 @@
     |         arm: | TODO |
     |       arm64: | TODO |
     |        csky: | TODO |
-    |       h8300: | TODO |
     |     hexagon: | TODO |
     |        ia64: | TODO |
     |        m68k: | TODO |
index 40b969f3a6bb3c87f92e43d5369da478af8678a0..45463dac131f612f957c48e7968f5e612386368c 100644 (file)
@@ -11,7 +11,6 @@
     |         arm: |  ok  |
     |       arm64: |  ok  |
     |        csky: | TODO |
-    |       h8300: | TODO |
     |     hexagon: | TODO |
     |        ia64: | TODO |
     |        m68k: | TODO |
index 777cd6fa2b3d69fcf90c6fa07dff18fe16286f32..412382dfac682a694cbde592f2f25270bef0f9cf 100644 (file)
@@ -8395,17 +8395,6 @@ L:       linux-efi@vger.kernel.org
 S:     Maintained
 F:     block/partitions/efi.*
 
-H8/300 ARCHITECTURE
-M:     Yoshinori Sato <ysato@users.sourceforge.jp>
-L:     uclinux-h8-devel@lists.sourceforge.jp (moderated for non-subscribers)
-S:     Maintained
-W:     http://uclinux-h8.sourceforge.jp
-T:     git git://git.sourceforge.jp/gitroot/uclinux-h8/linux.git
-F:     arch/h8300/
-F:     drivers/clk/h8300/
-F:     drivers/clocksource/h8300_*.c
-F:     drivers/irqchip/irq-renesas-h8*.c
-
 HABANALABS PCI DRIVER
 M:     Oded Gabbay <ogabbay@kernel.org>
 S:     Supported
diff --git a/arch/h8300/Kbuild b/arch/h8300/Kbuild
deleted file mode 100644 (file)
index e4703f3..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0-only
-obj-y  += kernel/ mm/ boot/dts/
-
-# for cleaning
-subdir- += boot
diff --git a/arch/h8300/Kconfig b/arch/h8300/Kconfig
deleted file mode 100644 (file)
index 3e3e0f1..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0
-config H8300
-        def_bool y
-       select ARCH_32BIT_OFF_T
-       select ARCH_HAS_BINFMT_FLAT
-       select BINFMT_FLAT_ARGVP_ENVP_ON_STACK
-       select BINFMT_FLAT_OLD_ALWAYS_RAM
-       select GENERIC_ATOMIC64
-       select HAVE_UID16
-       select VIRT_TO_BUS
-       select GENERIC_IRQ_SHOW
-       select FRAME_POINTER
-       select GENERIC_CPU_DEVICES
-       select MODULES_USE_ELF_RELA
-       select COMMON_CLK
-       select ARCH_WANT_FRAME_POINTERS
-       select OF
-       select OF_IRQ
-       select OF_EARLY_FLATTREE
-       select TIMER_OF
-       select H8300_TMR8
-       select HAVE_KERNEL_GZIP
-       select HAVE_KERNEL_LZO
-       select HAVE_ARCH_KGDB
-       select HAVE_ARCH_HASH
-       select CPU_NO_EFFICIENT_FFS
-       select SET_FS
-       select UACCESS_MEMCPY
-
-config CPU_BIG_ENDIAN
-       def_bool y
-
-config GENERIC_HWEIGHT
-       def_bool y
-
-config NO_IOPORT_MAP
-       def_bool y
-
-config GENERIC_CSUM
-        def_bool y
-
-config HZ
-       int
-       default 100
-
-config NR_CPUS
-       int
-       default 1
-
-source "arch/h8300/Kconfig.cpu"
diff --git a/arch/h8300/Kconfig.cpu b/arch/h8300/Kconfig.cpu
deleted file mode 100644 (file)
index c30baa0..0000000
+++ /dev/null
@@ -1,99 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0
-config CPU_H8300H
-       bool
-
-config CPU_H8S
-       bool
-
-config H83069
-       bool
-       select CPU_H8300H
-       select H8300_TMR16
-       select RENESAS_H8300H_INTC
-
-config H8S2678
-       bool
-       select CPU_H8S
-       select H8300_TPU
-       select RENESAS_H8S_INTC
-
-config RAMKERNEL
-       bool
-
-config ROMKERNEL
-       bool
-
-menu "Processor type and features"
-
-choice
-prompt "H8/300 platform"
-
-config H8300_AE3068
-       bool "AE-3068/69"
-       select H83069
-       select RAMKERNEL
-       help
-         AKI-H8/3068F / AKI-H8/3069F Flashmicom LAN Board Support
-         More Information. (Japanese Only)
-         <http://akizukidenshi.com/catalog/default.aspx>
-         AE-3068/69 Evaluation Board Support
-         More Information.
-         <http://www.microtronique.com/ae3069lan.htm>
-
-config H8300_H8MAX
-       bool "H8MAX"
-       select H83069
-       select RAMKERNEL
-       help
-         H8MAX Evaluation Board Support
-         More Information. (Japanese Only)
-         <http://strawberry-linux.com/h8/index.html>
-
-config H8300_KANEBEBE
-       bool "KaneBebe"
-       select H83069
-       select RAMKERNEL
-       help
-         KaneBebe Evalition Board Support
-         More Information. (Japanese Only)
-         <http://www.nissin-tech.com/2009/10/uclinuxkane-bebe-h83069f.html>
-
-config H8300H_SIM
-       bool "H8/300H GDB Simulator"
-       select H83069
-       select ROMKERNEL
-       help
-         GDB Simulator Support
-         More Information.
-         <http://sourceware.org/sid/>
-
-config H8S_EDOSK2674
-       bool "EDOSK-2674"
-       select H8S2678
-       select RAMKERNEL
-       help
-         Renesas EDOSK-2674 Evaluation Board Support
-         More Information.
-         <http://www.azpower.com/H8-uClinux/index.html>
-         <http://www.renesas.eu/products/tools/introductory_evaluation_tools/evaluation_development_os_kits/edosk2674r/edosk2674r_software_tools_root.jsp>
-
-config H8S_SIM
-       bool "H8S GDB Simulator"
-       select H8S2678
-       select ROMKERNEL
-       help
-         GDB Simulator Support
-         More Information.
-         <http://sourceware.org/sid/>
-
-endchoice
-
-config H8300_BUILTIN_DTB
-        string "Builtin DTB"
-       default ""
-
-config OFFSET
-        hex "Load offset"
-       default 0
-
-endmenu
diff --git a/arch/h8300/Kconfig.debug b/arch/h8300/Kconfig.debug
deleted file mode 100644 (file)
index 295942f..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0-only
-# dummy file, do not delete
diff --git a/arch/h8300/Makefile b/arch/h8300/Makefile
deleted file mode 100644 (file)
index 807f41e..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# arch/h8300/Makefile
-#
-# This file is subject to the terms and conditions of the GNU General Public
-# License.  See the file "COPYING" in the main directory of this archive
-# for more details.
-#
-# (C) Copyright 2002-2015 Yoshinori Sato <ysato@users.sourceforge.jp>
-#
-
-KBUILD_DEFCONFIG := edosk2674_defconfig
-
-cflags-$(CONFIG_CPU_H8300H)    := -mh
-aflags-$(CONFIG_CPU_H8300H)    := -mh -Wa,--mach=h8300h
-ldflags-$(CONFIG_CPU_H8300H)   := -mh8300helf_linux
-cflags-$(CONFIG_CPU_H8S)       := -ms
-aflags-$(CONFIG_CPU_H8S)       := -ms -Wa,--mach=h8300s
-ldflags-$(CONFIG_CPU_H8S)      := -mh8300self_linux
-
-KBUILD_CFLAGS += $(cflags-y)
-KBUILD_CFLAGS += -mint32 -fno-builtin
-KBUILD_CFLAGS += -D__linux__
-KBUILD_CFLAGS += -DUTS_SYSNAME=\"uClinux\"
-KBUILD_AFLAGS += $(aflags-y)
-KBUILD_LDFLAGS += $(ldflags-y)
-
-CHECKFLAGS += -msize-long
-
-ifeq ($(CROSS_COMPILE),)
-CROSS_COMPILE := $(call cc-cross-prefix, h8300-unknown-linux- h8300-linux-)
-endif
-
-libs-y += arch/$(ARCH)/lib/
-
-boot := arch/h8300/boot
-
-vmlinux.srec vmlinux.bin zImage uImage.bin: vmlinux
-       $(Q)$(MAKE) $(build)=$(boot) $(boot)/$@
-
-define archhelp
-  @echo  'vmlinux.bin  - Create raw binary'
-  @echo  'vmlinux.srec - Create srec binary'
-  @echo  'zImage       - Compressed kernel image'
-endef
diff --git a/arch/h8300/boot/Makefile b/arch/h8300/boot/Makefile
deleted file mode 100644 (file)
index 8e62df2..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0
-# arch/h8300/boot/Makefile
-
-targets := vmlinux.srec vmlinux.bin zImage
-subdir- := compressed
-
-OBJCOPYFLAGS_vmlinux.srec := -Osrec
-OBJCOPYFLAGS_vmlinux.bin  := -Obinary
-OBJCOPYFLAGS_zImage := -O binary -R .note -R .comment -R .stab -R .stabstr -S
-
-UIMAGE_LOADADDR = $(CONFIG_RAMBASE)
-UIMAGE_ENTRYADDR = $(shell /bin/bash -c 'printf "0x%08x" \
-       $$[$(CONFIG_RAMBASE) + $(CONFIG_OFFSET)]')
-
-$(obj)/vmlinux.srec $(obj)/vmlinux.bin:  vmlinux FORCE
-       $(call if_changed,objcopy)
-
-$(obj)/zImage: $(obj)/compressed/vmlinux FORCE
-       $(call if_changed,objcopy)
-
-$(obj)/compressed/vmlinux: FORCE
-       $(Q)$(MAKE) $(build)=$(obj)/compressed $@
-
-$(obj)/uImage.bin: $(obj)/vmlinux.bin
-       $(call if_changed,uimage,none)
-
-CLEAN_FILES += arch/$(ARCH)/vmlinux.bin arch/$(ARCH)/vmlinux.srec arch/$(ARCH)/uImage.bin
diff --git a/arch/h8300/boot/compressed/Makefile b/arch/h8300/boot/compressed/Makefile
deleted file mode 100644 (file)
index 6ab2fa5..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0
-#
-# linux/arch/sh/boot/compressed/Makefile
-#
-# create a compressed vmlinux image from the original vmlinux
-#
-
-targets                := vmlinux vmlinux.bin vmlinux.bin.gz head.o misc.o piggy.o
-
-OBJECTS = $(obj)/head.o $(obj)/misc.o
-
-#
-# IMAGE_OFFSET is the load offset of the compression loader
-# Assign dummy values if these 2 variables are not defined,
-# in order to suppress error message.
-#
-CONFIG_MEMORY_START     ?= 0x00400000
-CONFIG_BOOT_LINK_OFFSET ?= 0x00280000
-IMAGE_OFFSET := $(shell printf "0x%08x" $$(($(CONFIG_MEMORY_START)+$(CONFIG_BOOT_LINK_OFFSET))))
-
-LIBGCC := $(shell $(CROSS-COMPILE)$(CC) $(KBUILD_CFLAGS) -print-libgcc-file-name 2>/dev/null)
-LDFLAGS_vmlinux := -Ttext $(IMAGE_OFFSET) -estartup -T $(obj)/vmlinux.lds \
-       --defsym output=$(CONFIG_MEMORY_START)
-
-$(obj)/vmlinux: $(OBJECTS) $(obj)/piggy.o $(LIBGCC) FORCE
-       $(call if_changed,ld)
-
-$(obj)/vmlinux.bin: vmlinux FORCE
-       $(call if_changed,objcopy)
-
-suffix-$(CONFIG_KERNEL_GZIP)    := gzip
-suffix-$(CONFIG_KERNEL_LZO)     := lzo
-compress-$(CONFIG_KERNEL_GZIP)  := gzip
-compress-$(CONFIG_KERNEL_LZO)   := lzo_with_size
-
-$(obj)/vmlinux.bin.$(suffix-y): $(obj)/vmlinux.bin FORCE
-       $(call if_changed,$(compress-y))
-
-LDFLAGS_piggy.o := -r --format binary --oformat elf32-h8300-linux -T
-OBJCOPYFLAGS := -O binary
-
-$(obj)/piggy.o: $(obj)/vmlinux.scr $(obj)/vmlinux.bin.$(suffix-y) FORCE
-       $(call if_changed,ld)
-
-CFLAGS_misc.o = -O0
diff --git a/arch/h8300/boot/compressed/head.S b/arch/h8300/boot/compressed/head.S
deleted file mode 100644 (file)
index 11ef509..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/*
- *  linux/arch/h8300/boot/compressed/head.S
- *
- *  Copyright (C) 2006 Yoshinori Sato
- */
-
-#include <linux/linkage.h>
-
-       .section        .text..startup,"ax"
-       .global startup
-startup:
-       mov.l   #startup, sp
-       mov.l   er0, er4
-       mov.l   #__sbss, er0
-       mov.l   #__ebss, er1
-       sub.l   er0, er1
-       shlr    er1
-       shlr    er1
-       sub.l   er2, er2
-1:
-       mov.l   er2, @er0
-       adds    #4, er0
-       dec.l   #1, er1
-       bne     1b
-       jsr     @decompress_kernel
-       mov.l   er4, er0
-       jmp     @output
-
-       .align  9
-fake_headers_as_bzImage:
-       .word   0
-       .ascii  "HdrS"          ; header signature
-       .word   0x0202          ; header version number (>= 0x0105)
-                               ; or else old loadlin-1.5 will fail)
-       .word   0               ; default_switch
-       .word   0               ; SETUPSEG
-       .word   0x1000
-       .word   0               ; pointing to kernel version string
-       .byte   0               ; = 0, old one (LILO, Loadlin,
-                               ; 0xTV: T=0 for LILO
-                               ;       V = version
-       .byte   1               ; Load flags bzImage=1
-       .word   0x8000          ; size to move, when setup is not
-       .long   0x100000        ; 0x100000 = default for big kernel
-       .long   0               ; address of loaded ramdisk image
-       .long   0               ; its size in bytes
-
-       .end
diff --git a/arch/h8300/boot/compressed/misc.c b/arch/h8300/boot/compressed/misc.c
deleted file mode 100644 (file)
index 8915d8f..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-/*
- * arch/h8300/boot/compressed/misc.c
- *
- * This is a collection of several routines from gzip-1.0.3
- * adapted for Linux.
- *
- * malloc by Hannu Savolainen 1993 and Matthias Urlichs 1994
- *
- * Adapted for h8300 by Yoshinori Sato 2006
- */
-
-#include <linux/uaccess.h>
-
-/*
- * gzip declarations
- */
-
-#define OF(args)  args
-#define STATIC static
-
-#undef memset
-#undef memcpy
-#define memzero(s, n)     memset((s), (0), (n))
-
-extern int _end;
-static unsigned long free_mem_ptr;
-static unsigned long free_mem_end_ptr;
-
-extern char input_data[];
-extern int input_len;
-extern char output[];
-
-#define HEAP_SIZE             0x10000
-
-#ifdef CONFIG_KERNEL_GZIP
-#include "../../../../lib/decompress_inflate.c"
-#endif
-
-#ifdef CONFIG_KERNEL_LZO
-#include "../../../../lib/decompress_unlzo.c"
-#endif
-
-void *memset(void *s, int c, size_t n)
-{
-       int i;
-       char *ss = (char *)s;
-
-       for (i = 0; i < n; i++)
-               ss[i] = c;
-       return s;
-}
-
-void *memcpy(void *dest, const void *src, size_t n)
-{
-       int i;
-       char *d = (char *)dest, *s = (char *)src;
-
-       for (i = 0; i < n; i++)
-               d[i] = s[i];
-       return dest;
-}
-
-static void error(char *x)
-{
-       while (1)
-               ;       /* Halt */
-}
-
-void decompress_kernel(void)
-{
-       free_mem_ptr = (unsigned long)&_end;
-       free_mem_end_ptr = free_mem_ptr + HEAP_SIZE;
-
-       __decompress(input_data, input_len, NULL, NULL, output, 0, NULL, error);
-}
diff --git a/arch/h8300/boot/compressed/vmlinux.lds b/arch/h8300/boot/compressed/vmlinux.lds
deleted file mode 100644 (file)
index 7f7bb41..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-SECTIONS
-{
-        .text :
-        {
-        __stext = . ;
-       __text = .;
-              *(.text..startup)
-              *(.text)
-        __etext = . ;
-        }
-
-       .rodata :
-       {
-               *(.rodata)
-       }
-        . = ALIGN(0x4) ;
-        .data :
-
-        {
-        . = ALIGN(0x4) ;
-        __sdata = . ;
-        ___data_start = . ;
-                *(.data.*)
-       }
-        . = ALIGN(0x4) ;
-        .bss :
-        {
-        __sbss = . ;
-                *(.bss*)
-        . = ALIGN(0x4) ;
-        __ebss = . ;
-        }
-        _end = . ;
-}
diff --git a/arch/h8300/boot/compressed/vmlinux.scr b/arch/h8300/boot/compressed/vmlinux.scr
deleted file mode 100644 (file)
index a084903..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-SECTIONS
-{
-  .data : {
-       input_len = .;
-       LONG(input_data_end - input_data) input_data = .;
-       *(.data)
-       input_data_end = .;
-       }
-}
diff --git a/arch/h8300/boot/dts/Makefile b/arch/h8300/boot/dts/Makefile
deleted file mode 100644 (file)
index c36bbd1..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0
-obj-y += $(addsuffix .dtb.o, $(CONFIG_H8300_BUILTIN_DTB))
-
-dtb-$(CONFIG_H8300H_SIM) := h8300h_sim.dtb
-dtb-$(CONFIG_H8S_SIM) := h8s_sim.dtb
-dtb-$(CONFIG_H8S_EDOSK2674) := edosk2674.dtb
diff --git a/arch/h8300/boot/dts/edosk2674.dts b/arch/h8300/boot/dts/edosk2674.dts
deleted file mode 100644 (file)
index d173380..0000000
+++ /dev/null
@@ -1,108 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-/dts-v1/;
-/ {
-       compatible = "renesas,edosk2674";
-       #address-cells = <1>;
-       #size-cells = <1>;
-       interrupt-parent = <&h8intc>;
-
-       chosen {
-               bootargs = "console=ttySC2,38400";
-               stdout-path = &sci2;
-       };
-       aliases {
-               serial0 = &sci0;
-               serial1 = &sci1;
-               serial2 = &sci2;
-       };
-
-       xclk: oscillator {
-               #clock-cells = <0>;
-               compatible = "fixed-clock";
-               clock-frequency = <33333333>;
-               clock-output-names = "xtal";
-       };
-       pllclk: pllclk {
-               compatible = "renesas,h8s2678-pll-clock";
-               clocks = <&xclk>;
-               #clock-cells = <0>;
-               reg = <0xffff3b 1>, <0xffff45 1>;
-       };
-       core_clk: core_clk {
-               compatible = "renesas,h8300-div-clock";
-               clocks = <&pllclk>;
-               #clock-cells = <0>;
-               reg = <0xffff3b 1>;
-               renesas,width = <3>;
-       };
-       fclk: fclk {
-               compatible = "fixed-factor-clock";
-               clocks = <&core_clk>;
-               #clock-cells = <0>;
-               clock-div = <1>;
-               clock-mult = <1>;
-       };
-
-       memory@400000 {
-               device_type = "memory";
-               reg = <0x400000 0x800000>;
-       };
-
-       cpus {
-               #address-cells = <1>;
-               #size-cells = <0>;
-               cpu@0 {
-                       compatible = "renesas,h8300";
-                       clock-frequency = <33333333>;
-               };
-       };
-
-       h8intc: interrupt-controller@fffe00 {
-               compatible = "renesas,h8s-intc", "renesas,h8300-intc";
-               #interrupt-cells = <2>;
-               interrupt-controller;
-               reg = <0xfffe00 24>;
-       };
-
-       bsc: memory-controller@fffec0 {
-               compatible = "renesas,h8s-bsc", "renesas,h8300-bsc";
-               reg = <0xfffec0 24>;
-       };
-
-       tpu: timer@ffffe0 {
-               compatible = "renesas,tpu";
-               reg = <0xffffe0 16>, <0xfffff0 12>;
-               clocks = <&fclk>;
-               clock-names = "fck";
-       };
-
-       timer8: timer@ffffb0 {
-               compatible = "renesas,8bit-timer";
-               reg = <0xffffb0 10>;
-               interrupts = <72 0>;
-               clocks = <&fclk>;
-               clock-names = "fck";
-       };
-
-       sci0: serial@ffff78 {
-               compatible = "renesas,sci";
-               reg = <0xffff78 8>;
-               interrupts = <88 0>, <89 0>, <90 0>, <91 0>;
-               clocks = <&fclk>;
-               clock-names = "fck";
-       };
-       sci1: serial@ffff80 {
-               compatible = "renesas,sci";
-               reg = <0xffff80 8>;
-               interrupts = <92 0>, <93 0>, <94 0>, <95 0>;
-               clocks = <&fclk>;
-               clock-names = "fck";
-       };
-       sci2: serial@ffff88 {
-               compatible = "renesas,sci";
-               reg = <0xffff88 8>;
-               interrupts = <96 0>, <97 0>, <98 0>, <99 0>;
-               clocks = <&fclk>;
-               clock-names = "fck";
-       };
-};
diff --git a/arch/h8300/boot/dts/h8300h_sim.dts b/arch/h8300/boot/dts/h8300h_sim.dts
deleted file mode 100644 (file)
index 595398b..0000000
+++ /dev/null
@@ -1,97 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-/dts-v1/;
-/ {
-       compatible = "gnu,gdbsim";
-       #address-cells = <1>;
-       #size-cells = <1>;
-       interrupt-parent = <&h8intc>;
-
-       chosen {
-               bootargs = "earlyprintk=h8300-sim";
-               stdout-path = <&sci0>;
-       };
-       aliases {
-               serial0 = &sci0;
-               serial1 = &sci1;
-       };
-
-       xclk: oscillator {
-               #clock-cells = <0>;
-               compatible = "fixed-clock";
-               clock-frequency = <20000000>;
-               clock-output-names = "xtal";
-       };
-       core_clk: core_clk {
-               compatible = "renesas,h8300-div-clock";
-               clocks = <&xclk>;
-               #clock-cells = <0>;
-               reg = <0xfee01b 2>;
-               renesas,width = <2>;
-       };
-       fclk: fclk {
-               compatible = "fixed-factor-clock";
-               clocks = <&core_clk>;
-               #clock-cells = <0>;
-               clock-div = <1>;
-               clock-mult = <1>;
-       };
-
-       memory@400000 {
-               device_type = "memory";
-               reg = <0x400000 0x400000>;
-       };
-
-       cpus {
-               #address-cells = <1>;
-               #size-cells = <0>;
-               cpu@0 {
-                       compatible = "renesas,h8300";
-                       clock-frequency = <20000000>;
-               };
-       };
-
-       h8intc: interrupt-controller@fee012 {
-               compatible = "renesas,h8300h-intc", "renesas,h8300-intc";
-               #interrupt-cells = <2>;
-               interrupt-controller;
-               reg = <0xfee012 7>;
-       };
-
-       bsc: memory-controller@fee01e {
-               compatible = "renesas,h8300h-bsc", "renesas,h8300-bsc";
-               reg = <0xfee01e 8>;
-       };
-
-       timer8: timer@ffff80 {
-               compatible = "renesas,8bit-timer";
-               reg = <0xffff80 10>;
-               interrupts = <36 0>;
-               clocks = <&fclk>;
-               clock-names = "fck";
-       };
-
-       timer16: timer@ffff68 {
-               compatible = "renesas,16bit-timer";
-               reg = <0xffff68 8>, <0xffff60 8>;
-               interrupts = <26 0>;
-               renesas,channel = <0>;
-               clocks = <&fclk>;
-               clock-names = "fck";
-       };
-
-       sci0: serial@ffffb0 {
-               compatible = "renesas,sci";
-               reg = <0xffffb0 8>;
-               interrupts = <52 0>, <53 0>, <54 0>, <55 0>;
-               clocks = <&fclk>;
-               clock-names = "fck";
-       };
-
-       sci1: serial@ffffb8 {
-               compatible = "renesas,sci";
-               reg = <0xffffb8 8>;
-               interrupts = <56 0>, <57 0>, <58 0>, <59 0>;
-               clocks = <&fclk>;
-               clock-names = "fck";
-       };
-};
diff --git a/arch/h8300/boot/dts/h8s_sim.dts b/arch/h8300/boot/dts/h8s_sim.dts
deleted file mode 100644 (file)
index 932cc3c..0000000
+++ /dev/null
@@ -1,100 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-/dts-v1/;
-/ {
-       compatible = "gnu,gdbsim";
-       #address-cells = <1>;
-       #size-cells = <1>;
-       interrupt-parent = <&h8intc>;
-
-       chosen {
-               bootargs = "earlyprintk=h8300-sim";
-               stdout-path = <&sci0>;
-       };
-       aliases {
-               serial0 = &sci0;
-               serial1 = &sci1;
-       };
-
-       xclk: oscillator {
-               #clock-cells = <0>;
-               compatible = "fixed-clock";
-               clock-frequency = <33333333>;
-               clock-output-names = "xtal";
-       };
-       pllclk: pllclk {
-               compatible = "renesas,h8s2678-pll-clock";
-               clocks = <&xclk>;
-               #clock-cells = <0>;
-               reg = <0xfee03b 2>, <0xfee045 2>;
-       };
-       core_clk: core_clk {
-               compatible = "renesas,h8300-div-clock";
-               clocks = <&pllclk>;
-               #clock-cells = <0>;
-               reg = <0xfee03b 2>;
-               renesas,width = <3>;
-       };
-       fclk: fclk {
-               compatible = "fixed-factor-clock";
-               clocks = <&core_clk>;
-               #clock-cells = <0>;
-               clock-div = <1>;
-               clock-mult = <1>;
-       };
-
-       memory@400000 {
-               device_type = "memory";
-               reg = <0x400000 0x800000>;
-       };
-
-       cpus {
-               #address-cells = <1>;
-               #size-cells = <0>;
-               cpu@0 {
-                       compatible = "renesas,h8300";
-                       clock-frequency = <33333333>;
-               };
-       };
-
-       h8intc: interrupt-controller@fffe00 {
-               compatible = "renesas,h8s-intc", "renesas,h8300-intc";
-               #interrupt-cells = <2>;
-               interrupt-controller;
-               reg = <0xfffe00 24>;
-       };
-
-       bsc: memory-controller@fffec0 {
-               compatible = "renesas,h8s-bsc", "renesas,h8300-bsc";
-               reg = <0xfffec0 24>;
-       };
-
-       tpu: timer@ffffe0 {
-               compatible = "renesas,tpu";
-               reg = <0xffffe0 16>, <0xfffff0 12>;
-               clocks = <&fclk>;
-               clock-names = "fck";
-       };
-
-       timer8: timer@ffffb0 {
-               compatible = "renesas,8bit-timer";
-               reg = <0xffffb0 10>;
-               interrupts = <72 0>;
-               clocks = <&fclk>;
-               clock-names = "fck";
-       };
-
-       sci0: serial@ffff78 {
-               compatible = "renesas,sci";
-               reg = <0xffff78 8>;
-               interrupts = <88 0>, <89 0>, <90 0>, <91 0>;
-               clocks = <&fclk>;
-               clock-names = "fck";
-       };
-       sci1: serial@ffff80 {
-               compatible = "renesas,sci";
-               reg = <0xffff80 8>;
-               interrupts = <92 0>, <93 0>, <94 0>, <95 0>;
-               clocks = <&fclk>;
-               clock-names = "fck";
-       };
-};
diff --git a/arch/h8300/configs/edosk2674_defconfig b/arch/h8300/configs/edosk2674_defconfig
deleted file mode 100644 (file)
index 23791dc..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-# CONFIG_LOCALVERSION_AUTO is not set
-# CONFIG_USELIB is not set
-CONFIG_CC_OPTIMIZE_FOR_SIZE=y
-# CONFIG_UID16 is not set
-# CONFIG_SYSFS_SYSCALL is not set
-# CONFIG_KALLSYMS is not set
-# CONFIG_BASE_FULL is not set
-# CONFIG_FUTEX is not set
-# CONFIG_EPOLL is not set
-# CONFIG_SIGNALFD is not set
-# CONFIG_TIMERFD is not set
-# CONFIG_EVENTFD is not set
-# CONFIG_AIO is not set
-# CONFIG_ADVISE_SYSCALLS is not set
-CONFIG_EMBEDDED=y
-# CONFIG_VM_EVENT_COUNTERS is not set
-# CONFIG_COMPAT_BRK is not set
-CONFIG_SLOB=y
-# CONFIG_BLOCK is not set
-CONFIG_H8S_SIM=y
-CONFIG_H8300_BUILTIN_DTB="h8s_sim"
-# CONFIG_BINFMT_SCRIPT is not set
-CONFIG_BINFMT_FLAT=y
-# CONFIG_COREDUMP is not set
-# CONFIG_UEVENT_HELPER is not set
-# CONFIG_STANDALONE is not set
-# CONFIG_PREVENT_FIRMWARE_BUILD is not set
-# CONFIG_FW_LOADER is not set
-# CONFIG_ALLOW_DEV_COREDUMP is not set
-# CONFIG_INPUT is not set
-# CONFIG_SERIO is not set
-# CONFIG_VT is not set
-# CONFIG_UNIX98_PTYS is not set
-# CONFIG_LEGACY_PTYS is not set
-# CONFIG_DEVKMEM is not set
-CONFIG_SERIAL_SH_SCI=y
-CONFIG_SERIAL_SH_SCI_CONSOLE=y
-# CONFIG_HW_RANDOM is not set
-# CONFIG_HWMON is not set
-# CONFIG_USB_SUPPORT is not set
-# CONFIG_FILE_LOCKING is not set
-# CONFIG_DNOTIFY is not set
-# CONFIG_INOTIFY_USER is not set
-# CONFIG_PROC_FS is not set
-# CONFIG_SYSFS is not set
-# CONFIG_MISC_FILESYSTEMS is not set
-CONFIG_DEBUG_INFO=y
-# CONFIG_ENABLE_MUST_CHECK is not set
diff --git a/arch/h8300/configs/h8300h-sim_defconfig b/arch/h8300/configs/h8300h-sim_defconfig
deleted file mode 100644 (file)
index 7fc9c2f..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-# CONFIG_LOCALVERSION_AUTO is not set
-# CONFIG_USELIB is not set
-CONFIG_CC_OPTIMIZE_FOR_SIZE=y
-# CONFIG_UID16 is not set
-# CONFIG_SYSFS_SYSCALL is not set
-# CONFIG_KALLSYMS is not set
-# CONFIG_BASE_FULL is not set
-# CONFIG_FUTEX is not set
-# CONFIG_EPOLL is not set
-# CONFIG_SIGNALFD is not set
-# CONFIG_TIMERFD is not set
-# CONFIG_EVENTFD is not set
-# CONFIG_AIO is not set
-# CONFIG_ADVISE_SYSCALLS is not set
-CONFIG_EMBEDDED=y
-# CONFIG_VM_EVENT_COUNTERS is not set
-# CONFIG_COMPAT_BRK is not set
-CONFIG_SLOB=y
-# CONFIG_BLOCK is not set
-CONFIG_H8300H_SIM=y
-CONFIG_H8300_BUILTIN_DTB="h8300h_sim"
-# CONFIG_BINFMT_SCRIPT is not set
-CONFIG_BINFMT_FLAT=y
-# CONFIG_COREDUMP is not set
-# CONFIG_UEVENT_HELPER is not set
-# CONFIG_STANDALONE is not set
-# CONFIG_PREVENT_FIRMWARE_BUILD is not set
-# CONFIG_FW_LOADER is not set
-# CONFIG_ALLOW_DEV_COREDUMP is not set
-# CONFIG_INPUT is not set
-# CONFIG_SERIO is not set
-# CONFIG_VT is not set
-# CONFIG_UNIX98_PTYS is not set
-# CONFIG_LEGACY_PTYS is not set
-# CONFIG_DEVKMEM is not set
-CONFIG_SERIAL_SH_SCI=y
-CONFIG_SERIAL_SH_SCI_EARLYCON=y
-# CONFIG_HW_RANDOM is not set
-# CONFIG_HWMON is not set
-# CONFIG_USB_SUPPORT is not set
-# CONFIG_FILE_LOCKING is not set
-# CONFIG_DNOTIFY is not set
-# CONFIG_INOTIFY_USER is not set
-# CONFIG_PROC_FS is not set
-# CONFIG_SYSFS is not set
-# CONFIG_MISC_FILESYSTEMS is not set
-CONFIG_DEBUG_INFO=y
-# CONFIG_ENABLE_MUST_CHECK is not set
diff --git a/arch/h8300/configs/h8s-sim_defconfig b/arch/h8300/configs/h8s-sim_defconfig
deleted file mode 100644 (file)
index 23791dc..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-# CONFIG_LOCALVERSION_AUTO is not set
-# CONFIG_USELIB is not set
-CONFIG_CC_OPTIMIZE_FOR_SIZE=y
-# CONFIG_UID16 is not set
-# CONFIG_SYSFS_SYSCALL is not set
-# CONFIG_KALLSYMS is not set
-# CONFIG_BASE_FULL is not set
-# CONFIG_FUTEX is not set
-# CONFIG_EPOLL is not set
-# CONFIG_SIGNALFD is not set
-# CONFIG_TIMERFD is not set
-# CONFIG_EVENTFD is not set
-# CONFIG_AIO is not set
-# CONFIG_ADVISE_SYSCALLS is not set
-CONFIG_EMBEDDED=y
-# CONFIG_VM_EVENT_COUNTERS is not set
-# CONFIG_COMPAT_BRK is not set
-CONFIG_SLOB=y
-# CONFIG_BLOCK is not set
-CONFIG_H8S_SIM=y
-CONFIG_H8300_BUILTIN_DTB="h8s_sim"
-# CONFIG_BINFMT_SCRIPT is not set
-CONFIG_BINFMT_FLAT=y
-# CONFIG_COREDUMP is not set
-# CONFIG_UEVENT_HELPER is not set
-# CONFIG_STANDALONE is not set
-# CONFIG_PREVENT_FIRMWARE_BUILD is not set
-# CONFIG_FW_LOADER is not set
-# CONFIG_ALLOW_DEV_COREDUMP is not set
-# CONFIG_INPUT is not set
-# CONFIG_SERIO is not set
-# CONFIG_VT is not set
-# CONFIG_UNIX98_PTYS is not set
-# CONFIG_LEGACY_PTYS is not set
-# CONFIG_DEVKMEM is not set
-CONFIG_SERIAL_SH_SCI=y
-CONFIG_SERIAL_SH_SCI_CONSOLE=y
-# CONFIG_HW_RANDOM is not set
-# CONFIG_HWMON is not set
-# CONFIG_USB_SUPPORT is not set
-# CONFIG_FILE_LOCKING is not set
-# CONFIG_DNOTIFY is not set
-# CONFIG_INOTIFY_USER is not set
-# CONFIG_PROC_FS is not set
-# CONFIG_SYSFS is not set
-# CONFIG_MISC_FILESYSTEMS is not set
-CONFIG_DEBUG_INFO=y
-# CONFIG_ENABLE_MUST_CHECK is not set
diff --git a/arch/h8300/include/asm/Kbuild b/arch/h8300/include/asm/Kbuild
deleted file mode 100644 (file)
index e23139c..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0
-generic-y += asm-offsets.h
-generic-y += cmpxchg.h
-generic-y += extable.h
-generic-y += kvm_para.h
-generic-y += mcs_spinlock.h
-generic-y += parport.h
-generic-y += spinlock.h
diff --git a/arch/h8300/include/asm/bitops.h b/arch/h8300/include/asm/bitops.h
deleted file mode 100644 (file)
index 4489e3d..0000000
+++ /dev/null
@@ -1,179 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-#ifndef _H8300_BITOPS_H
-#define _H8300_BITOPS_H
-
-/*
- * Copyright 1992, Linus Torvalds.
- * Copyright 2002, Yoshinori Sato
- */
-
-#include <linux/compiler.h>
-
-#include <asm-generic/bitops/fls.h>
-#include <asm-generic/bitops/__fls.h>
-#include <asm-generic/bitops/fls64.h>
-
-#ifdef __KERNEL__
-
-#ifndef _LINUX_BITOPS_H
-#error only <linux/bitops.h> can be included directly
-#endif
-
-/*
- * Function prototypes to keep gcc -Wall happy
- */
-
-/*
- * ffz = Find First Zero in word. Undefined if no zero exists,
- * so code should check against ~0UL first..
- */
-static inline unsigned long ffz(unsigned long word)
-{
-       unsigned long result;
-
-       result = -1;
-       __asm__("1:\n\t"
-               "shlr.l %1\n\t"
-               "adds #1,%0\n\t"
-               "bcs 1b"
-               : "=r"(result),"=r"(word)
-               : "0"(result), "1"(word));
-       return result;
-}
-
-#define H8300_GEN_BITOP(FNAME, OP)                             \
-static inline void FNAME(int nr, volatile unsigned long *addr) \
-{                                                              \
-       unsigned char *b_addr;                                  \
-       unsigned char bit = nr & 7;                             \
-                                                               \
-       b_addr = (unsigned char *)addr + ((nr >> 3) ^ 3);       \
-       if (__builtin_constant_p(nr)) {                         \
-               __asm__(OP " %1,%0" : "+WU"(*b_addr) : "i"(nr & 7));    \
-       } else {                                                \
-               __asm__(OP " %s1,%0" : "+WU"(*b_addr) : "r"(bit));      \
-       }                                                       \
-}
-
-H8300_GEN_BITOP(set_bit,    "bset")
-H8300_GEN_BITOP(clear_bit,  "bclr")
-H8300_GEN_BITOP(change_bit, "bnot")
-#define __set_bit(nr, addr)    set_bit((nr), (addr))
-#define __clear_bit(nr, addr)  clear_bit((nr), (addr))
-#define __change_bit(nr, addr) change_bit((nr), (addr))
-
-#undef H8300_GEN_BITOP
-
-static inline int test_bit(int nr, const volatile unsigned long *addr)
-{
-       int ret = 0;
-       unsigned char *b_addr;
-       unsigned char bit = nr & 7;
-
-       b_addr = (unsigned char *)addr + ((nr >> 3) ^ 3);
-       if (__builtin_constant_p(nr)) {
-               __asm__("bld %Z2,%1\n\t"
-                       "rotxl %0\n\t"
-                       : "=r"(ret)
-                       : "WU"(*b_addr), "i"(nr & 7), "0"(ret) : "cc");
-       } else {
-               __asm__("btst %w2,%1\n\t"
-                       "beq 1f\n\t"
-                       "inc.l #1,%0\n"
-                       "1:"
-                       : "=r"(ret)
-                       : "WU"(*b_addr), "r"(bit), "0"(ret) : "cc");
-       }
-       return ret;
-}
-
-#define __test_bit(nr, addr) test_bit(nr, addr)
-
-#define H8300_GEN_TEST_BITOP(FNNAME, OP)                               \
-static inline int FNNAME(int nr, void *addr)                           \
-{                                                                      \
-       int retval = 0;                                                 \
-       char ccrsave;                                                   \
-       unsigned char *b_addr;                                          \
-       unsigned char bit = nr & 7;                                     \
-                                                                       \
-       b_addr = (unsigned char *)addr + ((nr >> 3) ^ 3);               \
-       if (__builtin_constant_p(nr)) {                                 \
-               __asm__("stc ccr,%s2\n\t"                               \
-                       "orc #0x80,ccr\n\t"                             \
-                       "bld %4,%1\n\t"                                 \
-                       OP " %4,%1\n\t"                                 \
-                       "rotxl.l %0\n\t"                                \
-                       "ldc %s2,ccr"                                   \
-                       : "=r"(retval), "+WU" (*b_addr), "=&r"(ccrsave) \
-                       : "0"(retval), "i"(nr & 7) : "cc");             \
-       } else {                                                        \
-               __asm__("stc ccr,%t3\n\t"                               \
-                       "orc #0x80,ccr\n\t"                             \
-                       "btst %s3,%1\n\t"                               \
-                       OP " %s3,%1\n\t"                                \
-                       "beq 1f\n\t"                                    \
-                       "inc.l #1,%0\n\t"                               \
-                       "1:\n"                                          \
-                       "ldc %t3,ccr"                                   \
-                       : "=r"(retval), "+WU" (*b_addr)                 \
-                       : "0" (retval), "r"(bit) : "cc");               \
-       }                                                               \
-       return retval;                                                  \
-}                                                                      \
-                                                                       \
-static inline int __ ## FNNAME(int nr, void *addr)                     \
-{                                                                      \
-       int retval = 0;                                                 \
-       unsigned char *b_addr;                                          \
-       unsigned char bit = nr & 7;                                     \
-                                                                       \
-       b_addr = (unsigned char *)addr + ((nr >> 3) ^ 3);               \
-       if (__builtin_constant_p(nr)) {                                 \
-               __asm__("bld %3,%1\n\t"                                 \
-                       OP " %3,%1\n\t"                                 \
-                       "rotxl.l %0\n\t"                                \
-                       : "=r"(retval), "+WU"(*b_addr)                  \
-                       : "0" (retval), "i"(nr & 7));                   \
-       } else {                                                        \
-               __asm__("btst %s3,%1\n\t"                               \
-                       OP " %s3,%1\n\t"                                \
-                       "beq 1f\n\t"                                    \
-                       "inc.l #1,%0\n\t"                               \
-                       "1:"                                            \
-                       : "=r"(retval), "+WU"(*b_addr)                  \
-                       : "0" (retval), "r"(bit));                      \
-       }                                                               \
-       return retval;                                                  \
-}
-
-H8300_GEN_TEST_BITOP(test_and_set_bit,   "bset")
-H8300_GEN_TEST_BITOP(test_and_clear_bit,  "bclr")
-H8300_GEN_TEST_BITOP(test_and_change_bit, "bnot")
-#undef H8300_GEN_TEST_BITOP
-
-#include <asm-generic/bitops/ffs.h>
-
-static inline unsigned long __ffs(unsigned long word)
-{
-       unsigned long result;
-
-       result = -1;
-       __asm__("1:\n\t"
-               "shlr.l %1\n\t"
-               "adds #1,%0\n\t"
-               "bcc 1b"
-               : "=r" (result),"=r"(word)
-               : "0"(result), "1"(word));
-       return result;
-}
-
-#include <asm-generic/bitops/sched.h>
-#include <asm-generic/bitops/hweight.h>
-#include <asm-generic/bitops/lock.h>
-#include <asm-generic/bitops/le.h>
-#include <asm-generic/bitops/ext2-atomic.h>
-
-#endif /* __KERNEL__ */
-
-#endif /* _H8300_BITOPS_H */
diff --git a/arch/h8300/include/asm/bug.h b/arch/h8300/include/asm/bug.h
deleted file mode 100644 (file)
index 00fe5e9..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-#ifndef _H8300_BUG_H
-#define _H8300_BUG_H
-
-/* always true */
-#define is_valid_bugaddr(addr) (1)
-
-#include <asm-generic/bug.h>
-
-struct pt_regs;
-extern void die(const char *str, struct pt_regs *fp, unsigned long err);
-
-#endif
diff --git a/arch/h8300/include/asm/byteorder.h b/arch/h8300/include/asm/byteorder.h
deleted file mode 100644 (file)
index 6eaa7ad..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-#ifndef __H8300_BYTEORDER_H__
-#define __H8300_BYTEORDER_H__
-
-#include <linux/byteorder/big_endian.h>
-
-#endif
diff --git a/arch/h8300/include/asm/cache.h b/arch/h8300/include/asm/cache.h
deleted file mode 100644 (file)
index 4243eb3..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-#ifndef __ARCH_H8300_CACHE_H
-#define __ARCH_H8300_CACHE_H
-
-/* bytes per L1 cache line */
-#define        L1_CACHE_SHIFT  2
-#define        L1_CACHE_BYTES  (1 << L1_CACHE_SHIFT)
-
-#define __cacheline_aligned
-#define ____cacheline_aligned
-
-#endif
diff --git a/arch/h8300/include/asm/elf.h b/arch/h8300/include/asm/elf.h
deleted file mode 100644 (file)
index 029647c..0000000
+++ /dev/null
@@ -1,102 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-#ifndef __ASM_H8300_ELF_H
-#define __ASM_H8300_ELF_H
-
-/*
- * ELF register definitions..
- */
-
-#include <asm/ptrace.h>
-#include <asm/user.h>
-
-typedef unsigned long elf_greg_t;
-
-#define ELF_NGREG (sizeof(struct user_regs_struct) / sizeof(elf_greg_t))
-typedef elf_greg_t elf_gregset_t[ELF_NGREG];
-typedef unsigned long elf_fpregset_t;
-
-/*
- * This is used to ensure we don't load something for the wrong architecture.
- */
-#define elf_check_arch(x) ((x)->e_machine == EM_H8_300)
-
-/*
- * These are used to set parameters in the core dumps.
- */
-#define ELF_CLASS      ELFCLASS32
-#define ELF_DATA       ELFDATA2MSB
-#define ELF_ARCH       EM_H8_300
-#if defined(CONFIG_CPU_H8300H)
-#define ELF_CORE_EFLAGS 0x810000
-#endif
-#if defined(CONFIG_CPU_H8S)
-#define ELF_CORE_EFLAGS 0x820000
-#endif
-
-#define ELF_PLAT_INIT(_r) do { (_r)->er1 = 0; } while (0)
-
-#define ELF_EXEC_PAGESIZE      4096
-
-/* This is the location that an ET_DYN program is loaded if exec'ed.  Typical
-   use of this is to invoke "./ld.so someprog" to test out a new version of
-   the loader.  We need to make sure that it is out of the way of the program
-   that it will "exec", and that there is sufficient room for the brk.  */
-
-#define ELF_ET_DYN_BASE         0xD0000000UL
-
-/* This yields a mask that user programs can use to figure out what
-   instruction set this cpu supports.  */
-
-#define ELF_HWCAP      (0)
-
-/* This yields a string that ld.so will use to load implementation
-   specific libraries for optimization.  This is more specific in
-   intent than poking at uname or /proc/cpuinfo.  */
-
-#define ELF_PLATFORM  (NULL)
-
-#define R_H8_NONE       0
-#define R_H8_DIR32      1
-#define R_H8_DIR32_28   2
-#define R_H8_DIR32_24   3
-#define R_H8_DIR32_16   4
-#define R_H8_DIR32U     6
-#define R_H8_DIR32U_28  7
-#define R_H8_DIR32U_24  8
-#define R_H8_DIR32U_20  9
-#define R_H8_DIR32U_16 10
-#define R_H8_DIR24     11
-#define R_H8_DIR24_20  12
-#define R_H8_DIR24_16  13
-#define R_H8_DIR24U    14
-#define R_H8_DIR24U_20 15
-#define R_H8_DIR24U_16 16
-#define R_H8_DIR16     17
-#define R_H8_DIR16U    18
-#define R_H8_DIR16S_32 19
-#define R_H8_DIR16S_28 20
-#define R_H8_DIR16S_24 21
-#define R_H8_DIR16S_20 22
-#define R_H8_DIR16S    23
-#define R_H8_DIR8      24
-#define R_H8_DIR8U     25
-#define R_H8_DIR8Z_32  26
-#define R_H8_DIR8Z_28  27
-#define R_H8_DIR8Z_24  28
-#define R_H8_DIR8Z_20  29
-#define R_H8_DIR8Z_16  30
-#define R_H8_PCREL16   31
-#define R_H8_PCREL8    32
-#define R_H8_BPOS      33
-#define R_H8_PCREL32   34
-#define R_H8_GOT32O    35
-#define R_H8_GOT16O    36
-#define R_H8_DIR16A8   59
-#define R_H8_DIR16R8   60
-#define R_H8_DIR24A8   61
-#define R_H8_DIR24R8   62
-#define R_H8_DIR32A16  63
-#define R_H8_ABS32     65
-#define R_H8_ABS32A16 127
-
-#endif
diff --git a/arch/h8300/include/asm/flat.h b/arch/h8300/include/asm/flat.h
deleted file mode 100644 (file)
index 78070f9..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/*
- * arch/h8300/asm/include/flat.h -- uClinux flat-format executables
- */
-
-#ifndef __H8300_FLAT_H__
-#define __H8300_FLAT_H__
-
-#include <asm/unaligned.h>
-
-/*
- * on the H8 a couple of the relocations have an instruction in the
- * top byte.  As there can only be 24bits of address space,  we just
- * always preserve that 8bits at the top,  when it isn't an instruction
- * is is 0 (davidm@snapgear.com)
- */
-
-#define        flat_get_relocate_addr(rel)             (rel & ~0x00000001)
-static inline int flat_get_addr_from_rp(u32 __user *rp, u32 relval, u32 flags,
-                                       u32 *addr)
-{
-       u32 val = get_unaligned((__force u32 *)rp);
-       if (!(flags & FLAT_FLAG_GOTPIC))
-               val &= 0x00ffffff;
-       *addr = val;
-       return 0;
-}
-
-static inline int flat_put_addr_at_rp(u32 __user *rp, u32 addr, u32 rel)
-{
-       u32 *p = (__force u32 *)rp;
-       put_unaligned((addr & 0x00ffffff) | (*(char *)p << 24), p);
-       return 0;
-}
-
-#endif /* __H8300_FLAT_H__ */
diff --git a/arch/h8300/include/asm/hash.h b/arch/h8300/include/asm/hash.h
deleted file mode 100644 (file)
index 2960b4c..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-#ifndef _ASM_HASH_H
-#define _ASM_HASH_H
-
-/*
- * The later H8SX models have a 32x32-bit multiply, but the H8/300H
- * and H8S have only 16x16->32.  Since it's tolerably compact, this is
- * basically an inlined version of the __mulsi3 code.  Since the inputs
- * are not expected to be small, it's also simplfied by skipping the
- * early-out checks.
- *
- * (Since neither CPU has any multi-bit shift instructions, a
- * shift-and-add version is a non-starter.)
- *
- * TODO: come up with an arch-specific version of the hashing in fs/namei.c,
- * since that is heavily dependent on rotates.  Which, as mentioned, suck
- * horribly on H8.
- */
-
-#if defined(CONFIG_CPU_H300H) || defined(CONFIG_CPU_H8S)
-
-#define HAVE_ARCH__HASH_32 1
-
-/*
- * Multiply by k = 0x61C88647.  Fitting this into three registers requires
- * one extra instruction, but reducing register pressure will probably
- * make that back and then some.
- *
- * GCC asm note: %e1 is the high half of operand %1, while %f1 is the
- * low half.  So if %1 is er4, then %e1 is e4 and %f1 is r4.
- *
- * This has been designed to modify x in place, since that's the most
- * common usage, but preserve k, since hash_64() makes two calls in
- * quick succession.
- */
-static inline u32 __attribute_const__ __hash_32(u32 x)
-{
-       u32 temp;
-
-       asm(   "mov.w   %e1,%f0"
-       "\n     mulxu.w %f2,%0"         /* klow * xhigh */
-       "\n     mov.w   %f0,%e1"        /* The extra instruction */
-       "\n     mov.w   %f1,%f0"
-       "\n     mulxu.w %e2,%0"         /* khigh * xlow */
-       "\n     add.w   %e1,%f0"
-       "\n     mulxu.w %f2,%1"         /* klow * xlow */
-       "\n     add.w   %f0,%e1"
-       : "=&r" (temp), "=r" (x)
-       : "%r" (GOLDEN_RATIO_32), "1" (x));
-       return x;
-}
-
-#endif
-#endif /* _ASM_HASH_H */
diff --git a/arch/h8300/include/asm/io.h b/arch/h8300/include/asm/io.h
deleted file mode 100644 (file)
index 096d995..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-#ifndef _H8300_IO_H
-#define _H8300_IO_H
-
-#ifdef __KERNEL__
-
-#include <linux/types.h>
-
-/* H8/300 internal I/O functions */
-
-#define __raw_readb __raw_readb
-static inline u8 __raw_readb(const volatile void __iomem *addr)
-{
-       return *(volatile u8 *)addr;
-}
-
-#define __raw_readw __raw_readw
-static inline u16 __raw_readw(const volatile void __iomem *addr)
-{
-       return *(volatile u16 *)addr;
-}
-
-#define __raw_readl __raw_readl
-static inline u32  __raw_readl(const volatile void __iomem *addr)
-{
-       return *(volatile u32 *)addr;
-}
-
-#define __raw_writeb __raw_writeb
-static inline void __raw_writeb(u8 b, const volatile void __iomem *addr)
-{
-       *(volatile u8 *)addr = b;
-}
-
-#define __raw_writew __raw_writew
-static inline void __raw_writew(u16 b, const volatile void __iomem *addr)
-{
-       *(volatile u16 *)addr = b;
-}
-
-#define __raw_writel __raw_writel
-static inline void __raw_writel(u32 b, const volatile void __iomem *addr)
-{
-       *(volatile u32 *)addr = b;
-}
-
-static inline void ctrl_bclr(int b, void __iomem *addr)
-{
-       if (__builtin_constant_p(b))
-               __asm__("bclr %1,%0" : "+WU"(*(u8 *)addr): "i"(b));
-       else
-               __asm__("bclr %w1,%0" : "+WU"(*(u8 *)addr): "r"(b));
-}
-
-static inline void ctrl_bset(int b, void __iomem *addr)
-{
-       if (__builtin_constant_p(b))
-               __asm__("bset %1,%0" : "+WU"(*(u8 *)addr): "i"(b));
-       else
-               __asm__("bset %w1,%0" : "+WU"(*(u8 *)addr): "r"(b));
-}
-
-#include <asm-generic/io.h>
-
-#endif /* __KERNEL__ */
-
-#endif /* _H8300_IO_H */
diff --git a/arch/h8300/include/asm/irq.h b/arch/h8300/include/asm/irq.h
deleted file mode 100644 (file)
index 776cf06..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-#ifndef _H8300_IRQ_H_
-#define _H8300_IRQ_H_
-
-#if defined(CONFIG_CPU_H8300H)
-#define NR_IRQS 64
-#define IRQ_CHIP h8300h_irq_chip
-#define EXT_IRQ0 12
-#define EXT_IRQS 6
-#elif defined(CONFIG_CPU_H8S)
-#define NR_IRQS 128
-#define IRQ_CHIP h8s_irq_chip
-#define EXT_IRQ0 16
-#define EXT_IRQS 16
-#endif
-
-static inline int irq_canonicalize(int irq)
-{
-       return irq;
-}
-
-void h8300_init_ipr(void);
-extern struct irq_chip h8300h_irq_chip;
-extern struct irq_chip h8s_irq_chip;
-#endif /* _H8300_IRQ_H_ */
diff --git a/arch/h8300/include/asm/irqflags.h b/arch/h8300/include/asm/irqflags.h
deleted file mode 100644 (file)
index 48756b7..0000000
+++ /dev/null
@@ -1,97 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-#ifndef _H8300_IRQFLAGS_H
-#define _H8300_IRQFLAGS_H
-
-#ifdef CONFIG_CPU_H8300H
-typedef unsigned char h8300flags;
-
-static inline h8300flags arch_local_save_flags(void)
-{
-       h8300flags flags;
-
-       __asm__ volatile ("stc ccr,%w0" : "=r" (flags));
-       return flags;
-}
-
-static inline void arch_local_irq_disable(void)
-{
-       __asm__ volatile ("orc  #0xc0,ccr");
-}
-
-static inline void arch_local_irq_enable(void)
-{
-       __asm__ volatile ("andc #0x3f,ccr");
-}
-
-static inline h8300flags arch_local_irq_save(void)
-{
-       h8300flags flags;
-
-       __asm__ volatile ("stc ccr,%w0\n\t"
-                     "orc  #0xc0,ccr" : "=r" (flags));
-       return flags;
-}
-
-static inline void arch_local_irq_restore(h8300flags flags)
-{
-       __asm__ volatile ("ldc %w0,ccr" : : "r" (flags) : "cc");
-}
-
-static inline int arch_irqs_disabled_flags(unsigned long flags)
-{
-       return (flags & 0xc0) == 0xc0;
-}
-#endif
-#ifdef CONFIG_CPU_H8S
-typedef unsigned short h8300flags;
-
-static inline h8300flags arch_local_save_flags(void)
-{
-       h8300flags flags;
-
-       __asm__ volatile ("stc ccr,%w0\n\tstc exr,%x0" : "=r" (flags));
-       return flags;
-}
-
-static inline void arch_local_irq_disable(void)
-{
-       __asm__ volatile ("orc #0x80,ccr\n\t");
-}
-
-static inline void arch_local_irq_enable(void)
-{
-       __asm__ volatile ("andc #0x7f,ccr\n\t"
-                     "andc #0xf0,exr\n\t");
-}
-
-static inline h8300flags arch_local_irq_save(void)
-{
-       h8300flags flags;
-
-       __asm__ volatile ("stc ccr,%w0\n\t"
-                     "stc exr,%x0\n\t"
-                     "orc  #0x80,ccr\n\t"
-                     : "=r" (flags));
-       return flags;
-}
-
-static inline void arch_local_irq_restore(h8300flags flags)
-{
-       __asm__ volatile ("ldc %w0,ccr\n\t"
-                     "ldc %x0,exr"
-                     : : "r" (flags) : "cc");
-}
-
-static inline int arch_irqs_disabled_flags(h8300flags flags)
-{
-       return (flags & 0x0080) == 0x0080;
-}
-
-#endif
-
-static inline int arch_irqs_disabled(void)
-{
-       return arch_irqs_disabled_flags(arch_local_save_flags());
-}
-
-#endif /* _H8300_IRQFLAGS_H */
diff --git a/arch/h8300/include/asm/kgdb.h b/arch/h8300/include/asm/kgdb.h
deleted file mode 100644 (file)
index 726ff8f..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Copyright (C) 2015 Yoshinori Sato <ysato@users.sourceforge.jp>
- *
- * This file is subject to the terms and conditions of the GNU General Public
- * License.  See the file "COPYING" in the main directory of this archive
- * for more details.
- */
-
-#ifndef _ASM_H8300_KGDB_H
-#define _ASM_H8300_KGDB_H
-
-#define CACHE_FLUSH_IS_SAFE    1
-#define BUFMAX                 2048
-
-enum regnames {
-       GDB_ER0, GDB_ER1, GDB_ER2, GDB_ER3,
-       GDB_ER4, GDB_ER5, GDB_ER6, GDB_SP,
-       GDB_CCR, GDB_PC,
-       GDB_CYCLLE,
-#if defined(CONFIG_CPU_H8S)
-       GDB_EXR,
-#endif
-       GDB_TICK, GDB_INST,
-#if defined(CONFIG_CPU_H8S)
-       GDB_MACH, GDB_MACL,
-#endif
-       /* do not change the last entry or anything below! */
-       GDB_NUMREGBYTES,                /* number of registers */
-};
-
-#define GDB_SIZEOF_REG         sizeof(u32)
-#if defined(CONFIG_CPU_H8300H)
-#define DBG_MAX_REG_NUM                (13)
-#elif defined(CONFIG_CPU_H8S)
-#define DBG_MAX_REG_NUM                (14)
-#endif
-#define NUMREGBYTES            (DBG_MAX_REG_NUM * GDB_SIZEOF_REG)
-
-#define BREAK_INSTR_SIZE       2
-static inline void arch_kgdb_breakpoint(void)
-{
-       __asm__ __volatile__("trapa #2");
-}
-
-#endif /* _ASM_H8300_KGDB_H */
diff --git a/arch/h8300/include/asm/mmu_context.h b/arch/h8300/include/asm/mmu_context.h
deleted file mode 100644 (file)
index a9f550f..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-#ifndef _ASM_H8300_MMU_CONTEXT_H
-#define _ASM_H8300_MMU_CONTEXT_H
-
-#include <asm-generic/nommu_context.h>
-
-#endif /* _ASM_H8300_MMU_CONTEXT_H */
diff --git a/arch/h8300/include/asm/page.h b/arch/h8300/include/asm/page.h
deleted file mode 100644 (file)
index 53e0375..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-#ifndef _H8300_PAGE_H
-#define _H8300_PAGE_H
-
-#include <asm-generic/page.h>
-#include <linux/types.h>
-
-#define MAP_NR(addr) (((uintptr_t)(addr)-PAGE_OFFSET) >> PAGE_SHIFT)
-
-#ifndef __ASSEMBLY__
-extern unsigned long rom_length;
-extern unsigned long memory_start;
-extern unsigned long memory_end;
-extern unsigned long _ramend;
-#endif
-
-#endif
diff --git a/arch/h8300/include/asm/page_offset.h b/arch/h8300/include/asm/page_offset.h
deleted file mode 100644 (file)
index 888576d..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-
-#define PAGE_OFFSET_RAW                0x00000000
diff --git a/arch/h8300/include/asm/pgtable.h b/arch/h8300/include/asm/pgtable.h
deleted file mode 100644 (file)
index ea833a5..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-#ifndef _H8300_PGTABLE_H
-#define _H8300_PGTABLE_H
-#include <asm-generic/pgtable-nopud.h>
-extern void paging_init(void);
-#define PAGE_NONE              __pgprot(0)    /* these mean nothing to NO_MM */
-#define PAGE_SHARED            __pgprot(0)    /* these mean nothing to NO_MM */
-#define PAGE_COPY              __pgprot(0)    /* these mean nothing to NO_MM */
-#define PAGE_READONLY  __pgprot(0)    /* these mean nothing to NO_MM */
-#define PAGE_KERNEL            __pgprot(0)    /* these mean nothing to NO_MM */
-#define __swp_type(x)          (0)
-#define __swp_offset(x)                (0)
-#define __swp_entry(typ, off)  ((swp_entry_t) { ((typ) | ((off) << 7)) })
-#define __pte_to_swp_entry(pte)        ((swp_entry_t) { pte_val(pte) })
-#define __swp_entry_to_pte(x)  ((pte_t) { (x).val })
-#define kern_addr_valid(addr)  (1)
-#define pgprot_writecombine(prot)  (prot)
-#define pgprot_noncached pgprot_writecombine
-
-static inline int pte_file(pte_t pte) { return 0; }
-#define swapper_pg_dir ((pgd_t *) 0)
-/*
- * ZERO_PAGE is a global shared page that is always zero: used
- * for zero-mapped memory areas etc..
- */
-#define ZERO_PAGE(vaddr)       (virt_to_page(0))
-
-/*
- * These would be in other places but having them here reduces the diffs.
- */
-extern unsigned int kobjsize(const void *objp);
-extern int is_in_rom(unsigned long);
-
-/*
- * All 32bit addresses are effectively valid for vmalloc...
- * Sort of meaningless for non-VM targets.
- */
-#define        VMALLOC_START   0
-#define        VMALLOC_END     0xffffffff
-
-#define arch_enter_lazy_cpu_mode()    do {} while (0)
-
-#endif /* _H8300_PGTABLE_H */
diff --git a/arch/h8300/include/asm/processor.h b/arch/h8300/include/asm/processor.h
deleted file mode 100644 (file)
index 141a23e..0000000
+++ /dev/null
@@ -1,127 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/*
- * include/asm-h8300/processor.h
- *
- * Copyright (C) 2002 Yoshinori Sato
- *
- * Based on: linux/asm-m68nommu/processor.h
- *
- * Copyright (C) 1995 Hamish Macdonald
- */
-
-#ifndef __ASM_H8300_PROCESSOR_H
-#define __ASM_H8300_PROCESSOR_H
-
-#include <linux/compiler.h>
-#include <asm/segment.h>
-#include <asm/ptrace.h>
-#include <asm/current.h>
-
-static inline unsigned long rdusp(void)
-{
-       extern unsigned int     _sw_usp;
-
-       return _sw_usp;
-}
-
-static inline void wrusp(unsigned long usp)
-{
-       extern unsigned int     _sw_usp;
-
-       _sw_usp = usp;
-}
-
-/*
- * User space process size: 3.75GB. This is hardcoded into a few places,
- * so don't change it unless you know what you are doing.
- */
-#define TASK_SIZE      (0xFFFFFFFFUL)
-
-#ifdef __KERNEL__
-#define STACK_TOP      TASK_SIZE
-#define STACK_TOP_MAX  STACK_TOP
-#endif
-
-/*
- * This decides where the kernel will search for a free chunk of vm
- * space during mmap's. We won't be using it
- */
-#define TASK_UNMAPPED_BASE     0
-
-struct thread_struct {
-       unsigned long  ksp;             /* kernel stack pointer */
-       unsigned long  usp;             /* user stack pointer */
-       unsigned long  ccr;             /* saved status register */
-       unsigned long  esp0;            /* points to SR of stack frame */
-       struct {
-               unsigned short *addr;
-               unsigned short inst;
-       } breakinfo;
-};
-
-#define INIT_THREAD  {                                         \
-       .ksp  = sizeof(init_stack) + (unsigned long)init_stack, \
-       .usp  = 0,                                              \
-       .ccr  = PS_S,                                           \
-       .esp0 = 0,                                              \
-       .breakinfo = {                                          \
-               .addr = (unsigned short *)-1,                   \
-               .inst = 0                                       \
-       }                                                       \
-}
-
-/*
- * Do necessary setup to start up a newly executed thread.
- *
- * pass the data segment into user programs if it exists,
- * it can't hurt anything as far as I can tell
- */
-#if defined(CONFIG_CPU_H8300H)
-#define start_thread(_regs, _pc, _usp)                         \
-do {                                                           \
-       (_regs)->pc = (_pc);                                    \
-       (_regs)->ccr = 0x00;       /* clear all flags */        \
-       (_regs)->er5 = current->mm->start_data; /* GOT base */  \
-       (_regs)->sp = ((unsigned long)(_usp)) - sizeof(unsigned long) * 3; \
-} while (0)
-#endif
-#if defined(CONFIG_CPU_H8S)
-#define start_thread(_regs, _pc, _usp)                         \
-do {                                                           \
-       (_regs)->pc = (_pc);                                    \
-       (_regs)->ccr = 0x00;       /* clear kernel flag */      \
-       (_regs)->exr = 0x78;       /* enable all interrupts */  \
-       (_regs)->er5 = current->mm->start_data; /* GOT base */  \
-       /* 14 = space for retaddr(4), vector(4), er0(4) and exr(2) on stack */ \
-       (_regs)->sp = ((unsigned long)(_usp)) - 14;             \
-} while (0)
-#endif
-
-/* Forward declaration, a strange C thing */
-struct task_struct;
-
-/* Free all resources held by a thread. */
-static inline void release_thread(struct task_struct *dead_task)
-{
-}
-
-unsigned long __get_wchan(struct task_struct *p);
-
-#define        KSTK_EIP(tsk)   \
-       ({                       \
-               unsigned long eip = 0;        \
-               if ((tsk)->thread.esp0 > PAGE_SIZE &&   \
-                   MAP_NR((tsk)->thread.esp0) < max_mapnr)      \
-                       eip = ((struct pt_regs *) (tsk)->thread.esp0)->pc; \
-               eip; })
-
-#define        KSTK_ESP(tsk)   ((tsk) == current ? rdusp() : (tsk)->thread.usp)
-
-#define cpu_relax()    barrier()
-
-#define HARD_RESET_NOW() ({            \
-       local_irq_disable();            \
-       asm("jmp @@0");                 \
-})
-
-#endif
diff --git a/arch/h8300/include/asm/ptrace.h b/arch/h8300/include/asm/ptrace.h
deleted file mode 100644 (file)
index 66d3838..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-#ifndef _H8300_PTRACE_H
-#define _H8300_PTRACE_H
-
-#include <uapi/asm/ptrace.h>
-
-struct task_struct;
-
-#ifndef __ASSEMBLY__
-#ifndef PS_S
-#define PS_S  (0x10)
-#endif
-
-#if defined(CONFIG_CPU_H8300H)
-#define H8300_REGS_NO 11
-#endif
-#if defined(CONFIG_CPU_H8S)
-#define H8300_REGS_NO 12
-#endif
-
-#define arch_has_single_step() (1)
-
-#define user_mode(regs) (!((regs)->ccr & PS_S))
-#define instruction_pointer(regs) ((regs)->pc)
-#define profile_pc(regs) instruction_pointer(regs)
-#define user_stack_pointer(regs) ((regs)->sp)
-#define current_pt_regs() ((struct pt_regs *) \
-       (THREAD_SIZE + (unsigned long)current_thread_info()) - 1)
-#define signal_pt_regs() ((struct pt_regs *)current->thread.esp0)
-#define current_user_stack_pointer() rdusp()
-#define task_pt_regs(task) \
-       ((struct pt_regs *) (task_stack_page(task) + THREAD_SIZE) - 1)
-
-extern long h8300_get_reg(struct task_struct *task, int regno);
-extern int h8300_put_reg(struct task_struct *task, int regno,
-                        unsigned long data);
-
-#endif /* __ASSEMBLY__ */
-#endif /* _H8300_PTRACE_H */
diff --git a/arch/h8300/include/asm/segment.h b/arch/h8300/include/asm/segment.h
deleted file mode 100644 (file)
index 3795072..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-#ifndef _H8300_SEGMENT_H
-#define _H8300_SEGMENT_H
-
-/* define constants */
-#define USER_DATA     (1)
-#ifndef __USER_DS
-#define __USER_DS     (USER_DATA)
-#endif
-#define USER_PROGRAM  (2)
-#define SUPER_DATA    (3)
-#ifndef __KERNEL_DS
-#define __KERNEL_DS   (SUPER_DATA)
-#endif
-#define SUPER_PROGRAM (4)
-
-#ifndef __ASSEMBLY__
-
-typedef struct {
-       unsigned long seg;
-} mm_segment_t;
-
-#define MAKE_MM_SEG(s) ((mm_segment_t) { (s) })
-#define USER_DS                MAKE_MM_SEG(__USER_DS)
-#define KERNEL_DS      MAKE_MM_SEG(__KERNEL_DS)
-
-/*
- * Get/set the SFC/DFC registers for MOVES instructions
- */
-
-static inline mm_segment_t get_fs(void)
-{
-       return USER_DS;
-}
-
-#define uaccess_kernel()       (get_fs().seg == KERNEL_DS.seg)
-
-#endif /* __ASSEMBLY__ */
-
-#endif /* _H8300_SEGMENT_H */
diff --git a/arch/h8300/include/asm/signal.h b/arch/h8300/include/asm/signal.h
deleted file mode 100644 (file)
index a42f32c..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-#ifndef _H8300_SIGNAL_H
-#define _H8300_SIGNAL_H
-
-#include <uapi/asm/signal.h>
-
-/* Most things should be clean enough to redefine this at will, if care
-   is taken to make libc match.  */
-
-#define _NSIG          64
-#define _NSIG_BPW      32
-#define _NSIG_WORDS    (_NSIG / _NSIG_BPW)
-
-typedef unsigned long old_sigset_t;            /* at least 32 bits */
-
-typedef struct {
-       unsigned long sig[_NSIG_WORDS];
-} sigset_t;
-
-#define __ARCH_HAS_SA_RESTORER
-#include <asm/sigcontext.h>
-
-#endif /* _H8300_SIGNAL_H */
diff --git a/arch/h8300/include/asm/smp.h b/arch/h8300/include/asm/smp.h
deleted file mode 100644 (file)
index 9e9bd7e..0000000
+++ /dev/null
@@ -1 +0,0 @@
-/* nothing required here yet */
diff --git a/arch/h8300/include/asm/string.h b/arch/h8300/include/asm/string.h
deleted file mode 100644 (file)
index 78e45bb..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-#ifndef _H8300_STRING_H_
-#define _H8300_STRING_H_
-
-#ifdef __KERNEL__ /* only set these up for kernel code */
-
-#include <asm/setup.h>
-#include <asm/page.h>
-
-#define __HAVE_ARCH_MEMSET
-extern void *memset(void *s, int c, size_t count);
-
-#define __HAVE_ARCH_MEMCPY
-extern void *memcpy(void *d, const void *s, size_t count);
-
-#endif /* KERNEL */
-
-#endif
diff --git a/arch/h8300/include/asm/switch_to.h b/arch/h8300/include/asm/switch_to.h
deleted file mode 100644 (file)
index 2b7e955..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-#ifndef _H8300_SWITCH_TO_H
-#define _H8300_SWITCH_TO_H
-
-/*
- * switch_to(n) should switch tasks to task ptr, first checking that
- * ptr isn't the current task, in which case it does nothing.  This
- * also clears the TS-flag if the task we switched to has used the
- * math co-processor latest.
- */
-/*
- * switch_to() saves the extra registers, that are not saved
- * automatically by SAVE_SWITCH_STACK in resume(), ie. d0-d5 and
- * a0-a1. Some of these are used by schedule() and its predecessors
- * and so we might get see unexpected behaviors when a task returns
- * with unexpected register values.
- *
- * syscall stores these registers itself and none of them are used
- * by syscall after the function in the syscall has been called.
- *
- * Beware that resume now expects *next to be in d1 and the offset of
- * tss to be in a1. This saves a few instructions as we no longer have
- * to push them onto the stack and read them back right after.
- *
- * 02/17/96 - Jes Sorensen (jds@kom.auc.dk)
- *
- * Changed 96/09/19 by Andreas Schwab
- * pass prev in a0, next in a1, offset of tss in d1, and whether
- * the mm structures are shared in d2 (to avoid atc flushing).
- *
- * H8/300 Porting 2002/09/04 Yoshinori Sato
- */
-
-asmlinkage void resume(void);
-#define switch_to(prev, next, last) \
-do {                        \
-       void *_last;                                        \
-       __asm__ __volatile__(                               \
-               "mov.l  %1, er0\n\t"                        \
-               "mov.l  %2, er1\n\t"                        \
-               "mov.l  %3, er2\n\t"                        \
-               "jsr @_resume\n\t"                          \
-               "mov.l  er2,%0\n\t"                         \
-               : "=r" (_last)                              \
-               : "r" (&(prev->thread)),                    \
-                 "r" (&(next->thread)),                    \
-                 "g" (prev)                                \
-               : "cc", "er0", "er1", "er2", "er3");        \
-       (last) = _last;                                     \
-} while (0)
-
-#endif /* _H8300_SWITCH_TO_H */
diff --git a/arch/h8300/include/asm/syscall.h b/arch/h8300/include/asm/syscall.h
deleted file mode 100644 (file)
index 01666b8..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-#ifndef __ASM_H8300_SYSCALLS_32_H
-#define __ASM_H8300_SYSCALLS_32_H
-
-#ifdef __KERNEL__
-
-#include <linux/compiler.h>
-#include <linux/linkage.h>
-#include <linux/types.h>
-#include <linux/ptrace.h>
-#include <uapi/linux/audit.h>
-
-static inline int
-syscall_get_nr(struct task_struct *task, struct pt_regs *regs)
-{
-       return regs->orig_er0;
-}
-
-static inline void
-syscall_get_arguments(struct task_struct *task, struct pt_regs *regs,
-                     unsigned long *args)
-{
-       *args++ = regs->er1;
-       *args++ = regs->er2;
-       *args++ = regs->er3;
-       *args++ = regs->er4;
-       *args++ = regs->er5;
-       *args   = regs->er6;
-}
-
-static inline int
-syscall_get_arch(struct task_struct *task)
-{
-       return AUDIT_ARCH_H8300;
-}
-
-
-/* Misc syscall related bits */
-asmlinkage long do_syscall_trace_enter(struct pt_regs *regs);
-asmlinkage void do_syscall_trace_leave(struct pt_regs *regs);
-
-#endif /* __KERNEL__ */
-#endif /* __ASM_H8300_SYSCALLS_32_H */
diff --git a/arch/h8300/include/asm/thread_info.h b/arch/h8300/include/asm/thread_info.h
deleted file mode 100644 (file)
index a518214..0000000
+++ /dev/null
@@ -1,105 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/* thread_info.h: h8300 low-level thread information
- * adapted from the i386 and PPC versions by Yoshinori Sato <ysato@users.sourceforge.jp>
- *
- * Copyright (C) 2002  David Howells (dhowells@redhat.com)
- * - Incorporating suggestions made by Linus Torvalds and Dave Miller
- */
-
-#ifndef _ASM_THREAD_INFO_H
-#define _ASM_THREAD_INFO_H
-
-#include <asm/page.h>
-#include <asm/segment.h>
-
-#ifdef __KERNEL__
-
-/*
- * Size of kernel stack for each process. This must be a power of 2...
- */
-#define THREAD_SIZE_ORDER      1
-#define THREAD_SIZE            8192    /* 2 pages */
-
-#ifndef __ASSEMBLY__
-
-/*
- * low level task data.
- * If you change this, change the TI_* offsets below to match.
- */
-struct thread_info {
-       struct task_struct *task;               /* main task structure */
-       unsigned long      flags;               /* low level flags */
-       int                cpu;                 /* cpu we're on */
-       int                preempt_count;       /* 0 => preemptable, <0 => BUG */
-       mm_segment_t            addr_limit;
-};
-
-/*
- * macros/functions for gaining access to the thread information structure
- */
-#define INIT_THREAD_INFO(tsk)                  \
-{                                              \
-       .task =         &tsk,                   \
-       .flags =        0,                      \
-       .cpu =          0,                      \
-       .preempt_count = INIT_PREEMPT_COUNT,    \
-       .addr_limit     = KERNEL_DS,            \
-}
-
-/* how to get the thread information struct from C */
-static inline struct thread_info *current_thread_info(void)
-{
-       struct thread_info *ti;
-
-       __asm__("mov.l  sp, %0\n\t"
-               "and.w  %1, %T0"
-               : "=&r"(ti)
-               : "i" (~(THREAD_SIZE-1) & 0xffff));
-       return ti;
-}
-
-#endif /* __ASSEMBLY__ */
-
-/*
- * thread information flag bit numbers
- */
-#define TIF_SYSCALL_TRACE      0       /* syscall trace active */
-#define TIF_SIGPENDING         1       /* signal pending */
-#define TIF_NEED_RESCHED       2       /* rescheduling necessary */
-#define TIF_SINGLESTEP         3       /* singlestepping active */
-#define TIF_MEMDIE             4       /* is terminating due to OOM killer */
-#define TIF_RESTORE_SIGMASK    5       /* restore signal mask in do_signal() */
-#define TIF_NOTIFY_RESUME      6       /* callback before returning to user */
-#define TIF_SYSCALL_AUDIT      7       /* syscall auditing active */
-#define TIF_SYSCALL_TRACEPOINT 8       /* for ftrace syscall instrumentation */
-#define TIF_POLLING_NRFLAG     9       /* true if poll_idle() is polling TIF_NEED_RESCHED */
-#define TIF_NOTIFY_SIGNAL      10      /* signal notifications exist */
-
-/* as above, but as bit values */
-#define _TIF_SYSCALL_TRACE     (1 << TIF_SYSCALL_TRACE)
-#define _TIF_SIGPENDING                (1 << TIF_SIGPENDING)
-#define _TIF_NEED_RESCHED      (1 << TIF_NEED_RESCHED)
-#define _TIF_NOTIFY_RESUME     (1 << TIF_NOTIFY_RESUME)
-#define _TIF_SINGLESTEP                (1 << TIF_SINGLESTEP)
-#define _TIF_SYSCALL_AUDIT     (1 << TIF_SYSCALL_AUDIT)
-#define _TIF_SYSCALL_TRACEPOINT        (1 << TIF_SYSCALL_TRACEPOINT)
-#define _TIF_POLLING_NRFLAG    (1 << TIF_POLLING_NRFLAG)
-#define _TIF_NOTIFY_SIGNAL     (1 << TIF_NOTIFY_SIGNAL)
-
-/* work to do in syscall trace */
-#define _TIF_WORK_SYSCALL_MASK (_TIF_SYSCALL_TRACE | _TIF_SINGLESTEP | \
-                                _TIF_SYSCALL_AUDIT | _TIF_SYSCALL_TRACEPOINT)
-
-/* work to do on any return to u-space */
-#define _TIF_ALLWORK_MASK      (_TIF_SYSCALL_TRACE | _TIF_SIGPENDING      | \
-                                _TIF_NEED_RESCHED  | _TIF_SYSCALL_AUDIT   | \
-                                _TIF_SINGLESTEP    | _TIF_NOTIFY_RESUME   | \
-                                _TIF_SYSCALL_TRACEPOINT | _TIF_NOTIFY_SIGNAL)
-
-/* work to do on interrupt/exception return */
-#define _TIF_WORK_MASK         (_TIF_ALLWORK_MASK & ~(_TIF_SYSCALL_TRACE | \
-                                _TIF_SYSCALL_AUDIT | _TIF_SINGLESTEP))
-
-#endif /* __KERNEL__ */
-
-#endif /* _ASM_THREAD_INFO_H */
diff --git a/arch/h8300/include/asm/tlb.h b/arch/h8300/include/asm/tlb.h
deleted file mode 100644 (file)
index d8201ca..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-#ifndef __H8300_TLB_H__
-#define __H8300_TLB_H__
-
-#include <asm-generic/tlb.h>
-
-#endif
diff --git a/arch/h8300/include/asm/traps.h b/arch/h8300/include/asm/traps.h
deleted file mode 100644 (file)
index 1c5a30e..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- *  linux/include/asm-h8300/traps.h
- *
- *  Copyright (C) 2003 Yoshinori Sato <ysato@users.sourceforge.jp>
- *
- * This file is subject to the terms and conditions of the GNU General Public
- * License.  See the file COPYING in the main directory of this archive
- * for more details.
- */
-
-#ifndef _H8300_TRAPS_H
-#define _H8300_TRAPS_H
-
-extern void _system_call(void);
-extern void _interrupt_entry(void);
-extern void _trace_break(void);
-extern void _nmi(void);
-extern void _interrupt_entry(void);
-
-extern unsigned long *_interrupt_redirect_table;
-
-#define JMP_OP 0x5a000000
-#define JSR_OP 0x5e000000
-#define VECTOR(address) ((JMP_OP)|((unsigned long)address))
-#define REDIRECT(address) ((JSR_OP)|((unsigned long)address))
-#define CPU_VECTOR ((unsigned long *)0x000000)
-#define ADDR_MASK (0xffffff)
-
-#define TRACE_VEC 5
-
-#define TRAP0_VEC 8
-#define TRAP1_VEC 9
-#define TRAP2_VEC 10
-#define TRAP3_VEC 11
-
-extern char _start[], _etext[];
-#define check_kernel_text(addr) \
-       ((addr >= (unsigned long)(_start)) && \
-        (addr <  (unsigned long)(_etext)) && !(addr & 1))
-
-#endif /* _H8300_TRAPS_H */
diff --git a/arch/h8300/include/asm/user.h b/arch/h8300/include/asm/user.h
deleted file mode 100644 (file)
index 2298909..0000000
+++ /dev/null
@@ -1,75 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-#ifndef _H8300_USER_H
-#define _H8300_USER_H
-
-#include <asm/page.h>
-
-/* Core file format: The core file is written in such a way that gdb
-   can understand it and provide useful information to the user (under
-   linux we use the 'trad-core' bfd).  There are quite a number of
-   obstacles to being able to view the contents of the floating point
-   registers, and until these are solved you will not be able to view the
-   contents of them.  Actually, you can read in the core file and look at
-   the contents of the user struct to find out what the floating point
-   registers contain.
-   The actual file contents are as follows:
-   UPAGE: 1 page consisting of a user struct that tells gdb what is present
-   in the file.  Directly after this is a copy of the task_struct, which
-   is currently not used by gdb, but it may come in useful at some point.
-   All of the registers are stored as part of the upage.  The upage should
-   always be only one page.
-   DATA: The data area is stored.  We use current->end_text to
-   current->brk to pick up all of the user variables, plus any memory
-   that may have been malloced.  No attempt is made to determine if a page
-   is demand-zero or if a page is totally unused, we just cover the entire
-   range.  All of the addresses are rounded in such a way that an integral
-   number of pages is written.
-   STACK: We need the stack information in order to get a meaningful
-   backtrace.  We need to write the data from (esp) to
-   current->start_stack, so we round each of these off in order to be able
-   to write an integer number of pages.
-   The minimum core file size is 3 pages, or 12288 bytes.
-*/
-
-/* This is the old layout of "struct pt_regs" as of Linux 1.x, and
-   is still the layout used by user (the new pt_regs doesn't have
-   all registers). */
-struct user_regs_struct {
-       long er1, er2, er3, er4, er5, er6;
-       long er0;
-       long usp;
-       long orig_er0;
-       long ccr;
-       long pc;
-};
-
-/* When the kernel dumps core, it starts by dumping the user struct -
-   this will be used by gdb to figure out where the data and stack segments
-   are within the file, and what virtual addresses to use. */
-struct user {
-/* We start with the registers, to mimic the way that "memory" is returned
-   from the ptrace(3,...) function.  */
-       struct user_regs_struct regs;   /* Where the registers are actually stored */
-/* ptrace does not yet supply these.  Someday.... */
-/* The rest of this junk is to help gdb figure out what goes where */
-       unsigned long int u_tsize;      /* Text segment size (pages). */
-       unsigned long int u_dsize;      /* Data segment size (pages). */
-       unsigned long int u_ssize;      /* Stack segment size (pages). */
-       unsigned long start_code;     /* Starting virtual address of text. */
-       unsigned long start_stack;      /* Starting virtual address of stack area.
-                                          This is actually the bottom of the stack,
-                                          the top of the stack is always found in the
-                                          esp register.  */
-       long int signal;                /* Signal that caused the core dump. */
-       int reserved;                   /* No longer used */
-       unsigned long u_ar0;            /* Used by gdb to help find the values for */
-       /* the registers. */
-       unsigned long magic;            /* To uniquely identify a core file */
-       char u_comm[32];                /* User command that was responsible */
-};
-#define NBPG PAGE_SIZE
-#define UPAGES 1
-#define HOST_TEXT_START_ADDR (u.start_code)
-#define HOST_STACK_END_ADDR (u.start_stack + u.u_ssize * NBPG)
-
-#endif
diff --git a/arch/h8300/include/asm/vmalloc.h b/arch/h8300/include/asm/vmalloc.h
deleted file mode 100644 (file)
index 08a55c1..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-#ifndef _ASM_H8300_VMALLOC_H
-#define _ASM_H8300_VMALLOC_H
-
-#endif /* _ASM_H8300_VMALLOC_H */
diff --git a/arch/h8300/include/uapi/asm/Kbuild b/arch/h8300/include/uapi/asm/Kbuild
deleted file mode 100644 (file)
index e784701..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0
-generic-y += ucontext.h
diff --git a/arch/h8300/include/uapi/asm/byteorder.h b/arch/h8300/include/uapi/asm/byteorder.h
deleted file mode 100644 (file)
index 1fe2f93..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
-#ifndef _H8300_BYTEORDER_H
-#define _H8300_BYTEORDER_H
-
-#include <linux/byteorder/big_endian.h>
-
-#endif /* _H8300_BYTEORDER_H */
diff --git a/arch/h8300/include/uapi/asm/posix_types.h b/arch/h8300/include/uapi/asm/posix_types.h
deleted file mode 100644 (file)
index 3efc9dd..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0-only WITH Linux-syscall-note */
-#ifndef _UAPI_ASM_POSIX_TYPES_H
-#define _UAPI_ASM_POSIX_TYPES_H
-
-/* h8300-unknown-linux required long */
-#define __kernel_size_t __kernel_size_t
-typedef unsigned long  __kernel_size_t;
-typedef long           __kernel_ssize_t;
-typedef long           __kernel_ptrdiff_t;
-
-#include <asm-generic/posix_types.h>
-
-#endif /* _UAPI_ASM_POSIX_TYPES_H */
diff --git a/arch/h8300/include/uapi/asm/ptrace.h b/arch/h8300/include/uapi/asm/ptrace.h
deleted file mode 100644 (file)
index 78167f5..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
-#ifndef _UAPI_H8300_PTRACE_H
-#define _UAPI_H8300_PTRACE_H
-
-#ifndef __ASSEMBLY__
-
-#define PT_ER1    0
-#define PT_ER2    1
-#define PT_ER3    2
-#define PT_ER4    3
-#define PT_ER5    4
-#define PT_ER6    5
-#define PT_ER0    6
-#define PT_USP    7
-#define PT_ORIG_ER0       8
-#define PT_CCR    9
-#define PT_PC     10
-#define PT_EXR     11
-
-/* this struct defines the way the registers are stored on the
-   stack during a system call. */
-
-struct pt_regs {
-       long     retpc;
-       long     er4;
-       long     er5;
-       long     er6;
-       long     er3;
-       long     er2;
-       long     er1;
-       long     orig_er0;
-       long     sp;
-       unsigned short   ccr;
-       long     er0;
-       long     vector;
-#if defined(__H8300S__)
-       unsigned short   exr;
-#endif
-       unsigned long  pc;
-} __attribute__((aligned(2), packed));
-
-#endif /* __ASSEMBLY__ */
-#endif /* _UAPI_H8300_PTRACE_H */
diff --git a/arch/h8300/include/uapi/asm/sigcontext.h b/arch/h8300/include/uapi/asm/sigcontext.h
deleted file mode 100644 (file)
index f77273c..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
-#ifndef _ASM_H8300_SIGCONTEXT_H
-#define _ASM_H8300_SIGCONTEXT_H
-
-struct sigcontext {
-       unsigned long  sc_mask;         /* old sigmask */
-       unsigned long  sc_usp;          /* old user stack pointer */
-       unsigned long  sc_er0;
-       unsigned long  sc_er1;
-       unsigned long  sc_er2;
-       unsigned long  sc_er3;
-       unsigned long  sc_er4;
-       unsigned long  sc_er5;
-       unsigned long  sc_er6;
-       unsigned short sc_ccr;
-       unsigned long  sc_pc;
-};
-
-#endif
diff --git a/arch/h8300/include/uapi/asm/signal.h b/arch/h8300/include/uapi/asm/signal.h
deleted file mode 100644 (file)
index 2cd0dce..0000000
+++ /dev/null
@@ -1,92 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
-#ifndef _UAPI_H8300_SIGNAL_H
-#define _UAPI_H8300_SIGNAL_H
-
-#include <linux/types.h>
-
-/* Avoid too many header ordering problems.  */
-struct siginfo;
-
-#ifndef __KERNEL__
-/* Here we must cater to libcs that poke about in kernel headers.  */
-
-#define NSIG           32
-typedef unsigned long sigset_t;
-
-#endif /* __KERNEL__ */
-
-#define SIGHUP          1
-#define SIGINT          2
-#define SIGQUIT                 3
-#define SIGILL          4
-#define SIGTRAP                 5
-#define SIGABRT                 6
-#define SIGIOT          6
-#define SIGBUS          7
-#define SIGFPE          8
-#define SIGKILL                 9
-#define SIGUSR1                10
-#define SIGSEGV                11
-#define SIGUSR2                12
-#define SIGPIPE                13
-#define SIGALRM                14
-#define SIGTERM                15
-#define SIGSTKFLT      16
-#define SIGCHLD                17
-#define SIGCONT                18
-#define SIGSTOP                19
-#define SIGTSTP                20
-#define SIGTTIN                21
-#define SIGTTOU                22
-#define SIGURG         23
-#define SIGXCPU                24
-#define SIGXFSZ                25
-#define SIGVTALRM      26
-#define SIGPROF                27
-#define SIGWINCH       28
-#define SIGIO          29
-#define SIGPOLL                SIGIO
-/*
-#define SIGLOST                29
-*/
-#define SIGPWR         30
-#define SIGSYS         31
-#define        SIGUNUSED       31
-
-/* These should not be considered constants from userland.  */
-#define SIGRTMIN       32
-#define SIGRTMAX       _NSIG
-
-#define SA_RESTORER    0x04000000
-
-#define MINSIGSTKSZ    2048
-#define SIGSTKSZ       8192
-
-#include <asm-generic/signal-defs.h>
-
-#ifndef __KERNEL__
-/* Here we must cater to libcs that poke about in kernel headers.  */
-
-struct sigaction {
-       union {
-         __sighandler_t _sa_handler;
-         void (*_sa_sigaction)(int, struct siginfo *, void *);
-       } _u;
-       sigset_t sa_mask;
-       unsigned long sa_flags;
-       void (*sa_restorer)(void);
-};
-
-#define sa_handler     _u._sa_handler
-#define sa_sigaction   _u._sa_sigaction
-
-#endif /* __KERNEL__ */
-
-typedef struct sigaltstack {
-       void *ss_sp;
-       int ss_flags;
-       size_t ss_size;
-} stack_t;
-
-
-#endif /* _UAPI_H8300_SIGNAL_H */
diff --git a/arch/h8300/include/uapi/asm/unistd.h b/arch/h8300/include/uapi/asm/unistd.h
deleted file mode 100644 (file)
index eb7bc00..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-#define __ARCH_NOMMU
-
-#define __ARCH_WANT_RENAMEAT
-#define __ARCH_WANT_STAT64
-#define __ARCH_WANT_SET_GET_RLIMIT
-#define __ARCH_WANT_TIME32_SYSCALLS
-
-#include <asm-generic/unistd.h>
diff --git a/arch/h8300/kernel/.gitignore b/arch/h8300/kernel/.gitignore
deleted file mode 100644 (file)
index bbb90f9..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0-only
-vmlinux.lds
diff --git a/arch/h8300/kernel/Makefile b/arch/h8300/kernel/Makefile
deleted file mode 100644 (file)
index 307aa51..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0
-#
-# Makefile for the linux kernel.
-#
-
-extra-y := vmlinux.lds
-
-obj-y := process.o traps.o ptrace.o \
-        signal.o setup.o syscalls.o \
-        irq.o entry.o
-
-obj-$(CONFIG_ROMKERNEL) += head_rom.o
-obj-$(CONFIG_RAMKERNEL) += head_ram.o
-
-obj-$(CONFIG_MODULES) += module.o h8300_ksyms.o
-obj-$(CONFIG_H8300H_SIM) += sim-console.o
-obj-$(CONFIG_H8S_SIM) += sim-console.o
-
-obj-$(CONFIG_CPU_H8300H) += ptrace_h.o
-obj-$(CONFIG_CPU_H8S) += ptrace_s.o
-
-obj-$(CONFIG_KGDB) += kgdb.o
diff --git a/arch/h8300/kernel/asm-offsets.c b/arch/h8300/kernel/asm-offsets.c
deleted file mode 100644 (file)
index 65571ee..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-/*
- * This program is used to generate definitions needed by
- * assembly language modules.
- *
- * We use the technique used in the OSF Mach kernel code:
- * generate asm statements containing #defines,
- * compile this file to assembler, and then extract the
- * #defines from the assembly-language output.
- */
-
-#include <linux/stddef.h>
-#include <linux/sched.h>
-#include <linux/kernel_stat.h>
-#include <linux/ptrace.h>
-#include <linux/hardirq.h>
-#include <linux/kbuild.h>
-#include <asm/irq.h>
-#include <asm/ptrace.h>
-
-int main(void)
-{
-       /* offsets into the task struct */
-       OFFSET(TASK_FLAGS, task_struct, flags);
-       OFFSET(TASK_PTRACE, task_struct, ptrace);
-       OFFSET(TASK_BLOCKED, task_struct, blocked);
-       OFFSET(TASK_THREAD, task_struct, thread);
-       OFFSET(TASK_THREAD_INFO, task_struct, stack);
-       OFFSET(TASK_MM, task_struct, mm);
-       OFFSET(TASK_ACTIVE_MM, task_struct, active_mm);
-
-       /* offsets into the irq_cpustat_t struct */
-       DEFINE(CPUSTAT_SOFTIRQ_PENDING, offsetof(irq_cpustat_t,
-                                                __softirq_pending));
-
-       /* offsets into the thread struct */
-       OFFSET(THREAD_KSP, thread_struct, ksp);
-       OFFSET(THREAD_USP, thread_struct, usp);
-       OFFSET(THREAD_CCR, thread_struct, ccr);
-
-       /* offsets into the pt_regs struct */
-       DEFINE(LER0,  offsetof(struct pt_regs, er0)      - sizeof(long));
-       DEFINE(LER1,  offsetof(struct pt_regs, er1)      - sizeof(long));
-       DEFINE(LER2,  offsetof(struct pt_regs, er2)      - sizeof(long));
-       DEFINE(LER3,  offsetof(struct pt_regs, er3)      - sizeof(long));
-       DEFINE(LER4,  offsetof(struct pt_regs, er4)      - sizeof(long));
-       DEFINE(LER5,  offsetof(struct pt_regs, er5)      - sizeof(long));
-       DEFINE(LER6,  offsetof(struct pt_regs, er6)      - sizeof(long));
-       DEFINE(LORIG, offsetof(struct pt_regs, orig_er0) - sizeof(long));
-       DEFINE(LSP,   offsetof(struct pt_regs, sp)       - sizeof(long));
-       DEFINE(LCCR,  offsetof(struct pt_regs, ccr)      - sizeof(long));
-       DEFINE(LVEC,  offsetof(struct pt_regs, vector)   - sizeof(long));
-#if defined(CONFIG_CPU_H8S)
-       DEFINE(LEXR,  offsetof(struct pt_regs, exr)      - sizeof(long));
-#endif
-       DEFINE(LRET,  offsetof(struct pt_regs, pc)       - sizeof(long));
-
-       DEFINE(PT_PTRACED, PT_PTRACED);
-
-       /* offsets in thread_info structure */
-       OFFSET(TI_TASK, thread_info, task);
-       OFFSET(TI_FLAGS, thread_info, flags);
-       OFFSET(TI_CPU, thread_info, cpu);
-       OFFSET(TI_PRE, thread_info, preempt_count);
-#ifdef CONFIG_PREEMPTION
-       DEFINE(TI_PRE_COUNT, offsetof(struct thread_info, preempt_count));
-#endif
-
-       return 0;
-}
diff --git a/arch/h8300/kernel/entry.S b/arch/h8300/kernel/entry.S
deleted file mode 100644 (file)
index c6e289b..0000000
+++ /dev/null
@@ -1,434 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/*
- *
- *  linux/arch/h8300/kernel/entry.S
- *
- *  Yoshinori Sato <ysato@users.sourceforge.jp>
- *  David McCullough <davidm@snapgear.com>
- *
- */
-
-/*
- *  entry.S
- *  include exception/interrupt gateway
- *          system call entry
- */
-
-#include <linux/sys.h>
-#include <asm/unistd.h>
-#include <asm/setup.h>
-#include <asm/segment.h>
-#include <asm/linkage.h>
-#include <asm/asm-offsets.h>
-#include <asm/thread_info.h>
-#include <asm/errno.h>
-
-#if defined(CONFIG_CPU_H8300H)
-#define USERRET 8
-INTERRUPTS = 64
-       .h8300h
-       .macro  SHLL2 reg
-       shll.l  \reg
-       shll.l  \reg
-       .endm
-       .macro  SHLR2 reg
-       shlr.l  \reg
-       shlr.l  \reg
-       .endm
-       .macro  SAVEREGS
-       mov.l   er0,@-sp
-       mov.l   er1,@-sp
-       mov.l   er2,@-sp
-       mov.l   er3,@-sp
-       .endm
-       .macro  RESTOREREGS
-       mov.l   @sp+,er3
-       mov.l   @sp+,er2
-       .endm
-       .macro  SAVEEXR
-       .endm
-       .macro  RESTOREEXR
-       .endm
-#endif
-#if defined(CONFIG_CPU_H8S)
-#define USERRET 10
-#define USEREXR 8
-INTERRUPTS = 128
-       .h8300s
-       .macro  SHLL2 reg
-       shll.l  #2,\reg
-       .endm
-       .macro  SHLR2 reg
-       shlr.l  #2,\reg
-       .endm
-       .macro  SAVEREGS
-       stm.l   er0-er3,@-sp
-       .endm
-       .macro  RESTOREREGS
-       ldm.l   @sp+,er2-er3
-       .endm
-       .macro  SAVEEXR
-       mov.w   @(USEREXR:16,er0),r1
-       mov.w   r1,@(LEXR-LER3:16,sp)           /* copy EXR */
-       .endm
-       .macro  RESTOREEXR
-       mov.w   @(LEXR-LER1:16,sp),r1           /* restore EXR */
-       mov.b   r1l,r1h
-       mov.w   r1,@(USEREXR:16,er0)
-       .endm
-#endif
-
-
-/* CPU context save/restore macros. */
-
-       .macro  SAVE_ALL
-       mov.l   er0,@-sp
-       stc     ccr,r0l                         /* check kernel mode */
-       btst    #4,r0l
-       bne     5f
-
-       /* user mode */
-       mov.l   sp,@_sw_usp
-       mov.l   @sp,er0                         /* restore saved er0 */
-       orc     #0x10,ccr                       /* switch kernel stack */
-       mov.l   @_sw_ksp,sp
-       sub.l   #(LRET-LORIG),sp                /* allocate LORIG - LRET */
-       SAVEREGS
-       mov.l   @_sw_usp,er0
-       mov.l   @(USERRET:16,er0),er1           /* copy the RET addr */
-       mov.l   er1,@(LRET-LER3:16,sp)
-       SAVEEXR
-
-       mov.l   @(LORIG-LER3:16,sp),er0
-       mov.l   er0,@(LER0-LER3:16,sp)          /* copy ER0 */
-       mov.w   e1,r1                           /* e1 highbyte = ccr */
-       and     #0xef,r1h                       /* mask mode? flag */
-       bra     6f
-5:
-       /* kernel mode */
-       mov.l   @sp,er0                         /* restore saved er0 */
-       subs    #2,sp                           /* set dummy ccr */
-       subs    #4,sp                           /* set dummp sp */
-       SAVEREGS
-       mov.w   @(LRET-LER3:16,sp),r1           /* copy old ccr */
-6:
-       mov.b   r1h,r1l
-       mov.b   #0,r1h
-       mov.w   r1,@(LCCR-LER3:16,sp)           /* set ccr */
-       mov.l   @_sw_usp,er2
-       mov.l   er2,@(LSP-LER3:16,sp)           /* set usp */
-       mov.l   er6,@-sp                        /* syscall arg #6 */
-       mov.l   er5,@-sp                        /* syscall arg #5 */
-       mov.l   er4,@-sp                        /* syscall arg #4 */
-       .endm                                   /* r1 = ccr */
-
-       .macro  RESTORE_ALL
-       mov.l   @sp+,er4
-       mov.l   @sp+,er5
-       mov.l   @sp+,er6
-       RESTOREREGS
-       mov.w   @(LCCR-LER1:16,sp),r0           /* check kernel mode */
-       btst    #4,r0l
-       bne     7f
-
-       orc     #0xc0,ccr
-       mov.l   @(LSP-LER1:16,sp),er0
-       mov.l   @(LER0-LER1:16,sp),er1          /* restore ER0 */
-       mov.l   er1,@er0
-       RESTOREEXR
-       mov.w   @(LCCR-LER1:16,sp),r1           /* restore the RET addr */
-       mov.b   r1l,r1h
-       mov.b   @(LRET+1-LER1:16,sp),r1l
-       mov.w   r1,e1
-       mov.w   @(LRET+2-LER1:16,sp),r1
-       mov.l   er1,@(USERRET:16,er0)
-
-       mov.l   @sp+,er1
-       add.l   #(LRET-LER1),sp                 /* remove LORIG - LRET */
-       mov.l   sp,@_sw_ksp
-       andc    #0xef,ccr                       /* switch to user mode */
-       mov.l   er0,sp
-       bra     8f
-7:
-       mov.l   @sp+,er1
-       add.l   #10,sp
-8:
-       mov.l   @sp+,er0
-       adds    #4,sp                           /* remove the sw created LVEC */
-       rte
-       .endm
-
-.globl _system_call
-.globl ret_from_exception
-.globl ret_from_fork
-.globl ret_from_kernel_thread
-.globl ret_from_interrupt
-.globl _interrupt_redirect_table
-.globl _sw_ksp,_sw_usp
-.globl _resume
-.globl _interrupt_entry
-.globl _trace_break
-.globl _nmi
-
-#if defined(CONFIG_ROMKERNEL)
-       .section .int_redirect,"ax"
-_interrupt_redirect_table:
-#if defined(CONFIG_CPU_H8300H)
-       .rept   7
-       .long   0
-       .endr
-#endif
-#if defined(CONFIG_CPU_H8S)
-       .rept   5
-       .long   0
-       .endr
-       jmp     @_trace_break
-       .long   0
-#endif
-
-       jsr     @_interrupt_entry               /* NMI */
-       jmp     @_system_call                   /* TRAPA #0 (System call) */
-       .long   0
-#if defined(CONFIG_KGDB)
-       jmp     @_kgdb_trap
-#else
-       .long   0
-#endif
-       jmp     @_trace_break                   /* TRAPA #3 (breakpoint) */
-       .rept   INTERRUPTS-12
-       jsr     @_interrupt_entry
-       .endr
-#endif
-#if defined(CONFIG_RAMKERNEL)
-.globl _interrupt_redirect_table
-       .section .bss
-_interrupt_redirect_table:
-       .space  4
-#endif
-
-       .section .text
-       .align  2
-_interrupt_entry:
-       SAVE_ALL
-/* r1l is saved ccr */
-       mov.l   sp,er0
-       add.l   #LVEC,er0
-       btst    #4,r1l
-       bne     1f
-       /* user LVEC */
-       mov.l   @_sw_usp,er0
-       adds    #4,er0
-1:
-       mov.l   @er0,er0                        /* LVEC address */
-#if defined(CONFIG_ROMKERNEL)
-       sub.l   #_interrupt_redirect_table,er0
-#endif
-#if defined(CONFIG_RAMKERNEL)
-       mov.l   @_interrupt_redirect_table,er1
-       sub.l   er1,er0
-#endif
-       SHLR2   er0
-       dec.l   #1,er0
-       mov.l   sp,er1
-       subs    #4,er1                          /* adjust ret_pc */
-#if defined(CONFIG_CPU_H8S)
-       orc     #7,exr
-#endif
-       jsr     @do_IRQ
-       jmp     @ret_from_interrupt
-
-_system_call:
-       subs    #4,sp                           /* dummy LVEC */
-       SAVE_ALL
-       /* er0: syscall nr */
-       andc    #0xbf,ccr
-       mov.l   er0,er4
-
-       /* save top of frame */
-       mov.l   sp,er0
-       jsr     @set_esp0
-       andc    #0x3f,ccr
-       mov.l   sp,er2
-       and.w   #0xe000,r2
-       mov.l   @(TI_FLAGS:16,er2),er2
-       and.w   #_TIF_WORK_SYSCALL_MASK,r2
-       beq     1f
-       mov.l   sp,er0
-       jsr     @do_syscall_trace_enter
-1:
-       cmp.l   #__NR_syscalls,er4
-       bcc     badsys
-       SHLL2   er4
-       mov.l   #_sys_call_table,er0
-       add.l   er4,er0
-       mov.l   @er0,er4
-       beq     ret_from_exception:16
-       mov.l   @(LER1:16,sp),er0
-       mov.l   @(LER2:16,sp),er1
-       mov.l   @(LER3:16,sp),er2
-       jsr     @er4
-       mov.l   er0,@(LER0:16,sp)               /* save the return value */
-       mov.l   sp,er2
-       and.w   #0xe000,r2
-       mov.l   @(TI_FLAGS:16,er2),er2
-       and.w   #_TIF_WORK_SYSCALL_MASK,r2
-       beq     2f
-       mov.l   sp,er0
-       jsr     @do_syscall_trace_leave
-2:
-       orc     #0xc0,ccr
-       bra     resume_userspace
-
-badsys:
-       mov.l   #-ENOSYS,er0
-       mov.l   er0,@(LER0:16,sp)
-       bra     resume_userspace
-
-#if !defined(CONFIG_PREEMPTION)
-#define resume_kernel restore_all
-#endif
-
-ret_from_exception:
-#if defined(CONFIG_PREEMPTION)
-       orc     #0xc0,ccr
-#endif
-ret_from_interrupt:
-       mov.b   @(LCCR+1:16,sp),r0l
-       btst    #4,r0l
-       bne     resume_kernel:16        /* return from kernel */
-resume_userspace:
-       andc    #0xbf,ccr
-       mov.l   sp,er4
-       and.w   #0xe000,r4              /* er4 <- current thread info */
-       mov.l   @(TI_FLAGS:16,er4),er1
-       and.l   #_TIF_WORK_MASK,er1
-       beq     restore_all:8
-work_pending:
-       btst    #TIF_NEED_RESCHED,r1l
-       bne     work_resched:8
-       /* work notifysig */
-       mov.l   sp,er0
-       subs    #4,er0                  /* er0: pt_regs */
-       jsr     @do_notify_resume
-       bra     resume_userspace:8
-work_resched:
-       mov.l   sp,er0
-       jsr     @set_esp0
-       jsr     @schedule
-       bra     resume_userspace:8
-restore_all:
-       RESTORE_ALL                     /* Does RTE */
-
-#if defined(CONFIG_PREEMPTION)
-resume_kernel:
-       mov.l   @(TI_PRE_COUNT:16,er4),er0
-       bne     restore_all:8
-need_resched:
-       mov.l   @(TI_FLAGS:16,er4),er0
-       btst    #TIF_NEED_RESCHED,r0l
-       beq     restore_all:8
-       mov.b   @(LCCR+1:16,sp),r0l     /* Interrupt Enabled? */
-       bmi     restore_all:8
-       mov.l   sp,er0
-       jsr     @set_esp0
-       jsr     @preempt_schedule_irq
-       bra     need_resched:8
-#endif
-
-ret_from_fork:
-       mov.l   er2,er0
-       jsr     @schedule_tail
-       jmp     @ret_from_exception
-
-ret_from_kernel_thread:
-       mov.l   er2,er0
-       jsr     @schedule_tail
-       mov.l   @(LER4:16,sp),er0
-       mov.l   @(LER5:16,sp),er1
-       jsr     @er1
-       jmp     @ret_from_exception
-
-_resume:
-       /*
-        * Beware - when entering resume, offset of tss is in d1,
-        * prev (the current task) is in a0, next (the new task)
-        * is in a1 and d2.b is non-zero if the mm structure is
-        * shared between the tasks, so don't change these
-        * registers until their contents are no longer needed.
-        */
-
-       /* save sr */
-       sub.w   r3,r3
-       stc     ccr,r3l
-       mov.w   r3,@(THREAD_CCR+2:16,er0)
-
-       /* disable interrupts */
-       orc     #0xc0,ccr
-       mov.l   @_sw_usp,er3
-       mov.l   er3,@(THREAD_USP:16,er0)
-       mov.l   sp,@(THREAD_KSP:16,er0)
-
-       /* Skip address space switching if they are the same. */
-       /* FIXME: what did we hack out of here, this does nothing! */
-
-       mov.l   @(THREAD_USP:16,er1),er0
-       mov.l   er0,@_sw_usp
-       mov.l   @(THREAD_KSP:16,er1),sp
-
-       /* restore status register */
-       mov.w   @(THREAD_CCR+2:16,er1),r3
-
-       ldc     r3l,ccr
-       rts
-
-_trace_break:
-       subs    #4,sp
-       SAVE_ALL
-       sub.l   er1,er1
-       dec.l   #1,er1
-       mov.l   er1,@(LORIG,sp)
-       mov.l   sp,er0
-       jsr     @set_esp0
-       mov.l   @_sw_usp,er0
-       mov.l   @er0,er1
-       mov.w   @(-2:16,er1),r2
-       cmp.w   #0x5730,r2
-       beq     1f
-       subs    #2,er1
-       mov.l   er1,@er0
-1:
-       and.w   #0xff,e1
-       mov.l   er1,er0
-       jsr     @trace_trap
-       jmp     @ret_from_exception
-
-_nmi:
-       subs    #4, sp
-       mov.l   er0, @-sp
-       mov.l   @_interrupt_redirect_table, er0
-       add.l   #8*4, er0
-       mov.l   er0, @(4,sp)
-       mov.l   @sp+, er0
-       jmp     @_interrupt_entry
-
-#if defined(CONFIG_KGDB)
-_kgdb_trap:
-       subs    #4,sp
-       SAVE_ALL
-       mov.l   sp,er0
-       add.l   #LRET,er0
-       mov.l   er0,@(LSP,sp)
-       jsr     @set_esp0
-       mov.l   sp,er0
-       subs    #4,er0
-       jsr     @h8300_kgdb_trap
-       jmp     @ret_from_exception
-#endif
-
-       .section        .bss
-_sw_ksp:
-       .space  4
-_sw_usp:
-       .space  4
-
-       .end
diff --git a/arch/h8300/kernel/h8300_ksyms.c b/arch/h8300/kernel/h8300_ksyms.c
deleted file mode 100644 (file)
index 853d6e8..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-#include <linux/module.h>
-#include <linux/linkage.h>
-
-/*
- * libgcc functions - functions that are used internally by the
- * compiler...  (prototypes are not correct though, but that
- * doesn't really matter since they're not versioned).
- */
-asmlinkage long __ucmpdi2(long long, long long);
-asmlinkage long long __ashldi3(long long, int);
-asmlinkage long long __ashrdi3(long long, int);
-asmlinkage long long __lshrdi3(long long, int);
-asmlinkage long __divsi3(long, long);
-asmlinkage long __modsi3(long, long);
-asmlinkage unsigned long __umodsi3(unsigned long, unsigned long);
-asmlinkage long long __muldi3(long long, long long);
-asmlinkage long __mulsi3(long, long);
-asmlinkage long __udivsi3(long, long);
-asmlinkage void *memcpy(void *, const void *, size_t);
-asmlinkage void *memset(void *, int, size_t);
-
-       /* gcc lib functions */
-EXPORT_SYMBOL(__ucmpdi2);
-EXPORT_SYMBOL(__ashldi3);
-EXPORT_SYMBOL(__ashrdi3);
-EXPORT_SYMBOL(__lshrdi3);
-EXPORT_SYMBOL(__divsi3);
-EXPORT_SYMBOL(__modsi3);
-EXPORT_SYMBOL(__umodsi3);
-EXPORT_SYMBOL(__muldi3);
-EXPORT_SYMBOL(__mulsi3);
-EXPORT_SYMBOL(__udivsi3);
-EXPORT_SYMBOL(memcpy);
-EXPORT_SYMBOL(memset);
diff --git a/arch/h8300/kernel/head_ram.S b/arch/h8300/kernel/head_ram.S
deleted file mode 100644 (file)
index dbf8429..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-
-#include <linux/sys.h>
-#include <linux/init.h>
-#include <asm/unistd.h>
-#include <asm/setup.h>
-#include <asm/segment.h>
-#include <asm/linkage.h>
-#include <asm/asm-offsets.h>
-#include <asm/thread_info.h>
-#include <asm/errno.h>
-
-#if defined(CONFIG_CPU_H8300H)
-       .h8300h
-#define SYSCR 0xfee012
-#define IRAMTOP 0xffff20
-#endif
-#if defined(CONFIG_CPU_H8S)
-       .h8300s
-#define INTCR 0xffff31
-#define IRAMTOP 0xffc000
-#endif
-
-       __HEAD
-       .global _start
-_start:
-       mov.l   #IRAMTOP,sp
-       /* .bss clear */
-       mov.l   #_sbss,er5
-       mov.l   #_ebss,er4
-       sub.l   er5,er4
-       shlr    er4
-       shlr    er4
-       sub.l   er2,er2
-1:
-       mov.l   er2,@er5
-       adds    #4,er5
-       dec.l   #1,er4
-       bne     1b
-       jsr     @h8300_fdt_init
-
-       /* linux kernel start */
-#if defined(CONFIG_CPU_H8300H)
-       ldc     #0xd0,ccr       /* running kernel */
-       mov.l   #SYSCR,er0
-       bclr    #3,@er0
-#endif
-#if defined(CONFIG_CPU_H8S)
-       ldc     #0x07,exr
-       bclr    #4,@INTCR:8
-       bset    #5,@INTCR:8     /* Interrupt mode 2 */
-       ldc     #0x90,ccr       /* running kernel */
-#endif
-       mov.l   #init_thread_union,sp
-       add.l   #0x2000,sp
-       jsr     @start_kernel
-
-1:
-       bra     1b
-
-       .end
diff --git a/arch/h8300/kernel/head_rom.S b/arch/h8300/kernel/head_rom.S
deleted file mode 100644 (file)
index ab55a9c..0000000
+++ /dev/null
@@ -1,111 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-#include <linux/init.h>
-#include <asm/thread_info.h>
-
-#if defined(CONFIG_CPU_H8300H)
-       .h8300h
-#define SYSCR 0xfee012
-#define IRAMTOP 0xffff20
-#define NR_INT 64
-#endif
-#if defined(CONFIG_CPU_H8S)
-       .h8300s
-#define INTCR 0xffff31
-#define IRAMTOP 0xffc000
-#define NR_INT 128
-#endif
-
-       __HEAD
-       .global _start
-_start:
-       mov.l   #IRAMTOP,sp
-#if !defined(CONFIG_H8300H_SIM) && \
-    !defined(CONFIG_H8S_SIM)
-       jsr     @lowlevel_init
-
-       /* copy .data */
-       mov.l   #_begin_data,er5
-       mov.l   #_sdata,er6
-       mov.l   #_edata,er4
-       sub.l   er6,er4
-       shlr.l  er4
-       shlr.l  er4
-1:
-       mov.l   @er5+,er0
-       mov.l   er0,@er6
-       adds    #4,er6
-       dec.l   #1,er4
-       bne     1b
-       /* .bss clear */
-       mov.l   #_sbss,er5
-       mov.l   #_ebss,er4
-       sub.l   er5,er4
-       shlr    er4
-       shlr    er4
-       sub.l   er0,er0
-1:
-       mov.l   er0,@er5
-       adds    #4,er5
-       dec.l   #1,er4
-       bne     1b
-#else
-       /* get cmdline from gdb */
-       jsr     @0xcc
-       ;; er0 - argc
-       ;; er1 - argv
-       mov.l   #command_line,er3
-       adds    #4,er1
-       dec.l   #1,er0
-       beq     4f
-1:
-       mov.l   @er1+,er2
-2:
-       mov.b   @er2+,r4l
-       beq     3f
-       mov.b   r4l,@er3
-       adds    #1,er3
-       bra     2b
-3:
-       mov.b   #' ',r4l
-       mov.b   r4l,@er3
-       adds    #1,er3
-       dec.l   #1,er0
-       bne     1b
-       subs    #1,er3
-       mov.b   #0,r4l
-       mov.b   r4l,@er3
-4:
-#endif
-       sub.l   er0,er0
-       jsr     @h8300_fdt_init
-       /* linux kernel start */
-#if defined(CONFIG_CPU_H8300H)
-       ldc     #0xd0,ccr       /* running kernel */
-       mov.l   #SYSCR,er0
-       bclr    #3,@er0
-#endif
-#if defined(CONFIG_CPU_H8S)
-       ldc     #0x07,exr
-       bclr    #4,@INTCR:8
-       bset    #5,@INTCR:8     /* Interrupt mode 2 */
-       ldc     #0x90,ccr       /* running kernel */
-#endif
-       mov.l   #init_thread_union,sp
-       add.l   #0x2000,sp
-       jsr     @start_kernel
-
-1:
-       bra     1b
-
-#if defined(CONFIG_ROMKERNEL)
-       /* interrupt vector */
-       .section .vectors,"ax"
-       .long   _start
-       .long   _start
-vector =       2
-       .rept   NR_INT - 2
-       .long   _interrupt_redirect_table+vector*4
-vector =       vector + 1
-       .endr
-#endif
-       .end
diff --git a/arch/h8300/kernel/irq.c b/arch/h8300/kernel/irq.c
deleted file mode 100644 (file)
index 8ad6d70..0000000
+++ /dev/null
@@ -1,99 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-/*
- * linux/arch/h8300/kernel/irq.c
- *
- * Copyright 2014-2015 Yoshinori Sato <ysato@users.sourceforge.jp>
- */
-
-#include <linux/init.h>
-#include <linux/interrupt.h>
-#include <linux/irq.h>
-#include <linux/irqchip.h>
-#include <linux/irqdomain.h>
-#include <linux/of_irq.h>
-#include <asm/traps.h>
-
-#ifdef CONFIG_RAMKERNEL
-typedef void (*h8300_vector)(void);
-
-static const h8300_vector __initconst trap_table[] = {
-       0, 0, 0, 0,
-       _trace_break,
-       0, 0,
-       _nmi,
-       _system_call,
-       0, 0,
-       _trace_break,
-};
-
-static unsigned long __init *get_vector_address(void)
-{
-       unsigned long *rom_vector = CPU_VECTOR;
-       unsigned long base, tmp;
-       int vec_no;
-
-       base = rom_vector[EXT_IRQ0] & ADDR_MASK;
-
-       /* check romvector format */
-       for (vec_no = EXT_IRQ0 + 1; vec_no <= EXT_IRQ0+EXT_IRQS; vec_no++) {
-               if ((base+(vec_no - EXT_IRQ0)*4) !=
-                   (rom_vector[vec_no] & ADDR_MASK))
-                       return NULL;
-       }
-
-       /* ramvector base address */
-       base -= EXT_IRQ0*4;
-
-       /* writerble? */
-       tmp = ~(*(volatile unsigned long *)base);
-       (*(volatile unsigned long *)base) = tmp;
-       if ((*(volatile unsigned long *)base) != tmp)
-               return NULL;
-       return (unsigned long *)base;
-}
-
-static void __init setup_vector(void)
-{
-       int i;
-       unsigned long *ramvec, *ramvec_p;
-       const h8300_vector *trap_entry;
-
-       ramvec = get_vector_address();
-       if (ramvec == NULL)
-               panic("interrupt vector serup failed.");
-       else
-               pr_debug("virtual vector at 0x%p\n", ramvec);
-
-       /* create redirect table */
-       ramvec_p = ramvec;
-       trap_entry = trap_table;
-       for (i = 0; i < NR_IRQS; i++) {
-               if (i < 12) {
-                       if (*trap_entry)
-                               *ramvec_p = VECTOR(*trap_entry);
-                       ramvec_p++;
-                       trap_entry++;
-               } else
-                       *ramvec_p++ = REDIRECT(_interrupt_entry);
-       }
-       _interrupt_redirect_table = ramvec;
-}
-#else
-void setup_vector(void)
-{
-       /* noting do */
-}
-#endif
-
-void __init init_IRQ(void)
-{
-       setup_vector();
-       irqchip_init();
-}
-
-asmlinkage void do_IRQ(int irq)
-{
-       irq_enter();
-       generic_handle_irq(irq);
-       irq_exit();
-}
diff --git a/arch/h8300/kernel/kgdb.c b/arch/h8300/kernel/kgdb.c
deleted file mode 100644 (file)
index 602e478..0000000
+++ /dev/null
@@ -1,135 +0,0 @@
-/*
- * H8/300 KGDB support
- *
- * Copyright (C) 2015 Yoshinori Sato <ysato@users.sourceforge.jp>
- *
- * This file is subject to the terms and conditions of the GNU General Public
- * License.  See the file "COPYING" in the main directory of this archive
- * for more details.
- */
-
-#include <linux/ptrace.h>
-#include <linux/kgdb.h>
-#include <linux/kdebug.h>
-#include <linux/io.h>
-
-struct dbg_reg_def_t dbg_reg_def[DBG_MAX_REG_NUM] = {
-       { "er0", GDB_SIZEOF_REG, offsetof(struct pt_regs, er0) },
-       { "er1", GDB_SIZEOF_REG, offsetof(struct pt_regs, er1) },
-       { "er2", GDB_SIZEOF_REG, offsetof(struct pt_regs, er2) },
-       { "er3", GDB_SIZEOF_REG, offsetof(struct pt_regs, er3) },
-       { "er4", GDB_SIZEOF_REG, offsetof(struct pt_regs, er4) },
-       { "er5", GDB_SIZEOF_REG, offsetof(struct pt_regs, er5) },
-       { "er6", GDB_SIZEOF_REG, offsetof(struct pt_regs, er6) },
-       { "sp", GDB_SIZEOF_REG, offsetof(struct pt_regs, sp) },
-       { "ccr", GDB_SIZEOF_REG, offsetof(struct pt_regs, ccr) },
-       { "pc", GDB_SIZEOF_REG, offsetof(struct pt_regs, pc) },
-       { "cycles", GDB_SIZEOF_REG, -1 },
-#if defined(CONFIG_CPU_H8S)
-       { "exr", GDB_SIZEOF_REG, offsetof(struct pt_regs, exr) },
-#endif
-       { "tick", GDB_SIZEOF_REG, -1 },
-       { "inst", GDB_SIZEOF_REG, -1 },
-};
-
-char *dbg_get_reg(int regno, void *mem, struct pt_regs *regs)
-{
-       if (regno >= DBG_MAX_REG_NUM || regno < 0)
-               return NULL;
-
-       switch (regno) {
-       case GDB_CCR:
-#if defined(CONFIG_CPU_H8S)
-       case GDB_EXR:
-#endif
-               *(u32 *)mem = *(u16 *)((void *)regs +
-                                      dbg_reg_def[regno].offset);
-               break;
-       default:
-               if (dbg_reg_def[regno].offset >= 0)
-                       memcpy(mem, (void *)regs + dbg_reg_def[regno].offset,
-                              dbg_reg_def[regno].size);
-               else
-                       memset(mem, 0, dbg_reg_def[regno].size);
-               break;
-       }
-       return dbg_reg_def[regno].name;
-}
-
-int dbg_set_reg(int regno, void *mem, struct pt_regs *regs)
-{
-       if (regno >= DBG_MAX_REG_NUM || regno < 0)
-               return -EINVAL;
-
-       switch (regno) {
-       case GDB_CCR:
-#if defined(CONFIG_CPU_H8S)
-       case GDB_EXR:
-#endif
-               *(u16 *)((void *)regs +
-                        dbg_reg_def[regno].offset) = *(u32 *)mem;
-               break;
-       default:
-               memcpy((void *)regs + dbg_reg_def[regno].offset, mem,
-                      dbg_reg_def[regno].size);
-       }
-       return 0;
-}
-
-asmlinkage void h8300_kgdb_trap(struct pt_regs *regs)
-{
-       regs->pc &= 0x00ffffff;
-       if (kgdb_handle_exception(10, SIGTRAP, 0, regs))
-               return;
-       if (*(u16 *)(regs->pc) == *(u16 *)&arch_kgdb_ops.gdb_bpt_instr)
-               regs->pc += BREAK_INSTR_SIZE;
-       regs->pc |= regs->ccr << 24;
-}
-
-void sleeping_thread_to_gdb_regs(unsigned long *gdb_regs, struct task_struct *p)
-{
-       memset((char *)gdb_regs, 0, NUMREGBYTES);
-       gdb_regs[GDB_SP] = p->thread.ksp;
-       gdb_regs[GDB_PC] = KSTK_EIP(p);
-}
-
-void kgdb_arch_set_pc(struct pt_regs *regs, unsigned long pc)
-{
-       regs->pc = pc;
-}
-
-int kgdb_arch_handle_exception(int vector, int signo, int err_code,
-                               char *remcom_in_buffer, char *remcom_out_buffer,
-                               struct pt_regs *regs)
-{
-       char *ptr;
-       unsigned long addr;
-
-       switch (remcom_in_buffer[0]) {
-       case 's':
-       case 'c':
-               /* handle the optional parameters */
-               ptr = &remcom_in_buffer[1];
-               if (kgdb_hex2long(&ptr, &addr))
-                       regs->pc = addr;
-
-               return 0;
-       }
-
-       return -1; /* this means that we do not want to exit from the handler */
-}
-
-int kgdb_arch_init(void)
-{
-       return 0;
-}
-
-void kgdb_arch_exit(void)
-{
-       /* Nothing to do */
-}
-
-const struct kgdb_arch arch_kgdb_ops = {
-       /* Breakpoint instruction: trapa #2 */
-       .gdb_bpt_instr = { 0x57, 0x20 },
-};
diff --git a/arch/h8300/kernel/module.c b/arch/h8300/kernel/module.c
deleted file mode 100644 (file)
index cd802cc..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-#include <linux/moduleloader.h>
-#include <linux/elf.h>
-#include <linux/vmalloc.h>
-#include <linux/fs.h>
-#include <linux/string.h>
-#include <linux/kernel.h>
-
-int apply_relocate_add(Elf32_Shdr *sechdrs,
-                      const char *strtab,
-                      unsigned int symindex,
-                      unsigned int relsec,
-                      struct module *me)
-{
-       unsigned int i;
-       Elf32_Rela *rela = (void *)sechdrs[relsec].sh_addr;
-
-       pr_debug("Applying relocate section %u to %u\n", relsec,
-              sechdrs[relsec].sh_info);
-       for (i = 0; i < sechdrs[relsec].sh_size / sizeof(*rela); i++) {
-               /* This is where to make the change */
-               uint32_t *loc =
-                       (uint32_t *)(sechdrs[sechdrs[relsec].sh_info].sh_addr
-                                            + rela[i].r_offset);
-               /* This is the symbol it is referring to.  Note that all
-                  undefined symbols have been resolved.  */
-               Elf32_Sym *sym = (Elf32_Sym *)sechdrs[symindex].sh_addr
-                       + ELF32_R_SYM(rela[i].r_info);
-               uint32_t v = sym->st_value + rela[i].r_addend;
-
-               switch (ELF32_R_TYPE(rela[i].r_info)) {
-               case R_H8_DIR24R8:
-                       loc = (uint32_t *)((uint32_t)loc - 1);
-                       *loc = (*loc & 0xff000000) | ((*loc & 0xffffff) + v);
-                       break;
-               case R_H8_DIR24A8:
-                       if (ELF32_R_SYM(rela[i].r_info))
-                               *loc += v;
-                       break;
-               case R_H8_DIR32:
-               case R_H8_DIR32A16:
-                       *loc += v;
-                       break;
-               case R_H8_PCREL16:
-                       v -= (unsigned long)loc + 2;
-                       if ((Elf32_Sword)v > 0x7fff ||
-                           (Elf32_Sword)v < -(Elf32_Sword)0x8000)
-                               goto overflow;
-                       else
-                               *(unsigned short *)loc = v;
-                       break;
-               case R_H8_PCREL8:
-                       v -= (unsigned long)loc + 1;
-                       if ((Elf32_Sword)v > 0x7f ||
-                           (Elf32_Sword)v < -(Elf32_Sword)0x80)
-                               goto overflow;
-                       else
-                               *(unsigned char *)loc = v;
-                       break;
-               default:
-                       pr_err("module %s: Unknown relocation: %u\n",
-                              me->name, ELF32_R_TYPE(rela[i].r_info));
-                       return -ENOEXEC;
-               }
-       }
-       return 0;
- overflow:
-       pr_err("module %s: relocation offset overflow: %08x\n",
-              me->name, rela[i].r_offset);
-       return -ENOEXEC;
-}
diff --git a/arch/h8300/kernel/process.c b/arch/h8300/kernel/process.c
deleted file mode 100644 (file)
index 8833fa4..0000000
+++ /dev/null
@@ -1,173 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-/*
- *  linux/arch/h8300/kernel/process.c
- *
- * Yoshinori Sato <ysato@users.sourceforge.jp>
- *
- *  Based on:
- *
- *  linux/arch/m68knommu/kernel/process.c
- *
- *  Copyright (C) 1998  D. Jeff Dionne <jeff@ryeham.ee.ryerson.ca>,
- *                      Kenneth Albanowski <kjahds@kjahds.com>,
- *                      The Silver Hammer Group, Ltd.
- *
- *  linux/arch/m68k/kernel/process.c
- *
- *  Copyright (C) 1995  Hamish Macdonald
- *
- *  68060 fixes by Jesper Skov
- */
-
-/*
- * This file handles the architecture-dependent parts of process handling..
- */
-
-#include <linux/errno.h>
-#include <linux/module.h>
-#include <linux/sched.h>
-#include <linux/sched/debug.h>
-#include <linux/sched/task.h>
-#include <linux/sched/task_stack.h>
-#include <linux/kernel.h>
-#include <linux/mm.h>
-#include <linux/smp.h>
-#include <linux/stddef.h>
-#include <linux/unistd.h>
-#include <linux/ptrace.h>
-#include <linux/user.h>
-#include <linux/interrupt.h>
-#include <linux/reboot.h>
-#include <linux/fs.h>
-#include <linux/slab.h>
-#include <linux/rcupdate.h>
-
-#include <linux/uaccess.h>
-#include <asm/traps.h>
-#include <asm/setup.h>
-
-void (*pm_power_off)(void) = NULL;
-EXPORT_SYMBOL(pm_power_off);
-
-asmlinkage void ret_from_fork(void);
-asmlinkage void ret_from_kernel_thread(void);
-
-/*
- * The idle loop on an H8/300..
- */
-void arch_cpu_idle(void)
-{
-       raw_local_irq_enable();
-       __asm__("sleep");
-}
-
-void machine_restart(char *__unused)
-{
-       local_irq_disable();
-       __asm__("jmp @@0");
-}
-
-void machine_halt(void)
-{
-       local_irq_disable();
-       __asm__("sleep");
-       for (;;)
-               ;
-}
-
-void machine_power_off(void)
-{
-       local_irq_disable();
-       __asm__("sleep");
-       for (;;)
-               ;
-}
-
-void show_regs(struct pt_regs *regs)
-{
-       show_regs_print_info(KERN_DEFAULT);
-
-       pr_notice("\n");
-       pr_notice("PC: %08lx  Status: %02x\n",
-              regs->pc, regs->ccr);
-       pr_notice("ORIG_ER0: %08lx ER0: %08lx ER1: %08lx\n",
-              regs->orig_er0, regs->er0, regs->er1);
-       pr_notice("ER2: %08lx ER3: %08lx ER4: %08lx ER5: %08lx\n",
-              regs->er2, regs->er3, regs->er4, regs->er5);
-       pr_notice("ER6' %08lx ", regs->er6);
-       if (user_mode(regs))
-               printk("USP: %08lx\n", rdusp());
-       else
-               printk("\n");
-}
-
-void flush_thread(void)
-{
-}
-
-int copy_thread(unsigned long clone_flags, unsigned long usp,
-               unsigned long topstk, struct task_struct *p, unsigned long tls)
-{
-       struct pt_regs *childregs;
-
-       childregs = (struct pt_regs *) (THREAD_SIZE + task_stack_page(p)) - 1;
-
-       if (unlikely(p->flags & (PF_KTHREAD | PF_IO_WORKER))) {
-               memset(childregs, 0, sizeof(struct pt_regs));
-               childregs->retpc = (unsigned long) ret_from_kernel_thread;
-               childregs->er4 = topstk; /* arg */
-               childregs->er5 = usp; /* fn */
-       }  else {
-               *childregs = *current_pt_regs();
-               childregs->er0 = 0;
-               childregs->retpc = (unsigned long) ret_from_fork;
-               p->thread.usp = usp ?: rdusp();
-       }
-       p->thread.ksp = (unsigned long)childregs;
-
-       return 0;
-}
-
-unsigned long __get_wchan(struct task_struct *p)
-{
-       unsigned long fp, pc;
-       unsigned long stack_page;
-       int count = 0;
-
-       stack_page = (unsigned long)p;
-       fp = ((struct pt_regs *)p->thread.ksp)->er6;
-       do {
-               if (fp < stack_page+sizeof(struct thread_info) ||
-                   fp >= 8184+stack_page)
-                       return 0;
-               pc = ((unsigned long *)fp)[1];
-               if (!in_sched_functions(pc))
-                       return pc;
-               fp = *(unsigned long *) fp;
-       } while (count++ < 16);
-       return 0;
-}
-
-/* generic sys_clone is not enough registers */
-asmlinkage int sys_clone(unsigned long __user *args)
-{
-       unsigned long clone_flags;
-       unsigned long  newsp;
-       uintptr_t parent_tidptr;
-       uintptr_t child_tidptr;
-       struct kernel_clone_args kargs = {};
-
-       get_user(clone_flags, &args[0]);
-       get_user(newsp, &args[1]);
-       get_user(parent_tidptr, &args[2]);
-       get_user(child_tidptr, &args[3]);
-
-       kargs.flags             = (lower_32_bits(clone_flags) & ~CSIGNAL);
-       kargs.pidfd             = (int __user *)parent_tidptr;
-       kargs.child_tid         = (int __user *)child_tidptr;
-       kargs.parent_tid        = (int __user *)parent_tidptr;
-       kargs.exit_signal       = (lower_32_bits(clone_flags) & CSIGNAL);
-       kargs.stack             = newsp;
-
-       return kernel_clone(&kargs);
-}
diff --git a/arch/h8300/kernel/ptrace.c b/arch/h8300/kernel/ptrace.c
deleted file mode 100644 (file)
index a11db00..0000000
+++ /dev/null
@@ -1,200 +0,0 @@
-/*
- *  linux/arch/h8300/kernel/ptrace.c
- *
- *  Copyright 2015 Yoshinori Sato <ysato@users.sourceforge.jp>
- *
- * This file is subject to the terms and conditions of the GNU General
- * Public License.  See the file COPYING in the main directory of
- * this archive for more details.
- */
-
-#include <linux/kernel.h>
-#include <linux/errno.h>
-#include <linux/ptrace.h>
-#include <linux/audit.h>
-#include <linux/tracehook.h>
-#include <linux/regset.h>
-#include <linux/elf.h>
-
-#define CCR_MASK 0x6f    /* mode/imask not set */
-#define EXR_MASK 0x80    /* modify only T */
-
-#define PT_REG(r) offsetof(struct pt_regs, r)
-
-extern void user_disable_single_step(struct task_struct *child);
-
-/* Mapping from PT_xxx to the stack offset at which the register is
-   saved.  Notice that usp has no stack-slot and needs to be treated
-   specially (see get_reg/put_reg below). */
-static const int register_offset[] = {
-       PT_REG(er1), PT_REG(er2), PT_REG(er3), PT_REG(er4),
-       PT_REG(er5), PT_REG(er6), PT_REG(er0), -1,
-       PT_REG(orig_er0), PT_REG(ccr), PT_REG(pc),
-#if defined(CONFIG_CPU_H8S)
-       PT_REG(exr),
-#endif
-};
-
-/* read register */
-long h8300_get_reg(struct task_struct *task, int regno)
-{
-       switch (regno) {
-       case PT_USP:
-               return task->thread.usp + sizeof(long)*2;
-       case PT_CCR:
-       case PT_EXR:
-           return *(unsigned short *)(task->thread.esp0 +
-                                      register_offset[regno]);
-       default:
-           return *(unsigned long *)(task->thread.esp0 +
-                                     register_offset[regno]);
-       }
-}
-
-int h8300_put_reg(struct task_struct *task, int regno, unsigned long data)
-{
-       unsigned short oldccr;
-       unsigned short oldexr;
-
-       switch (regno) {
-       case PT_USP:
-               task->thread.usp = data - sizeof(long)*2;
-       case PT_CCR:
-               oldccr = *(unsigned short *)(task->thread.esp0 +
-                                            register_offset[regno]);
-               oldccr &= ~CCR_MASK;
-               data &= CCR_MASK;
-               data |= oldccr;
-               *(unsigned short *)(task->thread.esp0 +
-                                   register_offset[regno]) = data;
-               break;
-       case PT_EXR:
-               oldexr = *(unsigned short *)(task->thread.esp0 +
-                                            register_offset[regno]);
-               oldccr &= ~EXR_MASK;
-               data &= EXR_MASK;
-               data |= oldexr;
-               *(unsigned short *)(task->thread.esp0 +
-                                   register_offset[regno]) = data;
-               break;
-       default:
-               *(unsigned long *)(task->thread.esp0 +
-                                  register_offset[regno]) = data;
-               break;
-       }
-       return 0;
-}
-
-static int regs_get(struct task_struct *target,
-                   const struct user_regset *regset,
-                   struct membuf to)
-{
-       int r;
-
-       BUILD_BUG_ON(sizeof(struct user_regs_struct) % sizeof(long) != 0);
-       for (r = 0; r < ELF_NGREG; r++)
-               membuf_store(&to, h8300_get_reg(target, r));
-
-       return 0;
-}
-
-static int regs_set(struct task_struct *target,
-                   const struct user_regset *regset,
-                   unsigned int pos, unsigned int count,
-                   const void *kbuf, const void __user *ubuf)
-{
-       int r;
-       int ret;
-       struct user_regs_struct regs;
-       long *reg;
-
-       /* build user regs in buffer */
-       BUILD_BUG_ON(sizeof(regs) % sizeof(long) != 0);
-       for (reg = (long *)&regs, r = 0; r < sizeof(regs) / sizeof(long); r++)
-               *reg++ = h8300_get_reg(target, r);
-
-       ret = user_regset_copyin(&pos, &count, &kbuf, &ubuf,
-                                &regs, 0, sizeof(regs));
-       if (ret)
-               return ret;
-
-       /* write back to pt_regs */
-       for (reg = (long *)&regs, r = 0; r < sizeof(regs) / sizeof(long); r++)
-               h8300_put_reg(target, r, *reg++);
-       return 0;
-}
-
-enum h8300_regset {
-       REGSET_GENERAL,
-};
-
-static const struct user_regset h8300_regsets[] = {
-       [REGSET_GENERAL] = {
-               .core_note_type = NT_PRSTATUS,
-               .n              = ELF_NGREG,
-               .size           = sizeof(long),
-               .align          = sizeof(long),
-               .regset_get             = regs_get,
-               .set            = regs_set,
-       },
-};
-
-static const struct user_regset_view user_h8300_native_view = {
-       .name = "h8300",
-       .e_machine = EM_H8_300,
-       .regsets = h8300_regsets,
-       .n = ARRAY_SIZE(h8300_regsets),
-};
-
-const struct user_regset_view *task_user_regset_view(struct task_struct *task)
-{
-       return &user_h8300_native_view;
-}
-
-void ptrace_disable(struct task_struct *child)
-{
-       user_disable_single_step(child);
-}
-
-long arch_ptrace(struct task_struct *child, long request,
-                unsigned long addr, unsigned long data)
-{
-       int ret;
-
-       switch (request) {
-       default:
-               ret = ptrace_request(child, request, addr, data);
-               break;
-       }
-       return ret;
-}
-
-asmlinkage long do_syscall_trace_enter(struct pt_regs *regs)
-{
-       long ret = 0;
-
-       if (test_thread_flag(TIF_SYSCALL_TRACE) &&
-           tracehook_report_syscall_entry(regs))
-               /*
-                * Tracing decided this syscall should not happen.
-                * We'll return a bogus call number to get an ENOSYS
-                * error, but leave the original number in regs->regs[0].
-                */
-               ret = -1L;
-
-       audit_syscall_entry(regs->er1, regs->er2, regs->er3,
-                           regs->er4, regs->er5);
-
-       return ret ?: regs->er0;
-}
-
-asmlinkage void do_syscall_trace_leave(struct pt_regs *regs)
-{
-       int step;
-
-       audit_syscall_exit(regs);
-
-       step = test_thread_flag(TIF_SINGLESTEP);
-       if (step || test_thread_flag(TIF_SYSCALL_TRACE))
-               tracehook_report_syscall_exit(regs, step);
-}
diff --git a/arch/h8300/kernel/ptrace_h.c b/arch/h8300/kernel/ptrace_h.c
deleted file mode 100644 (file)
index 15db45a..0000000
+++ /dev/null
@@ -1,256 +0,0 @@
-/*
- *    ptrace cpu depend helper functions
- *
- *  Copyright 2003, 2015 Yoshinori Sato <ysato@users.sourceforge.jp>
- *
- * This file is subject to the terms and conditions of the GNU General
- * Public License.  See the file COPYING in the main directory of
- * this archive for more details.
- */
-
-#include <linux/linkage.h>
-#include <linux/sched/signal.h>
-#include <asm/ptrace.h>
-
-#define BREAKINST 0x5730 /* trapa #3 */
-
-/* disable singlestep */
-void user_disable_single_step(struct task_struct *child)
-{
-       if ((long)child->thread.breakinfo.addr != -1L) {
-               *(child->thread.breakinfo.addr) = child->thread.breakinfo.inst;
-               child->thread.breakinfo.addr = (unsigned short *)-1L;
-       }
-}
-
-/* calculate next pc */
-enum jump_type {none,   /* normal instruction */
-               jabs,    /* absolute address jump */
-               ind,     /* indirect address jump */
-               ret,     /* return to subrutine */
-               reg,     /* register indexed jump */
-               relb,    /* pc relative jump (byte offset) */
-               relw,    /* pc relative jump (word offset) */
-              };
-
-/* opcode decode table define
-   ptn: opcode pattern
-   msk: opcode bitmask
-   len: instruction length (<0 next table index)
-   jmp: jump operation mode */
-struct optable {
-       unsigned char bitpattern;
-       unsigned char bitmask;
-       signed char length;
-       signed char type;
-} __packed __aligned(1);
-
-#define OPTABLE(ptn, msk, len, jmp)    \
-       {                               \
-               .bitpattern = ptn,      \
-               .bitmask    = msk,      \
-               .length     = len,      \
-               .type       = jmp,      \
-       }
-
-static const struct optable optable_0[] = {
-       OPTABLE(0x00, 0xff,  1, none), /* 0x00 */
-       OPTABLE(0x01, 0xff, -1, none), /* 0x01 */
-       OPTABLE(0x02, 0xfe,  1, none), /* 0x02-0x03 */
-       OPTABLE(0x04, 0xee,  1, none), /* 0x04-0x05/0x14-0x15 */
-       OPTABLE(0x06, 0xfe,  1, none), /* 0x06-0x07 */
-       OPTABLE(0x08, 0xea,  1, none), /* 0x08-0x09/0x0c-0x0d/0x18-0x19/0x1c-0x1d */
-       OPTABLE(0x0a, 0xee,  1, none), /* 0x0a-0x0b/0x1a-0x1b */
-       OPTABLE(0x0e, 0xee,  1, none), /* 0x0e-0x0f/0x1e-0x1f */
-       OPTABLE(0x10, 0xfc,  1, none), /* 0x10-0x13 */
-       OPTABLE(0x16, 0xfe,  1, none), /* 0x16-0x17 */
-       OPTABLE(0x20, 0xe0,  1, none), /* 0x20-0x3f */
-       OPTABLE(0x40, 0xf0,  1, relb), /* 0x40-0x4f */
-       OPTABLE(0x50, 0xfc,  1, none), /* 0x50-0x53 */
-       OPTABLE(0x54, 0xfd,  1, ret), /* 0x54/0x56 */
-       OPTABLE(0x55, 0xff,  1, relb), /* 0x55 */
-       OPTABLE(0x57, 0xff,  1, none), /* 0x57 */
-       OPTABLE(0x58, 0xfb,  2, relw), /* 0x58/0x5c */
-       OPTABLE(0x59, 0xfb,  1, reg), /* 0x59/0x5b */
-       OPTABLE(0x5a, 0xfb,  2, jabs), /* 0x5a/0x5e */
-       OPTABLE(0x5b, 0xfb,  2, ind), /* 0x5b/0x5f */
-       OPTABLE(0x60, 0xe8,  1, none), /* 0x60-0x67/0x70-0x77 */
-       OPTABLE(0x68, 0xfa,  1, none), /* 0x68-0x69/0x6c-0x6d */
-       OPTABLE(0x6a, 0xfe, -2, none), /* 0x6a-0x6b */
-       OPTABLE(0x6e, 0xfe,  2, none), /* 0x6e-0x6f */
-       OPTABLE(0x78, 0xff,  4, none), /* 0x78 */
-       OPTABLE(0x79, 0xff,  2, none), /* 0x79 */
-       OPTABLE(0x7a, 0xff,  3, none), /* 0x7a */
-       OPTABLE(0x7b, 0xff,  2, none), /* 0x7b */
-       OPTABLE(0x7c, 0xfc,  2, none), /* 0x7c-0x7f */
-       OPTABLE(0x80, 0x80,  1, none), /* 0x80-0xff */
-};
-
-static const struct optable optable_1[] = {
-       OPTABLE(0x00, 0xff, -3, none), /* 0x0100 */
-       OPTABLE(0x40, 0xf0, -3, none), /* 0x0140-0x14f */
-       OPTABLE(0x80, 0xf0,  1, none), /* 0x0180-0x018f */
-       OPTABLE(0xc0, 0xc0,  2, none), /* 0x01c0-0x01ff */
-};
-
-static const struct optable optable_2[] = {
-       OPTABLE(0x00, 0x20,  2, none), /* 0x6a0?/0x6a8?/0x6b0?/0x6b8? */
-       OPTABLE(0x20, 0x20,  3, none), /* 0x6a2?/0x6aa?/0x6b2?/0x6ba? */
-};
-
-static const struct optable optable_3[] = {
-       OPTABLE(0x69, 0xfb,  2, none), /* 0x010069/0x01006d/014069/0x01406d */
-       OPTABLE(0x6b, 0xff, -4, none), /* 0x01006b/0x01406b */
-       OPTABLE(0x6f, 0xff,  3, none), /* 0x01006f/0x01406f */
-       OPTABLE(0x78, 0xff,  5, none), /* 0x010078/0x014078 */
-};
-
-static const struct optable optable_4[] = {
-/* 0x0100690?/0x01006d0?/0140690?/0x01406d0?/
-   0x0100698?/0x01006d8?/0140698?/0x01406d8? */
-       OPTABLE(0x00, 0x78, 3, none),
-/* 0x0100692?/0x01006d2?/0140692?/0x01406d2?/
-   0x010069a?/0x01006da?/014069a?/0x01406da? */
-       OPTABLE(0x20, 0x78, 4, none),
-};
-
-static const struct optables_list {
-       const struct optable *ptr;
-       int size;
-} optables[] = {
-#define OPTABLES(no)                                                   \
-       {                                                              \
-               .ptr  = optable_##no,                                  \
-               .size = sizeof(optable_##no) / sizeof(struct optable), \
-       }
-       OPTABLES(0),
-       OPTABLES(1),
-       OPTABLES(2),
-       OPTABLES(3),
-       OPTABLES(4),
-
-};
-
-const unsigned char condmask[] = {
-       0x00, 0x40, 0x01, 0x04, 0x02, 0x08, 0x10, 0x20
-};
-
-static int isbranch(struct task_struct *task, int reson)
-{
-       unsigned char cond = h8300_get_reg(task, PT_CCR);
-
-       /* encode complex conditions */
-       /* B4: N^V
-          B5: Z|(N^V)
-          B6: C|Z */
-       __asm__("bld #3,%w0\n\t"
-               "bxor #1,%w0\n\t"
-               "bst #4,%w0\n\t"
-               "bor #2,%w0\n\t"
-               "bst #5,%w0\n\t"
-               "bld #2,%w0\n\t"
-               "bor #0,%w0\n\t"
-               "bst #6,%w0\n\t"
-               : "=&r"(cond) : "0"(cond) : "cc");
-       cond &= condmask[reson >> 1];
-       if (!(reson & 1))
-               return cond == 0;
-       else
-               return cond != 0;
-}
-
-static unsigned short *decode(struct task_struct *child,
-                             const struct optable *op,
-                             char *fetch_p, unsigned short *pc,
-                             unsigned char inst)
-{
-       unsigned long addr;
-       unsigned long *sp;
-       int regno;
-
-       switch (op->type) {
-       case none:
-               return (unsigned short *)pc + op->length;
-       case jabs:
-               addr = *(unsigned long *)pc;
-               return (unsigned short *)(addr & 0x00ffffff);
-       case ind:
-               addr = *pc & 0xff;
-               return (unsigned short *)(*(unsigned long *)addr);
-       case ret:
-               sp = (unsigned long *)h8300_get_reg(child, PT_USP);
-               /* user stack frames
-                  |   er0  | temporary saved
-                  +--------+
-                  |   exp  | exception stack frames
-                  +--------+
-                  | ret pc | userspace return address
-               */
-               return (unsigned short *)(*(sp+2) & 0x00ffffff);
-       case reg:
-               regno = (*pc >> 4) & 0x07;
-               if (regno == 0)
-                       addr = h8300_get_reg(child, PT_ER0);
-               else
-                       addr = h8300_get_reg(child, regno-1 + PT_ER1);
-               return (unsigned short *)addr;
-       case relb:
-               if (inst == 0x55 || isbranch(child, inst & 0x0f))
-                       pc = (unsigned short *)((unsigned long)pc +
-                                               ((signed char)(*fetch_p)));
-               return pc+1; /* skip myself */
-       case relw:
-               if (inst == 0x5c || isbranch(child, (*fetch_p & 0xf0) >> 4))
-                       pc = (unsigned short *)((unsigned long)pc +
-                                               ((signed short)(*(pc+1))));
-               return pc+2; /* skip myself */
-       default:
-               return NULL;
-       }
-}
-
-static unsigned short *nextpc(struct task_struct *child, unsigned short *pc)
-{
-       const struct optable *op;
-       unsigned char *fetch_p;
-       int op_len;
-       unsigned char inst;
-
-       op = optables[0].ptr;
-       op_len = optables[0].size;
-       fetch_p = (unsigned char *)pc;
-       inst = *fetch_p++;
-       do {
-               if ((inst & op->bitmask) == op->bitpattern) {
-                       if (op->length < 0) {
-                               op = optables[-op->length].ptr;
-                               op_len = optables[-op->length].size + 1;
-                               inst = *fetch_p++;
-                       } else
-                               return decode(child, op, fetch_p, pc, inst);
-               } else
-                       op++;
-       } while (--op_len > 0);
-       return NULL;
-}
-
-/* Set breakpoint(s) to simulate a single step from the current PC.  */
-
-void user_enable_single_step(struct task_struct *child)
-{
-       unsigned short *next;
-
-       next = nextpc(child, (unsigned short *)h8300_get_reg(child, PT_PC));
-       child->thread.breakinfo.addr = next;
-       child->thread.breakinfo.inst = *next;
-       *next = BREAKINST;
-}
-
-asmlinkage void trace_trap(unsigned long bp)
-{
-       if ((unsigned long)current->thread.breakinfo.addr == bp) {
-               user_disable_single_step(current);
-               force_sig(SIGTRAP);
-       } else
-               force_sig(SIGILL);
-}
diff --git a/arch/h8300/kernel/ptrace_s.c b/arch/h8300/kernel/ptrace_s.c
deleted file mode 100644 (file)
index ee21f37..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- *  linux/arch/h8300/kernel/ptrace_h8s.c
- *    ptrace cpu depend helper functions
- *
- *  Yoshinori Sato <ysato@users.sourceforge.jp>
- *
- * This file is subject to the terms and conditions of the GNU General
- * Public License.  See the file COPYING in the main directory of
- * this archive for more details.
- */
-
-#include <linux/linkage.h>
-#include <linux/sched/signal.h>
-#include <linux/errno.h>
-#include <asm/ptrace.h>
-
-#define CCR_MASK  0x6f
-#define EXR_TRACE 0x80
-
-/* disable singlestep */
-void user_disable_single_step(struct task_struct *child)
-{
-       unsigned char exr;
-
-       exr = h8300_get_reg(child, PT_EXR);
-       exr &= ~EXR_TRACE;
-       h8300_put_reg(child, PT_EXR, exr);
-}
-
-/* enable singlestep */
-void user_enable_single_step(struct task_struct *child)
-{
-       unsigned char exr;
-
-       exr = h8300_get_reg(child, PT_EXR);
-       exr |= EXR_TRACE;
-       h8300_put_reg(child, PT_EXR, exr);
-}
-
-asmlinkage void trace_trap(unsigned long bp)
-{
-       (void)bp;
-       force_sig(SIGTRAP);
-}
diff --git a/arch/h8300/kernel/setup.c b/arch/h8300/kernel/setup.c
deleted file mode 100644 (file)
index 61091a7..0000000
+++ /dev/null
@@ -1,213 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-/*
- *  linux/arch/h8300/kernel/setup.c
- *
- *  Copyright (C) 2001-2014 Yoshinori Sato <ysato@users.sourceforge.jp>
- */
-
-/*
- * This file handles the architecture-dependent parts of system setup
- */
-
-#include <linux/kernel.h>
-#include <linux/sched.h>
-#include <linux/delay.h>
-#include <linux/interrupt.h>
-#include <linux/io.h>
-#include <linux/mm.h>
-#include <linux/fs.h>
-#include <linux/console.h>
-#include <linux/errno.h>
-#include <linux/string.h>
-#include <linux/seq_file.h>
-#include <linux/init.h>
-#include <linux/of.h>
-#include <linux/of_fdt.h>
-#include <linux/of_address.h>
-#include <linux/clk-provider.h>
-#include <linux/memblock.h>
-#include <linux/screen_info.h>
-#include <linux/clocksource.h>
-
-#include <asm/setup.h>
-#include <asm/irq.h>
-#include <asm/sections.h>
-#include <asm/page.h>
-
-#if defined(CONFIG_CPU_H8300H)
-#define CPU "H8/300H"
-#elif defined(CONFIG_CPU_H8S)
-#define CPU "H8S"
-#else
-#define CPU "Unknown"
-#endif
-
-unsigned long memory_start;
-unsigned long memory_end;
-EXPORT_SYMBOL(memory_end);
-static unsigned long freq;
-extern char __dtb_start[];
-
-#ifdef CONFIG_VT
-struct screen_info screen_info;
-#endif
-
-char __initdata command_line[COMMAND_LINE_SIZE];
-
-void sim_console_register(void);
-
-void __init h8300_fdt_init(void *fdt, char *bootargs)
-{
-       if (!fdt)
-               fdt = __dtb_start;
-       else
-               strcpy(command_line, bootargs);
-
-       early_init_dt_scan(fdt);
-       memblock_allow_resize();
-}
-
-static void __init bootmem_init(void)
-{
-       memory_end = memory_start = 0;
-
-       /* Find main memory where is the kernel */
-       memory_start = memblock_start_of_DRAM();
-       memory_end = memblock_end_of_DRAM();
-
-       if (!memory_end)
-               panic("No memory!");
-
-       /* setup bootmem globals (we use no_bootmem, but mm still depends on this) */
-       min_low_pfn = PFN_UP(memory_start);
-       max_low_pfn = PFN_DOWN(memory_end);
-       max_pfn = max_low_pfn;
-
-       memblock_reserve(__pa(_stext), _end - _stext);
-
-       early_init_fdt_reserve_self();
-       early_init_fdt_scan_reserved_mem();
-
-       memblock_dump_all();
-}
-
-void __init setup_arch(char **cmdline_p)
-{
-       unflatten_and_copy_device_tree();
-
-       setup_initial_init_mm(_stext, _etext, _edata, NULL);
-
-       pr_notice("\r\n\nuClinux " CPU "\n");
-       pr_notice("Flat model support (C) 1998,1999 Kenneth Albanowski, D. Jeff Dionne\n");
-
-       if (*command_line)
-               strcpy(boot_command_line, command_line);
-       *cmdline_p = boot_command_line;
-
-       parse_early_param();
-
-       bootmem_init();
-       /*
-        * get kmalloc into gear
-        */
-       paging_init();
-}
-
-/*
- *     Get CPU information for use by the procfs.
- */
-
-static int show_cpuinfo(struct seq_file *m, void *v)
-{
-       char *cpu;
-
-       cpu = CPU;
-
-       seq_printf(m,  "CPU:\t\t%s\n"
-                  "Clock:\t\t%lu.%1luMHz\n"
-                  "BogoMips:\t%lu.%02lu\n"
-                  "Calibration:\t%lu loops\n",
-                  cpu,
-                  freq/1000, freq%1000,
-                  (loops_per_jiffy*HZ)/500000,
-                  ((loops_per_jiffy*HZ)/5000)%100,
-                  (loops_per_jiffy*HZ));
-
-       return 0;
-}
-
-static void *c_start(struct seq_file *m, loff_t *pos)
-{
-       return *pos < num_possible_cpus() ?
-               ((void *) 0x12345678) : NULL;
-}
-
-static void *c_next(struct seq_file *m, void *v, loff_t *pos)
-{
-       ++*pos;
-       return c_start(m, pos);
-}
-
-static void c_stop(struct seq_file *m, void *v)
-{
-}
-
-const struct seq_operations cpuinfo_op = {
-       .start  = c_start,
-       .next   = c_next,
-       .stop   = c_stop,
-       .show   = show_cpuinfo,
-};
-
-#if defined(CONFIG_CPU_H8300H)
-#define get_wait(base, addr) ({                \
-       int baddr;                      \
-       baddr = ((addr) / 0x200000 * 2);                             \
-       w *= (readw((base) + 2) & (3 << baddr)) + 1;                 \
-       })
-#endif
-#if defined(CONFIG_CPU_H8S)
-#define get_wait(base, addr) ({                \
-       int baddr;                      \
-       baddr = ((addr) / 0x200000 * 16);                            \
-       w *= (readl((base) + 2) & (7 << baddr)) + 1;    \
-       })
-#endif
-
-static __init int access_timing(void)
-{
-       struct device_node *bsc;
-       void __iomem *base;
-       unsigned long addr = (unsigned long)&__delay;
-       int bit = 1 << (addr / 0x200000);
-       int w;
-
-       bsc = of_find_compatible_node(NULL, NULL, "renesas,h8300-bsc");
-       base = of_iomap(bsc, 0);
-       w = (readb(base + 0) & bit)?2:1;
-       if (readb(base + 1) & bit)
-               w *= get_wait(base, addr);
-       else
-               w *= 2;
-       return w * 3 / 2;
-}
-
-void __init calibrate_delay(void)
-{
-       struct device_node *cpu;
-       int freq;
-
-       cpu = of_find_compatible_node(NULL, NULL, "renesas,h8300");
-       of_property_read_s32(cpu, "clock-frequency", &freq);
-       loops_per_jiffy = freq / HZ / (access_timing() * 2);
-       pr_cont("%lu.%02lu BogoMIPS (lpj=%lu)\n",
-               loops_per_jiffy / (500000 / HZ),
-               (loops_per_jiffy / (5000 / HZ)) % 100, loops_per_jiffy);
-}
-
-
-void __init time_init(void)
-{
-       of_clk_init(NULL);
-       timer_probe();
-}
diff --git a/arch/h8300/kernel/signal.c b/arch/h8300/kernel/signal.c
deleted file mode 100644 (file)
index 75a1c36..0000000
+++ /dev/null
@@ -1,287 +0,0 @@
-/*
- *  linux/arch/h8300/kernel/signal.c
- *
- *  Copyright (C) 1991, 1992  Linus Torvalds
- *
- * This file is subject to the terms and conditions of the GNU General Public
- * License.  See the file COPYING in the main directory of this archive
- * for more details.
- */
-
-/*
- * uClinux H8/300 support by Yoshinori Sato <ysato@users.sourceforge.jp>
- *                and David McCullough <davidm@snapgear.com>
- *
- * Based on
- * Linux/m68k by Hamish Macdonald
- */
-
-/*
- * ++roman (07/09/96): implemented signal stacks (specially for tosemu on
- * Atari :-) Current limitation: Only one sigstack can be active at one time.
- * If a second signal with SA_ONSTACK set arrives while working on a sigstack,
- * SA_ONSTACK is ignored. This behaviour avoids lots of trouble with nested
- * signal handlers!
- */
-
-#include <linux/sched.h>
-#include <linux/sched/task_stack.h>
-#include <linux/mm.h>
-#include <linux/kernel.h>
-#include <linux/signal.h>
-#include <linux/syscalls.h>
-#include <linux/errno.h>
-#include <linux/wait.h>
-#include <linux/ptrace.h>
-#include <linux/unistd.h>
-#include <linux/stddef.h>
-#include <linux/highuid.h>
-#include <linux/personality.h>
-#include <linux/tty.h>
-#include <linux/binfmts.h>
-#include <linux/tracehook.h>
-
-#include <asm/setup.h>
-#include <linux/uaccess.h>
-#include <asm/traps.h>
-#include <asm/ucontext.h>
-
-/*
- * Do a signal return; undo the signal stack.
- *
- * Keep the return code on the stack quadword aligned!
- * That makes the cache flush below easier.
- */
-
-struct rt_sigframe {
-       long dummy_er0;
-       long dummy_vector;
-#if defined(CONFIG_CPU_H8S)
-       short dummy_exr;
-#endif
-       long dummy_pc;
-       char *pretcode;
-       struct siginfo *pinfo;
-       void *puc;
-       unsigned char retcode[8];
-       struct siginfo info;
-       struct ucontext uc;
-       int sig;
-} __packed __aligned(2);
-
-static inline int
-restore_sigcontext(struct sigcontext *usc, int *pd0)
-{
-       struct pt_regs *regs = current_pt_regs();
-       int err = 0;
-       unsigned int ccr;
-       unsigned int usp;
-       unsigned int er0;
-
-       /* Always make any pending restarted system calls return -EINTR */
-       current->restart_block.fn = do_no_restart_syscall;
-
-       /* restore passed registers */
-#define COPY(r)  do { err |= get_user(regs->r, &usc->sc_##r); } while (0)
-       COPY(er1);
-       COPY(er2);
-       COPY(er3);
-       COPY(er5);
-       COPY(pc);
-       ccr = regs->ccr & 0x10;
-       COPY(ccr);
-#undef COPY
-       regs->ccr &= 0xef;
-       regs->ccr |= ccr;
-       regs->orig_er0 = -1;            /* disable syscall checks */
-       err |= __get_user(usp, &usc->sc_usp);
-       regs->sp = usp;
-
-       err |= __get_user(er0, &usc->sc_er0);
-       *pd0 = er0;
-       return err;
-}
-
-asmlinkage int sys_rt_sigreturn(void)
-{
-       unsigned long usp = rdusp();
-       struct rt_sigframe *frame = (struct rt_sigframe *)(usp - 4);
-       sigset_t set;
-       int er0;
-
-       if (!access_ok(frame, sizeof(*frame)))
-               goto badframe;
-       if (__copy_from_user(&set, &frame->uc.uc_sigmask, sizeof(set)))
-               goto badframe;
-
-       set_current_blocked(&set);
-
-       if (restore_sigcontext(&frame->uc.uc_mcontext, &er0))
-               goto badframe;
-
-       if (restore_altstack(&frame->uc.uc_stack))
-               goto badframe;
-
-       return er0;
-
-badframe:
-       force_sig(SIGSEGV);
-       return 0;
-}
-
-static int setup_sigcontext(struct sigcontext __user *sc, struct pt_regs *regs,
-                            unsigned long mask)
-{
-       int err = 0;
-
-       err |= __put_user(regs->er0, &sc->sc_er0);
-       err |= __put_user(regs->er1, &sc->sc_er1);
-       err |= __put_user(regs->er2, &sc->sc_er2);
-       err |= __put_user(regs->er3, &sc->sc_er3);
-       err |= __put_user(regs->er4, &sc->sc_er4);
-       err |= __put_user(regs->er5, &sc->sc_er5);
-       err |= __put_user(regs->er6, &sc->sc_er6);
-       err |= __put_user(rdusp(),   &sc->sc_usp);
-       err |= __put_user(regs->pc,  &sc->sc_pc);
-       err |= __put_user(regs->ccr, &sc->sc_ccr);
-       err |= __put_user(mask,      &sc->sc_mask);
-
-       return err;
-}
-
-static inline void __user *
-get_sigframe(struct ksignal *ksig, struct pt_regs *regs, size_t frame_size)
-{
-       return (void __user *)((sigsp(rdusp(), ksig) - frame_size) & -8UL);
-}
-
-static int setup_rt_frame(struct ksignal *ksig, sigset_t *set,
-                         struct pt_regs *regs)
-{
-       struct rt_sigframe *frame;
-       int err = 0;
-       unsigned char *ret;
-
-       frame = get_sigframe(ksig, regs, sizeof(*frame));
-
-       if (!access_ok(frame, sizeof(*frame)))
-               return -EFAULT;
-
-       if (ksig->ka.sa.sa_flags & SA_SIGINFO)
-               err |= copy_siginfo_to_user(&frame->info, &ksig->info);
-
-       /* Create the ucontext.  */
-       err |= __put_user(0, &frame->uc.uc_flags);
-       err |= __put_user(0, &frame->uc.uc_link);
-       err |= __save_altstack(&frame->uc.uc_stack, rdusp());
-       err |= setup_sigcontext(&frame->uc.uc_mcontext, regs, set->sig[0]);
-       err |= copy_to_user(&frame->uc.uc_sigmask, set, sizeof(*set));
-       if (err)
-               return -EFAULT;
-
-       /* Set up to return from userspace.  */
-       ret = (unsigned char *)&frame->retcode;
-       if (ksig->ka.sa.sa_flags & SA_RESTORER)
-               ret = (unsigned char *)(ksig->ka.sa.sa_restorer);
-       else {
-               /* sub.l er0,er0; mov.b #__NR_rt_sigreturn,r0l; trapa #0 */
-               err |= __put_user(0x1a80f800 + (__NR_rt_sigreturn & 0xff),
-                                 (unsigned long *)(frame->retcode + 0));
-               err |= __put_user(0x5700,
-                                 (unsigned short *)(frame->retcode + 4));
-       }
-       err |= __put_user(ret, &frame->pretcode);
-
-       if (err)
-               return -EFAULT;
-
-       /* Set up registers for signal handler */
-       regs->sp  = (unsigned long)frame;
-       regs->pc  = (unsigned long)ksig->ka.sa.sa_handler;
-       regs->er0 = ksig->sig;
-       regs->er1 = (unsigned long)&(frame->info);
-       regs->er2 = (unsigned long)&frame->uc;
-       regs->er5 = current->mm->start_data;    /* GOT base */
-
-       return 0;
-}
-
-static void
-handle_restart(struct pt_regs *regs, struct k_sigaction *ka)
-{
-       switch (regs->er0) {
-       case -ERESTARTNOHAND:
-               if (!ka)
-                       goto do_restart;
-               regs->er0 = -EINTR;
-               break;
-       case -ERESTART_RESTARTBLOCK:
-               if (!ka) {
-                       regs->er0 = __NR_restart_syscall;
-                       regs->pc -= 2;
-               } else
-                       regs->er0 = -EINTR;
-               break;
-       case -ERESTARTSYS:
-               if (!(ka->sa.sa_flags & SA_RESTART)) {
-                       regs->er0 = -EINTR;
-                       break;
-               }
-               fallthrough;
-       case -ERESTARTNOINTR:
-do_restart:
-               regs->er0 = regs->orig_er0;
-               regs->pc -= 2;
-               break;
-       }
-}
-
-/*
- * OK, we're invoking a handler
- */
-static void
-handle_signal(struct ksignal *ksig, struct pt_regs *regs)
-{
-       sigset_t *oldset = sigmask_to_save();
-       int ret;
-       /* are we from a system call? */
-       if (regs->orig_er0 >= 0)
-               handle_restart(regs, &ksig->ka);
-
-       ret = setup_rt_frame(ksig, oldset, regs);
-
-       signal_setup_done(ret, ksig, 0);
-}
-
-/*
- * Note that 'init' is a special process: it doesn't get signals it doesn't
- * want to handle. Thus you cannot kill init even with a SIGKILL even by
- * mistake.
- */
-static void do_signal(struct pt_regs *regs)
-{
-       struct ksignal ksig;
-
-       current->thread.esp0 = (unsigned long) regs;
-
-       if (get_signal(&ksig)) {
-               /* Whee!  Actually deliver the signal.  */
-               handle_signal(&ksig, regs);
-               return;
-       }
-       /* Did we come from a system call? */
-       if (regs->orig_er0 >= 0)
-               handle_restart(regs, NULL);
-
-       /* If there's no signal to deliver, we just restore the saved mask.  */
-       restore_saved_sigmask();
-}
-
-asmlinkage void do_notify_resume(struct pt_regs *regs, u32 thread_info_flags)
-{
-       if (thread_info_flags & (_TIF_SIGPENDING | _TIF_NOTIFY_SIGNAL))
-               do_signal(regs);
-
-       if (thread_info_flags & _TIF_NOTIFY_RESUME)
-               tracehook_notify_resume(regs);
-}
diff --git a/arch/h8300/kernel/sim-console.c b/arch/h8300/kernel/sim-console.c
deleted file mode 100644 (file)
index 03aa35b..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * arch/h8300/kernel/sim-console.c
- *
- *  Copyright (C) 2015 Yoshinori Sato <ysato@users.sourceforge.jp>
- *
- * This file is subject to the terms and conditions of the GNU General Public
- * License.  See the file "COPYING" in the main directory of this archive
- * for more details.
- */
-#include <linux/console.h>
-#include <linux/init.h>
-#include <linux/serial_core.h>
-
-static void sim_write(struct console *con, const char *s, unsigned n)
-{
-       register const char *_ptr __asm__("er1") = s;
-       register const unsigned _len __asm__("er2") = n;
-
-       __asm__("sub.l er0,er0\n\t"             /* er0 = 1 (stdout) */
-               "inc.l #1,er0\n\t"
-               ".byte 0x5e,0x00,0x00,0xc7\n\t" /* jsr @0xc7 (sys_write) */
-               : : "g"(_ptr), "g"(_len):"er0");
-}
-
-static int __init sim_setup(struct earlycon_device *device, const char *opt)
-{
-       device->con->write = sim_write;
-       return 0;
-}
-
-EARLYCON_DECLARE(h8sim, sim_setup);
diff --git a/arch/h8300/kernel/syscalls.c b/arch/h8300/kernel/syscalls.c
deleted file mode 100644 (file)
index 9022036..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-#include <linux/syscalls.h>
-#include <linux/signal.h>
-#include <linux/unistd.h>
-
-#undef __SYSCALL
-#define __SYSCALL(nr, call) [nr] = (call),
-
-#define sys_mmap2 sys_mmap_pgoff
-
-asmlinkage int sys_rt_sigreturn(void);
-
-void *_sys_call_table[__NR_syscalls] = {
-#include <asm/unistd.h>
-};
diff --git a/arch/h8300/kernel/traps.c b/arch/h8300/kernel/traps.c
deleted file mode 100644 (file)
index a92c39e..0000000
+++ /dev/null
@@ -1,156 +0,0 @@
-/*
- * linux/arch/h8300/boot/traps.c -- general exception handling code
- * H8/300 support Yoshinori Sato <ysato@users.sourceforge.jp>
- *
- * Cloned from Linux/m68k.
- *
- * No original Copyright holder listed,
- * Probable original (C) Roman Zippel (assigned DJD, 1999)
- *
- * Copyright 1999-2000 D. Jeff Dionne, <jeff@rt-control.com>
- *
- * This file is subject to the terms and conditions of the GNU General Public
- * License.  See the file COPYING in the main directory of this archive
- * for more details.
- */
-
-#include <linux/types.h>
-#include <linux/sched.h>
-#include <linux/sched/debug.h>
-#include <linux/sched/task.h>
-#include <linux/mm_types.h>
-#include <linux/kernel.h>
-#include <linux/errno.h>
-#include <linux/init.h>
-#include <linux/module.h>
-#include <linux/bug.h>
-
-#include <asm/irq.h>
-#include <asm/traps.h>
-#include <asm/page.h>
-
-static DEFINE_SPINLOCK(die_lock);
-
-/*
- * this must be called very early as the kernel might
- * use some instruction that are emulated on the 060
- */
-
-void __init base_trap_init(void)
-{
-}
-
-asmlinkage void set_esp0(unsigned long ssp)
-{
-       current->thread.esp0 = ssp;
-}
-
-/*
- *     Generic dumping code. Used for panic and debug.
- */
-
-static void dump(struct pt_regs *fp)
-{
-       unsigned long   *sp;
-       unsigned char   *tp;
-       int             i;
-
-       pr_info("\nCURRENT PROCESS:\n\n");
-       pr_info("COMM=%s PID=%d\n", current->comm, current->pid);
-       if (current->mm) {
-               pr_info("TEXT=%08x-%08x DATA=%08x-%08x BSS=%08x-%08x\n",
-                       (int) current->mm->start_code,
-                       (int) current->mm->end_code,
-                       (int) current->mm->start_data,
-                       (int) current->mm->end_data,
-                       (int) current->mm->end_data,
-                       (int) current->mm->brk);
-               pr_info("USER-STACK=%08x  KERNEL-STACK=%08lx\n\n",
-                       (int) current->mm->start_stack,
-                       (int) PAGE_SIZE+(unsigned long)current);
-       }
-
-       show_regs(fp);
-       pr_info("\nCODE:");
-       tp = ((unsigned char *) fp->pc) - 0x20;
-       for (sp = (unsigned long *) tp, i = 0; (i < 0x40);  i += 4) {
-               if ((i % 0x10) == 0)
-                       pr_info("\n%08x: ", (int) (tp + i));
-               pr_info("%08x ", (int) *sp++);
-       }
-       pr_info("\n");
-
-       pr_info("\nKERNEL STACK:");
-       tp = ((unsigned char *) fp) - 0x40;
-       for (sp = (unsigned long *) tp, i = 0; (i < 0xc0); i += 4) {
-               if ((i % 0x10) == 0)
-                       pr_info("\n%08x: ", (int) (tp + i));
-               pr_info("%08x ", (int) *sp++);
-       }
-       pr_info("\n");
-       if (STACK_MAGIC != *(unsigned long *)((unsigned long)current+PAGE_SIZE))
-               pr_info("(Possibly corrupted stack page??)\n");
-
-       pr_info("\n\n");
-}
-
-void die(const char *str, struct pt_regs *fp, unsigned long err)
-{
-       static int diecount;
-
-       oops_enter();
-
-       console_verbose();
-       spin_lock_irq(&die_lock);
-       report_bug(fp->pc, fp);
-       pr_crit("%s: %04lx [#%d] ", str, err & 0xffff, ++diecount);
-       dump(fp);
-
-       spin_unlock_irq(&die_lock);
-       make_task_dead(SIGSEGV);
-}
-
-static int kstack_depth_to_print = 24;
-
-void show_stack(struct task_struct *task, unsigned long *esp, const char *loglvl)
-{
-       unsigned long *stack,  addr;
-       int i;
-
-       if (esp == NULL)
-               esp = (unsigned long *) &esp;
-
-       stack = esp;
-
-       printk("%sStack from %08lx:", loglvl, (unsigned long)stack);
-       for (i = 0; i < kstack_depth_to_print; i++) {
-               if (((unsigned long)stack & (THREAD_SIZE - 1)) >=
-                   THREAD_SIZE-4)
-                       break;
-               if (i % 8 == 0)
-                       printk("%s ", loglvl);
-               pr_cont(" %08lx", *stack++);
-       }
-
-       printk("%s\nCall Trace:\n", loglvl);
-       i = 0;
-       stack = esp;
-       while (((unsigned long)stack & (THREAD_SIZE - 1)) < THREAD_SIZE-4) {
-               addr = *stack++;
-               /*
-                * If the address is either in the text segment of the
-                * kernel, or in the region which contains vmalloc'ed
-                * memory, it *may* be the address of a calling
-                * routine; if so, print it so that someone tracing
-                * down the cause of the crash will be able to figure
-                * out the call path that was taken.
-                */
-               if (check_kernel_text(addr)) {
-                       if (i % 4 == 0)
-                               printk("%s       ", loglvl);
-                       pr_cont(" [<%08lx>]", addr);
-                       i++;
-               }
-       }
-       printk("%s\n", loglvl);
-}
diff --git a/arch/h8300/kernel/vmlinux.lds.S b/arch/h8300/kernel/vmlinux.lds.S
deleted file mode 100644 (file)
index 6b1afc2..0000000
+++ /dev/null
@@ -1,69 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-
-#define RO_EXCEPTION_TABLE_ALIGN       16
-
-#include <asm-generic/vmlinux.lds.h>
-#include <asm/page.h>
-#include <asm/thread_info.h>
-
-#define ROMTOP 0x000000
-#define RAMTOP 0x400000
-
-jiffies = jiffies_64 + 4;
-
-ENTRY(_start)
-
-SECTIONS
-{
-#if defined(CONFIG_ROMKERNEL)
-       . = ROMTOP;
-       .vectors :
-       {
-       _vector = . ;
-               *(.vector*)
-       }
-#else
-       . = RAMTOP;
-       _ramstart = .;
-       . = . + CONFIG_OFFSET;
-#endif
-       _text = .;
-       HEAD_TEXT_SECTION
-       .text : {
-       _stext = . ;
-               TEXT_TEXT
-               SCHED_TEXT
-               CPUIDLE_TEXT
-               LOCK_TEXT
-#if defined(CONFIG_ROMKERNEL)
-               *(.int_redirect)
-#endif
-       _etext = . ;
-       }
-       RO_DATA(4)
-       ROMEND = .;
-#if defined(CONFIG_ROMKERNEL)
-       . = RAMTOP;
-       _ramstart = .;
-#define ADDR(x) ROMEND
-#endif
-       _sdata = . ;
-       __data_start = . ;
-       RW_DATA(0, PAGE_SIZE, THREAD_SIZE)
-#if defined(CONFIG_ROMKERNEL)
-#undef ADDR
-#endif
-       . = ALIGN(0x4) ;
-       __init_begin = .;
-       INIT_TEXT_SECTION(4)
-       INIT_DATA_SECTION(4)
-       __init_end = .;
-       _edata = . ;
-       _begin_data = LOADADDR(.data);
-       _sbss =.;
-       BSS_SECTION(0, 0 ,0)
-       _ebss =.;
-       _ramend = .;
-       _end = .;
-       DISCARDS
-}
diff --git a/arch/h8300/lib/Makefile b/arch/h8300/lib/Makefile
deleted file mode 100644 (file)
index 5911c1f..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0-only
-#
-# Makefile for H8/300-specific library files..
-#
-
-lib-y  = memcpy.o memset.o abs.o \
-        mulsi3.o udivsi3.o muldi3.o moddivsi3.o \
-        ashldi3.o lshrdi3.o ashrdi3.o ucmpdi2.o \
-        delay.o
diff --git a/arch/h8300/lib/abs.S b/arch/h8300/lib/abs.S
deleted file mode 100644 (file)
index 6e1a4ed..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-;;; SPDX-License-Identifier: GPL-2.0
-;;; abs.S
-
-#include <asm/linkage.h>
-
-#if defined(CONFIG_CPU_H8300H)
-       .h8300h
-#endif
-#if defined(CONFIG_CPU_H8S)
-       .h8300s
-#endif
-       .text
-.global _abs
-
-;;; int abs(int n)
-_abs:
-       mov.l   er0,er0
-       bpl     1f
-       neg.l   er0
-1:
-       rts
diff --git a/arch/h8300/lib/ashldi3.c b/arch/h8300/lib/ashldi3.c
deleted file mode 100644 (file)
index 430720c..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-#include "libgcc.h"
-
-DWtype
-__ashldi3(DWtype u, word_type b)
-{
-       const DWunion uu = {.ll = u};
-       const word_type bm = (sizeof (Wtype) * BITS_PER_UNIT) - b;
-       DWunion w;
-
-       if (b == 0)
-               return u;
-
-       if (bm <= 0) {
-               w.s.low = 0;
-               w.s.high = (UWtype) uu.s.low << -bm;
-       } else {
-               const UWtype carries = (UWtype) uu.s.low >> bm;
-
-               w.s.low = (UWtype) uu.s.low << b;
-               w.s.high = ((UWtype) uu.s.high << b) | carries;
-       }
-
-       return w.ll;
-}
diff --git a/arch/h8300/lib/ashrdi3.c b/arch/h8300/lib/ashrdi3.c
deleted file mode 100644 (file)
index 2c6cd42..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-#include "libgcc.h"
-
-DWtype __ashrdi3(DWtype u, word_type b)
-{
-       const DWunion uu = {.ll = u};
-       const word_type bm = (sizeof (Wtype) * BITS_PER_UNIT) - b;
-       DWunion w;
-
-       if (b == 0)
-               return u;
-
-       if (bm <= 0) {
-               /* w.s.high = 1..1 or 0..0 */
-               w.s.high = uu.s.high >> (sizeof (Wtype) * BITS_PER_UNIT - 1);
-               w.s.low = uu.s.high >> -bm;
-       } else {
-               const UWtype carries = (UWtype) uu.s.high << bm;
-
-               w.s.high = uu.s.high >> b;
-               w.s.low = ((UWtype) uu.s.low >> b) | carries;
-       }
-
-       return w.ll;
-}
diff --git a/arch/h8300/lib/delay.c b/arch/h8300/lib/delay.c
deleted file mode 100644 (file)
index f427752..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-/*
- * delay loops
- *
- * Copyright (C) 2015 Yoshinori Sato
- */
-
-#include <linux/module.h>
-#include <linux/delay.h>
-#include <asm/param.h>
-#include <asm/processor.h>
-#include <asm/timex.h>
-
-void __delay(unsigned long cycles)
-{
-       __asm__ volatile ("1: dec.l #1,%0\n\t"
-                         "bne 1b":"=r"(cycles):"0"(cycles));
-}
-EXPORT_SYMBOL(__delay);
-
-void __const_udelay(unsigned long xloops)
-{
-       u64 loops;
-
-       loops = (u64)xloops * loops_per_jiffy * HZ;
-
-       __delay(loops >> 32);
-}
-EXPORT_SYMBOL(__const_udelay);
-
-void __udelay(unsigned long usecs)
-{
-       __const_udelay(usecs * 0x10C7UL); /* 2**32 / 1000000 (rounded up) */
-}
-EXPORT_SYMBOL(__udelay);
-
-void __ndelay(unsigned long nsecs)
-{
-       __const_udelay(nsecs * 0x5UL); /* 2**32 / 1000000000 (rounded up) */
-}
-EXPORT_SYMBOL(__ndelay);
diff --git a/arch/h8300/lib/libgcc.h b/arch/h8300/lib/libgcc.h
deleted file mode 100644 (file)
index b8bcf70..0000000
+++ /dev/null
@@ -1,78 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-#ifndef __H8300_LIBGCC_H__
-#define __H8300_LIBGCC_H__
-
-#ifdef __ASSEMBLY__
-#define A0 r0
-#define A0L r0l
-#define A0H r0h
-
-#define A1 r1
-#define A1L r1l
-#define A1H r1h
-
-#define A2 r2
-#define A2L r2l
-#define A2H r2h
-
-#define A3 r3
-#define A3L r3l
-#define A3H r3h
-
-#define S0 r4
-#define S0L r4l
-#define S0H r4h
-
-#define S1 r5
-#define S1L r5l
-#define S1H r5h
-
-#define S2 r6
-#define S2L r6l
-#define S2H r6h
-
-#define PUSHP  push.l
-#define POPP   pop.l
-
-#define A0P    er0
-#define A1P    er1
-#define A2P    er2
-#define A3P    er3
-#define S0P    er4
-#define S1P    er5
-#define S2P    er6
-
-#define A0E    e0
-#define A1E    e1
-#define A2E    e2
-#define A3E    e3
-#else
-#define Wtype   SItype
-#define UWtype  USItype
-#define HWtype  SItype
-#define UHWtype USItype
-#define DWtype  DItype
-#define UDWtype UDItype
-#define UWtype  USItype
-#define Wtype   SItype
-#define UWtype  USItype
-#define W_TYPE_SIZE (4 * BITS_PER_UNIT)
-#define BITS_PER_UNIT (8)
-
-typedef          int SItype     __attribute__ ((mode (SI)));
-typedef unsigned int USItype    __attribute__ ((mode (SI)));
-typedef                 int DItype     __attribute__ ((mode (DI)));
-typedef unsigned int UDItype   __attribute__ ((mode (DI)));
-struct DWstruct {
-       Wtype high, low;
-};
-typedef union {
-       struct DWstruct s;
-       DWtype ll;
-} DWunion;
-
-typedef int word_type __attribute__ ((mode (__word__)));
-
-#endif
-
-#endif
diff --git a/arch/h8300/lib/lshrdi3.c b/arch/h8300/lib/lshrdi3.c
deleted file mode 100644 (file)
index 8dbc861..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-#include "libgcc.h"
-
-DWtype __lshrdi3(DWtype u, word_type b)
-{
-       const DWunion uu = {.ll = u};
-       const word_type bm = (sizeof (Wtype) * BITS_PER_UNIT) - b;
-       DWunion w;
-
-       if (b == 0)
-               return u;
-
-       if (bm <= 0) {
-               w.s.high = 0;
-               w.s.low = (UWtype) uu.s.high >> -bm;
-       } else {
-               const UWtype carries = (UWtype) uu.s.high << bm;
-
-               w.s.high = (UWtype) uu.s.high >> b;
-               w.s.low = ((UWtype) uu.s.low >> b) | carries;
-       }
-
-       return w.ll;
-}
diff --git a/arch/h8300/lib/memcpy.S b/arch/h8300/lib/memcpy.S
deleted file mode 100644 (file)
index f1cd67d..0000000
+++ /dev/null
@@ -1,86 +0,0 @@
-;;; SPDX-License-Identifier: GPL-2.0
-;;; memcpy.S
-
-#include <asm/linkage.h>
-
-#if defined(CONFIG_CPU_H8300H)
-       .h8300h
-#endif
-#if defined(CONFIG_CPU_H8S)
-       .h8300s
-#endif
-       .text
-.global memcpy
-
-;;; void *memcpy(void *to, void *from, size_t n)
-memcpy:
-       mov.l   er2,er2
-       bne     1f
-       rts
-1:
-       ;; address check
-       bld     #0,r0l
-       bxor    #0,r1l
-       bcs     4f
-       mov.l   er4,@-sp
-       mov.l   er0,@-sp
-       btst    #0,r0l
-       beq     1f
-       ;; (aligned even) odd address
-       mov.b   @er1,r3l
-       mov.b   r3l,@er0
-       adds    #1,er1
-       adds    #1,er0
-       dec.l   #1,er2
-       beq     3f
-1:
-       ;; n < sizeof(unsigned long) check
-       sub.l   er4,er4
-       adds    #4,er4          ; loop count check value
-       cmp.l   er4,er2
-       blo     2f
-       ;; unsigned long copy
-1:
-       mov.l   @er1,er3
-       mov.l   er3,@er0
-       adds    #4,er0
-       adds    #4,er1
-       subs    #4,er2
-       cmp.l   er4,er2
-       bcc     1b
-       ;; rest
-2:
-       mov.l   er2,er2
-       beq     3f
-1:
-       mov.b   @er1,r3l
-       mov.b   r3l,@er0
-       adds    #1,er1
-       adds    #1,er0
-       dec.l   #1,er2
-       bne     1b
-3:
-       mov.l   @sp+,er0
-       mov.l   @sp+,er4
-       rts
-
-       ;; odd <- even / even <- odd
-4:
-       mov.l   er4,er3
-       mov.l   er2,er4
-       mov.l   er5,er2
-       mov.l   er1,er5
-       mov.l   er6,er1
-       mov.l   er0,er6
-1:
-       eepmov.w
-       mov.w   r4,r4
-       bne     1b
-       dec.w   #1,e4
-       bpl     1b
-       mov.l   er1,er6
-       mov.l   er2,er5
-       mov.l   er3,er4
-       rts
-
-       .end
diff --git a/arch/h8300/lib/memset.S b/arch/h8300/lib/memset.S
deleted file mode 100644 (file)
index 2d1abc3..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/* memset.S */
-
-#include <asm/linkage.h>
-
-#if defined(CONFIG_CPU_H8300H)
-       .h8300h
-#endif
-#if defined(CONFIG_CPU_H8S)
-       .h8300s
-#endif
-       .text
-
-.global        memset
-.global        clear_user
-
-;;void *memset(*ptr, int c, size_t count)
-;; ptr = er0
-;; c   = er1(r1l)
-;; count = er2
-memset:
-       btst    #0,r0l
-       beq     2f
-
-       ;; odd address
-1:
-       mov.b   r1l,@er0
-       adds    #1,er0
-       dec.l   #1,er2
-       beq     6f
-
-       ;; even address
-2:
-       mov.l   er2,er3
-       cmp.l   #4,er2
-       blo     4f
-       ;; count>=4 -> count/4
-#if defined(CONFIG_CPU_H8300H)
-       shlr.l  er2
-       shlr.l  er2
-#endif
-#if defined(CONFIG_CPU_H8S)
-       shlr.l  #2,er2
-#endif
-       ;; byte -> long
-       mov.b   r1l,r1h
-       mov.w   r1,e1
-3:
-       mov.l   er1,@er0
-       adds    #4,er0
-       dec.l   #1,er2
-       bne     3b
-4:
-       ;; count % 4
-       and.b   #3,r3l
-       beq     6f
-5:
-       mov.b   r1l,@er0
-       adds    #1,er0
-       dec.b   r3l
-       bne     5b
-6:
-       rts
-
-clear_user:
-       mov.l   er1, er2
-       sub.l   er1, er1
-       bra     memset
-
-       .end
diff --git a/arch/h8300/lib/moddivsi3.S b/arch/h8300/lib/moddivsi3.S
deleted file mode 100644 (file)
index 9e33ab0..0000000
+++ /dev/null
@@ -1,73 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-#include "libgcc.h"
-
-; numerator in A0/A1
-; denominator in A2/A3
-       .global __modsi3
-__modsi3:
-       PUSHP   S2P
-       bsr     modnorm
-       bsr     __divsi3
-       mov.l   er3,er0
-       bra     exitdiv
-
-       .global __umodsi3
-__umodsi3:
-       bsr     __udivsi3:16
-       mov.l   er3,er0
-       rts
-
-       .global __divsi3
-__divsi3:
-       PUSHP   S2P
-       bsr     divnorm
-       bsr     __udivsi3:16
-
-       ; examine what the sign should be
-exitdiv:
-       btst    #3,S2L
-       beq     reti
-
-       ; should be -ve
-       neg.l   A0P
-
-reti:
-       POPP    S2P
-       rts
-
-divnorm:
-       mov.l   A0P,A0P         ; is the numerator -ve
-       stc     ccr,S2L         ; keep the sign in bit 3 of S2L
-       bge     postive
-
-       neg.l   A0P             ; negate arg
-
-postive:
-       mov.l   A1P,A1P         ; is the denominator -ve
-       bge     postive2
-
-       neg.l   A1P             ; negate arg
-       xor.b   #0x08,S2L       ; toggle the result sign
-
-postive2:
-       rts
-
-;; Basically the same, except that the sign of the divisor determines
-;; the sign.
-modnorm:
-       mov.l   A0P,A0P         ; is the numerator -ve
-       stc     ccr,S2L         ; keep the sign in bit 3 of S2L
-       bge     mpostive
-
-       neg.l   A0P             ; negate arg
-
-mpostive:
-       mov.l   A1P,A1P         ; is the denominator -ve
-       bge     mpostive2
-
-       neg.l   A1P             ; negate arg
-
-mpostive2:
-       rts
-
-       .end
diff --git a/arch/h8300/lib/modsi3.S b/arch/h8300/lib/modsi3.S
deleted file mode 100644 (file)
index bdc8a00..0000000
+++ /dev/null
@@ -1,73 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-#include "libgcc.h"
-
-; numerator in A0/A1
-; denominator in A2/A3
-       .global __modsi3
-__modsi3:
-       PUSHP   S2P
-       bsr     modnorm
-       bsr     __divsi3
-       mov.l   er3,er0
-       bra     exitdiv
-
-       .global __umodsi3
-__umodsi3:
-       bsr     __udivsi3
-       mov.l   er3,er0
-       rts
-
-       .global __divsi3
-__divsi3:
-       PUSHP   S2P
-       jsr     divnorm
-       bsr     __udivsi3
-
-       ; examine what the sign should be
-exitdiv:
-       btst    #3,S2L
-       beq     reti
-
-       ; should be -ve
-       neg.l   A0P
-
-reti:
-       POPP    S2P
-       rts
-
-divnorm:
-       mov.l   A0P,A0P         ; is the numerator -ve
-       stc     ccr,S2L         ; keep the sign in bit 3 of S2L
-       bge     postive
-
-       neg.l   A0P             ; negate arg
-
-postive:
-       mov.l   A1P,A1P         ; is the denominator -ve
-       bge     postive2
-
-       neg.l   A1P             ; negate arg
-       xor.b   #0x08,S2L       ; toggle the result sign
-
-postive2:
-       rts
-
-;; Basically the same, except that the sign of the divisor determines
-;; the sign.
-modnorm:
-       mov.l   A0P,A0P         ; is the numerator -ve
-       stc     ccr,S2L         ; keep the sign in bit 3 of S2L
-       bge     mpostive
-
-       neg.l   A0P             ; negate arg
-
-mpostive:
-       mov.l   A1P,A1P         ; is the denominator -ve
-       bge     mpostive2
-
-       neg.l   A1P             ; negate arg
-
-mpostive2:
-       rts
-
-       .end
diff --git a/arch/h8300/lib/muldi3.c b/arch/h8300/lib/muldi3.c
deleted file mode 100644 (file)
index 9cb11b1..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-#include "libgcc.h"
-
-#define __ll_B ((UWtype) 1 << (W_TYPE_SIZE / 2))
-#define __ll_lowpart(t) ((UWtype) (t) & (__ll_B - 1))
-#define __ll_highpart(t) ((UWtype) (t) >> (W_TYPE_SIZE / 2))
-
-#define umul_ppmm(w1, w0, u, v) \
-       do {                       \
-               UWtype __x0, __x1, __x2, __x3;  \
-               UHWtype __ul, __vl, __uh, __vh; \
-               __ul = __ll_lowpart(u); \
-               __uh = __ll_highpart(u);        \
-               __vl = __ll_lowpart(v); \
-               __vh = __ll_highpart(v);        \
-               __x0 = (UWtype) __ul * __vl;    \
-               __x1 = (UWtype) __ul * __vh;    \
-               __x2 = (UWtype) __uh * __vl;    \
-               __x3 = (UWtype) __uh * __vh;    \
-               __x1 += __ll_highpart(__x0);    \
-               __x1 += __x2;                   \
-               if (__x1 < __x2)                \
-                       __x3 += __ll_B;         \
-               (w1) = __x3 + __ll_highpart(__x1);             \
-               (w0) = __ll_lowpart(__x1) * __ll_B + __ll_lowpart(__x0); \
-       } while (0)
-
-#define __umulsidi3(u, v) (                    \
-               {                               \
-                       DWunion __w;            \
-                       umul_ppmm(__w.s.high, __w.s.low, u, v); \
-                       __w.ll; }                                       \
-               )
-
-DWtype __muldi3(DWtype u, DWtype v)
-{
-       const DWunion uu = {.ll = u};
-       const DWunion vv = {.ll = v};
-       DWunion w = {.ll = __umulsidi3(uu.s.low, vv.s.low)};
-
-       w.s.high += ((UWtype) uu.s.low * (UWtype) vv.s.high
-                    + (UWtype) uu.s.high * (UWtype) vv.s.low);
-
-       return w.ll;
-}
diff --git a/arch/h8300/lib/mulsi3.S b/arch/h8300/lib/mulsi3.S
deleted file mode 100644 (file)
index 5a062fd..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-; SPDX-License-Identifier: GPL-2.0
-;
-; mulsi3 for H8/300H - based on Renesas SH implementation
-;
-; by Toshiyasu Morita
-;
-; Old code:
-;
-; 16b * 16b = 372 states (worst case)
-; 32b * 32b = 724 states (worst case)
-;
-; New code:
-;
-; 16b * 16b =  48 states
-; 16b * 32b =  72 states
-; 32b * 32b =  92 states
-;
-
-       .global __mulsi3
-__mulsi3:
-       mov.w   r1,r2   ; ( 2 states) b * d
-       mulxu   r0,er2  ; (22 states)
-
-       mov.w   e0,r3   ; ( 2 states) a * d
-       beq     L_skip1 ; ( 4 states)
-       mulxu   r1,er3  ; (22 states)
-       add.w   r3,e2   ; ( 2 states)
-
-L_skip1:
-       mov.w   e1,r3   ; ( 2 states) c * b
-       beq     L_skip2 ; ( 4 states)
-       mulxu   r0,er3  ; (22 states)
-       add.w   r3,e2   ; ( 2 states)
-
-L_skip2:
-       mov.l   er2,er0 ; ( 2 states)
-       rts             ; (10 states)
-
-       .end
diff --git a/arch/h8300/lib/ucmpdi2.c b/arch/h8300/lib/ucmpdi2.c
deleted file mode 100644 (file)
index 9f64688..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-#include "libgcc.h"
-
-word_type __ucmpdi2(DWtype a, DWtype b)
-{
-       const DWunion au = {.ll = a};
-       const DWunion bu = {.ll = b};
-
-       if ((UWtype) au.s.high < (UWtype) bu.s.high)
-               return 0;
-       else if ((UWtype) au.s.high > (UWtype) bu.s.high)
-               return 2;
-       if ((UWtype) au.s.low < (UWtype) bu.s.low)
-               return 0;
-       else if ((UWtype) au.s.low > (UWtype) bu.s.low)
-               return 2;
-       return 1;
-}
diff --git a/arch/h8300/lib/udivsi3.S b/arch/h8300/lib/udivsi3.S
deleted file mode 100644 (file)
index b810aba..0000000
+++ /dev/null
@@ -1,77 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-#include "libgcc.h"
-
-       ;; This function also computes the remainder and stores it in er3.
-       .global __udivsi3
-__udivsi3:
-       mov.w   A1E,A1E         ; denominator top word 0?
-       bne     DenHighNonZero
-
-       ; do it the easy way, see page 107 in manual
-       mov.w   A0E,A2
-       extu.l  A2P
-       divxu.w A1,A2P
-       mov.w   A2E,A0E
-       divxu.w A1,A0P
-       mov.w   A0E,A3
-       mov.w   A2,A0E
-       extu.l  A3P
-       rts
-
-       ; er0 = er0 / er1
-       ; er3 = er0 % er1
-       ; trashes er1 er2
-       ; expects er1 >= 2^16
-DenHighNonZero:
-       mov.l   er0,er3
-       mov.l   er1,er2
-#ifdef CONFIG_CPU_H8300H
-divmod_L21:
-       shlr.l  er0
-       shlr.l  er2             ; make divisor < 2^16
-       mov.w   e2,e2
-       bne     divmod_L21
-#else
-       shlr.l  #2,er2          ; make divisor < 2^16
-       mov.w   e2,e2
-       beq     divmod_L22A
-divmod_L21:
-       shlr.l  #2,er0
-divmod_L22:
-       shlr.l  #2,er2          ; make divisor < 2^16
-       mov.w   e2,e2
-       bne     divmod_L21
-divmod_L22A:
-       rotxl.w r2
-       bcs     divmod_L23
-       shlr.l  er0
-       bra     divmod_L24
-divmod_L23:
-       rotxr.w r2
-       shlr.l  #2,er0
-divmod_L24:
-#endif
-       ;; At this point,
-       ;;  er0 contains shifted dividend
-       ;;  er1 contains divisor
-       ;;  er2 contains shifted divisor
-       ;;  er3 contains dividend, later remainder
-       divxu.w r2,er0          ; r0 now contains the approximate quotient (AQ)
-       extu.l  er0
-       beq     divmod_L25
-       subs    #1,er0          ; er0 = AQ - 1
-       mov.w   e1,r2
-       mulxu.w r0,er2          ; er2 = upper (AQ - 1) * divisor
-       sub.w   r2,e3           ; dividend - 65536 * er2
-       mov.w   r1,r2
-       mulxu.w r0,er2          ; compute er3 = remainder (tentative)
-       sub.l   er2,er3         ; er3 = dividend - (AQ - 1) * divisor
-divmod_L25:
-       cmp.l   er1,er3         ; is divisor < remainder?
-       blo     divmod_L26
-       adds    #1,er0
-       sub.l   er1,er3         ; correct the remainder
-divmod_L26:
-       rts
-
-       .end
diff --git a/arch/h8300/mm/Makefile b/arch/h8300/mm/Makefile
deleted file mode 100644 (file)
index e85b5c9..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0-only
-#
-# Makefile for the linux h8300-specific parts of the memory manager.
-#
-
-obj-y   := init.o fault.o memory.o
diff --git a/arch/h8300/mm/fault.c b/arch/h8300/mm/fault.c
deleted file mode 100644 (file)
index b465441..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-/*
- *  linux/arch/h8300/mm/fault.c
- *
- *  Copyright (C) 1998  D. Jeff Dionne <jeff@lineo.ca>,
- *  Copyright (C) 2000  Lineo, Inc.  (www.lineo.com)
- *
- *  Based on:
- *
- *  linux/arch/m68knommu/mm/fault.c
- *  linux/arch/m68k/mm/fault.c
- *
- *  Copyright (C) 1995  Hamish Macdonald
- */
-
-#include <linux/mman.h>
-#include <linux/mm.h>
-#include <linux/kernel.h>
-#include <linux/ptrace.h>
-
-
-void die(const char *str, struct pt_regs *fp, unsigned long err);
-
-/*
- * This routine handles page faults.  It determines the problem, and
- * then passes it off to one of the appropriate routines.
- *
- * error_code:
- *     bit 0 == 0 means no page found, 1 means protection fault
- *     bit 1 == 0 means read, 1 means write
- *
- * If this routine detects a bad access, it returns 1, otherwise it
- * returns 0.
- */
-asmlinkage int do_page_fault(struct pt_regs *regs, unsigned long address,
-                             unsigned long error_code)
-{
-#ifdef DEBUG
-       pr_debug("regs->sr=%#x, regs->pc=%#lx, address=%#lx, %ld\n",
-                regs->sr, regs->pc, address, error_code);
-#endif
-
-/*
- * Oops. The kernel tried to access some bad page. We'll have to
- * terminate things with extreme prejudice.
- */
-       if ((unsigned long) address < PAGE_SIZE)
-               pr_alert("Unable to handle kernel NULL pointer dereference");
-       else
-               pr_alert("Unable to handle kernel access");
-       printk(" at virtual address %08lx\n", address);
-       if (!user_mode(regs))
-               die("Oops", regs, error_code);
-       make_task_dead(SIGKILL);
-
-       return 1;
-}
diff --git a/arch/h8300/mm/init.c b/arch/h8300/mm/init.c
deleted file mode 100644 (file)
index f7bf469..0000000
+++ /dev/null
@@ -1,101 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-/*
- *  linux/arch/h8300/mm/init.c
- *
- *  Copyright (C) 1998  D. Jeff Dionne <jeff@lineo.ca>,
- *                      Kenneth Albanowski <kjahds@kjahds.com>,
- *  Copyright (C) 2000  Lineo, Inc.  (www.lineo.com)
- *
- *  Based on:
- *
- *  linux/arch/m68knommu/mm/init.c
- *  linux/arch/m68k/mm/init.c
- *
- *  Copyright (C) 1995  Hamish Macdonald
- *
- *  JAN/1999 -- hacked to support ColdFire (gerg@snapgear.com)
- *  DEC/2000 -- linux 2.4 support <davidm@snapgear.com>
- */
-
-#include <linux/signal.h>
-#include <linux/sched.h>
-#include <linux/kernel.h>
-#include <linux/errno.h>
-#include <linux/string.h>
-#include <linux/types.h>
-#include <linux/ptrace.h>
-#include <linux/mman.h>
-#include <linux/mm.h>
-#include <linux/swap.h>
-#include <linux/init.h>
-#include <linux/highmem.h>
-#include <linux/pagemap.h>
-#include <linux/memblock.h>
-#include <linux/gfp.h>
-
-#include <asm/setup.h>
-#include <asm/segment.h>
-#include <asm/page.h>
-#include <asm/sections.h>
-
-/*
- * ZERO_PAGE is a special page that is used for zero-initialized
- * data and COW.
- */
-unsigned long empty_zero_page;
-
-/*
- * paging_init() continues the virtual memory environment setup which
- * was begun by the code in arch/head.S.
- * The parameters are pointers to where to stick the starting and ending
- * addresses of available kernel virtual memory.
- */
-void __init paging_init(void)
-{
-       /*
-        * Make sure start_mem is page aligned,  otherwise bootmem and
-        * page_alloc get different views og the world.
-        */
-       unsigned long start_mem = PAGE_ALIGN(memory_start);
-       unsigned long end_mem   = memory_end & PAGE_MASK;
-
-       pr_debug("start_mem is %#lx\nvirtual_end is %#lx\n",
-                start_mem, end_mem);
-
-       /*
-        * Initialize the bad page table and bad page to point
-        * to a couple of allocated pages.
-        */
-       empty_zero_page = (unsigned long)memblock_alloc(PAGE_SIZE, PAGE_SIZE);
-       if (!empty_zero_page)
-               panic("%s: Failed to allocate %lu bytes align=0x%lx\n",
-                     __func__, PAGE_SIZE, PAGE_SIZE);
-
-       /*
-        * Set up SFC/DFC registers (user data space).
-        */
-       set_fs(USER_DS);
-
-       pr_debug("before free_area_init\n");
-
-       pr_debug("free_area_init -> start_mem is %#lx\nvirtual_end is %#lx\n",
-                start_mem, end_mem);
-
-       {
-               unsigned long max_zone_pfn[MAX_NR_ZONES] = {0, };
-
-               max_zone_pfn[ZONE_NORMAL] = end_mem >> PAGE_SHIFT;
-               free_area_init(max_zone_pfn);
-       }
-}
-
-void __init mem_init(void)
-{
-       pr_devel("Mem_init: start=%lx, end=%lx\n", memory_start, memory_end);
-
-       high_memory = (void *) (memory_end & PAGE_MASK);
-       max_mapnr = MAP_NR(high_memory);
-
-       /* this will put all low memory onto the freelists */
-       memblock_free_all();
-}
diff --git a/arch/h8300/mm/memory.c b/arch/h8300/mm/memory.c
deleted file mode 100644 (file)
index 4a60e2b..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-/*
- *  linux/arch/h8300/mm/memory.c
- *
- *  Copyright (C) 2002  Yoshinori Sato <ysato@users.sourceforge.jp>,
- *
- *  Based on:
- *
- *  linux/arch/m68knommu/mm/memory.c
- *
- *  Copyright (C) 1998  Kenneth Albanowski <kjahds@kjahds.com>,
- *  Copyright (C) 1999-2002, Greg Ungerer (gerg@snapgear.com)
- *
- *  Based on:
- *
- *  linux/arch/m68k/mm/memory.c
- *
- *  Copyright (C) 1995  Hamish Macdonald
- */
-
-#include <linux/mm.h>
-#include <linux/kernel.h>
-#include <linux/string.h>
-#include <linux/types.h>
-
-#include <asm/setup.h>
-#include <asm/segment.h>
-#include <asm/page.h>
-#include <asm/traps.h>
-#include <asm/io.h>
-
-void cache_clear(unsigned long paddr, int len)
-{
-}
-
-
-void cache_push(unsigned long paddr, int len)
-{
-}
-
-void cache_push_v(unsigned long vaddr, int len)
-{
-}
-
-/*
- * Map some physical address range into the kernel address space.
- */
-
-unsigned long kernel_map(unsigned long paddr, unsigned long size,
-                        int nocacheflag, unsigned long *memavailp)
-{
-       return paddr;
-}
index 16e588630472558cfdca46f8c19d537c545f3f15..955fbce86843ce0b4982e50a71bdd4678bad8bbb 100644 (file)
@@ -81,7 +81,6 @@ obj-$(CONFIG_CLK_BAIKAL_T1)           += baikal-t1/
 obj-y                                  += bcm/
 obj-$(CONFIG_ARCH_BERLIN)              += berlin/
 obj-$(CONFIG_ARCH_DAVINCI)             += davinci/
-obj-$(CONFIG_H8300)                    += h8300/
 obj-$(CONFIG_ARCH_HISI)                        += hisilicon/
 obj-y                                  += imgtec/
 obj-y                                  += imx/
diff --git a/drivers/clk/h8300/Makefile b/drivers/clk/h8300/Makefile
deleted file mode 100644 (file)
index 8078a0b..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0-only
-obj-y += clk-div.o
-obj-$(CONFIG_H8S2678) += clk-h8s2678.o
diff --git a/drivers/clk/h8300/clk-div.c b/drivers/clk/h8300/clk-div.c
deleted file mode 100644 (file)
index 376be03..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-/*
- * H8/300 divide clock driver
- *
- * Copyright 2015 Yoshinori Sato <ysato@users.sourceforge.jp>
- */
-
-#include <linux/clk-provider.h>
-#include <linux/err.h>
-#include <linux/io.h>
-#include <linux/of.h>
-#include <linux/of_address.h>
-
-static DEFINE_SPINLOCK(clklock);
-
-static void __init h8300_div_clk_setup(struct device_node *node)
-{
-       unsigned int num_parents;
-       struct clk_hw *hw;
-       const char *clk_name = node->name;
-       const char *parent_name;
-       void __iomem *divcr = NULL;
-       int width;
-       int offset;
-
-       num_parents = of_clk_get_parent_count(node);
-       if (!num_parents) {
-               pr_err("%s: no parent found\n", clk_name);
-               return;
-       }
-
-       divcr = of_iomap(node, 0);
-       if (divcr == NULL) {
-               pr_err("%s: failed to map divide register\n", clk_name);
-               goto error;
-       }
-       offset = (unsigned long)divcr & 3;
-       offset = (3 - offset) * 8;
-       divcr = (void __iomem *)((unsigned long)divcr & ~3);
-
-       parent_name = of_clk_get_parent_name(node, 0);
-       of_property_read_u32(node, "renesas,width", &width);
-       hw = clk_hw_register_divider(NULL, clk_name, parent_name,
-                                  CLK_SET_RATE_GATE, divcr, offset, width,
-                                  CLK_DIVIDER_POWER_OF_TWO, &clklock);
-       if (!IS_ERR(hw)) {
-               of_clk_add_hw_provider(node, of_clk_hw_simple_get, hw);
-               return;
-       }
-       pr_err("%s: failed to register %s div clock (%ld)\n",
-              __func__, clk_name, PTR_ERR(hw));
-error:
-       if (divcr)
-               iounmap(divcr);
-}
-
-CLK_OF_DECLARE(h8300_div_clk, "renesas,h8300-div-clock", h8300_div_clk_setup);
diff --git a/drivers/clk/h8300/clk-h8s2678.c b/drivers/clk/h8300/clk-h8s2678.c
deleted file mode 100644 (file)
index 67c495b..0000000
+++ /dev/null
@@ -1,145 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-/*
- * H8S2678 clock driver
- *
- * Copyright 2015 Yoshinori Sato <ysato@users.sourceforge.jp>
- */
-
-#include <linux/clk-provider.h>
-#include <linux/device.h>
-#include <linux/io.h>
-#include <linux/err.h>
-#include <linux/of_address.h>
-#include <linux/slab.h>
-
-static DEFINE_SPINLOCK(clklock);
-
-#define MAX_FREQ 33333333
-#define MIN_FREQ  8000000
-
-struct pll_clock {
-       struct clk_hw hw;
-       void __iomem *sckcr;
-       void __iomem *pllcr;
-};
-
-#define to_pll_clock(_hw) container_of(_hw, struct pll_clock, hw)
-
-static unsigned long pll_recalc_rate(struct clk_hw *hw,
-               unsigned long parent_rate)
-{
-       struct pll_clock *pll_clock = to_pll_clock(hw);
-       int mul = 1 << (readb(pll_clock->pllcr) & 3);
-
-       return parent_rate * mul;
-}
-
-static long pll_round_rate(struct clk_hw *hw, unsigned long rate,
-                               unsigned long *prate)
-{
-       int i, m = -1;
-       long offset[3];
-
-       if (rate > MAX_FREQ)
-               rate = MAX_FREQ;
-       if (rate < MIN_FREQ)
-               rate = MIN_FREQ;
-
-       for (i = 0; i < 3; i++)
-               offset[i] = abs(rate - (*prate * (1 << i)));
-       for (i = 0; i < 3; i++)
-               if (m < 0)
-                       m = i;
-               else
-                       m = (offset[i] < offset[m])?i:m;
-
-       return *prate * (1 << m);
-}
-
-static int pll_set_rate(struct clk_hw *hw, unsigned long rate,
-                       unsigned long parent_rate)
-{
-       int pll;
-       unsigned char val;
-       unsigned long flags;
-       struct pll_clock *pll_clock = to_pll_clock(hw);
-
-       pll = ((rate / parent_rate) / 2) & 0x03;
-       spin_lock_irqsave(&clklock, flags);
-       val = readb(pll_clock->sckcr);
-       val |= 0x08;
-       writeb(val, pll_clock->sckcr);
-       val = readb(pll_clock->pllcr);
-       val &= ~0x03;
-       val |= pll;
-       writeb(val, pll_clock->pllcr);
-       spin_unlock_irqrestore(&clklock, flags);
-       return 0;
-}
-
-static const struct clk_ops pll_ops = {
-       .recalc_rate = pll_recalc_rate,
-       .round_rate = pll_round_rate,
-       .set_rate = pll_set_rate,
-};
-
-static void __init h8s2678_pll_clk_setup(struct device_node *node)
-{
-       unsigned int num_parents;
-       const char *clk_name = node->name;
-       const char *parent_name;
-       struct pll_clock *pll_clock;
-       struct clk_init_data init;
-       int ret;
-
-       num_parents = of_clk_get_parent_count(node);
-       if (!num_parents) {
-               pr_err("%s: no parent found\n", clk_name);
-               return;
-       }
-
-
-       pll_clock = kzalloc(sizeof(*pll_clock), GFP_KERNEL);
-       if (!pll_clock)
-               return;
-
-       pll_clock->sckcr = of_iomap(node, 0);
-       if (pll_clock->sckcr == NULL) {
-               pr_err("%s: failed to map divide register\n", clk_name);
-               goto free_clock;
-       }
-
-       pll_clock->pllcr = of_iomap(node, 1);
-       if (pll_clock->pllcr == NULL) {
-               pr_err("%s: failed to map multiply register\n", clk_name);
-               goto unmap_sckcr;
-       }
-
-       parent_name = of_clk_get_parent_name(node, 0);
-       init.name = clk_name;
-       init.ops = &pll_ops;
-       init.flags = 0;
-       init.parent_names = &parent_name;
-       init.num_parents = 1;
-       pll_clock->hw.init = &init;
-
-       ret = clk_hw_register(NULL, &pll_clock->hw);
-       if (ret) {
-               pr_err("%s: failed to register %s div clock (%d)\n",
-                      __func__, clk_name, ret);
-               goto unmap_pllcr;
-       }
-
-       of_clk_add_hw_provider(node, of_clk_hw_simple_get, &pll_clock->hw);
-       return;
-
-unmap_pllcr:
-       iounmap(pll_clock->pllcr);
-unmap_sckcr:
-       iounmap(pll_clock->sckcr);
-free_clock:
-       kfree(pll_clock);
-}
-
-CLK_OF_DECLARE(h8s2678_div_clk, "renesas,h8s2678-pll-clock",
-              h8s2678_pll_clk_setup);
index cfb8ea0df3b18121719f9b05976f0d56f196ab6b..4aa0883b35342ecc727c0fe04bd4758e7bb3e4c6 100644 (file)
@@ -567,26 +567,6 @@ config CLKSRC_PXA
          This enables OST0 support available on PXA and SA-11x0
          platforms.
 
-config H8300_TMR8
-       bool "Clockevent timer for the H8300 platform" if COMPILE_TEST
-       depends on HAS_IOMEM
-       help
-         This enables the 8 bits timer for the H8300 platform.
-
-config H8300_TMR16
-       bool "Clockevent timer for the H83069 platform" if COMPILE_TEST
-       depends on HAS_IOMEM
-       help
-         This enables the 16 bits timer for the H8300 platform with the
-         H83069 CPU.
-
-config H8300_TPU
-       bool "Clocksource for the H8300 platform" if COMPILE_TEST
-       depends on HAS_IOMEM
-       help
-         This enables the clocksource for the H8300 platform with the
-         H8S2678 CPU.
-
 config CLKSRC_IMX_GPT
        bool "Clocksource using i.MX GPT" if COMPILE_TEST
        depends on (ARM || ARM64) && HAVE_CLK
index fa5f624eadb6a3db594c18ed9035123b402fd9ca..8e81eadfbeeb344f0f80f3edf776737a9372de1f 100644 (file)
@@ -73,9 +73,6 @@ obj-$(CONFIG_CLKSRC_IMX_GPT)          += timer-imx-gpt.o
 obj-$(CONFIG_CLKSRC_IMX_TPM)           += timer-imx-tpm.o
 obj-$(CONFIG_TIMER_IMX_SYS_CTR)                += timer-imx-sysctr.o
 obj-$(CONFIG_ASM9260_TIMER)            += asm9260_timer.o
-obj-$(CONFIG_H8300_TMR8)               += h8300_timer8.o
-obj-$(CONFIG_H8300_TMR16)              += h8300_timer16.o
-obj-$(CONFIG_H8300_TPU)                        += h8300_tpu.o
 obj-$(CONFIG_INGENIC_OST)              += ingenic-ost.o
 obj-$(CONFIG_INGENIC_SYSOST)   += ingenic-sysost.o
 obj-$(CONFIG_INGENIC_TIMER)            += ingenic-timer.o
diff --git a/drivers/clocksource/h8300_timer16.c b/drivers/clocksource/h8300_timer16.c
deleted file mode 100644 (file)
index 86ca914..0000000
+++ /dev/null
@@ -1,192 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-/*
- *  H8/300 16bit Timer driver
- *
- *  Copyright 2015 Yoshinori Sato <ysato@users.sourcefoge.jp>
- */
-
-#include <linux/interrupt.h>
-#include <linux/init.h>
-#include <linux/clocksource.h>
-#include <linux/clk.h>
-#include <linux/io.h>
-#include <linux/of.h>
-#include <linux/of_address.h>
-#include <linux/of_irq.h>
-
-#define TSTR   0
-#define TISRC  6
-
-#define TCR    0
-#define TCNT   2
-
-#define bset(b, a) iowrite8(ioread8(a) | (1 << (b)), (a))
-#define bclr(b, a) iowrite8(ioread8(a) & ~(1 << (b)), (a))
-
-struct timer16_priv {
-       struct clocksource cs;
-       unsigned long total_cycles;
-       void __iomem *mapbase;
-       void __iomem *mapcommon;
-       unsigned short cs_enabled;
-       unsigned char enb;
-       unsigned char ovf;
-       unsigned char ovie;
-};
-
-static unsigned long timer16_get_counter(struct timer16_priv *p)
-{
-       unsigned short v1, v2, v3;
-       unsigned char  o1, o2;
-
-       o1 = ioread8(p->mapcommon + TISRC) & p->ovf;
-
-       /* Make sure the timer value is stable. Stolen from acpi_pm.c */
-       do {
-               o2 = o1;
-               v1 = ioread16be(p->mapbase + TCNT);
-               v2 = ioread16be(p->mapbase + TCNT);
-               v3 = ioread16be(p->mapbase + TCNT);
-               o1 = ioread8(p->mapcommon + TISRC) & p->ovf;
-       } while (unlikely((o1 != o2) || (v1 > v2 && v1 < v3)
-                         || (v2 > v3 && v2 < v1) || (v3 > v1 && v3 < v2)));
-
-       if (likely(!o1))
-               return v2;
-       else
-               return v2 + 0x10000;
-}
-
-
-static irqreturn_t timer16_interrupt(int irq, void *dev_id)
-{
-       struct timer16_priv *p = (struct timer16_priv *)dev_id;
-
-       bclr(p->ovf, p->mapcommon + TISRC);
-       p->total_cycles += 0x10000;
-
-       return IRQ_HANDLED;
-}
-
-static inline struct timer16_priv *cs_to_priv(struct clocksource *cs)
-{
-       return container_of(cs, struct timer16_priv, cs);
-}
-
-static u64 timer16_clocksource_read(struct clocksource *cs)
-{
-       struct timer16_priv *p = cs_to_priv(cs);
-       unsigned long raw, value;
-
-       value = p->total_cycles;
-       raw = timer16_get_counter(p);
-
-       return value + raw;
-}
-
-static int timer16_enable(struct clocksource *cs)
-{
-       struct timer16_priv *p = cs_to_priv(cs);
-
-       WARN_ON(p->cs_enabled);
-
-       p->total_cycles = 0;
-       iowrite16be(0x0000, p->mapbase + TCNT);
-       iowrite8(0x83, p->mapbase + TCR);
-       bset(p->ovie, p->mapcommon + TISRC);
-       bset(p->enb, p->mapcommon + TSTR);
-
-       p->cs_enabled = true;
-       return 0;
-}
-
-static void timer16_disable(struct clocksource *cs)
-{
-       struct timer16_priv *p = cs_to_priv(cs);
-
-       WARN_ON(!p->cs_enabled);
-
-       bclr(p->ovie, p->mapcommon + TISRC);
-       bclr(p->enb, p->mapcommon + TSTR);
-
-       p->cs_enabled = false;
-}
-
-static struct timer16_priv timer16_priv = {
-       .cs = {
-               .name = "h8300_16timer",
-               .rating = 200,
-               .read = timer16_clocksource_read,
-               .enable = timer16_enable,
-               .disable = timer16_disable,
-               .mask = CLOCKSOURCE_MASK(sizeof(unsigned long) * 8),
-               .flags = CLOCK_SOURCE_IS_CONTINUOUS,
-       },
-};
-
-#define REG_CH   0
-#define REG_COMM 1
-
-static int __init h8300_16timer_init(struct device_node *node)
-{
-       void __iomem *base[2];
-       int ret, irq;
-       unsigned int ch;
-       struct clk *clk;
-
-       clk = of_clk_get(node, 0);
-       if (IS_ERR(clk)) {
-               pr_err("failed to get clock for clocksource\n");
-               return PTR_ERR(clk);
-       }
-
-       ret = -ENXIO;
-       base[REG_CH] = of_iomap(node, 0);
-       if (!base[REG_CH]) {
-               pr_err("failed to map registers for clocksource\n");
-               goto free_clk;
-       }
-
-       base[REG_COMM] = of_iomap(node, 1);
-       if (!base[REG_COMM]) {
-               pr_err("failed to map registers for clocksource\n");
-               goto unmap_ch;
-       }
-
-       ret = -EINVAL;
-       irq = irq_of_parse_and_map(node, 0);
-       if (!irq) {
-               pr_err("failed to get irq for clockevent\n");
-               goto unmap_comm;
-       }
-
-       of_property_read_u32(node, "renesas,channel", &ch);
-
-       timer16_priv.mapbase = base[REG_CH];
-       timer16_priv.mapcommon = base[REG_COMM];
-       timer16_priv.enb = ch;
-       timer16_priv.ovf = ch;
-       timer16_priv.ovie = 4 + ch;
-
-       ret = request_irq(irq, timer16_interrupt,
-                         IRQF_TIMER, timer16_priv.cs.name, &timer16_priv);
-       if (ret < 0) {
-               pr_err("failed to request irq %d of clocksource\n", irq);
-               goto unmap_comm;
-       }
-
-       clocksource_register_hz(&timer16_priv.cs,
-                               clk_get_rate(clk) / 8);
-       return 0;
-
-unmap_comm:
-       iounmap(base[REG_COMM]);
-unmap_ch:
-       iounmap(base[REG_CH]);
-free_clk:
-       clk_put(clk);
-       return ret;
-}
-
-TIMER_OF_DECLARE(h8300_16bit, "renesas,16bit-timer",
-                          h8300_16timer_init);
diff --git a/drivers/clocksource/h8300_timer8.c b/drivers/clocksource/h8300_timer8.c
deleted file mode 100644 (file)
index 47114c2..0000000
+++ /dev/null
@@ -1,211 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-/*
- *  linux/arch/h8300/kernel/cpu/timer/timer8.c
- *
- *  Yoshinori Sato <ysato@users.sourcefoge.jp>
- *
- *  8bit Timer driver
- *
- */
-
-#include <linux/errno.h>
-#include <linux/kernel.h>
-#include <linux/interrupt.h>
-#include <linux/init.h>
-#include <linux/clockchips.h>
-#include <linux/clk.h>
-#include <linux/io.h>
-#include <linux/of.h>
-#include <linux/of_address.h>
-#include <linux/of_irq.h>
-
-#define _8TCR  0
-#define _8TCSR 2
-#define TCORA  4
-#define TCORB  6
-#define _8TCNT 8
-
-#define CMIEA  6
-#define CMFA   6
-
-#define FLAG_STARTED (1 << 3)
-
-#define SCALE 64
-
-#define bset(b, a) iowrite8(ioread8(a) | (1 << (b)), (a))
-#define bclr(b, a) iowrite8(ioread8(a) & ~(1 << (b)), (a))
-
-struct timer8_priv {
-       struct clock_event_device ced;
-       void __iomem *mapbase;
-       unsigned long flags;
-       unsigned int rate;
-};
-
-static irqreturn_t timer8_interrupt(int irq, void *dev_id)
-{
-       struct timer8_priv *p = dev_id;
-
-       if (clockevent_state_oneshot(&p->ced))
-               iowrite16be(0x0000, p->mapbase + _8TCR);
-
-       p->ced.event_handler(&p->ced);
-
-       bclr(CMFA, p->mapbase + _8TCSR);
-
-       return IRQ_HANDLED;
-}
-
-static void timer8_set_next(struct timer8_priv *p, unsigned long delta)
-{
-       if (delta >= 0x10000)
-               pr_warn("delta out of range\n");
-       bclr(CMIEA, p->mapbase + _8TCR);
-       iowrite16be(delta, p->mapbase + TCORA);
-       iowrite16be(0x0000, p->mapbase + _8TCNT);
-       bclr(CMFA, p->mapbase + _8TCSR);
-       bset(CMIEA, p->mapbase + _8TCR);
-}
-
-static int timer8_enable(struct timer8_priv *p)
-{
-       iowrite16be(0xffff, p->mapbase + TCORA);
-       iowrite16be(0x0000, p->mapbase + _8TCNT);
-       iowrite16be(0x0c02, p->mapbase + _8TCR);
-
-       return 0;
-}
-
-static int timer8_start(struct timer8_priv *p)
-{
-       int ret;
-
-       if ((p->flags & FLAG_STARTED))
-               return 0;
-
-       ret = timer8_enable(p);
-       if (!ret)
-               p->flags |= FLAG_STARTED;
-
-       return ret;
-}
-
-static void timer8_stop(struct timer8_priv *p)
-{
-       iowrite16be(0x0000, p->mapbase + _8TCR);
-}
-
-static inline struct timer8_priv *ced_to_priv(struct clock_event_device *ced)
-{
-       return container_of(ced, struct timer8_priv, ced);
-}
-
-static void timer8_clock_event_start(struct timer8_priv *p, unsigned long delta)
-{
-       timer8_start(p);
-       timer8_set_next(p, delta);
-}
-
-static int timer8_clock_event_shutdown(struct clock_event_device *ced)
-{
-       timer8_stop(ced_to_priv(ced));
-       return 0;
-}
-
-static int timer8_clock_event_periodic(struct clock_event_device *ced)
-{
-       struct timer8_priv *p = ced_to_priv(ced);
-
-       pr_info("%s: used for periodic clock events\n", ced->name);
-       timer8_stop(p);
-       timer8_clock_event_start(p, (p->rate + HZ/2) / HZ);
-
-       return 0;
-}
-
-static int timer8_clock_event_oneshot(struct clock_event_device *ced)
-{
-       struct timer8_priv *p = ced_to_priv(ced);
-
-       pr_info("%s: used for oneshot clock events\n", ced->name);
-       timer8_stop(p);
-       timer8_clock_event_start(p, 0x10000);
-
-       return 0;
-}
-
-static int timer8_clock_event_next(unsigned long delta,
-                                  struct clock_event_device *ced)
-{
-       struct timer8_priv *p = ced_to_priv(ced);
-
-       BUG_ON(!clockevent_state_oneshot(ced));
-       timer8_set_next(p, delta - 1);
-
-       return 0;
-}
-
-static struct timer8_priv timer8_priv = {
-       .ced = {
-               .name = "h8300_8timer",
-               .features = CLOCK_EVT_FEAT_PERIODIC | CLOCK_EVT_FEAT_ONESHOT,
-               .rating = 200,
-               .set_next_event = timer8_clock_event_next,
-               .set_state_shutdown = timer8_clock_event_shutdown,
-               .set_state_periodic = timer8_clock_event_periodic,
-               .set_state_oneshot = timer8_clock_event_oneshot,
-       },
-};
-
-static int __init h8300_8timer_init(struct device_node *node)
-{
-       void __iomem *base;
-       int irq, ret;
-       struct clk *clk;
-
-       clk = of_clk_get(node, 0);
-       if (IS_ERR(clk)) {
-               pr_err("failed to get clock for clockevent\n");
-               return PTR_ERR(clk);
-       }
-
-       ret = -ENXIO;
-       base = of_iomap(node, 0);
-       if (!base) {
-               pr_err("failed to map registers for clockevent\n");
-               goto free_clk;
-       }
-
-       ret = -EINVAL;
-       irq = irq_of_parse_and_map(node, 0);
-       if (!irq) {
-               pr_err("failed to get irq for clockevent\n");
-               goto unmap_reg;
-       }
-
-       timer8_priv.mapbase = base;
-
-       timer8_priv.rate = clk_get_rate(clk) / SCALE;
-       if (!timer8_priv.rate) {
-               pr_err("Failed to get rate for the clocksource\n");
-               goto unmap_reg;
-       }
-
-       if (request_irq(irq, timer8_interrupt, IRQF_TIMER,
-                       timer8_priv.ced.name, &timer8_priv) < 0) {
-               pr_err("failed to request irq %d for clockevent\n", irq);
-               goto unmap_reg;
-       }
-
-       clockevents_config_and_register(&timer8_priv.ced,
-                                       timer8_priv.rate, 1, 0x0000ffff);
-
-       return 0;
-unmap_reg:
-       iounmap(base);
-free_clk:
-       clk_put(clk);
-       return ret;
-}
-
-TIMER_OF_DECLARE(h8300_8bit, "renesas,8bit-timer", h8300_8timer_init);
diff --git a/drivers/clocksource/h8300_tpu.c b/drivers/clocksource/h8300_tpu.c
deleted file mode 100644 (file)
index 17d4ab0..0000000
+++ /dev/null
@@ -1,158 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-/*
- *  H8S TPU Driver
- *
- *  Copyright 2015 Yoshinori Sato <ysato@users.sourcefoge.jp>
- *
- */
-
-#include <linux/errno.h>
-#include <linux/kernel.h>
-#include <linux/init.h>
-#include <linux/clocksource.h>
-#include <linux/clk.h>
-#include <linux/io.h>
-#include <linux/of.h>
-#include <linux/of_address.h>
-#include <linux/of_irq.h>
-
-#define TCR    0x0
-#define TSR    0x5
-#define TCNT   0x6
-
-#define TCFV   0x10
-
-struct tpu_priv {
-       struct clocksource cs;
-       void __iomem *mapbase1;
-       void __iomem *mapbase2;
-       raw_spinlock_t lock;
-       unsigned int cs_enabled;
-};
-
-static inline unsigned long read_tcnt32(struct tpu_priv *p)
-{
-       unsigned long tcnt;
-
-       tcnt = ioread16be(p->mapbase1 + TCNT) << 16;
-       tcnt |= ioread16be(p->mapbase2 + TCNT);
-       return tcnt;
-}
-
-static int tpu_get_counter(struct tpu_priv *p, unsigned long long *val)
-{
-       unsigned long v1, v2, v3;
-       int o1, o2;
-
-       o1 = ioread8(p->mapbase1 + TSR) & TCFV;
-
-       /* Make sure the timer value is stable. Stolen from acpi_pm.c */
-       do {
-               o2 = o1;
-               v1 = read_tcnt32(p);
-               v2 = read_tcnt32(p);
-               v3 = read_tcnt32(p);
-               o1 = ioread8(p->mapbase1 + TSR) & TCFV;
-       } while (unlikely((o1 != o2) || (v1 > v2 && v1 < v3)
-                         || (v2 > v3 && v2 < v1) || (v3 > v1 && v3 < v2)));
-
-       *val = v2;
-       return o1;
-}
-
-static inline struct tpu_priv *cs_to_priv(struct clocksource *cs)
-{
-       return container_of(cs, struct tpu_priv, cs);
-}
-
-static u64 tpu_clocksource_read(struct clocksource *cs)
-{
-       struct tpu_priv *p = cs_to_priv(cs);
-       unsigned long flags;
-       unsigned long long value;
-
-       raw_spin_lock_irqsave(&p->lock, flags);
-       if (tpu_get_counter(p, &value))
-               value += 0x100000000;
-       raw_spin_unlock_irqrestore(&p->lock, flags);
-
-       return value;
-}
-
-static int tpu_clocksource_enable(struct clocksource *cs)
-{
-       struct tpu_priv *p = cs_to_priv(cs);
-
-       WARN_ON(p->cs_enabled);
-
-       iowrite16be(0, p->mapbase1 + TCNT);
-       iowrite16be(0, p->mapbase2 + TCNT);
-       iowrite8(0x0f, p->mapbase1 + TCR);
-       iowrite8(0x03, p->mapbase2 + TCR);
-
-       p->cs_enabled = true;
-       return 0;
-}
-
-static void tpu_clocksource_disable(struct clocksource *cs)
-{
-       struct tpu_priv *p = cs_to_priv(cs);
-
-       WARN_ON(!p->cs_enabled);
-
-       iowrite8(0, p->mapbase1 + TCR);
-       iowrite8(0, p->mapbase2 + TCR);
-       p->cs_enabled = false;
-}
-
-static struct tpu_priv tpu_priv = {
-       .cs = {
-               .name = "H8S_TPU",
-               .rating = 200,
-               .read = tpu_clocksource_read,
-               .enable = tpu_clocksource_enable,
-               .disable = tpu_clocksource_disable,
-               .mask = CLOCKSOURCE_MASK(sizeof(unsigned long) * 8),
-               .flags = CLOCK_SOURCE_IS_CONTINUOUS,
-       },
-};
-
-#define CH_L 0
-#define CH_H 1
-
-static int __init h8300_tpu_init(struct device_node *node)
-{
-       void __iomem *base[2];
-       struct clk *clk;
-       int ret = -ENXIO;
-
-       clk = of_clk_get(node, 0);
-       if (IS_ERR(clk)) {
-               pr_err("failed to get clock for clocksource\n");
-               return PTR_ERR(clk);
-       }
-
-       base[CH_L] = of_iomap(node, CH_L);
-       if (!base[CH_L]) {
-               pr_err("failed to map registers for clocksource\n");
-               goto free_clk;
-       }
-       base[CH_H] = of_iomap(node, CH_H);
-       if (!base[CH_H]) {
-               pr_err("failed to map registers for clocksource\n");
-               goto unmap_L;
-       }
-
-       tpu_priv.mapbase1 = base[CH_L];
-       tpu_priv.mapbase2 = base[CH_H];
-
-       return clocksource_register_hz(&tpu_priv.cs, clk_get_rate(clk) / 64);
-
-unmap_L:
-       iounmap(base[CH_H]);
-free_clk:
-       clk_put(clk);
-       return ret;
-}
-
-TIMER_OF_DECLARE(h8300_tpu, "renesas,tpu", h8300_tpu_init);
index 7038957f4a77a9c8be76875ebe12d931b14e535b..95f5d14557f3f54052447e7b199bf8254926b4fa 100644 (file)
@@ -330,17 +330,6 @@ config INGENIC_TCU_IRQ
 
          If unsure, say N.
 
-config RENESAS_H8300H_INTC
-        bool
-       select IRQ_DOMAIN
-
-config RENESAS_H8S_INTC
-       bool "Renesas H8S Interrupt Controller Support" if COMPILE_TEST
-       select IRQ_DOMAIN
-       help
-         Enable support for the Renesas H8/300 Interrupt Controller, as found
-         on Renesas H8S SoCs.
-
 config IMX_GPCV2
        bool
        select IRQ_DOMAIN
index c1f611cbfbf88232bfecbe2d49facc60c4c971eb..e555dba371bf2a49c88b4ec3332544167e4cecfc 100644 (file)
@@ -70,8 +70,6 @@ obj-$(CONFIG_KEYSTONE_IRQ)            += irq-keystone.o
 obj-$(CONFIG_MIPS_GIC)                 += irq-mips-gic.o
 obj-$(CONFIG_ARCH_MEDIATEK)            += irq-mtk-sysirq.o irq-mtk-cirq.o
 obj-$(CONFIG_ARCH_DIGICOLOR)           += irq-digicolor.o
-obj-$(CONFIG_RENESAS_H8300H_INTC)      += irq-renesas-h8300h.o
-obj-$(CONFIG_RENESAS_H8S_INTC)         += irq-renesas-h8s.o
 obj-$(CONFIG_ARCH_SA1100)              += irq-sa11x0.o
 obj-$(CONFIG_INGENIC_IRQ)              += irq-ingenic.o
 obj-$(CONFIG_INGENIC_TCU_IRQ)          += irq-ingenic-tcu.o
diff --git a/drivers/irqchip/irq-renesas-h8300h.c b/drivers/irqchip/irq-renesas-h8300h.c
deleted file mode 100644 (file)
index 1054d74..0000000
+++ /dev/null
@@ -1,94 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-/*
- * H8/300H interrupt controller driver
- *
- * Copyright 2015 Yoshinori Sato <ysato@users.sourceforge.jp>
- */
-
-#include <linux/init.h>
-#include <linux/irq.h>
-#include <linux/irqchip.h>
-#include <linux/of_address.h>
-#include <linux/of_irq.h>
-#include <asm/io.h>
-
-static const char ipr_bit[] = {
-        7,  6,  5,  5,
-        4,  4,  4,  4,  3,  3,  3,  3,
-        2,  2,  2,  2,  1,  1,  1,  1,
-        0,  0,  0,  0, 15, 15, 15, 15,
-       14, 14, 14, 14, 13, 13, 13, 13,
-       -1, -1, -1, -1, 11, 11, 11, 11,
-       10, 10, 10, 10,  9,  9,  9,  9,
-};
-
-static void __iomem *intc_baseaddr;
-
-#define IPR (intc_baseaddr + 6)
-
-static void h8300h_disable_irq(struct irq_data *data)
-{
-       int bit;
-       int irq = data->irq - 12;
-
-       bit = ipr_bit[irq];
-       if (bit >= 0) {
-               if (bit < 8)
-                       ctrl_bclr(bit & 7, IPR);
-               else
-                       ctrl_bclr(bit & 7, (IPR+1));
-       }
-}
-
-static void h8300h_enable_irq(struct irq_data *data)
-{
-       int bit;
-       int irq = data->irq - 12;
-
-       bit = ipr_bit[irq];
-       if (bit >= 0) {
-               if (bit < 8)
-                       ctrl_bset(bit & 7, IPR);
-               else
-                       ctrl_bset(bit & 7, (IPR+1));
-       }
-}
-
-struct irq_chip h8300h_irq_chip = {
-       .name           = "H8/300H-INTC",
-       .irq_enable     = h8300h_enable_irq,
-       .irq_disable    = h8300h_disable_irq,
-};
-
-static int irq_map(struct irq_domain *h, unsigned int virq,
-                  irq_hw_number_t hw_irq_num)
-{
-       irq_set_chip_and_handler(virq, &h8300h_irq_chip, handle_simple_irq);
-
-       return 0;
-}
-
-static const struct irq_domain_ops irq_ops = {
-       .map    = irq_map,
-       .xlate  = irq_domain_xlate_onecell,
-};
-
-static int __init h8300h_intc_of_init(struct device_node *intc,
-                                     struct device_node *parent)
-{
-       struct irq_domain *domain;
-
-       intc_baseaddr = of_iomap(intc, 0);
-       BUG_ON(!intc_baseaddr);
-
-       /* All interrupt priority low */
-       writeb(0x00, IPR + 0);
-       writeb(0x00, IPR + 1);
-
-       domain = irq_domain_add_linear(intc, NR_IRQS, &irq_ops, NULL);
-       BUG_ON(!domain);
-       irq_set_default_host(domain);
-       return 0;
-}
-
-IRQCHIP_DECLARE(h8300h_intc, "renesas,h8300h-intc", h8300h_intc_of_init);
diff --git a/drivers/irqchip/irq-renesas-h8s.c b/drivers/irqchip/irq-renesas-h8s.c
deleted file mode 100644 (file)
index 4e2461b..0000000
+++ /dev/null
@@ -1,102 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-/*
- * H8S interrupt controller driver
- *
- * Copyright 2015 Yoshinori Sato <ysato@users.sourceforge.jp>
- */
-
-#include <linux/irq.h>
-#include <linux/irqchip.h>
-#include <linux/of_address.h>
-#include <linux/of_irq.h>
-#include <asm/io.h>
-
-static void *intc_baseaddr;
-#define IPRA (intc_baseaddr)
-
-static const unsigned char ipr_table[] = {
-       0x03, 0x02, 0x01, 0x00, 0x13, 0x12, 0x11, 0x10, /* 16 - 23 */
-       0x23, 0x22, 0x21, 0x20, 0x33, 0x32, 0x31, 0x30, /* 24 - 31 */
-       0x43, 0x42, 0x41, 0x40, 0x53, 0x53, 0x52, 0x52, /* 32 - 39 */
-       0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, /* 40 - 47 */
-       0x50, 0x50, 0x50, 0x50, 0x63, 0x63, 0x63, 0x63, /* 48 - 55 */
-       0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, /* 56 - 63 */
-       0x61, 0x61, 0x61, 0x61, 0x60, 0x60, 0x60, 0x60, /* 64 - 71 */
-       0x73, 0x73, 0x73, 0x73, 0x72, 0x72, 0x72, 0x72, /* 72 - 79 */
-       0x71, 0x71, 0x71, 0x71, 0x70, 0x83, 0x82, 0x81, /* 80 - 87 */
-       0x80, 0x80, 0x80, 0x80, 0x93, 0x93, 0x93, 0x93, /* 88 - 95 */
-       0x92, 0x92, 0x92, 0x92, 0x91, 0x91, 0x91, 0x91, /* 96 - 103 */
-       0x90, 0x90, 0x90, 0x90, 0xa3, 0xa3, 0xa3, 0xa3, /* 104 - 111 */
-       0xa2, 0xa2, 0xa2, 0xa2, 0xa1, 0xa1, 0xa1, 0xa1, /* 112 - 119 */
-       0xa0, 0xa0, 0xa0, 0xa0, 0xa0, 0xa0, 0xa0, 0xa0, /* 120 - 127 */
-};
-
-static void h8s_disable_irq(struct irq_data *data)
-{
-       int pos;
-       void __iomem *addr;
-       unsigned short pri;
-       int irq = data->irq;
-
-       addr = IPRA + ((ipr_table[irq - 16] & 0xf0) >> 3);
-       pos = (ipr_table[irq - 16] & 0x0f) * 4;
-       pri = ~(0x000f << pos);
-       pri &= readw(addr);
-       writew(pri, addr);
-}
-
-static void h8s_enable_irq(struct irq_data *data)
-{
-       int pos;
-       void __iomem *addr;
-       unsigned short pri;
-       int irq = data->irq;
-
-       addr = IPRA + ((ipr_table[irq - 16] & 0xf0) >> 3);
-       pos = (ipr_table[irq - 16] & 0x0f) * 4;
-       pri = ~(0x000f << pos);
-       pri &= readw(addr);
-       pri |= 1 << pos;
-       writew(pri, addr);
-}
-
-struct irq_chip h8s_irq_chip = {
-       .name           = "H8S-INTC",
-       .irq_enable     = h8s_enable_irq,
-       .irq_disable    = h8s_disable_irq,
-};
-
-static __init int irq_map(struct irq_domain *h, unsigned int virq,
-                         irq_hw_number_t hw_irq_num)
-{
-       irq_set_chip_and_handler(virq, &h8s_irq_chip, handle_simple_irq);
-
-       return 0;
-}
-
-static const struct irq_domain_ops irq_ops = {
-       .map    = irq_map,
-       .xlate  = irq_domain_xlate_onecell,
-};
-
-static int __init h8s_intc_of_init(struct device_node *intc,
-                                  struct device_node *parent)
-{
-       struct irq_domain *domain;
-       int n;
-
-       intc_baseaddr = of_iomap(intc, 0);
-       BUG_ON(!intc_baseaddr);
-
-       /* All interrupt priority is 0 (disable) */
-       /* IPRA to IPRK */
-       for (n = 0; n <= 'k' - 'a'; n++)
-               writew(0x0000, IPRA + (n * 2));
-
-       domain = irq_domain_add_linear(intc, NR_IRQS, &irq_ops, NULL);
-       BUG_ON(!domain);
-       irq_set_default_host(domain);
-       return 0;
-}
-
-IRQCHIP_DECLARE(h8s_intc, "renesas,h8s-intc", h8s_intc_of_init);
index 72e42a868346bbb04126c69384ce4bf3081983b1..2524c907f386bab5d1a8ac609c9f6debac38e53e 100644 (file)
@@ -8,7 +8,7 @@ config NET_VENDOR_SMSC
        default y
        depends on ARM || ARM64 || ATARI_ETHERNAT || COLDFIRE || \
                   ISA || MAC || MIPS || NIOS2 || PCI || \
-                  PCMCIA || SUPERH || XTENSA || H8300 || COMPILE_TEST
+                  PCMCIA || SUPERH || XTENSA || COMPILE_TEST
        help
          If you have a network (Ethernet) card belonging to this class, say Y.
 
@@ -40,7 +40,7 @@ config SMC91X
        select MII
        depends on !OF || GPIOLIB
        depends on ARM || ARM64 || ATARI_ETHERNAT || COLDFIRE || \
-                  MIPS || NIOS2 || SUPERH || XTENSA || H8300 || COMPILE_TEST
+                  MIPS || NIOS2 || SUPERH || XTENSA || COMPILE_TEST
        help
          This is a driver for SMC's 91x series of Ethernet chipsets,
          including the SMC91C94 and the SMC91C111. Say Y if you want it
index 387539a8094bf286e6c4fa048737ed1e59478e1a..c521ea8f94f2fd011b2b196ad07714f9bdbbeb93 100644 (file)
@@ -182,17 +182,6 @@ static inline void mcf_outsw(void *a, unsigned char *p, int l)
 
 #define SMC_IRQ_FLAGS          0
 
-#elif defined(CONFIG_H8300)
-#define SMC_CAN_USE_8BIT       1
-#define SMC_CAN_USE_16BIT      0
-#define SMC_CAN_USE_32BIT      0
-#define SMC_NOWAIT             0
-
-#define SMC_inb(a, r)          ioread8((a) + (r))
-#define SMC_outb(v, a, r)      iowrite8(v, (a) + (r))
-#define SMC_insb(a, r, p, l)   ioread8_rep((a) + (r), p, l)
-#define SMC_outsb(a, r, p, l)  iowrite8_rep((a) + (r), p, l)
-
 #else
 
 /*
index 0e5ccb25bdb178fc3d1276fcf15f6b6783e07ff3..3eaf8fbd76f9d91c5c589375b0ce59dea5a3cdaf 100644 (file)
@@ -653,7 +653,7 @@ config SERIAL_IP22_ZILOG_CONSOLE
 
 config SERIAL_SH_SCI
        tristate "SuperH SCI(F) serial port support"
-       depends on SUPERH || ARCH_RENESAS || H8300 || COMPILE_TEST
+       depends on SUPERH || ARCH_RENESAS || COMPILE_TEST
        select SERIAL_CORE
        select SERIAL_MCTRL_GPIO if GPIOLIB
 
@@ -662,7 +662,6 @@ config SERIAL_SH_SCI_NR_UARTS
        range 1 64 if 64BIT
        range 1 32 if !64BIT
        depends on SERIAL_SH_SCI
-       default "3" if H8300
        default "10" if SUPERH
        default "18" if ARCH_RENESAS
        default "2"
@@ -678,7 +677,7 @@ config SERIAL_SH_SCI_EARLYCON
        depends on SERIAL_SH_SCI=y
        select SERIAL_CORE_CONSOLE
        select SERIAL_EARLYCON
-       default ARCH_RENESAS || H8300
+       default ARCH_RENESAS
 
 config SERIAL_SH_SCI_DMA
        bool "DMA support" if EXPERT
index e9119bf54b1f328287804091732664b78012cc60..9a11d3755811266eff15404d9cae0a48512347f3 100644 (file)
@@ -711,8 +711,7 @@ config IKHEADERS
 
 config LOG_BUF_SHIFT
        int "Kernel log buffer size (16 => 64KB, 17 => 128KB)"
-       range 12 25 if !H8300
-       range 12 19 if H8300
+       range 12 25
        default 17
        depends on PRINTK
        help
diff --git a/tools/arch/h8300/include/asm/bitsperlong.h b/tools/arch/h8300/include/asm/bitsperlong.h
deleted file mode 100644 (file)
index fa15083..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-#ifndef __ASM_H8300_BITS_PER_LONG
-#define __ASM_H8300_BITS_PER_LONG
-
-#include <asm-generic/bitsperlong.h>
-
-#if !defined(__ASSEMBLY__)
-/* h8300-unknown-linux required long */
-#define __kernel_size_t __kernel_size_t
-typedef unsigned long  __kernel_size_t;
-typedef long           __kernel_ssize_t;
-typedef long           __kernel_ptrdiff_t;
-#endif
-
-#endif /* __ASM_H8300_BITS_PER_LONG */
diff --git a/tools/arch/h8300/include/uapi/asm/mman.h b/tools/arch/h8300/include/uapi/asm/mman.h
deleted file mode 100644 (file)
index be7bbe0..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
-#ifndef TOOLS_ARCH_H8300_UAPI_ASM_MMAN_FIX_H
-#define TOOLS_ARCH_H8300_UAPI_ASM_MMAN_FIX_H
-#include <uapi/asm-generic/mman.h>
-/* MAP_32BIT is undefined on h8300, fix it for perf */
-#define MAP_32BIT      0
-#endif