PERFORCE change 173098 for review
Rafal Jaworowski
raj at FreeBSD.org
Wed Jan 13 22:12:49 UTC 2010
http://p4web.freebsd.org/chv.cgi?CH=173098
Change 173098 by raj at raj_fdt on 2010/01/13 22:12:13
Preliminary hooks for FDT handling on ARM (Marvell).
Affected files ...
.. //depot/projects/fdt/sys/arm/conf/DB-88F5XXX#2 edit
.. //depot/projects/fdt/sys/arm/mv/mv_machdep.c#3 edit
Differences ...
==== //depot/projects/fdt/sys/arm/conf/DB-88F5XXX#2 (text+ko) ====
@@ -13,6 +13,7 @@
#makeoptions DEBUG=-g #Build kernel with gdb(1) debug symbols
makeoptions WERROR="-Werror"
+options FDT #Flattened device tree support
options SCHED_4BSD #4BSD scheduler
options INET #InterNETworking
options INET6 #IPv6 communications protocols
==== //depot/projects/fdt/sys/arm/mv/mv_machdep.c#3 (text+ko) ====
@@ -66,6 +66,8 @@
#include <machine/reg.h>
#include <machine/cpu.h>
+#include <dev/ofw/openfirm.h>
+
#include <vm/vm.h>
#include <vm/pmap.h>
#include <vm/vm_object.h>
@@ -361,7 +363,7 @@
{
struct pv_addr kernel_l1pt;
struct pv_addr dpcpu;
- vm_offset_t freemempos, l2_start, lastaddr;
+ vm_offset_t dtbp, freemempos, l2_start, lastaddr;
uint32_t memsize, l2size;
struct bi_mem_region *mr;
void *kmdp;
@@ -371,6 +373,7 @@
kmdp = NULL;
lastaddr = 0;
memsize = 0;
+ dtbp = (vm_offset_t)NULL;
set_cpufuncs();
@@ -392,6 +395,7 @@
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);
}
@@ -424,6 +428,12 @@
if (memsize == 0)
while (1);
+ if (OF_install(OFW_FDT, 0) == FALSE)
+ while (1);
+
+ if (OF_init((void *)dtbp) != 0)
+ while (1);
+
/* Platform-specific initialisation */
pmap_bootstrap_lastaddr = MV_BASE - ARM_NOCACHE_KVA_SIZE;
pmap_devmap_bootstrap_table = &pmap_devmap[0];
@@ -553,6 +563,7 @@
debugf("initarm: console initialized\n");
debugf(" arg1 mdp = 0x%08x\n", (uint32_t)mdp);
debugf(" boothowto = 0x%08x\n", boothowto);
+ printf(" dtbp = 0x%08x\n", (uint32_t)dtbp);
print_bootinfo();
print_kernel_section_addr();
print_kenv();
More information about the p4-projects
mailing list