On Wed, Mar 09, 2016 at 09:14:06AM +0100, Patrick Wildt wrote:
> On Wed, Mar 09, 2016 at 01:28:55PM +1100, Jonathan Gray wrote:
> > On Tue, Mar 08, 2016 at 10:59:42PM +0100, Patrick Wildt wrote:
> > > Hi,
> > > 
> > > I'd like to get some opinions on this.  ARM8 has probably never ever
> > > been used with OpenBSD, and I doubt it will ever be.  I think it also
> > > makes sense to remove more, like ARM9, ARM9E, ARM10, ARM11.  All the
> > > cruft that is not used, apart from armish, armv7 and zaurus.
> > > 
> > > In the end it will probably only make sense to support >=ARMv6, which
> > > does not include armish and zaurus.  Not sure how long those will still
> > > be around though.
> > > 
> > > This diff removes ARM8 first, I can follow up with more diffs quickly.
> > > 
> > > Thoughts?
> > > 
> > > Patrick
> > 
> > StrongARM is ARM8 but has it's own CPU_SA1100 that would have been used
> > by OpenBSD/cats.
> > 
> > But cats was dropped a long time ago (4.0).  It seems it may not be
> > possible to do eabi without requiring at least armv4t.
> > 
> > armish is CPU_XSCALE_80321
> > zaurus is CPU_XSCALE_PXA2X0
> > 
> > so we'd just keep the xscale variants and CPU_ARMv7?
> > 
> > CPU_XSCALE_80200
> > CPU_XSCALE_80321
> > CPU_XSCALE_PXA2X0
> > CPU_XSCALE_IXP425
> > CPU_ARMv7
> 
> We can also safely drop 80200 and IXP425.  That allows us to lose some
> more unused code without harming armish or zaurus.
> 
> > 
> > currently the gcc configuration in base has
> > #define SUBTARGET_CPU_DEFAULT TARGET_CPU_strongarm
> > that could also change to something like TARGET_CPU_arm10tdmi
> > if the new baseline becomes armv5 instead of armv4.
> > 
> 
> Yeah, that's at least a tiny jump.
> 
> > > 
> > > diff --git sys/arch/arm/arm/cpu.c sys/arch/arm/arm/cpu.c
> > > index bc96e79..12709b1 100644
> > > --- sys/arch/arm/arm/cpu.c
> > > +++ sys/arch/arm/arm/cpu.c
> > > @@ -80,36 +80,10 @@ cpu_attach(struct device *dv)
> > >       curcpu()->ci_arm_cpuid & CPU_ID_REVISION_MASK;
> > >  
> > >   identify_arm_cpu(dv, curcpu());
> > > -
> > > -#ifdef CPU_ARM8
> > > - if ((curcpu()->ci_arm_cpuid & CPU_ID_CPU_MASK) == CPU_ID_ARM810) {
> > > -         int clock = arm8_clock_config(0, 0);
> > > -         char *fclk;
> > > -         aprint_normal("%s: ARM810 cp15=%02x", dv->dv_xname, clock);
> > > -         aprint_normal(" clock:%s", (clock & 1) ? " dynamic" : "");
> > > -         aprint_normal("%s", (clock & 2) ? " sync" : "");
> > > -         switch ((clock >> 2) & 3) {
> > > -         case 0:
> > > -                 fclk = "bus clock";
> > > -                 break;
> > > -         case 1:
> > > -                 fclk = "ref clock";
> > > -                 break;
> > > -         case 3:
> > > -                 fclk = "pll";
> > > -                 break;
> > > -         default:
> > > -                 fclk = "illegal";
> > > -                 break;
> > > -         }
> > > -         aprint_normal(" fclk source=%s\n", fclk);
> > > -         }
> > > -#endif
> > >  }
> > >  
> > >  enum cpu_class {
> > >   CPU_CLASS_NONE,
> > > - CPU_CLASS_ARM8,
> > >   CPU_CLASS_ARM9TDMI,
> > >   CPU_CLASS_ARM9ES,
> > >   CPU_CLASS_ARM9EJS,
> > > @@ -219,9 +193,6 @@ struct cpuidtab {
> > >  };
> > >  
> > >  const struct cpuidtab cpuids[] = {
> > > - { CPU_ID_ARM810,        CPU_CLASS_ARM8,         "ARM810",
> > > -   generic_steppings },
> > > -
> > >   { CPU_ID_ARM920T,       CPU_CLASS_ARM9TDMI,     "ARM920T",
> > >     generic_steppings },
> > >   { CPU_ID_ARM922T,       CPU_CLASS_ARM9TDMI,     "ARM922T",
> > > @@ -358,7 +329,6 @@ struct cpu_classtab {
> > >  
> > >  const struct cpu_classtab cpu_classes[] = {
> > >   { "unknown",    NULL },                 /* CPU_CLASS_NONE */
> > > - { "ARM8",       "CPU_ARM8" },           /* CPU_CLASS_ARM8 */
> > >   { "ARM9TDMI",   NULL },                 /* CPU_CLASS_ARM9TDMI */
> > >   { "ARM9E-S",    "CPU_ARM9E" },          /* CPU_CLASS_ARM9ES */
> > >   { "ARM9EJ-S",   "CPU_ARM9E" },          /* CPU_CLASS_ARM9EJS */
> > > @@ -429,12 +399,6 @@ identify_arm_cpu(struct device *dv, struct cpu_info 
> > > *ci)
> > >   printf("%s:", dv->dv_xname);
> > >  
> > >   switch (cpu_class) {
> > > - case CPU_CLASS_ARM8:
> > > -         if ((ci->ci_ctrl & CPU_CONTROL_IDC_ENABLE) == 0)
> > > -                 printf(" IDC disabled");
> > > -         else
> > > -                 printf(" IDC enabled");
> > > -         break;
> > >   case CPU_CLASS_ARM9TDMI:
> > >   case CPU_CLASS_ARM9ES:
> > >   case CPU_CLASS_ARM9EJS:
> > > @@ -490,9 +454,6 @@ identify_arm_cpu(struct device *dv, struct cpu_info 
> > > *ci)
> > >   skip_pcache:
> > >  
> > >   switch (cpu_class) {
> > > -#ifdef CPU_ARM8
> > > - case CPU_CLASS_ARM8:
> > > -#endif
> > >  #ifdef CPU_ARM9
> > >   case CPU_CLASS_ARM9TDMI:
> > >  #endif
> > > diff --git sys/arch/arm/arm/cpufunc.c sys/arch/arm/arm/cpufunc.c
> > > index f549e61..4c2c6d8 100644
> > > --- sys/arch/arm/arm/cpufunc.c
> > > +++ sys/arch/arm/arm/cpufunc.c
> > > @@ -97,63 +97,6 @@ int    arm_dcache_align_mask;
> > >  /* 1 == use cpu_sleep(), 0 == don't */
> > >  int cpu_do_powersave;
> > >  
> > > -#ifdef CPU_ARM8
> > > -struct cpu_functions arm8_cpufuncs = {
> > > - /* CPU functions */
> > > -
> > > - cpufunc_id,                     /* id                   */
> > > - cpufunc_nullop,                 /* cpwait               */
> > > -
> > > - /* MMU functions */
> > > -
> > > - cpufunc_control,                /* control              */
> > > - cpufunc_domains,                /* domain               */
> > > - arm8_setttb,                    /* setttb               */
> > > - cpufunc_dfsr,                   /* dfsr                 */
> > > - cpufunc_dfar,                   /* dfar                 */
> > > - cpufunc_ifsr,                   /* ifsr                 */
> > > - cpufunc_ifar,                   /* ifar                 */
> > > -
> > > - /* TLB functions */
> > > -
> > > - arm8_tlb_flushID,               /* tlb_flushID          */
> > > - arm8_tlb_flushID_SE,            /* tlb_flushID_SE       */
> > > - arm8_tlb_flushID,               /* tlb_flushI           */
> > > - arm8_tlb_flushID_SE,            /* tlb_flushI_SE        */
> > > - arm8_tlb_flushID,               /* tlb_flushD           */
> > > - arm8_tlb_flushID_SE,            /* tlb_flushD_SE        */
> > > -
> > > - /* Cache operations */
> > > -
> > > - cpufunc_nullop,                 /* icache_sync_all      */
> > > - (void *)cpufunc_nullop,         /* icache_sync_range    */
> > > -
> > > - arm8_cache_purgeID,             /* dcache_wbinv_all     */
> > > - (void *)arm8_cache_purgeID,     /* dcache_wbinv_range   */
> > > -/*XXX*/  (void *)arm8_cache_purgeID,     /* dcache_inv_range     */
> > > - (void *)arm8_cache_cleanID,     /* dcache_wb_range      */
> > > -
> > > - arm8_cache_purgeID,             /* idcache_wbinv_all    */
> > > - (void *)arm8_cache_purgeID,     /* idcache_wbinv_range  */
> > > -
> > > - cpufunc_nullop,                 /* sdcache_wbinv_all    */
> > > - (void *)cpufunc_nullop,         /* sdcache_wbinv_range  */
> > > - (void *)cpufunc_nullop,         /* sdcache_inv_range    */
> > > - (void *)cpufunc_nullop,         /* sdcache_wb_range     */
> > > -
> > > - /* Other functions */
> > > -
> > > - cpufunc_nullop,                 /* flush_prefetchbuf    */
> > > - cpufunc_nullop,                 /* drain_writebuf       */
> > > -
> > > - (void *)cpufunc_nullop,         /* sleep                */
> > > -
> > > - /* Soft functions */
> > > - arm8_context_switch,            /* context_switch       */
> > > - arm8_setup                      /* cpu setup            */
> > > -};
> > > -#endif   /* CPU_ARM8 */
> > > -
> > >  #ifdef CPU_ARM9
> > >  struct cpu_functions arm9_cpufuncs = {
> > >   /* CPU functions */
> > > @@ -624,7 +567,7 @@ struct cpu_functions cpufuncs;
> > >  u_int cputype;
> > >  u_int cpu_reset_needs_v4_MMU_disable;    /* flag used in locore.s */
> > >  
> > > -#if defined(CPU_ARM8) || defined(CPU_ARM9) || \
> > > +#if defined(CPU_ARM9) || \
> > >      defined(CPU_ARM9E) || defined(CPU_ARM10) || defined(CPU_ARM11) || \
> > >      defined(CPU_XSCALE_80200) || defined(CPU_XSCALE_80321) || \
> > >      defined(CPU_XSCALE_PXA2X0) || defined(CPU_XSCALE_IXP425)
> > > @@ -704,7 +647,7 @@ get_cachetype_cp15()
> > >   out:
> > >   arm_dcache_align_mask = arm_dcache_align - 1;
> > >  }
> > > -#endif /* ARM7TDMI || ARM8 || ARM9 || XSCALE */
> > > +#endif /* ARM7TDMI || ARM9 || XSCALE */
> > >  
> > >  #if defined(CPU_SA1100) || defined(CPU_SA1110) || defined(CPU_IXP12X0)
> > >  /* Cache information for CPUs without cache type registers. */
> > > @@ -922,16 +865,6 @@ set_cpufuncs()
> > >    * CPU type where we want to use it by default, then we set it.
> > >    */
> > >  
> > > -#ifdef CPU_ARM8
> > > - if ((cputype & CPU_ID_IMPLEMENTOR_MASK) == CPU_ID_ARM_LTD &&
> > > -     (cputype & 0x0000f000) == 0x00008000) {
> > > -         cpufuncs = arm8_cpufuncs;
> > > -         cpu_reset_needs_v4_MMU_disable = 0;     /* XXX correct? */
> > > -         get_cachetype_cp15();
> > > -         pmap_pte_init_arm8();
> > > -         return 0;
> > > - }
> > > -#endif   /* CPU_ARM8 */
> > >  #ifdef CPU_ARM9
> > >   if (((cputype & CPU_ID_IMPLEMENTOR_MASK) == CPU_ID_ARM_LTD ||
> > >        (cputype & CPU_ID_IMPLEMENTOR_MASK) == CPU_ID_TI) &&
> > > @@ -1197,41 +1130,6 @@ set_cpufuncs()
> > >   * CPU Setup code
> > >   */
> > >  
> > > -#ifdef CPU_ARM8
> > > -void
> > > -arm8_setup()
> > > -{
> > > - int integer;
> > > - int cpuctrl, cpuctrlmask;
> > > - int clocktest;
> > > - int setclock = 0;
> > > -
> > > - cpuctrl = CPU_CONTROL_MMU_ENABLE | CPU_CONTROL_32BP_ENABLE
> > > -          | CPU_CONTROL_32BD_ENABLE | CPU_CONTROL_SYST_ENABLE
> > > -          | CPU_CONTROL_IDC_ENABLE | CPU_CONTROL_WBUF_ENABLE
> > > -          | CPU_CONTROL_AFLT_ENABLE;
> > > - cpuctrlmask = CPU_CONTROL_MMU_ENABLE | CPU_CONTROL_32BP_ENABLE
> > > -          | CPU_CONTROL_32BD_ENABLE | CPU_CONTROL_SYST_ENABLE
> > > -          | CPU_CONTROL_IDC_ENABLE | CPU_CONTROL_WBUF_ENABLE
> > > -          | CPU_CONTROL_BPRD_ENABLE | CPU_CONTROL_ROM_ENABLE
> > > -          | CPU_CONTROL_BEND_ENABLE | CPU_CONTROL_AFLT_ENABLE;
> > > -
> > > - /* Get clock configuration */
> > > - clocktest = arm8_clock_config(0, 0) & 0x0f;
> > > -
> > > - /* Clear out the cache */
> > > - cpu_idcache_wbinv_all();
> > > -
> > > - /* Set the control register */
> > > - curcpu()->ci_ctrl = cpuctrl;
> > > - cpu_control(0xffffffff, cpuctrl);
> > > -
> > > - /* Set the clock/test register */
> > > - if (setclock)
> > > -         arm8_clock_config(0x7f, clocktest);
> > > -}
> > > -#endif   /* CPU_ARM8 */
> > > -
> > >  #ifdef CPU_ARM9
> > >  void
> > >  arm9_setup()
> > > diff --git sys/arch/arm/arm/pmap.c sys/arch/arm/arm/pmap.c
> > > index dda550f..627f4d5 100644
> > > --- sys/arch/arm/arm/pmap.c
> > > +++ sys/arch/arm/arm/pmap.c
> > > @@ -4439,23 +4439,6 @@ pmap_pte_init_generic(void)
> > >   pmap_zero_page_func = pmap_zero_page_generic;
> > >  }
> > >  
> > > -#if defined(CPU_ARM8)
> > > -void
> > > -pmap_pte_init_arm8(void)
> > > -{
> > > -
> > > - /*
> > > -  * ARM8 is compatible with generic, but we need to use
> > > -  * the page tables uncached.
> > > -  */
> > > - pmap_pte_init_generic();
> > > -
> > > - pte_l1_s_cache_mode_pt = 0;
> > > - pte_l2_l_cache_mode_pt = 0;
> > > - pte_l2_s_cache_mode_pt = 0;
> > > -}
> > > -#endif /* CPU_ARM8 */
> > > -
> > >  #if defined(CPU_ARM9)
> > >  void
> > >  pmap_pte_init_arm9(void)
> > > diff --git sys/arch/arm/conf/files.arm sys/arch/arm/conf/files.arm
> > > index 0365078..857e7e6 100644
> > > --- sys/arch/arm/conf/files.arm
> > > +++ sys/arch/arm/conf/files.arm
> > > @@ -39,7 +39,6 @@ file    arch/arm/arm/bcopyinout.S
> > >  file     arch/arm/arm/copystr.S
> > >  file     arch/arm/arm/cpufunc.c
> > >  file     arch/arm/arm/cpufunc_asm.S
> > > -file     arch/arm/arm/cpufunc_asm_arm8.S         cpu_arm8
> > >  file     arch/arm/arm/cpufunc_asm_arm9.S         cpu_arm9
> > >  file     arch/arm/arm/cpufunc_asm_arm10.S        cpu_arm9e | cpu_arm10
> > >  file     arch/arm/arm/cpufunc_asm_armv4.S        cpu_arm9 | cpu_arm9e |
> > > diff --git sys/arch/arm/include/armreg.h sys/arch/arm/include/armreg.h
> > > index 68fb253..f2a5854 100644
> > > --- sys/arch/arm/include/armreg.h
> > > +++ sys/arch/arm/include/armreg.h
> > > @@ -176,7 +176,6 @@
> > >  #define CPU_ID_ARM740T4K 0x41817400 /* XXX no MMU, 4KB cache */
> > >  
> > >  /* Post-ARM7 CPUs */
> > > -#define CPU_ID_ARM810            0x41018100
> > >  #define CPU_ID_ARM920T           0x41129200
> > >  #define CPU_ID_ARM922T           0x41029220
> > >  #define CPU_ID_ARM926EJS 0x41069260
> > > diff --git sys/arch/arm/include/cpuconf.h sys/arch/arm/include/cpuconf.h
> > > index 4a64e12..6ed95ee 100644
> > > --- sys/arch/arm/include/cpuconf.h
> > > +++ sys/arch/arm/include/cpuconf.h
> > > @@ -48,7 +48,7 @@
> > >  /*
> > >   * Determine which ARM architecture versions are configured.
> > >   */
> > > -#if (defined(CPU_ARM8) || defined(CPU_ARM9) ||   \
> > > +#if (defined(CPU_ARM9) || \
> > >       defined(CPU_SA1100) || defined(CPU_SA1110) || \
> > >       defined(CPU_IXP12X0) || defined(CPU_XSCALE_IXP425))
> > >  #define  ARM_ARCH_4      1
> > > @@ -91,7 +91,7 @@
> > >   *                               protection is not used, TEX/AP is used 
> > > instead.
> > >   */
> > >  
> > > -#if (defined(CPU_ARM8) || defined(CPU_ARM9) || defined(CPU_ARM9E) ||     
> > > \
> > > +#if (defined(CPU_ARM9) || defined(CPU_ARM9E) || \
> > >       defined(CPU_ARM10) || defined(CPU_ARM11) || defined(CPU_ARMv7) )
> > >  #define  ARM_MMU_GENERIC         1
> > >  #else
> > > diff --git sys/arch/arm/include/cpufunc.h sys/arch/arm/include/cpufunc.h
> > > index 9de47c4..416248a 100644
> > > --- sys/arch/arm/include/cpufunc.h
> > > +++ sys/arch/arm/include/cpufunc.h
> > > @@ -213,31 +213,6 @@ u_int        cpufunc_dfar            (void);
> > >  u_int    cpufunc_ifsr            (void);
> > >  u_int    cpufunc_ifar            (void);
> > >  
> > > -#ifdef CPU_ARM8
> > > -void     arm8_setttb             (u_int ttb);
> > > -void     arm8_tlb_flushID        (void);
> > > -void     arm8_tlb_flushID_SE     (u_int va);
> > > -void     arm8_cache_flushID      (void);
> > > -void     arm8_cache_flushID_E    (u_int entry);
> > > -void     arm8_cache_cleanID      (void);
> > > -void     arm8_cache_cleanID_E    (u_int entry);
> > > -void     arm8_cache_purgeID      (void);
> > > -void     arm8_cache_purgeID_E    (u_int entry);
> > > -
> > > -void     arm8_cache_syncI        (void);
> > > -void     arm8_cache_cleanID_rng  (vaddr_t start, vsize_t end);
> > > -void     arm8_cache_cleanD_rng   (vaddr_t start, vsize_t end);
> > > -void     arm8_cache_purgeID_rng  (vaddr_t start, vsize_t end);
> > > -void     arm8_cache_purgeD_rng   (vaddr_t start, vsize_t end);
> > > -void     arm8_cache_syncI_rng    (vaddr_t start, vsize_t end);
> > > -
> > > -void     arm8_context_switch     (u_int);
> > > -
> > > -void     arm8_setup              (void);
> > > -
> > > -u_int    arm8_clock_config       (u_int, u_int);
> > > -#endif
> > > -
> > >  #if defined(CPU_SA1100) || defined(CPU_SA1110)
> > >  void     sa11x0_drain_readbuf    (void);
> > >  
> > > diff --git sys/arch/arm/include/pmap.h sys/arch/arm/include/pmap.h
> > > index c409ad3..3851abb 100644
> > > --- sys/arch/arm/include/pmap.h
> > > +++ sys/arch/arm/include/pmap.h
> > > @@ -371,9 +371,6 @@ void  pmap_copy_page_generic(struct vm_page *, struct 
> > > vm_page *);
> > >  void     pmap_zero_page_generic(struct vm_page *);
> > >  
> > >  void     pmap_pte_init_generic(void);
> > > -#if defined(CPU_ARM8)
> > > -void     pmap_pte_init_arm8(void);
> > > -#endif
> > >  #if defined(CPU_ARM9)
> > >  void     pmap_pte_init_arm9(void);
> > >  #endif /* CPU_ARM9 */
> > > 
> > 

Ping.  Additionally, here's the following tedu for arm9.

Patrick

diff --git sys/arch/arm/arm/cpu.c sys/arch/arm/arm/cpu.c
index 12709b1..f585442 100644
--- sys/arch/arm/arm/cpu.c
+++ sys/arch/arm/arm/cpu.c
@@ -84,7 +84,6 @@ cpu_attach(struct device *dv)
 
 enum cpu_class {
        CPU_CLASS_NONE,
-       CPU_CLASS_ARM9TDMI,
        CPU_CLASS_ARM9ES,
        CPU_CLASS_ARM9EJS,
        CPU_CLASS_ARM10E,
@@ -193,22 +192,14 @@ struct cpuidtab {
 };
 
 const struct cpuidtab cpuids[] = {
-       { CPU_ID_ARM920T,       CPU_CLASS_ARM9TDMI,     "ARM920T",
-         generic_steppings },
-       { CPU_ID_ARM922T,       CPU_CLASS_ARM9TDMI,     "ARM922T",
-         generic_steppings },
        { CPU_ID_ARM926EJS,     CPU_CLASS_ARM9EJS,      "ARM926EJ-S",
          generic_steppings },
-       { CPU_ID_ARM940T,       CPU_CLASS_ARM9TDMI,     "ARM940T",
-         generic_steppings },
        { CPU_ID_ARM946ES,      CPU_CLASS_ARM9ES,       "ARM946E-S",
          generic_steppings },
        { CPU_ID_ARM966ES,      CPU_CLASS_ARM9ES,       "ARM966E-S",
          generic_steppings },
        { CPU_ID_ARM966ESR1,    CPU_CLASS_ARM9ES,       "ARM966E-S",
          generic_steppings },
-       { CPU_ID_TI925T,        CPU_CLASS_ARM9TDMI,     "TI ARM925T",
-         generic_steppings },
 
        { CPU_ID_ARM1020E,      CPU_CLASS_ARM10E,       "ARM1020E",
          generic_steppings },
@@ -329,7 +320,6 @@ struct cpu_classtab {
 
 const struct cpu_classtab cpu_classes[] = {
        { "unknown",    NULL },                 /* CPU_CLASS_NONE */
-       { "ARM9TDMI",   NULL },                 /* CPU_CLASS_ARM9TDMI */
        { "ARM9E-S",    "CPU_ARM9E" },          /* CPU_CLASS_ARM9ES */
        { "ARM9EJ-S",   "CPU_ARM9E" },          /* CPU_CLASS_ARM9EJS */
        { "ARM10E",     "CPU_ARM10" },          /* CPU_CLASS_ARM10E */
@@ -399,7 +389,6 @@ identify_arm_cpu(struct device *dv, struct cpu_info *ci)
        printf("%s:", dv->dv_xname);
 
        switch (cpu_class) {
-       case CPU_CLASS_ARM9TDMI:
        case CPU_CLASS_ARM9ES:
        case CPU_CLASS_ARM9EJS:
        case CPU_CLASS_ARM10E:
@@ -454,9 +443,6 @@ identify_arm_cpu(struct device *dv, struct cpu_info *ci)
  skip_pcache:
 
        switch (cpu_class) {
-#ifdef CPU_ARM9
-       case CPU_CLASS_ARM9TDMI:
-#endif
 #ifdef CPU_ARM9E
        case CPU_CLASS_ARM9ES:
        case CPU_CLASS_ARM9EJS:
diff --git sys/arch/arm/arm/cpufunc.c sys/arch/arm/arm/cpufunc.c
index 4c2c6d8..b7663d6 100644
--- sys/arch/arm/arm/cpufunc.c
+++ sys/arch/arm/arm/cpufunc.c
@@ -97,64 +97,6 @@ int  arm_dcache_align_mask;
 /* 1 == use cpu_sleep(), 0 == don't */
 int cpu_do_powersave;
 
-#ifdef CPU_ARM9
-struct cpu_functions arm9_cpufuncs = {
-       /* CPU functions */
-
-       cpufunc_id,                     /* id                   */
-       cpufunc_nullop,                 /* cpwait               */
-
-       /* MMU functions */
-
-       cpufunc_control,                /* control              */
-       cpufunc_domains,                /* Domain               */
-       arm9_setttb,                    /* Setttb               */
-       cpufunc_dfsr,                   /* dfsr                 */
-       cpufunc_dfar,                   /* dfar                 */
-       cpufunc_ifsr,                   /* ifsr                 */
-       cpufunc_ifar,                   /* ifar                 */
-
-       /* TLB functions */
-
-       armv4_tlb_flushID,              /* tlb_flushID          */
-       arm9_tlb_flushID_SE,            /* tlb_flushID_SE       */
-       armv4_tlb_flushI,               /* tlb_flushI           */
-       (void *)armv4_tlb_flushI,       /* tlb_flushI_SE        */
-       armv4_tlb_flushD,               /* tlb_flushD           */
-       armv4_tlb_flushD_SE,            /* tlb_flushD_SE        */
-
-       /* Cache operations */
-
-       arm9_icache_sync_all,           /* icache_sync_all      */
-       arm9_icache_sync_range,         /* icache_sync_range    */
-
-               /* ...cache in write-though mode... */
-       arm9_dcache_wbinv_all,          /* dcache_wbinv_all     */
-       arm9_dcache_wbinv_range,        /* dcache_wbinv_range   */
-       arm9_dcache_wbinv_range,        /* dcache_inv_range     */
-       arm9_dcache_wb_range,           /* dcache_wb_range      */
-
-       arm9_idcache_wbinv_all,         /* idcache_wbinv_all    */
-       arm9_idcache_wbinv_range,       /* idcache_wbinv_range  */
-
-       cpufunc_nullop,                 /* sdcache_wbinv_all    */
-       (void *)cpufunc_nullop,         /* sdcache_wbinv_range  */
-       (void *)cpufunc_nullop,         /* sdcache_inv_range    */
-       (void *)cpufunc_nullop,         /* sdcache_wb_range     */
-
-       /* Other functions */
-
-       cpufunc_nullop,                 /* flush_prefetchbuf    */
-       armv4_drain_writebuf,           /* drain_writebuf       */
-
-       (void *)cpufunc_nullop,         /* sleep                */
-
-       /* Soft functions */
-       arm9_context_switch,            /* context_switch       */
-       arm9_setup                      /* cpu setup            */
-};
-#endif /* CPU_ARM9 */
-
 #if defined(CPU_ARM9E) || defined(CPU_ARM10)
 struct cpu_functions armv5_ec_cpufuncs = {
        /* CPU functions */
@@ -567,8 +509,7 @@ struct cpu_functions cpufuncs;
 u_int cputype;
 u_int cpu_reset_needs_v4_MMU_disable;  /* flag used in locore.s */
 
-#if defined(CPU_ARM9) || \
-    defined(CPU_ARM9E) || defined(CPU_ARM10) || defined(CPU_ARM11) || \
+#if defined(CPU_ARM9E) || defined(CPU_ARM10) || defined(CPU_ARM11) || \
     defined(CPU_XSCALE_80200) || defined(CPU_XSCALE_80321) || \
     defined(CPU_XSCALE_PXA2X0) || defined(CPU_XSCALE_IXP425)
 static void get_cachetype_cp15 (void);
@@ -865,23 +806,6 @@ set_cpufuncs()
         * CPU type where we want to use it by default, then we set it.
         */
 
-#ifdef CPU_ARM9
-       if (((cputype & CPU_ID_IMPLEMENTOR_MASK) == CPU_ID_ARM_LTD ||
-            (cputype & CPU_ID_IMPLEMENTOR_MASK) == CPU_ID_TI) &&
-           (cputype & 0x0000f000) == 0x00009000) {
-               cpufuncs = arm9_cpufuncs;
-               cpu_reset_needs_v4_MMU_disable = 1;     /* V4 or higher */
-               get_cachetype_cp15();
-               arm9_dcache_sets_inc = 1U << arm_dcache_l2_linesize;
-               arm9_dcache_sets_max =
-                   (1U << (arm_dcache_l2_linesize + arm_dcache_l2_nsets)) -
-                   arm9_dcache_sets_inc;
-               arm9_dcache_index_inc = 1U << (32 - arm_dcache_l2_assoc);
-               arm9_dcache_index_max = 0U - arm9_dcache_index_inc;
-               pmap_pte_init_arm9();
-               return 0;
-       }
-#endif /* CPU_ARM9 */
 #if defined(CPU_ARM9E) || defined(CPU_ARM10)
        if (cputype == CPU_ID_ARM926EJS || cputype == CPU_ID_ARM1026EJS) {
                cpufuncs = armv5_ec_cpufuncs;
@@ -1130,37 +1054,6 @@ set_cpufuncs()
  * CPU Setup code
  */
 
-#ifdef CPU_ARM9
-void
-arm9_setup()
-{
-       int cpuctrl, cpuctrlmask;
-
-       cpuctrl = CPU_CONTROL_MMU_ENABLE | CPU_CONTROL_32BP_ENABLE
-           | CPU_CONTROL_32BD_ENABLE | CPU_CONTROL_SYST_ENABLE
-           | CPU_CONTROL_IC_ENABLE | CPU_CONTROL_DC_ENABLE
-           | CPU_CONTROL_WBUF_ENABLE | CPU_CONTROL_AFLT_ENABLE;
-       cpuctrlmask = CPU_CONTROL_MMU_ENABLE | CPU_CONTROL_32BP_ENABLE
-                | CPU_CONTROL_32BD_ENABLE | CPU_CONTROL_SYST_ENABLE
-                | CPU_CONTROL_IC_ENABLE | CPU_CONTROL_DC_ENABLE
-                | CPU_CONTROL_WBUF_ENABLE | CPU_CONTROL_ROM_ENABLE
-                | CPU_CONTROL_BEND_ENABLE | CPU_CONTROL_AFLT_ENABLE
-                | CPU_CONTROL_LABT_ENABLE | CPU_CONTROL_VECRELOC
-                | CPU_CONTROL_ROUNDROBIN;
-
-       if (vector_page == ARM_VECTORS_HIGH)
-               cpuctrl |= CPU_CONTROL_VECRELOC;
-
-       /* Clear out the cache */
-       cpu_idcache_wbinv_all();
-
-       /* Set the control register */
-       curcpu()->ci_ctrl = cpuctrl;
-       cpu_control(cpuctrlmask, cpuctrl);
-
-}
-#endif /* CPU_ARM9 */
-
 #if defined(CPU_ARM9E) || defined(CPU_ARM10)
 void
 arm9e_setup()
diff --git sys/arch/arm/arm/cpufunc_asm_arm9.S 
sys/arch/arm/arm/cpufunc_asm_arm9.S
deleted file mode 100644
index 7864d09..0000000
--- sys/arch/arm/arm/cpufunc_asm_arm9.S
+++ /dev/null
@@ -1,254 +0,0 @@
-/*     $OpenBSD: cpufunc_asm_arm9.S,v 1.1 2008/09/11 02:38:14 kevlo Exp $      
*/
-/*     $NetBSD: cpufunc_asm_arm9.S,v 1.6 2007/10/17 19:53:29 garbled Exp $     
*/
-
-/*
- * Copyright (c) 2001, 2004 ARM Limited
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. The name of the company may not be used to endorse or promote
- *    products derived from this software without specific prior written
- *    permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * ARM9 assembly functions for CPU / MMU / TLB specific operations
- */
- 
-#include <machine/cpu.h>
-#include <machine/asm.h>
-
-/*
- * Functions to set the MMU Translation Table Base register
- *
- * We need to clean and flush the cache as it uses virtual
- * addresses that are about to change.
- */
-ENTRY(arm9_setttb)
-       stmfd   sp!, {r0, lr}
-       bl      _C_LABEL(arm9_idcache_wbinv_all)
-       ldmfd   sp!, {r0, lr}
-
-       mcr     p15, 0, r0, c2, c0, 0   /* load new TTB */
-
-       mcr     p15, 0, r0, c8, c7, 0   /* invalidate I+D TLBs */
-       mov     pc, lr
-
-/*
- * TLB functions
- */
-ENTRY(arm9_tlb_flushID_SE)
-       mcr     p15, 0, r0, c8, c6, 1   /* flush D tlb single entry */
-       mcr     p15, 0, r0, c8, c5, 1   /* flush I tlb single entry */
-       mov     pc, lr
-
-/*
- * Cache operations.  For the entire cache we use the set/index
- * operations.
- */
-       s_max   .req r0
-       i_max   .req r1
-       s_inc   .req r2
-       i_inc   .req r3
-
-ENTRY_NP(arm9_icache_sync_range)
-       ldr     ip, .Larm9_line_size
-       cmp     r1, #0x4000
-       bcs     .Larm9_icache_sync_all
-       ldr     ip, [ip]
-       sub     r3, ip, #1
-       and     r2, r0, r3
-       add     r1, r1, r2
-       bic     r0, r0, r3
-.Larm9_sync_next:
-       mcr     p15, 0, r0, c7, c5, 1   /* Invalidate I cache SE with VA */
-       mcr     p15, 0, r0, c7, c10, 1  /* Clean D cache SE with VA */
-       add     r0, r0, ip
-       subs    r1, r1, ip
-       bpl     .Larm9_sync_next
-       mov     pc, lr
-
-ENTRY_NP(arm9_icache_sync_all)
-.Larm9_icache_sync_all:
-       /*
-        * We assume that the code here can never be out of sync with the
-        * dcache, so that we can safely flush the Icache and fall through
-        * into the Dcache cleaning code.
-        */
-       mcr     p15, 0, r0, c7, c5, 0   /* Flush I cache */
-       /* Fall through to clean Dcache. */
-
-.Larm9_dcache_wb:
-       ldr     ip, .Larm9_cache_data
-       ldmia   ip, {s_max, i_max, s_inc, i_inc}
-.Lnext_set:
-       orr     ip, s_max, i_max
-.Lnext_index:
-       mcr     p15, 0, ip, c7, c10, 2  /* Clean D cache SE with Set/Index */
-       sub     ip, ip, i_inc
-       tst     ip, i_max               /* Index 0 is last one */
-       bne     .Lnext_index            /* Next index */
-       mcr     p15, 0, ip, c7, c10, 2  /* Clean D cache SE with Set/Index */
-       subs    s_max, s_max, s_inc
-       bpl     .Lnext_set              /* Next set */
-       mov     pc, lr
-
-.Larm9_line_size:
-       .word   _C_LABEL(arm_pdcache_line_size)
-
-ENTRY(arm9_dcache_wb_range)
-       ldr     ip, .Larm9_line_size
-       cmp     r1, #0x4000
-       bcs     .Larm9_dcache_wb
-       ldr     ip, [ip]
-       sub     r3, ip, #1
-       and     r2, r0, r3
-       add     r1, r1, r2
-       bic     r0, r0, r3
-.Larm9_wb_next:
-       mcr     p15, 0, r0, c7, c10, 1  /* Clean D cache SE with VA */
-       add     r0, r0, ip
-       subs    r1, r1, ip
-       bpl     .Larm9_wb_next
-       mov     pc, lr
-       
-ENTRY(arm9_dcache_wbinv_range)
-       ldr     ip, .Larm9_line_size
-       cmp     r1, #0x4000
-       bcs     .Larm9_dcache_wbinv_all
-       ldr     ip, [ip]
-       sub     r3, ip, #1
-       and     r2, r0, r3
-       add     r1, r1, r2
-       bic     r0, r0, r3
-.Larm9_wbinv_next:
-       mcr     p15, 0, r0, c7, c14, 1  /* Purge D cache SE with VA */
-       add     r0, r0, ip
-       subs    r1, r1, ip
-       bpl     .Larm9_wbinv_next
-       mov     pc, lr
-       
-/*
- * Note, we must not invalidate everything.  If the range is too big we
- * must use wb-inv of the entire cache.
- */
-ENTRY(arm9_dcache_inv_range)
-       ldr     ip, .Larm9_line_size
-       cmp     r1, #0x4000
-       bcs     .Larm9_dcache_wbinv_all
-       ldr     ip, [ip]
-       sub     r3, ip, #1
-       and     r2, r0, r3
-       add     r1, r1, r2
-       bic     r0, r0, r3
-.Larm9_inv_next:
-       mcr     p15, 0, r0, c7, c6, 1   /* Invalidate D cache SE with VA */
-       add     r0, r0, ip
-       subs    r1, r1, ip
-       bpl     .Larm9_inv_next
-       mov     pc, lr
-
-ENTRY(arm9_idcache_wbinv_range)
-       ldr     ip, .Larm9_line_size
-       cmp     r1, #0x4000
-       bcs     .Larm9_idcache_wbinv_all
-       ldr     ip, [ip]
-       sub     r3, ip, #1
-       and     r2, r0, r3
-       add     r1, r1, r2
-       bic     r0, r0, r3
-.Larm9_id_wbinv_next:
-       mcr     p15, 0, r0, c7, c5, 1   /* Invalidate I cache SE with VA */
-       mcr     p15, 0, r0, c7, c14, 1  /* Purge D cache SE with VA */
-       add     r0, r0, ip
-       subs    r1, r1, ip
-       bpl     .Larm9_id_wbinv_next
-       mov     pc, lr
-
-ENTRY_NP(arm9_idcache_wbinv_all)
-.Larm9_idcache_wbinv_all:
-       /*
-        * We assume that the code here can never be out of sync with the
-        * dcache, so that we can safely flush the Icache and fall through
-        * into the Dcache purging code.
-        */
-       mcr     p15, 0, r0, c7, c5, 0   /* Flush I cache */
-       /* Fall through to purge Dcache. */
-
-ENTRY(arm9_dcache_wbinv_all)
-.Larm9_dcache_wbinv_all:
-       ldr     ip, .Larm9_cache_data
-       ldmia   ip, {s_max, i_max, s_inc, i_inc}
-.Lnext_set_inv:
-       orr     ip, s_max, i_max
-.Lnext_index_inv:
-       mcr     p15, 0, ip, c7, c14, 2  /* Purge D cache SE with Set/Index */
-       sub     ip, ip, i_inc
-       tst     ip, i_max               /* Index 0 is last one */
-       bne     .Lnext_index_inv                /* Next index */
-       mcr     p15, 0, ip, c7, c14, 2  /* Purge D cache SE with Set/Index */
-       subs    s_max, s_max, s_inc
-       bpl     .Lnext_set_inv          /* Next set */
-       mov     pc, lr
-
-.Larm9_cache_data:
-       .word   _C_LABEL(arm9_dcache_sets_max)
-
-/*
- * Context switch.
- *
- * These is the CPU-specific parts of the context switcher cpu_switch()
- * These functions actually perform the TTB reload.
- */
-ENTRY(arm9_context_switch)
-       /*
-        * We can assume that the caches will only contain kernel addresses
-        * at this point.  So no need to flush them again.
-        */
-       mcr     p15, 0, r0, c7, c10, 4  /* drain the write buffer */
-       mcr     p15, 0, r0, c2, c0, 0   /* set the new TTB */
-       mcr     p15, 0, r0, c8, c7, 0   /* and flush the I+D tlbs */
-
-       /* Paranoia -- make sure the pipeline is empty. */
-       nop
-       nop
-       nop
-       mov     pc, lr
-
-       .bss
-
-/* XXX The following macros should probably be moved to asm.h */
-#define _DATA_OBJECT(x) .globl x; .type x,_ASM_TYPE_OBJECT; x:
-#define C_OBJECT(x)    _DATA_OBJECT(_C_LABEL(x))
-
-/*
- * Parameters for the cache cleaning code.  Note that the order of these
- * four variables is assumed in the code above.  Hence the reason for 
- * declaring them in the assembler file.
- */
-       .align 0
-C_OBJECT(arm9_dcache_sets_max)
-       .space  4
-C_OBJECT(arm9_dcache_index_max)
-       .space  4
-C_OBJECT(arm9_dcache_sets_inc)
-       .space  4
-C_OBJECT(arm9_dcache_index_inc)
-       .space  4
diff --git sys/arch/arm/arm/pmap.c sys/arch/arm/arm/pmap.c
index 627f4d5..cd16005 100644
--- sys/arch/arm/arm/pmap.c
+++ sys/arch/arm/arm/pmap.c
@@ -4438,27 +4438,6 @@ pmap_pte_init_generic(void)
        pmap_copy_page_func = pmap_copy_page_generic;
        pmap_zero_page_func = pmap_zero_page_generic;
 }
-
-#if defined(CPU_ARM9)
-void
-pmap_pte_init_arm9(void)
-{
-
-       /*
-        * ARM9 is compatible with generic, but we want to use
-        * write-through caching for now.
-        */
-       pmap_pte_init_generic();
-
-       pte_l1_s_cache_mode = L1_S_C;
-       pte_l2_l_cache_mode = L2_C;
-       pte_l2_s_cache_mode = L2_C;
-
-       pte_l1_s_cache_mode_pt = L1_S_C;
-       pte_l2_l_cache_mode_pt = L2_C;
-       pte_l2_s_cache_mode_pt = L2_C;
-}
-#endif /* CPU_ARM9 */
 #endif /* (ARM_MMU_GENERIC + ARM_MMU_SA1) != 0 */
 
 #if defined(CPU_ARM10)
diff --git sys/arch/arm/conf/files.arm sys/arch/arm/conf/files.arm
index 857e7e6..91f8470 100644
--- sys/arch/arm/conf/files.arm
+++ sys/arch/arm/conf/files.arm
@@ -39,10 +39,8 @@ file arch/arm/arm/bcopyinout.S
 file   arch/arm/arm/copystr.S
 file   arch/arm/arm/cpufunc.c
 file   arch/arm/arm/cpufunc_asm.S
-file   arch/arm/arm/cpufunc_asm_arm9.S         cpu_arm9
 file   arch/arm/arm/cpufunc_asm_arm10.S        cpu_arm9e | cpu_arm10
-file   arch/arm/arm/cpufunc_asm_armv4.S        cpu_arm9 | cpu_arm9e |
-                                                       cpu_arm10 |
+file   arch/arm/arm/cpufunc_asm_armv4.S        cpu_arm9e | cpu_arm10 |
                                                        cpu_sa110 |
                                                        cpu_sa1100 |
                                                        cpu_sa1110 |
diff --git sys/arch/arm/include/armreg.h sys/arch/arm/include/armreg.h
index f2a5854..cf05f71 100644
--- sys/arch/arm/include/armreg.h
+++ sys/arch/arm/include/armreg.h
@@ -176,10 +176,7 @@
 #define CPU_ID_ARM740T4K       0x41817400 /* XXX no MMU, 4KB cache */
 
 /* Post-ARM7 CPUs */
-#define CPU_ID_ARM920T         0x41129200
-#define CPU_ID_ARM922T         0x41029220
 #define CPU_ID_ARM926EJS       0x41069260
-#define CPU_ID_ARM940T         0x41029400 /* XXX no MMU */
 #define CPU_ID_ARM946ES                0x41049460 /* XXX no MMU */
 #define CPU_ID_ARM966ES                0x41049660 /* XXX no MMU */
 #define CPU_ID_ARM966ESR1      0x41059660 /* XXX no MMU */
@@ -190,7 +187,6 @@
 #define CPU_ID_ARM1136JSR1     0x4117b360
 #define CPU_ID_SA110           0x4401a100
 #define CPU_ID_SA1100          0x4401a110
-#define CPU_ID_TI925T          0x54029250
 #define CPU_ID_SA1110          0x6901b110
 #define CPU_ID_IXP1200         0x6901c120
 #define CPU_ID_80200           0x69052000
diff --git sys/arch/arm/include/cpuconf.h sys/arch/arm/include/cpuconf.h
index 6ed95ee..a770770 100644
--- sys/arch/arm/include/cpuconf.h
+++ sys/arch/arm/include/cpuconf.h
@@ -48,8 +48,7 @@
 /*
  * Determine which ARM architecture versions are configured.
  */
-#if (defined(CPU_ARM9) || \
-     defined(CPU_SA1100) || defined(CPU_SA1110) || \
+#if (defined(CPU_SA1100) || defined(CPU_SA1110) || \
      defined(CPU_IXP12X0) || defined(CPU_XSCALE_IXP425))
 #define        ARM_ARCH_4      1
 #else
@@ -91,8 +90,8 @@
  *                             protection is not used, TEX/AP is used instead.
  */
 
-#if (defined(CPU_ARM9) || defined(CPU_ARM9E) || \
-     defined(CPU_ARM10) || defined(CPU_ARM11) || defined(CPU_ARMv7) )
+#if (defined(CPU_ARM9E) || defined(CPU_ARM10) || \
+     defined(CPU_ARM11) || defined(CPU_ARMv7) )
 #define        ARM_MMU_GENERIC         1
 #else
 #define        ARM_MMU_GENERIC         0
diff --git sys/arch/arm/include/cpufunc.h sys/arch/arm/include/cpufunc.h
index 416248a..25162f8 100644
--- sys/arch/arm/include/cpufunc.h
+++ sys/arch/arm/include/cpufunc.h
@@ -250,32 +250,6 @@ void       sa1_cache_syncI_rng     (vaddr_t start, vsize_t 
end);
 
 #endif
 
-#ifdef CPU_ARM9
-void   arm9_setttb                     (u_int);
-
-void   arm9_tlb_flushID_SE             (u_int);
-
-void   arm9_icache_sync_all            (void);
-void   arm9_icache_sync_range          (vaddr_t, vsize_t);
-
-void   arm9_dcache_wbinv_all           (void);
-void   arm9_dcache_wbinv_range         (vaddr_t, vsize_t);
-void   arm9_dcache_inv_range           (vaddr_t, vsize_t);
-void   arm9_dcache_wb_range            (vaddr_t, vsize_t);
-
-void   arm9_idcache_wbinv_all          (void);
-void   arm9_idcache_wbinv_range        (vaddr_t, vsize_t);
-
-void   arm9_context_switch             (u_int);
-
-void   arm9_setup                      (void);
-
-extern unsigned arm9_dcache_sets_max;
-extern unsigned arm9_dcache_sets_inc;
-extern unsigned arm9_dcache_index_max;
-extern unsigned arm9_dcache_index_inc;
-#endif
-
 #if defined(CPU_ARM9E) || defined(CPU_ARM10)
 void   arm10_tlb_flushID_SE    (u_int);
 void   arm10_tlb_flushI_SE     (u_int);
@@ -377,7 +351,7 @@ extern unsigned armv7_dcache_index_inc;
 #endif
 
 
-#if defined(CPU_ARM9) || defined(CPU_ARM9E) || defined(CPU_ARM10) || \
+#if defined(CPU_ARM9E) || defined(CPU_ARM10) || \
     defined(CPU_SA1100) || defined(CPU_SA1110) || \
     defined(CPU_XSCALE_80200) || defined(CPU_XSCALE_80321) || \
     defined(CPU_XSCALE_PXA2X0) || defined(CPU_XSCALE_IXP425)
diff --git sys/arch/arm/include/pmap.h sys/arch/arm/include/pmap.h
index 3851abb..eca0376 100644
--- sys/arch/arm/include/pmap.h
+++ sys/arch/arm/include/pmap.h
@@ -371,9 +371,6 @@ void        pmap_copy_page_generic(struct vm_page *, struct 
vm_page *);
 void   pmap_zero_page_generic(struct vm_page *);
 
 void   pmap_pte_init_generic(void);
-#if defined(CPU_ARM9)
-void   pmap_pte_init_arm9(void);
-#endif /* CPU_ARM9 */
 #if defined(CPU_ARM10)
 void   pmap_pte_init_arm10(void);
 #endif /* CPU_ARM10 */

Reply via email to