svn commit: r295036 - in head/sys: arm/arm arm/conf arm/include conf
Michal Meloun
mmel at FreeBSD.org
Fri Jan 29 10:31:57 UTC 2016
Author: mmel
Date: Fri Jan 29 10:31:54 2016
New Revision: 295036
URL: https://svnweb.freebsd.org/changeset/base/295036
Log:
ARM: remove old pmap-v6 code. The new pmap-v6 is mature enough, and
dual implementation is showstopper for major cleanup.
This patch only removes old code from tree. Cleanups will follow asap.
Deleted:
head/sys/arm/arm/pmap-v6.c
Modified:
head/sys/arm/arm/genassym.c
head/sys/arm/arm/locore-v6.S
head/sys/arm/arm/machdep.c
head/sys/arm/arm/mem.c
head/sys/arm/arm/mp_machdep.c
head/sys/arm/arm/swtch.S
head/sys/arm/arm/trap-v6.c
head/sys/arm/conf/std.armv6
head/sys/arm/include/machdep.h
head/sys/arm/include/pmap.h
head/sys/arm/include/pte.h
head/sys/arm/include/sf_buf.h
head/sys/arm/include/vm.h
head/sys/conf/files.arm
head/sys/conf/options.arm
Modified: head/sys/arm/arm/genassym.c
==============================================================================
--- head/sys/arm/arm/genassym.c Fri Jan 29 09:16:08 2016 (r295035)
+++ head/sys/arm/arm/genassym.c Fri Jan 29 10:31:54 2016 (r295036)
@@ -61,16 +61,16 @@ __FBSDID("$FreeBSD$");
ASSYM(KERNBASE, KERNBASE);
ASSYM(PCB_NOALIGNFLT, PCB_NOALIGNFLT);
-#ifdef ARM_NEW_PMAP
+#if __ARM_ARCH >= 6
ASSYM(CPU_ASID_KERNEL,CPU_ASID_KERNEL);
#endif
ASSYM(PCB_ONFAULT, offsetof(struct pcb, pcb_onfault));
-#ifndef ARM_NEW_PMAP
+#if __ARM_ARCH < 6
ASSYM(PCB_DACR, offsetof(struct pcb, pcb_dacr));
#endif
ASSYM(PCB_FLAGS, offsetof(struct pcb, pcb_flags));
ASSYM(PCB_PAGEDIR, offsetof(struct pcb, pcb_pagedir));
-#ifndef ARM_NEW_PMAP
+#if __ARM_ARCH < 6
ASSYM(PCB_L1VEC, offsetof(struct pcb, pcb_l1vec));
ASSYM(PCB_PL1VEC, offsetof(struct pcb, pcb_pl1vec));
#endif
Modified: head/sys/arm/arm/locore-v6.S
==============================================================================
--- head/sys/arm/arm/locore-v6.S Fri Jan 29 09:16:08 2016 (r295035)
+++ head/sys/arm/arm/locore-v6.S Fri Jan 29 10:31:54 2016 (r295036)
@@ -30,6 +30,7 @@
#include "assym.s"
#include <sys/syscall.h>
+#include <machine/acle-compat.h>
#include <machine/asm.h>
#include <machine/asmacros.h>
#include <machine/armreg.h>
@@ -39,11 +40,6 @@
__FBSDID("$FreeBSD$");
-#ifndef ARM_NEW_PMAP
-#define PTE1_OFFSET L1_S_OFFSET
-#define PTE1_SHIFT L1_S_SHIFT
-#define PTE1_SIZE L1_S_SIZE
-#endif
#if __ARM_ARCH >= 7
#if defined(__ARM_ARCH_7VE__) || defined(__clang__)
@@ -287,7 +283,6 @@ ASENTRY_NP(init_mmu)
mov r0, #((DOMAIN_CLIENT << (PMAP_DOMAIN_KERNEL*2)) | DOMAIN_CLIENT)
mcr CP15_DACR(r0)
-#ifdef ARM_NEW_PMAP
/*
* Set TEX remap registers
* - All is set to uncacheable memory
@@ -296,7 +291,6 @@ ASENTRY_NP(init_mmu)
mcr CP15_PRRR(r0)
mov r0, #0
mcr CP15_NMRR(r0)
-#endif
mcr CP15_TLBIALL /* Flush TLB */
DSB
ISB
@@ -305,9 +299,7 @@ ASENTRY_NP(init_mmu)
mrc CP15_SCTLR(r0)
orr r0, r0, #CPU_CONTROL_MMU_ENABLE
orr r0, r0, #CPU_CONTROL_V6_EXTPAGE
-#ifdef ARM_NEW_PMAP
orr r0, r0, #CPU_CONTROL_TR_ENABLE
-#endif
orr r0, r0, #CPU_CONTROL_AF_ENABLE
mcr CP15_SCTLR(r0)
DSB
@@ -398,23 +390,11 @@ END(reinit_mmu)
* Addresses must be 1MiB aligned
*/
build_device_pagetables:
-#if defined(ARM_NEW_PMAP)
ldr r4, =PTE1_V|PTE1_A|PTE1_AP_KRW|TEX1_CLASS_0
-#elif defined(SMP)
- ldr r4, =(L1_TYPE_S|L1_S_AP(AP_KRW)|L1_SHARED)
-#else
- ldr r4, =(L1_TYPE_S|L1_S_AP(AP_KRW))
-#endif
b 1f
build_pagetables:
/* Set the required page attributed */
-#if defined(ARM_NEW_PMAP)
ldr r4, =PTE1_V|PTE1_A|PTE1_AP_KRW|TEX1_CLASS_0
-#elif defined(SMP)
- ldr r4, =(L1_TYPE_S|L1_S_C|L1_S_AP(AP_KRW)|L1_SHARED)
-#else
- ldr r4, =(L1_TYPE_S|L1_S_C|L1_S_AP(AP_KRW))
-#endif
1:
orr r1, r4
Modified: head/sys/arm/arm/machdep.c
==============================================================================
--- head/sys/arm/arm/machdep.c Fri Jan 29 09:16:08 2016 (r295035)
+++ head/sys/arm/arm/machdep.c Fri Jan 29 10:31:54 2016 (r295036)
@@ -199,7 +199,7 @@ static char *loader_envp;
vm_paddr_t pmap_pa;
-#ifdef ARM_NEW_PMAP
+#if __ARM_ARCH >= 6
vm_offset_t systempage;
vm_offset_t irqstack;
vm_offset_t undstack;
@@ -456,7 +456,7 @@ cpu_startup(void *dummy)
pcb->pcb_regs.sf_sp = (u_int)thread0.td_kstack +
USPACE_SVC_STACK_TOP;
pmap_set_pcb_pagedir(pmap_kernel(), pcb);
-#ifndef ARM_NEW_PMAP
+#if __ARM_ARCH < 6
vector_page_setprot(VM_PROT_READ);
pmap_postinit();
#endif
@@ -1283,7 +1283,7 @@ arm_predict_branch(void *cookie, u_int i
}
}
-#ifdef ARM_NEW_PMAP
+#if __ARM_ARCH >= 6
void
set_stackptrs(int cpu)
{
@@ -1447,7 +1447,7 @@ print_kenv(void)
debugf(" %x %s\n", (uint32_t)cp, cp);
}
-#ifndef ARM_NEW_PMAP
+#if __ARM_ARCH < 6
void *
initarm(struct arm_boot_params *abp)
{
@@ -1717,7 +1717,7 @@ initarm(struct arm_boot_params *abp)
return ((void *)(kernelstack.pv_va + USPACE_SVC_STACK_TOP -
sizeof(struct pcb)));
}
-#else /* !ARM_NEW_PMAP */
+#else /* __ARM_ARCH < 6 */
void *
initarm(struct arm_boot_params *abp)
{
@@ -1905,7 +1905,7 @@ initarm(struct arm_boot_params *abp)
}
-#endif /* !ARM_NEW_PMAP */
+#endif /* __ARM_ARCH < 6 */
#endif /* FDT */
uint32_t (*arm_cpu_fill_vdso_timehands)(struct vdso_timehands *,
Modified: head/sys/arm/arm/mem.c
==============================================================================
--- head/sys/arm/arm/mem.c Fri Jan 29 09:16:08 2016 (r295035)
+++ head/sys/arm/arm/mem.c Fri Jan 29 10:31:54 2016 (r295036)
@@ -63,6 +63,7 @@ __FBSDID("$FreeBSD$");
#include <vm/pmap.h>
#include <vm/vm_extern.h>
+#include <machine/acle-compat.h>
#include <machine/memdev.h>
#include <machine/vmparam.h>
@@ -113,7 +114,7 @@ memrw(struct cdev *dev, struct uio *uio,
return (EINVAL);
sx_xlock(&tmppt_lock);
pmap_kenter((vm_offset_t)_tmppt, v);
-#ifdef ARM_NEW_PMAP
+#if __ARM_ARCH >= 6
pmap_tlb_flush(kernel_pmap, (vm_offset_t)_tmppt);
#endif
o = (int)uio->uio_offset & PAGE_MASK;
Modified: head/sys/arm/arm/mp_machdep.c
==============================================================================
--- head/sys/arm/arm/mp_machdep.c Fri Jan 29 09:16:08 2016 (r295035)
+++ head/sys/arm/arm/mp_machdep.c Fri Jan 29 10:31:54 2016 (r295036)
@@ -43,6 +43,7 @@ __FBSDID("$FreeBSD$");
#include <vm/vm_kern.h>
#include <vm/pmap.h>
+#include <machine/acle-compat.h>
#include <machine/armreg.h>
#include <machine/cpu.h>
#include <machine/cpufunc.h>
@@ -155,7 +156,7 @@ init_secondary(int cpu)
#ifndef ARM_INTRNG
int start = 0, end = 0;
#endif
-#ifdef ARM_NEW_PMAP
+#if __ARM_ARCH >= 6
uint32_t actlr_mask, actlr_set;
pmap_set_tex();
@@ -167,11 +168,11 @@ init_secondary(int cpu)
set_stackptrs(cpu);
enable_interrupts(PSR_A);
-#else /* ARM_NEW_PMAP */
+#else /* __ARM_ARCH >= 6 */
cpu_setup();
setttb(pmap_pa);
cpu_tlb_flushID();
-#endif /* ARM_NEW_PMAP */
+#endif /* __ARM_ARCH >= 6 */
pc = &__pcpu[cpu];
/*
@@ -183,7 +184,7 @@ init_secondary(int cpu)
pcpu_init(pc, cpu, sizeof(struct pcpu));
dpcpu_init(dpcpu[cpu - 1], cpu);
-#ifndef ARM_NEW_PMAP
+#if __ARM_ARCH < 6
/* Provide stack pointers for other processor modes. */
set_stackptrs(cpu);
#endif
Modified: head/sys/arm/arm/swtch.S
==============================================================================
--- head/sys/arm/arm/swtch.S Fri Jan 29 09:16:08 2016 (r295035)
+++ head/sys/arm/arm/swtch.S Fri Jan 29 10:31:54 2016 (r295036)
@@ -114,7 +114,7 @@ __FBSDID("$FreeBSD$");
.word _C_LABEL(blocked_lock)
-#ifndef ARM_NEW_PMAP
+#if __ARM_ARCH < 6
#define DOMAIN_CLIENT 0x01
@@ -418,7 +418,7 @@ ENTRY(cpu_switch)
END(cpu_switch)
-#else /* !ARM_NEW_PMAP */
+#else /* __ARM_ARCH < 6 */
#include <machine/sysreg.h>
ENTRY(cpu_context_switch) /* QQQ: What about macro instead of function? */
@@ -789,7 +789,7 @@ sw4_panic_str:
END(cpu_switch)
-#endif /* !ARM_NEW_PMAP */
+#endif /* __ARM_ARCH < 6 */
ENTRY(savectx)
stmfd sp!, {lr}
Modified: head/sys/arm/arm/trap-v6.c
==============================================================================
--- head/sys/arm/arm/trap-v6.c Fri Jan 29 09:16:08 2016 (r295035)
+++ head/sys/arm/arm/trap-v6.c Fri Jan 29 10:31:54 2016 (r295036)
@@ -334,13 +334,11 @@ abort_handler(struct trapframe *tf, int
* they are not from KVA space. Thus, no action is needed here.
*/
-#ifdef ARM_NEW_PMAP
rv = pmap_fault(PCPU_GET(curpmap), far, fsr, idx, usermode);
if (rv == KERN_SUCCESS)
return;
if (rv == KERN_INVALID_ADDRESS)
goto nogo;
-#endif
/*
* Now, when we handled imprecise and debug aborts, the rest of
* aborts should be really related to mapping.
@@ -488,13 +486,6 @@ abort_handler(struct trapframe *tf, int
last_fault_code = fsr;
#endif
-#ifndef ARM_NEW_PMAP
- if (pmap_fault_fixup(vmspace_pmap(td->td_proc->p_vmspace), va, ftype,
- usermode)) {
- goto out;
- }
-#endif
-
#ifdef INVARIANTS
onfault = pcb->pcb_onfault;
pcb->pcb_onfault = NULL;
Modified: head/sys/arm/conf/std.armv6
==============================================================================
--- head/sys/arm/conf/std.armv6 Fri Jan 29 09:16:08 2016 (r295035)
+++ head/sys/arm/conf/std.armv6 Fri Jan 29 10:31:54 2016 (r295036)
@@ -37,8 +37,6 @@ options KBD_INSTALL_CDEV # install a CD
options FREEBSD_BOOT_LOADER # Process metadata passed from loader(8)
options VFP # Enable floating point hardware support
-options ARM_NEW_PMAP # Use new pmap code.
-
# DTrace support
options KDTRACE_HOOKS # Kernel DTrace hooks
options DDB_CTF # all architectures - kernel ELF linker loads CTF data
Modified: head/sys/arm/include/machdep.h
==============================================================================
--- head/sys/arm/include/machdep.h Fri Jan 29 09:16:08 2016 (r295035)
+++ head/sys/arm/include/machdep.h Fri Jan 29 10:31:54 2016 (r295036)
@@ -4,8 +4,10 @@
#ifndef _MACHDEP_BOOT_MACHDEP_H_
#define _MACHDEP_BOOT_MACHDEP_H_
+#include <machine/acle-compat.h>
+
/* Structs that need to be initialised by initarm */
-#ifdef ARM_NEW_PMAP
+#if __ARM_ARCH >= 6
extern vm_offset_t irqstack;
extern vm_offset_t undstack;
extern vm_offset_t abtstack;
Modified: head/sys/arm/include/pmap.h
==============================================================================
--- head/sys/arm/include/pmap.h Fri Jan 29 09:16:08 2016 (r295035)
+++ head/sys/arm/include/pmap.h Fri Jan 29 10:31:54 2016 (r295036)
@@ -46,9 +46,11 @@
*
* $FreeBSD$
*/
-#ifdef ARM_NEW_PMAP
+ #include <machine/acle-compat.h>
+
+#if __ARM_ARCH >= 6
#include <machine/pmap-v6.h>
-#else /* ARM_NEW_PMAP */
+#else /* __ARM_ARCH >= 6 */
#ifndef _MACHINE_PMAP_H_
#define _MACHINE_PMAP_H_
@@ -704,4 +706,4 @@ extern vm_paddr_t dump_avail[];
#endif /* !LOCORE */
#endif /* !_MACHINE_PMAP_H_ */
-#endif /* !ARM_NEW_PMAP */
+#endif /* __ARM_ARCH >= 6 */
Modified: head/sys/arm/include/pte.h
==============================================================================
--- head/sys/arm/include/pte.h Fri Jan 29 09:16:08 2016 (r295035)
+++ head/sys/arm/include/pte.h Fri Jan 29 10:31:54 2016 (r295036)
@@ -33,9 +33,11 @@
*
* $FreeBSD$
*/
-#ifdef ARM_NEW_PMAP
+#include <machine/acle-compat.h>
+
+#if __ARM_ARCH >= 6
#include <machine/pte-v6.h>
-#else /* ARM_NEW_PMAP */
+#else /* __ARM_ARCH >= 6 */
#ifndef _MACHINE_PTE_H_
#define _MACHINE_PTE_H_
@@ -356,6 +358,6 @@ typedef pt_entry_t pt2_entry_t; /* comp
* 1 X 1 1 1 Y Y WT Y Y
*/
#endif /* !_MACHINE_PTE_H_ */
-#endif /* !ARM_NEW_PMAP */
+#endif /* __ARM_ARCH >= 6 */
/* End of pte.h */
Modified: head/sys/arm/include/sf_buf.h
==============================================================================
--- head/sys/arm/include/sf_buf.h Fri Jan 29 09:16:08 2016 (r295035)
+++ head/sys/arm/include/sf_buf.h Fri Jan 29 10:31:54 2016 (r295036)
@@ -29,11 +29,13 @@
#ifndef _MACHINE_SF_BUF_H_
#define _MACHINE_SF_BUF_H_
+#include <machine/acle-compat.h>
+
static inline void
sf_buf_map(struct sf_buf *sf, int flags)
{
-#ifdef ARM_NEW_PMAP
+#if __ARM_ARCH >= 6
pmap_qenter(sf->kva, &(sf->m), 1);
#else
pmap_kenter(sf->kva, VM_PAGE_TO_PHYS(sf->m));
@@ -44,7 +46,7 @@ static inline int
sf_buf_unmap(struct sf_buf *sf)
{
-#ifdef ARM_NEW_PMAP
+#if __ARM_ARCH >= 6
pmap_qremove(sf->kva, 1);
#else
pmap_kremove(sf->kva);
Modified: head/sys/arm/include/vm.h
==============================================================================
--- head/sys/arm/include/vm.h Fri Jan 29 09:16:08 2016 (r295035)
+++ head/sys/arm/include/vm.h Fri Jan 29 10:31:54 2016 (r295036)
@@ -29,7 +29,9 @@
#ifndef _MACHINE_VM_H_
#define _MACHINE_VM_H_
-#ifdef ARM_NEW_PMAP
+#include <machine/acle-compat.h>
+
+#if __ARM_ARCH >= 6
#include <machine/pte-v6.h>
#define VM_MEMATTR_WB_WA ((vm_memattr_t)PTE2_ATTR_WB_WA)
@@ -40,9 +42,11 @@
#define VM_MEMATTR_DEFAULT VM_MEMATTR_WB_WA
#define VM_MEMATTR_UNCACHEABLE VM_MEMATTR_SO /* misused by DMA */
+#ifdef _KERNEL
+/* Don't export aliased VM_MEMATTR to userland */
#define VM_MEMATTR_WRITE_COMBINING VM_MEMATTR_WT /* for DRM */
#define VM_MEMATTR_WRITE_BACK VM_MEMATTR_WB_WA /* for DRM */
-
+#endif
#else
/* Memory attribute configuration. */
#define VM_MEMATTR_DEFAULT 0
Modified: head/sys/conf/files.arm
==============================================================================
--- head/sys/conf/files.arm Fri Jan 29 09:16:08 2016 (r295035)
+++ head/sys/conf/files.arm Fri Jan 29 10:31:54 2016 (r295036)
@@ -64,8 +64,7 @@ arm/arm/pl310.c optional pl310
arm/arm/platform.c optional platform
arm/arm/platform_if.m optional platform
arm/arm/pmap.c optional !armv6
-arm/arm/pmap-v6.c optional armv6 !arm_new_pmap
-arm/arm/pmap-v6-new.c optional armv6 arm_new_pmap
+arm/arm/pmap-v6-new.c optional armv6
arm/arm/pmu.c optional pmu | fdt hwpmc
arm/arm/sc_machdep.c optional sc
arm/arm/setcpsr.S standard
Modified: head/sys/conf/options.arm
==============================================================================
--- head/sys/conf/options.arm Fri Jan 29 09:16:08 2016 (r295035)
+++ head/sys/conf/options.arm Fri Jan 29 10:31:54 2016 (r295036)
@@ -5,7 +5,6 @@ ARM_INTRNG opt_global.h
ARM_KERN_DIRECTMAP opt_vm.h
ARM_L2_PIPT opt_global.h
ARM_MANY_BOARD opt_global.h
-ARM_NEW_PMAP opt_global.h
NKPT2PG opt_pmap.h
ARM_WANT_TP_ADDRESS opt_global.h
COUNTS_PER_SEC opt_timer.h
More information about the svn-src-head
mailing list