diff options
author | jceel <jceel@FreeBSD.org> | 2012-08-15 18:18:29 +0000 |
---|---|---|
committer | jceel <jceel@FreeBSD.org> | 2012-08-15 18:18:29 +0000 |
commit | 9821bfb344148e5c3b244e5fc050c8036ee88e37 (patch) | |
tree | d5ea9a867e2e89308ba2736a0b0d8e901feefa7f /sys/arm | |
parent | b06b79cffb0676cfcaca10ad96f3b3422db8284c (diff) | |
download | FreeBSD-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')
-rw-r--r-- | sys/arm/lpc/lpc_machdep.c | 40 |
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) /* |