Author: ian
Date: Tue Nov  5 05:18:18 2013
New Revision: 257678
URL: http://svnweb.freebsd.org/changeset/base/257678

Log:
  Remove local devmap code and use the essentially identical common code
  that got moved from imx_machdep.c to arm/devmap.c.

Modified:
  head/sys/arm/freescale/imx/imx51_machdep.c
  head/sys/arm/freescale/imx/imx53_machdep.c
  head/sys/arm/freescale/imx/imx6_machdep.c
  head/sys/arm/freescale/imx/imx_machdep.c

Modified: head/sys/arm/freescale/imx/imx51_machdep.c
==============================================================================
--- head/sys/arm/freescale/imx/imx51_machdep.c  Tue Nov  5 05:02:08 2013        
(r257677)
+++ head/sys/arm/freescale/imx/imx51_machdep.c  Tue Nov  5 05:18:18 2013        
(r257678)
@@ -34,26 +34,58 @@ __FBSDID("$FreeBSD$");
 #include <sys/bus.h>
 #include <sys/reboot.h>
 
+#include <vm/vm.h>
+
+#include <machine/bus.h>
+#include <machine/devmap.h>
 #include <machine/machdep.h>
+
 #include <arm/freescale/imx/imx_machdep.h>
 
+vm_offset_t
+initarm_lastaddr(void)
+{
+
+       return (arm_devmap_lastaddr());
+}
+
+void
+initarm_early_init(void)
+{
+
+       /* XXX - Get rid of this stuff soon. */
+       boothowto |= RB_VERBOSE|RB_MULTIPLE;
+       bootverbose = 1;
+}
+
+void
+initarm_gpio_init(void)
+{
+
+}
+
+void
+initarm_late_init(void)
+{
+
+}
+
 /*
  * Set up static device mappings.  This is hand-optimized platform-specific
  * config data which covers most of the common on-chip devices with a few 1MB
  * section mappings.
  *
  * Notably missing are entries for GPU, IPU, in general anything video related.
- *
- * Note that for imx this is called from initarm_lastaddr() so that the lowest
- * kva address used for static device mapping can be known at that point.
  */
-void
-imx_devmap_init(void)
+int
+initarm_devmap_init(void)
 {
 
-       imx_devmap_addentry(0x70000000, 0x00100000);
-       imx_devmap_addentry(0x73f00000, 0x00100000);
-       imx_devmap_addentry(0x83f00000, 0x00100000);
+       arm_devmap_add_entry(0x70000000, 0x00100000);
+       arm_devmap_add_entry(0x73f00000, 0x00100000);
+       arm_devmap_add_entry(0x83f00000, 0x00100000);
+
+       return (0);
 }
 
 void

Modified: head/sys/arm/freescale/imx/imx53_machdep.c
==============================================================================
--- head/sys/arm/freescale/imx/imx53_machdep.c  Tue Nov  5 05:02:08 2013        
(r257677)
+++ head/sys/arm/freescale/imx/imx53_machdep.c  Tue Nov  5 05:18:18 2013        
(r257678)
@@ -34,26 +34,57 @@ __FBSDID("$FreeBSD$");
 #include <sys/bus.h>
 #include <sys/reboot.h>
 
+#include <vm/vm.h>
+
+#include <machine/bus.h>
+#include <machine/devmap.h>
 #include <machine/machdep.h>
 #include <arm/freescale/imx/imx_machdep.h>
 
+vm_offset_t
+initarm_lastaddr(void)
+{
+
+       return (arm_devmap_lastaddr());
+}
+
+void
+initarm_early_init(void)
+{
+
+       /* XXX - Get rid of this stuff soon. */
+       boothowto |= RB_VERBOSE|RB_MULTIPLE;
+       bootverbose = 1;
+}
+
+void
+initarm_gpio_init(void)
+{
+
+}
+
+void
+initarm_late_init(void)
+{
+
+}
+
 /*
  * Set up static device mappings.  This is hand-optimized platform-specific
  * config data which covers most of the common on-chip devices with a few 1MB
  * section mappings.
  *
  * Notably missing are entries for GPU, IPU, in general anything video related.
- *
- * Note that for imx this is called from initarm_lastaddr() so that the lowest
- * kva address used for static device mapping can be known at that point.
  */
