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
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to