Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 15 Aug 2012 18:18:29 +0000 (UTC)
From:      Jakub Wojciech Klama <jceel@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r239307 - head/sys/arm/lpc
Message-ID:  <201208151818.q7FIITes092006@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: jceel
Date: Wed Aug 15 18:18:29 2012
New Revision: 239307
URL: http://svn.freebsd.org/changeset/base/239307

Log:
  Switch lpc initarm() to use struct arm_boot_params and therefore fix
  EA3250 kernel build.
  
  Approved by:	gonzo

Modified:
  head/sys/arm/lpc/lpc_machdep.c

Modified: head/sys/arm/lpc/lpc_machdep.c
==============================================================================
--- head/sys/arm/lpc/lpc_machdep.c	Wed Aug 15 18:00:52 2012	(r239306)
+++ head/sys/arm/lpc/lpc_machdep.c	Wed Aug 15 18:18:29 2012	(r239307)
@@ -296,7 +296,7 @@ physmap_init(void)
 }
 
 void *
-initarm(void *mdp, void *unused __unused)
+initarm(struct arm_boot_params *abp)
 {
 	struct pv_addr kernel_l1pt;
 	struct pv_addr dpcpu;
@@ -306,41 +306,15 @@ initarm(void *mdp, void *unused __unused
 	u_int l1pagetable;
 	int i = 0, j = 0;
 
-	kmdp = NULL;
-	lastaddr = 0;
+	lastaddr = parse_boot_param(abp);
 	memsize = 0;
-	dtbp = (vm_offset_t)NULL;
-
 	set_cpufuncs();
 
-	/*
-	 * Mask metadata pointer: it is supposed to be on page boundary. If
-	 * the first argument (mdp) doesn't point to a valid address the
-	 * bootloader must have passed us something else than the metadata
-	 * ptr... In this case we want to fall back to some built-in settings.
-	 */
-	mdp = (void *)((uint32_t)mdp & ~PAGE_MASK);
-
-	/* Parse metadata and fetch parameters */
-	if (mdp != NULL) {
-		preload_metadata = mdp;
-		kmdp = preload_search_by_type("elf kernel");
-		if (kmdp != NULL) {
-			boothowto = MD_FETCH(kmdp, MODINFOMD_HOWTO, int);
-			kern_envp = MD_FETCH(kmdp, MODINFOMD_ENVP, char *);
-			dtbp = MD_FETCH(kmdp, MODINFOMD_DTBP, vm_offset_t);
-			lastaddr = MD_FETCH(kmdp, MODINFOMD_KERNEND,
-			    vm_offset_t);
-#ifdef DDB
-			ksym_start = MD_FETCH(kmdp, MODINFOMD_SSYM, uintptr_t);
-			ksym_end = MD_FETCH(kmdp, MODINFOMD_ESYM, uintptr_t);
-#endif
-		}
-
-	} else {
-		/* Fall back to hardcoded metadata. */
-		lastaddr = fake_preload_metadata();
-	}
+	kmdp = preload_search_by_type("elf kernel");
+	if (kmdp != NULL) 
+		dtbp = MD_FETCH(kmdp, MODINFOMD_DTBP, vm_offset_t);
+	else
+		dtbp = (vm_offset_t)NULL;
 
 #if defined(FDT_DTB_STATIC)
 	/*



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201208151818.q7FIITes092006>