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