diff options
author | Arnd Bergmann <arnd@arndb.de> | 2018-03-07 21:46:52 +0100 |
---|---|---|
committer | Arnd Bergmann <arnd@arndb.de> | 2018-03-09 23:20:01 +0100 |
commit | b8c9c8f0190f4004d3d4364edb2dea5978dfc824 (patch) | |
tree | 8bc377829b6452cb3b9c17253916c64e93cb695f /arch/score/include/asm/mmu_context.h | |
parent | 553b085c2075f6a4a2591108554f830fa61e881f (diff) | |
download | talos-obmc-linux-b8c9c8f0190f4004d3d4364edb2dea5978dfc824.tar.gz talos-obmc-linux-b8c9c8f0190f4004d3d4364edb2dea5978dfc824.zip |
arch: remove score port
The Sunplus S+core architecture was added in 2009 by Chen Liqin,
who has been co-maintaining it with Lennox Wu <lennox.wu@gmail.com>
since then, but after they both left the company, nobody else has shown
any interest in the port and it has seen almost no activity other than
tree-wide changes.
The gcc port was removed a few years ago due to the inactivity.
While the sunplus website still advertises products with unspecified
RISC cores that might be S+core based, it's very clear that the Linux
port is completely abandoned at this point.
This removes all files related to the architecture.
Acked-by: Lennox Wu <lennox.wu@gmail.com>
Link: http://www.sunplus.com/
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Diffstat (limited to 'arch/score/include/asm/mmu_context.h')
-rw-r--r-- | arch/score/include/asm/mmu_context.h | 116 |
1 files changed, 0 insertions, 116 deletions
diff --git a/arch/score/include/asm/mmu_context.h b/arch/score/include/asm/mmu_context.h deleted file mode 100644 index d0aa2a5aebca..000000000000 --- a/arch/score/include/asm/mmu_context.h +++ /dev/null @@ -1,116 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0 */ -#ifndef _ASM_SCORE_MMU_CONTEXT_H -#define _ASM_SCORE_MMU_CONTEXT_H - -#include <linux/errno.h> -#include <linux/sched.h> -#include <linux/mm_types.h> -#include <linux/slab.h> - -#include <asm-generic/mm_hooks.h> - -#include <asm/cacheflush.h> -#include <asm/tlbflush.h> -#include <asm/scoreregs.h> - -/* - * For the fast tlb miss handlers, we keep a per cpu array of pointers - * to the current pgd for each processor. Also, the proc. id is stuffed - * into the context register. - */ -extern unsigned long asid_cache; -extern unsigned long pgd_current; - -#define TLBMISS_HANDLER_SETUP_PGD(pgd) (pgd_current = (unsigned long)(pgd)) - -#define TLBMISS_HANDLER_SETUP() \ -do { \ - write_c0_context(0); \ - TLBMISS_HANDLER_SETUP_PGD(swapper_pg_dir) \ -} while (0) - -/* - * All unused by hardware upper bits will be considered - * as a software asid extension. - */ -#define ASID_VERSION_MASK 0xfffff000 -#define ASID_FIRST_VERSION 0x1000 - -/* PEVN --------- VPN ---------- --ASID--- -NA- */ -/* binary: 0000 0000 0000 0000 0000 0000 0001 0000 */ -/* binary: 0000 0000 0000 0000 0000 1111 1111 0000 */ -#define ASID_INC 0x10 -#define ASID_MASK 0xff0 - -static inline void enter_lazy_tlb(struct mm_struct *mm, - struct task_struct *tsk) -{} - -static inline void -get_new_mmu_context(struct mm_struct *mm) -{ - unsigned long asid = asid_cache + ASID_INC; - - if (!(asid & ASID_MASK)) { - local_flush_tlb_all(); /* start new asid cycle */ - if (!asid) /* fix version if needed */ - asid = ASID_FIRST_VERSION; - } - - mm->context = asid; - asid_cache = asid; -} - -/* - * Initialize the context related info for a new mm_struct - * instance. - */ -static inline int -init_new_context(struct task_struct *tsk, struct mm_struct *mm) -{ - mm->context = 0; - return 0; -} - -static inline void switch_mm(struct mm_struct *prev, struct mm_struct *next, - struct task_struct *tsk) -{ - unsigned long flags; - - local_irq_save(flags); - if ((next->context ^ asid_cache) & ASID_VERSION_MASK) - get_new_mmu_context(next); - - pevn_set(next->context); - TLBMISS_HANDLER_SETUP_PGD(next->pgd); - local_irq_restore(flags); -} - -/* - * Destroy context related info for an mm_struct that is about - * to be put to rest. - */ -static inline void destroy_context(struct mm_struct *mm) -{} - -static inline void -deactivate_mm(struct task_struct *task, struct mm_struct *mm) -{} - -/* - * After we have set current->mm to a new value, this activates - * the context for the new mm so we see the new mappings. - */ -static inline void -activate_mm(struct mm_struct *prev, struct mm_struct *next) -{ - unsigned long flags; - - local_irq_save(flags); - get_new_mmu_context(next); - pevn_set(next->context); - TLBMISS_HANDLER_SETUP_PGD(next->pgd); - local_irq_restore(flags); -} - -#endif /* _ASM_SCORE_MMU_CONTEXT_H */ |