svn commit: r257570 - projects/specific_leg/sys/arm/arm

Andrew Turner andrew at FreeBSD.org
Sun Nov 3 12:14:53 UTC 2013


Author: andrew
Date: Sun Nov  3 12:14:53 2013
New Revision: 257570
URL: http://svnweb.freebsd.org/changeset/base/257570

Log:
  Use the FDT data to build dump_avail.

Modified:
  projects/specific_leg/sys/arm/arm/machdep.c

Modified: projects/specific_leg/sys/arm/arm/machdep.c
==============================================================================
--- projects/specific_leg/sys/arm/arm/machdep.c	Sun Nov  3 12:03:41 2013	(r257569)
+++ projects/specific_leg/sys/arm/arm/machdep.c	Sun Nov  3 12:14:53 2013	(r257570)
@@ -776,6 +776,7 @@ makectx(struct trapframe *tf, struct pcb
 	pcb->un_32.pcb32_sp = tf->tf_usr_sp;
 }
 
+#ifndef FDT
 /*
  * Make a standard dump_avail array.  Can't make the phys_avail
  * since we need to do that after we call pmap_bootstrap, but this
@@ -816,6 +817,7 @@ arm_dump_avail_init(vm_offset_t ramsize,
 	dump_avail[2] = 0;
 	dump_avail[3] = 0;
 }
+#endif
 
 /*
  * Fake up a boot descriptor table
@@ -1244,7 +1246,18 @@ initarm(struct arm_boot_params *abp)
 	/* Grab physical memory regions information from device tree. */
 	if (fdt_get_reserved_regions(reserved_regions, &reserved_regions_sz) != 0)
 		reserved_regions_sz = 0;
-		
+
+	/*
+	 * Build the dump_avail table
+	 */
+	start = memory_regions[i].mr_start;
+	end = start + memory_regions[i].mr_size;
+
+	dump_avail[0] = round_page(start);
+	dump_avail[1] = trunc_page(end);
+	dump_avail[2] = 0;
+	dump_avail[3] = 0;
+
 	/*
 	 * Now exclude all the reserved regions
 	 */
@@ -1493,7 +1506,6 @@ initarm(struct arm_boot_params *abp)
 
 	arm_intrnames_init();
 	arm_vector_init(ARM_VECTORS_HIGH, ARM_VEC_ALL);
-	arm_dump_avail_init(memsize, sizeof(dump_avail) / sizeof(dump_avail[0]));
 	pmap_bootstrap(freemempos, &kernel_l1pt);
 	msgbufp = (void *)msgbufpv.pv_va;
 	msgbufinit(msgbufp, msgbufsize);


More information about the svn-src-projects mailing list