Author: ian
Date: Sun Feb  9 22:10:14 2014
New Revision: 261698
URL: http://svnweb.freebsd.org/changeset/base/261698

Log:
  Update legacy platforms to use new arm_physmem helper routines.

Modified:
  head/sys/arm/sa11x0/assabet_machdep.c
  head/sys/arm/xscale/i80321/ep80219_machdep.c
  head/sys/arm/xscale/i80321/iq31244_machdep.c
  head/sys/arm/xscale/i8134x/crb_machdep.c
  head/sys/arm/xscale/pxa/pxa_machdep.c

Modified: head/sys/arm/sa11x0/assabet_machdep.c
==============================================================================
--- head/sys/arm/sa11x0/assabet_machdep.c       Sun Feb  9 22:10:00 2014        
(r261697)
+++ head/sys/arm/sa11x0/assabet_machdep.c       Sun Feb  9 22:10:14 2014        
(r261698)
@@ -374,16 +374,25 @@ initarm(struct arm_boot_params *abp)
        cpu_setup("");
 
        pmap_curmaxkvaddr = freemempos + KERNEL_PT_VMDATA_NUM * 0x400000;
-
-       dump_avail[0] = phys_avail[0] = round_page(virtual_avail);
-       dump_avail[1] = phys_avail[1] = 0xc0000000 + 0x02000000 - 1;
-       dump_avail[2] = phys_avail[2] = 0;
-       dump_avail[3] = phys_avail[3] = 0;
-                                       
        mutex_init();
        vm_max_kernel_address = 0xd0000000;
        pmap_bootstrap(freemempos, &kernel_l1pt);
 
