Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 13 Jan 2010 22:12:48 GMT
From:      Rafal Jaworowski <raj@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 173098 for review
Message-ID:  <201001132212.o0DMCm9W033489@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://p4web.freebsd.org/chv.cgi?CH=173098

Change 173098 by raj@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();



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