-void
-imx_devmap_init(void)
+int
+initarm_devmap_init(void)
 {
 
-       imx_devmap_addentry(0x50000000, 0x00100000);
-       imx_devmap_addentry(0x53f00000, 0x00100000);
-       imx_devmap_addentry(0x63f00000, 0x00100000);
+       arm_devmap_add_entry(0x50000000, 0x00100000);
+       arm_devmap_add_entry(0x53f00000, 0x00100000);
+       arm_devmap_add_entry(0x63f00000, 0x00100000);
+
+       return (0);
 }
 
 void

Modified: head/sys/arm/freescale/imx/imx6_machdep.c
==============================================================================
--- head/sys/arm/freescale/imx/imx6_machdep.c   Tue Nov  5 05:02:08 2013        
(r257677)
+++ head/sys/arm/freescale/imx/imx6_machdep.c   Tue Nov  5 05:18:18 2013        
(r257678)
@@ -35,19 +35,45 @@ __FBSDID("$FreeBSD$");
 #include <sys/reboot.h>
 
 #include <vm/vm.h>
-#include <vm/pmap.h>
 
 #include <machine/bus.h>
 #include <machine/devmap.h>
+#include <machine/machdep.h>
 
 #include <arm/freescale/imx/imx6_anatopreg.h>
 #include <arm/freescale/imx/imx6_anatopvar.h>
 #include <arm/freescale/imx/imx_machdep.h>
 
+vm_offset_t
+initarm_lastaddr(void)
+{
+
+       return (arm_devmap_lastaddr());
+}
+
+void
+initarm_early_init(void)
+{
+
+       /* XXX - Get rid of this stuff soon. */
+       boothowto |= RB_VERBOSE|RB_MULTIPLE;
+       bootverbose = 1;
+}
+
+void
+initarm_gpio_init(void)
+{
+
+}
+
+void
+initarm_late_init(void)
+{
+
+}
+
 /*
- * Set up static device mappings.  Note that for imx this is called from
- * initarm_lastaddr() so that it can return the lowest address used for static
- * device mapping, maximizing kva space.
+ * Set up static device mappings.
  *
  * This attempts to cover the most-used devices with 1MB section mappings, 
which
  * is good for performance (uses fewer TLB entries for device access).
@@ -62,8 +88,8 @@ __FBSDID("$FreeBSD$");
  * static map some of that area.  Be careful with other things in that area 
such
  * as OCRAM that probably shouldn't be mapped as PTE_DEVICE memory.
  */
-void
-imx_devmap_init(void)
+int
+initarm_devmap_init(void)
 {
        const uint32_t IMX6_ARMMP_PHYS = 0x00a00000;
        const uint32_t IMX6_ARMMP_SIZE = 0x00100000;
@@ -72,9 +98,11 @@ imx_devmap_init(void)
        const uint32_t IMX6_AIPS2_PHYS = 0x02100000;
        const uint32_t IMX6_AIPS2_SIZE = 0x00100000;
 
-       imx_devmap_addentry(IMX6_ARMMP_PHYS, IMX6_ARMMP_SIZE);
-       imx_devmap_addentry(IMX6_AIPS1_PHYS, IMX6_AIPS1_SIZE);
-       imx_devmap_addentry(IMX6_AIPS2_PHYS, IMX6_AIPS2_SIZE);
+       arm_devmap_add_entry(IMX6_ARMMP_PHYS, IMX6_ARMMP_SIZE);
+       arm_devmap_add_entry(IMX6_AIPS1_PHYS, IMX6_AIPS1_SIZE);
+       arm_devmap_add_entry(IMX6_AIPS2_PHYS, IMX6_AIPS2_SIZE);
+
+       return (0);
 }
 
 void