+       /*
+        * Add the physical ram we have available.
+        *
+        * Exclude the kernel (and all the things we allocated which immediately
+        * follow the kernel) from the VM allocation pool but not from crash
+        * dumps.  virtual_avail is a global variable which tracks the kva we've
+        * "allocated" while setting up pmaps.
+        *
+        * Prepare the list of physical memory available to the vm subsystem.
+        */
+       arm_physmem_hardware_region(physical_start, memsize);
+       arm_physmem_exclude_region(abp->abp_physaddr, 
+           virtual_avail - KERNVIRTADDR, EXFLAG_NOALLOC);
+       arm_physmem_init_kernel_globals();
+
        init_param2(physmem);
        kdb_init();
        return ((void *)(kernelstack.pv_va + USPACE_SVC_STACK_TOP -

Modified: head/sys/arm/xscale/i80321/ep80219_machdep.c
==============================================================================
--- head/sys/arm/xscale/i80321/ep80219_machdep.c        Sun Feb  9 22:10:00 
2014        (r261697)
+++ head/sys/arm/xscale/i80321/ep80219_machdep.c        Sun Feb  9 22:10:14 
2014        (r261698)
@@ -333,24 +333,27 @@ initarm(struct arm_boot_params *abp)
        /* Enable MMU, I-cache, D-cache, write buffer. */
 
        arm_vector_init(ARM_VECTORS_HIGH, ARM_VEC_ALL);
-       pmap_curmaxkvaddr = afterkern + PAGE_SIZE;
-       dump_avail[0] = 0xa0000000;
-       dump_avail[1] = 0xa0000000 + memsize;
-       dump_avail[2] = 0;
-       dump_avail[3] = 0;
-                                       
        vm_max_kernel_address = 0xe0000000;
        pmap_bootstrap(pmap_curmaxkvaddr, &kernel_l1pt);
        msgbufp = (void*)msgbufpv.pv_va;
        msgbufinit(msgbufp, msgbufsize);
        mutex_init();
        
-       i = 0;
-       phys_avail[i++] = round_page(virtual_avail - KERNBASE + 
IQ80321_SDRAM_START);
-       phys_avail[i++] = trunc_page(0xa0000000 + memsize - 1);
-       phys_avail[i++] = 0;
-       phys_avail[i] = 0;
-       
+       /*
+        * Add the physical ram we have available.
+        *
+        * Exclude the kernel (and all the things we allocated which immediately
+        * follow the kernel) from the VM allocation pool but not from crash
+        * dumps.  virtual_avail is a global variable which tracks the kva we've
+        * "allocated" while setting up pmaps.
+        *
+        * Prepare the list of physical memory available to the vm subsystem.
+        */
+       arm_physmem_hardware_region(IQ80321_SDRAM_START, memsize);
+       arm_physmem_exclude_region(abp->abp_physaddr, 
+           virtual_avail - KERNVIRTADDR, EXFLAG_NOALLOC);
+       arm_physmem_init_kernel_globals();
+
        init_param2(physmem);
        kdb_init();
        return ((void *)(kernelstack.pv_va + USPACE_SVC_STACK_TOP -

Modified: head/sys/arm/xscale/i80321/iq31244_machdep.c
==============================================================================
--- head/sys/arm/xscale/i80321/iq31244_machdep.c        Sun Feb  9 22:10:00 
2014        (r261697)
+++ head/sys/arm/xscale/i80321/iq31244_machdep.c        Sun Feb  9 22:10:14 
2014        (r261698)
@@ -335,23 +335,27 @@ initarm(struct arm_boot_params *abp)
 
        arm_vector_init(ARM_VECTORS_HIGH, ARM_VEC_ALL);
        pmap_curmaxkvaddr = afterkern + PAGE_SIZE;
-       dump_avail[0] = 0xa0000000;
-       dump_avail[1] = 0xa0000000 + memsize;
-       dump_avail[2] = 0;
-       dump_avail[3] = 0;
-                                       
        vm_max_kernel_address = 0xe0000000;
        pmap_bootstrap(pmap_curmaxkvaddr, &kernel_l1pt);
        msgbufp = (void*)msgbufpv.pv_va;
        msgbufinit(msgbufp, msgbufsize);
        mutex_init();
        
-       i = 0;
-       phys_avail[i++] = round_page(virtual_avail - KERNBASE + SDRAM_START);
-       phys_avail[i++] = trunc_page(0xa0000000 + memsize - 1);
-       phys_avail[i++] = 0;
-       phys_avail[i] = 0;
-       
+       /*
+        * Add the physical ram we have available.
+        *
+        * Exclude the kernel (and all the things we allocated which immediately
+        * follow the kernel) from the VM allocation pool but not from crash
+        * dumps.  virtual_avail is a global variable which tracks the kva we've
+        * "allocated" while setting up pmaps.
+        *
+        * Prepare the list of physical memory available to the vm subsystem.
+        */
+       arm_physmem_hardware_region(SDRAM_START, memsize);
+       arm_physmem_exclude_region(abp->abp_physaddr, 
+           virtual_avail - KERNVIRTADDR, EXFLAG_NOALLOC);
+       arm_physmem_init_kernel_globals();
+
        init_param2(physmem);
        kdb_init();
        return ((void *)(kernelstack.pv_va + USPACE_SVC_STACK_TOP -

Modified: head/sys/arm/xscale/i8134x/crb_machdep.c
==============================================================================
--- head/sys/arm/xscale/i8134x/crb_machdep.c    Sun Feb  9 22:10:00 2014        
(r261697)
+++ head/sys/arm/xscale/i8134x/crb_machdep.c    Sun Feb  9 22:10:14 2014        
(r261698)
@@ -313,23 +313,27 @@ initarm(struct arm_boot_params *abp)
 
        pmap_curmaxkvaddr = afterkern + PAGE_SIZE;
 
-       dump_avail[0] = 0x00000000;
-       dump_avail[1] = 0x00000000 + memsize;
-       dump_avail[2] = 0;
-       dump_avail[3] = 0;
-                                       
        vm_max_kernel_address = 0xe0000000;
        pmap_bootstrap(pmap_curmaxkvaddr, &kernel_l1pt);
        msgbufp = (void*)msgbufpv.pv_va;
        msgbufinit(msgbufp, msgbufsize);
        mutex_init();
-       
-       i = 0;
-       phys_avail[i++] = round_page(virtual_avail - KERNBASE + SDRAM_START);
-       phys_avail[i++] = trunc_page(0x00000000 + memsize - 1);
-       phys_avail[i++] = 0;
-       phys_avail[i] = 0;
-       
+
+       /*
+        * Add the physical ram we have available.
+        *
+        * Exclude the kernel (and all the things we allocated which immediately
+        * follow the kernel) from the VM allocation pool but not from crash
+        * dumps.  virtual_avail is a global variable which tracks the kva we've
+        * "allocated" while setting up pmaps.
+        *
+        * Prepare the list of physical memory available to the vm subsystem.
+        */
+       arm_physmem_hardware_region(SDRAM_START, memsize);
+       arm_physmem_exclude_region(abp->abp_physaddr, 
+           virtual_avail - KERNVIRTADDR, EXFLAG_NOALLOC);
+       arm_physmem_init_kernel_globals();
+
        init_param2(physmem);
        kdb_init();
        return ((void *)(kernelstack.pv_va + USPACE_SVC_STACK_TOP -

Modified: head/sys/arm/xscale/pxa/pxa_machdep.c
==============================================================================
--- head/sys/arm/xscale/pxa/pxa_machdep.c       Sun Feb  9 22:10:00 2014        
(r261697)
+++ head/sys/arm/xscale/pxa/pxa_machdep.c       Sun Feb  9 22:10:14 2014        
(r261698)
@@ -308,11 +308,6 @@ initarm(struct arm_boot_params *abp)
         */
        pxa_probe_sdram(obio_tag, PXA2X0_MEMCTL_BASE, memstart, memsize);
 
-       physmem = 0;
-       for (i = 0; i < PXA2X0_SDRAM_BANKS; i++) {
-               physmem += memsize[i] / PAGE_SIZE;
-       }
-
        /* Fire up consoles. */
        cninit();
 
@@ -328,39 +323,29 @@ initarm(struct arm_boot_params *abp)
        arm_vector_init(ARM_VECTORS_HIGH, ARM_VEC_ALL);
 
        pmap_curmaxkvaddr = afterkern + PAGE_SIZE;
-       i = 0;
-       for (j = 0; j < PXA2X0_SDRAM_BANKS; j++) {
-               if (memsize[j] > 0) {
-                       dump_avail[i++] = round_page(memstart[j]);
-                       dump_avail[i++] =
-                           trunc_page(memstart[j] + memsize[j]);
-               }
-       }
-       dump_avail[i] = 0;
-       dump_avail[i] = 0;
        vm_max_kernel_address = 0xe0000000;
        pmap_bootstrap(pmap_curmaxkvaddr, &kernel_l1pt);
        msgbufp = (void*)msgbufpv.pv_va;
        msgbufinit(msgbufp, msgbufsize);
        mutex_init();
 
-       i = 0;
+       /*
+        * Add the physical ram we have available.
+        *
+        * Exclude the kernel (and all the things we allocated which immediately
+        * follow the kernel) from the VM allocation pool but not from crash
+        * dumps.  virtual_avail is a global variable which tracks the kva we've
+        * "allocated" while setting up pmaps.
+        *
+        * Prepare the list of physical memory available to the vm subsystem.
+        */
        for (j = 0; j < PXA2X0_SDRAM_BANKS; j++) {
-               if (memsize[j] > 0) {
-                       phys_avail[i] = round_page(memstart[j]);
-                       dump_avail[i++] = round_page(memstart[j]);
-                       phys_avail[i] =
-                           trunc_page(memstart[j] + memsize[j]);
-                       dump_avail[i++] =
-                           trunc_page(memstart[j] + memsize[j]);
-               }
+               if (memsize[j] > 0)
+                       arm_physmem_hardware_region(memstart[j], memsize[j]);
        }
-
-       dump_avail[i] = 0;
-       phys_avail[i++] = 0;
-       dump_avail[i] = 0;
-       phys_avail[i] = 0;
-       phys_avail[0] = round_page(virtual_avail - KERNBASE + phys_avail[0]);
+       arm_physmem_exclude_region(abp->abp_physaddr, 
+           virtual_avail - KERNVIRTADDR, EXFLAG_NOALLOC);
+       arm_physmem_init_kernel_globals();
 
        init_param2(physmem);
        kdb_init();
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to