svn commit: r257678 - head/sys/arm/freescale/imx
Ian Lepore
ian at FreeBSD.org
Tue Nov 5 05:18:19 UTC 2013
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)
{
More information about the svn-src-all
mailing list