Modified: head/sys/arm/freescale/imx/imx_machdep.c
==============================================================================
--- head/sys/arm/freescale/imx/imx_machdep.c    Tue Nov  5 05:02:08 2013        
(r257677)
+++ head/sys/arm/freescale/imx/imx_machdep.c    Tue Nov  5 05:18:18 2013        
(r257678)
@@ -45,99 +45,6 @@ __FBSDID("$FreeBSD$");
 #include <arm/freescale/imx/imx_machdep.h>
 #include <arm/freescale/imx/imx_wdogreg.h>
 
-#define        IMX_MAX_DEVMAP_ENTRIES  8
-
-static struct arm_devmap_entry devmap_entries[IMX_MAX_DEVMAP_ENTRIES];
-static u_int             devmap_idx;
-static vm_offset_t       devmap_vaddr = ARM_VECTORS_HIGH;
-
-void
-imx_devmap_addentry(vm_paddr_t pa, vm_size_t sz) 
-{
-       struct arm_devmap_entry *m;
-
-       /*
-        * The last table entry is the all-zeroes end-of-table marker.  If we're
-        * about to overwrite it the world is coming to an end.  This code runs
-        * too early for the panic to be printed unless a special early-debug
-        * console is in use, but there's nothing else we can do.
-        */
-       if (devmap_idx == (IMX_MAX_DEVMAP_ENTRIES - 1))
-               panic("IMX_MAX_DEVMAP_ENTRIES is too small!\n");
-
-       /*
-        * Allocate virtual address space from the top of kva downwards.  If the
-        * range being mapped is aligned and sized to 1MB boundaries then also
-        * align the virtual address to the next-lower 1MB boundary so that we
-        * end up with a section mapping.
-        */
-       if ((pa & 0x000fffff) == 0 && (sz & 0x000fffff) == 0) {
-               devmap_vaddr = (devmap_vaddr - sz) & ~0x000fffff;
-       } else {
-               devmap_vaddr = (devmap_vaddr - sz) & ~0x00000fff;
-       }
-       m = &devmap_entries[devmap_idx++];
-       m->pd_va    = devmap_vaddr;
-       m->pd_pa    = pa;
-       m->pd_size  = sz;
-       m->pd_prot  = VM_PROT_READ | VM_PROT_WRITE;
-       m->pd_cache = PTE_DEVICE;
-}
-
-vm_offset_t
-initarm_lastaddr(void)
-{
-
-       return (devmap_vaddr);
-}
-
-void
-initarm_early_init(void)
-{
-
-       /* XXX - Get rid of this stuff soon. */
-       boothowto |= RB_VERBOSE|RB_MULTIPLE;
-       bootverbose = 1;
-}
-
-int
-initarm_devmap_init(void)
-{
-
-       imx_devmap_init();
-       arm_devmap_register_table(devmap_entries);
-       return (0);
-}
-
-/*
- * Set initial values of GPIO output ports
- */
-void
-initarm_gpio_init(void)
-{
-
-}
-
-void
-initarm_late_init(void)
-{
-       struct arm_devmap_entry *m;
-
-       /*
-        * We did the static devmap setup earlier, during initarm_lastaddr(),
-        * but now the console should be working and we can be verbose about
-        * what we did.
-        */
-       if (bootverbose) {
-               for (m = devmap_entries; m->pd_va != 0; ++m) {
-                       printf("Devmap: phys 0x%08x virt 0x%08x size %uK\n",
-                           m->pd_pa, m->pd_va, m->pd_size / 1024);
-               }
-       }
-
-
-}
-
 struct arm32_dma_range *
 bus_dma_get_range(void)
 {
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "[email protected]"

Reply via email to