summaryrefslogtreecommitdiffstats
path: root/sys/arm/lpc
diff options
context:
space:
mode:
authorjceel <jceel@FreeBSD.org>2012-08-15 18:18:29 +0000
committerjceel <jceel@FreeBSD.org>2012-08-15 18:18:29 +0000
commit9821bfb344148e5c3b244e5fc050c8036ee88e37 (patch)
treed5ea9a867e2e89308ba2736a0b0d8e901feefa7f /sys/arm/lpc
parentb06b79cffb0676cfcaca10ad96f3b3422db8284c (diff)
downloadFreeBSD-src-9821bfb344148e5c3b244e5fc050c8036ee88e37.zip
FreeBSD-src-9821bfb344148e5c3b244e5fc050c8036ee88e37.tar.gz
Switch lpc initarm() to use struct arm_boot_params and therefore fix
EA3250 kernel build. Approved by: gonzo
Diffstat (limited to 'sys/arm/lpc')
-rw-r--r--sys/arm/lpc/lpc_machdep.c40
1 files changed, 7 insertions, 33 deletions
diff --git a/sys/arm/lpc/lpc_machdep.c b/sys/arm/lpc/lpc_machdep.c
index fed26ec8..99f4700 100644
--- a/sys/arm/lpc/lpc_machdep.c
+++ b/sys/arm/lpc/lpc_machdep.c
@@ -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)
/*
OpenPOWER on IntegriCloud