socsvn commit: r287113 - in soc2015/mihai/bhyve-on-arm-head/sys: arm/arm arm/conf arm/vexpress boot/fdt/dts/arm conf dev/fdt dev/ofw

mihai at FreeBSD.org mihai at FreeBSD.org
Mon Jun 15 11:56:12 UTC 2015


Author: mihai
Date: Mon Jun 15 11:56:08 2015
New Revision: 287113
URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=287113

Log:
  sys: boot: fdt: dts: arm: remove vexpress DTS

Deleted:
  soc2015/mihai/bhyve-on-arm-head/sys/boot/fdt/dts/arm/vexpress-v2m.dtsi
  soc2015/mihai/bhyve-on-arm-head/sys/boot/fdt/dts/arm/vexpress-v2p-ca15-tc1.dts
Modified:
  soc2015/mihai/bhyve-on-arm-head/sys/arm/arm/physmem.c
  soc2015/mihai/bhyve-on-arm-head/sys/arm/arm/vfp.c
  soc2015/mihai/bhyve-on-arm-head/sys/arm/conf/VEXPRESS
  soc2015/mihai/bhyve-on-arm-head/sys/arm/vexpress/files.vexpress
  soc2015/mihai/bhyve-on-arm-head/sys/arm/vexpress/vexpress_machdep.c
  soc2015/mihai/bhyve-on-arm-head/sys/conf/ldscript.arm
  soc2015/mihai/bhyve-on-arm-head/sys/dev/fdt/fdt_common.c
  soc2015/mihai/bhyve-on-arm-head/sys/dev/ofw/ofw_bus_subr.c

Modified: soc2015/mihai/bhyve-on-arm-head/sys/arm/arm/physmem.c
==============================================================================
--- soc2015/mihai/bhyve-on-arm-head/sys/arm/arm/physmem.c	Mon Jun 15 10:56:01 2015	(r287112)
+++ soc2015/mihai/bhyve-on-arm-head/sys/arm/arm/physmem.c	Mon Jun 15 11:56:08 2015	(r287113)
@@ -311,7 +311,7 @@
 	adj = pa - trunc_page(pa);
 	pa  = trunc_page(pa);
 	sz  = round_page(sz + adj);
-
+	printf("%s pa: %p sz: %p\n",__func__,(void*)pa, (void*)sz);
 	if (excnt < nitems(exregions))
 		insert_region(exregions, excnt++, pa, sz, exflags);
 }

Modified: soc2015/mihai/bhyve-on-arm-head/sys/arm/arm/vfp.c
==============================================================================
--- soc2015/mihai/bhyve-on-arm-head/sys/arm/arm/vfp.c	Mon Jun 15 10:56:01 2015	(r287112)
+++ soc2015/mihai/bhyve-on-arm-head/sys/arm/arm/vfp.c	Mon Jun 15 11:56:08 2015	(r287113)
@@ -103,7 +103,6 @@
 {
 	u_int fpsid, fpexc, tmp;
 	u_int coproc, vfp_arch;
-
 	coproc = get_coprocessorACR();
 	coproc |= COPROC10 | COPROC11;
 	set_coprocessorACR(coproc);

Modified: soc2015/mihai/bhyve-on-arm-head/sys/arm/conf/VEXPRESS
==============================================================================
--- soc2015/mihai/bhyve-on-arm-head/sys/arm/conf/VEXPRESS	Mon Jun 15 10:56:01 2015	(r287112)
+++ soc2015/mihai/bhyve-on-arm-head/sys/arm/conf/VEXPRESS	Mon Jun 15 11:56:08 2015	(r287113)
@@ -16,30 +16,33 @@
 
 options 	KERNVIRTADDR=0xc0200000
 makeoptions	KERNVIRTADDR=0xc0200000
-options 	KERNPHYSADDR=0x80200000
-makeoptions	KERNPHYSADDR=0x80200000
-options 	PHYSADDR=0x80000000
+options 	KERNPHYSADDR=0xc0200000
+makeoptions	KERNPHYSADDR=0xc0200000
+options 	PHYSADDR=0xc0000000
 
 options 	HZ=100
 options 	SCHED_ULE		# ULE scheduler
-options 	PLATFORM
+#options 	PLATFORM
 #options 	SMP			# Enable multiple cores
 
+nooptions	FREEBSD_BOOT_LOADER
 
 # Debugging for use in -current
 makeoptions	DEBUG=-g		# Build kernel with gdb(1) debug symbols
 options 	BREAK_TO_DEBUGGER
-#options 	VERBOSE_SYSINIT		# Enable verbose sysinit messages
+options		DEBUG
+options      EARLY_PRINTF
+options 	VERBOSE_SYSINIT		# Enable verbose sysinit messages
 options 	KDB			# Enable kernel debugger support
 # For minimum debugger support (stable branch) use:
-#options 	KDB_TRACE		# Print a stack trace for a panic
+options 	KDB_TRACE		# Print a stack trace for a panic
 # For full debugger support use this instead:
 options 	DDB			# Enable the kernel debugger
-#options 	INVARIANTS		# Enable calls of extra sanity checking
-#options 	INVARIANT_SUPPORT	# Extra sanity checks of internal structures, required by INVARIANTS
+options 	INVARIANTS		# Enable calls of extra sanity checking
+options 	INVARIANT_SUPPORT	# Extra sanity checks of internal structures, required by INVARIANTS
 #options 	WITNESS			# Enable checks to detect deadlocks and cycles
 #options 	WITNESS_SKIPSPIN	# Don't run witness on spinlocks for speed
-#options 	DIAGNOSTIC
+options 	DIAGNOSTIC
 
 #options 	ROOTDEVNAME=\"ufs:/dev/da0\"
 
@@ -67,4 +70,4 @@
 # Flattened Device Tree
 options 	FDT			# Configure using FDT/DTB data
 options 	FDT_DTB_STATIC
-makeoptions	FDT_DTS_FILE=vexpress-v2p-ca15-tc1.dts
+makeoptions	FDT_DTS_FILE=rtsm_ve-cortex_a15x1.dts

Modified: soc2015/mihai/bhyve-on-arm-head/sys/arm/vexpress/files.vexpress
==============================================================================
--- soc2015/mihai/bhyve-on-arm-head/sys/arm/vexpress/files.vexpress	Mon Jun 15 10:56:01 2015	(r287112)
+++ soc2015/mihai/bhyve-on-arm-head/sys/arm/vexpress/files.vexpress	Mon Jun 15 11:56:08 2015	(r287113)
@@ -10,3 +10,5 @@
 
 arm/vexpress/vexpress_common.c			standard
 arm/vexpress/vexpress_machdep.c			standard
+
+arm/vexpress/vexpress_semihosting.S		standard

Modified: soc2015/mihai/bhyve-on-arm-head/sys/arm/vexpress/vexpress_machdep.c
==============================================================================
--- soc2015/mihai/bhyve-on-arm-head/sys/arm/vexpress/vexpress_machdep.c	Mon Jun 15 10:56:01 2015	(r287112)
+++ soc2015/mihai/bhyve-on-arm-head/sys/arm/vexpress/vexpress_machdep.c	Mon Jun 15 11:56:08 2015	(r287113)
@@ -54,6 +54,47 @@
 
 #include <dev/fdt/fdt_common.h>
 
+#include "vexpress_semihosting.h"
+
+vm_offset_t
+platform_lastaddr(void)
+{
+
+	return (arm_devmap_lastaddr());
+}
+
+void
+platform_probe_and_attach(void)
+{
+
+}
+
+void
+platform_gpio_init(void)
+{
+
+}
+
+void
+platform_late_init(void)
+{
+
+}
+
+int
+platform_devmap_init(void)
+{
+	/* UART0 (PL011) */
+	arm_devmap_add_entry(0x1c090000, 0x1000);
+
+	/* Peripherals (CS3) */
+//	arm_devmap_add_entry(0x1C000000, 0x4000000);
+
+	return (0);
+}
+
+
+
 struct arm32_dma_range *
 bus_dma_get_range(void)
 {
@@ -68,6 +109,21 @@
 	return (0);
 }
 
+#ifdef EARLY_PRINTF
+
+static void
+eputc(int c)
+{
+	char str[2];
+	str[0] = c;
+	str[1] = 0;
+
+	__semi_call(SYS_WRITE0, str);
+}
+
+early_putc_t * early_putc = eputc;
+#endif
+
 void
 cpu_reset()
 {

Modified: soc2015/mihai/bhyve-on-arm-head/sys/conf/ldscript.arm
==============================================================================
--- soc2015/mihai/bhyve-on-arm-head/sys/conf/ldscript.arm	Mon Jun 15 10:56:01 2015	(r287112)
+++ soc2015/mihai/bhyve-on-arm-head/sys/conf/ldscript.arm	Mon Jun 15 11:56:08 2015	(r287113)
@@ -6,7 +6,7 @@
 SECTIONS
 {
   /* Read-only sections, merged into text segment: */
-  . = KERNVIRTADDR + SIZEOF_HEADERS;
+  . = KERNVIRTADDR; /* + SIZEOF_HEADERS;*/
   .text      :
   {
     *(.text)

Modified: soc2015/mihai/bhyve-on-arm-head/sys/dev/fdt/fdt_common.c
==============================================================================
--- soc2015/mihai/bhyve-on-arm-head/sys/dev/fdt/fdt_common.c	Mon Jun 15 10:56:01 2015	(r287112)
+++ soc2015/mihai/bhyve-on-arm-head/sys/dev/fdt/fdt_common.c	Mon Jun 15 11:56:08 2015	(r287113)
@@ -117,22 +117,32 @@
 		rangesptr = &ranges[i * tuple_size];
 
 		bus_addr = fdt_data_get((void *)rangesptr, addr_cells);
+		printf("%s %d %d %p %p\n",__func__,i, tuples, (void*) bus_addr, (void*) addr);
 		if (bus_addr != addr)
 			continue;
 		rangesptr += addr_cells;
+		printf("%s 2 %d %d %p %p\n",__func__,i, tuples, (void*) bus_addr, (void*) addr);
 
 		par_bus_addr = fdt_data_get((void *)rangesptr, par_addr_cells);
 		rangesptr += par_addr_cells;
 
 		err = fdt_get_range_by_busaddr(OF_parent(node), par_bus_addr,
 		    &pbase, &psize);
+		printf("%s %d %d %p %p; %p %p\n",__func__,i, tuples, (void*) bus_addr, (void*) addr, (void*)pbase,(void*) psize);
+
 		if (err > 0)
 			return (err);
+		printf("%s %d %d %p %p; %p %p\n",__func__,i, tuples, (void*) bus_addr, (void*) addr, (void*)pbase,(void*) psize);
+
+
 		if (err == 0)
 			*base = pbase;
 		else
 			*base = par_bus_addr;
 
+		printf("%s %d %d %p %p;;;;; %p %p; par_bus_addr: %p; base:%p\n",__func__,i, tuples, (void*) bus_addr, (void*) addr, (void*)pbase,(void*) psize, (void*)par_bus_addr, (void*)*base);
+
+
 		*size = fdt_data_get((void *)rangesptr, size_cells);
 
 		return (0);
@@ -155,6 +165,7 @@
 	 * Process 'ranges' property.
 	 */
 	par_addr_cells = fdt_parent_addr_cells(node);
+	printf("%s par_addr_cells: %p\n",__func__,(void*)par_addr_cells);
 	if (par_addr_cells > 2)
 		return (ERANGE);
 
@@ -185,17 +196,22 @@
 	rangesptr = &ranges[range_id];
 
 	*base = fdt_data_get((void *)rangesptr, addr_cells);
+	printf("%s 1 %p, range_id:%u %p\n",__func__,(void*)*base, range_id, (void*)rangesptr);
 	rangesptr += addr_cells;
 
 	par_bus_addr = fdt_data_get((void *)rangesptr, par_addr_cells);
+	printf("%s ----- par_bus_addr: %d; par_bus_addr2: %d\n",__func__,*((uint32_t*)rangesptr), *(((uint32_t*)rangesptr) + 1));
 	rangesptr += par_addr_cells;
 
 	err = fdt_get_range_by_busaddr(OF_parent(node), par_bus_addr,
 	   &pbase, &psize);
+	printf("%s 2 %p, pbase:%p, par_bus_addr:%lu\n",__func__,(void*)*base, (void*)pbase, par_bus_addr);
+
 	if (err == 0)
 		*base += pbase;
 	else
 		*base += par_bus_addr;
+	printf("%s 3 %p\n",__func__,(void*)*base);
 
 	*size = fdt_data_get((void *)rangesptr, size_cells);
 	return (0);
@@ -595,6 +611,7 @@
 	uint32_t memory_size;
 	int addr_cells, size_cells;
 	int i, max_size, res_len, rv, tuple_size, tuples;
+	printf("%s 1 \n",__func__);
 
 	max_size = sizeof(reserve);
 	root = OF_finddevice("/");
@@ -603,28 +620,35 @@
 		rv = ENXIO;
 		goto out;
 	}
+	printf("%s 2 \n",__func__);
 
 	if ((rv = fdt_addrsize_cells(OF_parent(memory), &addr_cells,
 	    &size_cells)) != 0)
 		goto out;
+	printf("%s 3 \n",__func__);
 
 	if (addr_cells > 2) {
 		rv = ERANGE;
 		goto out;
 	}
+	printf("%s 33 \n",__func__);
 
 	tuple_size = sizeof(pcell_t) * (addr_cells + size_cells);
+	printf("%s 4 \n",__func__);
 
 	res_len = OF_getproplen(root, "memreserve");
 	if (res_len <= 0 || res_len > sizeof(reserve)) {
+		printf("%s 5 \n",__func__);
+
 		rv = ERANGE;
 		goto out;
 	}
-
+	printf("%s res_len %d\n",__func__,res_len);
 	if (OF_getprop(root, "memreserve", reserve, res_len) <= 0) {
 		rv = ENXIO;
 		goto out;
 	}
+	printf("%s res_len %d 2222222\n",__func__,res_len);
 
 	memory_size = 0;
 	tuples = res_len / tuple_size;
@@ -633,9 +657,11 @@
 
 		rv = fdt_data_to_res(reservep, addr_cells, size_cells,
 			(u_long *)&mr[i].mr_start, (u_long *)&mr[i].mr_size);
+		printf("%s res_len %d for: %d\n",__func__,res_len, i);
 
 		if (rv != 0)
 			goto out;
+		printf("%s res_len %d for after rv: %d\n",__func__,res_len, i);
 
 		reservep += addr_cells + size_cells;
 	}
@@ -643,6 +669,7 @@
 	*mrcnt = i;
 	rv = 0;
 out:
+	printf("%s out rv: %d\n",__func__,rv);
 	return (rv);
 }
 

Modified: soc2015/mihai/bhyve-on-arm-head/sys/dev/ofw/ofw_bus_subr.c
==============================================================================
--- soc2015/mihai/bhyve-on-arm-head/sys/dev/ofw/ofw_bus_subr.c	Mon Jun 15 10:56:01 2015	(r287112)
+++ soc2015/mihai/bhyve-on-arm-head/sys/dev/ofw/ofw_bus_subr.c	Mon Jun 15 11:56:08 2015	(r287113)
@@ -440,6 +440,7 @@
 
 	nintr = OF_getencprop_alloc(node, "interrupts",  sizeof(*intr),
 	    (void **)&intr);
+	printf("%s %d\n",__func__,nintr);
 	if (nintr > 0) {
 		if (OF_searchencprop(node, "interrupt-parent", &iparent,
 		    sizeof(iparent)) == -1) {
@@ -494,6 +495,7 @@
 			}
 		}
 		irqnum = ofw_bus_map_intr(dev, iparent, icells, &intr[i]);
+		printf("%s irqnum:%d\m",irqnum);
 		resource_list_add(rl, SYS_RES_IRQ, rid++, irqnum, irqnum, 1);
 	}
 	if (rlen != NULL)


More information about the svn-soc-all mailing list