From owner-p4-projects@FreeBSD.ORG Tue Jul 2 19:43:17 2013 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 712657A3; Tue, 2 Jul 2013 19:43:17 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id D6FE6783 for ; Tue, 2 Jul 2013 19:43:16 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [8.8.178.74]) by mx1.freebsd.org (Postfix) with ESMTP id C85D211A1 for ; Tue, 2 Jul 2013 19:43:16 +0000 (UTC) Received: from skunkworks.freebsd.org ([127.0.1.74]) by skunkworks.freebsd.org (8.14.7/8.14.7) with ESMTP id r62JhGT2042421 for ; Tue, 2 Jul 2013 19:43:16 GMT (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.7/8.14.6/Submit) id r62JhGjM042418 for perforce@freebsd.org; Tue, 2 Jul 2013 19:43:16 GMT (envelope-from jhb@freebsd.org) Date: Tue, 2 Jul 2013 19:43:16 GMT Message-Id: <201307021943.r62JhGjM042418@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin Subject: PERFORCE change 230431 for review To: Perforce Change Reviews Precedence: bulk X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.14 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 02 Jul 2013 19:43:17 -0000 http://p4web.freebsd.org/@@230431?ac=10 Change 230431 by jhb@jhb_fiver on 2013/07/02 19:42:57 Move the acpi_DeviceIsPresent() check earlier and remove it from the PCI-PCI bridge driver entirely. We discover all PCI-PCI bridges via PCI (not ACPI), so it definitely exists. PR: 91594 Affected files ... .. //depot/projects/pci/sys/dev/acpica/acpi_pcib.c#4 edit .. //depot/projects/pci/sys/dev/acpica/acpi_pcib_acpi.c#32 edit Differences ... ==== //depot/projects/pci/sys/dev/acpica/acpi_pcib.c#4 (text+ko) ==== @@ -135,15 +135,6 @@ ACPI_FUNCTION_TRACE((char *)(uintptr_t)__func__); /* - * Don't attach if we're not really there. - * - * XXX: This isn't entirely correct since we may be a PCI bus - * on a hot-plug docking station, etc. - */ - if (!acpi_DeviceIsPresent(dev)) - return_VALUE(ENXIO); - - /* * Get the PCI interrupt routing table for this bus. If we can't * get it, this is not an error but may reduce functionality. There * are several valid bridges in the field that do not have a _PRT, so ==== //depot/projects/pci/sys/dev/acpica/acpi_pcib_acpi.c#32 (text+ko) ==== @@ -292,6 +292,12 @@ sc->ap_handle = acpi_get_handle(dev); /* + * Don't attach if we're not really there. + */ + if (!acpi_DeviceIsPresent(dev)) + return (ENXIO); + + /* * Get our segment number by evaluating _SEG. * It's OK for this to not exist. */ @@ -358,7 +364,7 @@ if (status != AE_NOT_FOUND) { device_printf(dev, "could not evaluate _BBN - %s\n", AcpiFormatException(status)); - return_VALUE (ENXIO); + return (ENXIO); } else { /* If it's not found, assume 0. */ sc->ap_bus = 0; From owner-p4-projects@FreeBSD.ORG Wed Jul 3 22:30:39 2013 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 555897EB; Wed, 3 Jul 2013 22:30:39 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id 16F1E7E7 for ; Wed, 3 Jul 2013 22:30:39 +0000 (UTC) (envelope-from brooks@freebsd.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [8.8.178.74]) by mx1.freebsd.org (Postfix) with ESMTP id 08CE21C2D for ; Wed, 3 Jul 2013 22:30:39 +0000 (UTC) Received: from skunkworks.freebsd.org ([127.0.1.74]) by skunkworks.freebsd.org (8.14.7/8.14.7) with ESMTP id r63MUceN071178 for ; Wed, 3 Jul 2013 22:30:38 GMT (envelope-from brooks@freebsd.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.7/8.14.6/Submit) id r63MUc8v071175 for perforce@freebsd.org; Wed, 3 Jul 2013 22:30:38 GMT (envelope-from brooks@freebsd.org) Date: Wed, 3 Jul 2013 22:30:38 GMT Message-Id: <201307032230.r63MUc8v071175@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to brooks@freebsd.org using -f From: Brooks Davis Subject: PERFORCE change 230523 for review To: Perforce Change Reviews Precedence: bulk X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.14 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 03 Jul 2013 22:30:39 -0000 http://p4web.freebsd.org/@@230523?ac=10 Change 230523 by brooks@brooks_zenith on 2013/07/03 22:30:08 Disable output when setting up interrupts. It seems we can't print on the second thread when setting up IPIs. A bit of other tidying. Affected files ... .. //depot/projects/ctsrd/beribsd/src/sys/mips/beri/beri_pic.c#7 edit Differences ... ==== //depot/projects/ctsrd/beribsd/src/sys/mips/beri/beri_pic.c#7 (text+ko) ==== @@ -218,7 +218,9 @@ static void bp_config_source(device_t ic, int src, int enable, u_long tid, u_long irq) { +#if 0 char configstr[64]; +#endif struct beripic_softc *sc; uint64_t config; @@ -229,9 +231,12 @@ config |= tid << BP_CFG_SHIFT_TID; config |= irq << BP_CFG_SHIFT_IRQ; - if (bootverbose) +#if 0 + /* There is not valid console when doing IPI setup on APs */ + if (bootverbose && (tid == 0 || !cold)) device_printf(ic, "src %d: %s\n", src, bp_strconfig(config, configstr, sizeof(configstr))); +#endif bp_write_cfg(sc, src, config); } @@ -552,12 +557,14 @@ if (error != 0) goto err; +#ifdef NOTYET #ifdef SMP /* XXX: bind ithread to cpu */ sc->bp_next_tid++; if (sc->bp_next_tid >= sc->bp_nthreads) sc->bp_next_tid = 0; #endif +#endif if (sc->bp_next_tid == 0) { sc->bp_next_irq++; if (sc->bp_next_irq >= sc->bp_nirqs) @@ -650,7 +657,7 @@ bit = 1ULL << (tid % 64); bus_space_write_8(sc->bp_set_bst, sc->bp_set_bsh, - BP_FIRST_SOFT / 8 + (tid >> 6), bit); + (BP_FIRST_SOFT / 8) + (tid / 64), bit); } static void @@ -665,7 +672,7 @@ bit = 1ULL << (tid % 64); bus_space_write_8(sc->bp_clear_bst, sc->bp_clear_bsh, - BP_FIRST_SOFT / 8 + (tid >> 6), bit); + (BP_FIRST_SOFT / 8) + (tid / 64), bit); } #endif From owner-p4-projects@FreeBSD.ORG Wed Jul 3 22:33:43 2013 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id E3F5390A; Wed, 3 Jul 2013 22:33:42 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id A7FD8907 for ; Wed, 3 Jul 2013 22:33:42 +0000 (UTC) (envelope-from brooks@freebsd.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [8.8.178.74]) by mx1.freebsd.org (Postfix) with ESMTP id 892FD1C4A for ; Wed, 3 Jul 2013 22:33:42 +0000 (UTC) Received: from skunkworks.freebsd.org ([127.0.1.74]) by skunkworks.freebsd.org (8.14.7/8.14.7) with ESMTP id r63MXgcG071449 for ; Wed, 3 Jul 2013 22:33:42 GMT (envelope-from brooks@freebsd.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.7/8.14.6/Submit) id r63MXgJY071446 for perforce@freebsd.org; Wed, 3 Jul 2013 22:33:42 GMT (envelope-from brooks@freebsd.org) Date: Wed, 3 Jul 2013 22:33:42 GMT Message-Id: <201307032233.r63MXgJY071446@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to brooks@freebsd.org using -f From: Brooks Davis Subject: PERFORCE change 230524 for review To: Perforce Change Reviews Precedence: bulk X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.14 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 03 Jul 2013 22:33:43 -0000 http://p4web.freebsd.org/@@230524?ac=10 Change 230524 by brooks@brooks_zenith on 2013/07/03 22:33:14 Introduce a platform_init_secondary() function for MIPS platforms that is called from init_secondary() after the BSP wakes each AP, but before they indicate they are done initalizing. Use this to differ PIC setup until after beripic has been probed. With this change BERI2 make it to single user in simulation. Affected files ... .. //depot/projects/ctsrd/beribsd/src/sys/mips/beri/beri_mp.c#3 edit .. //depot/projects/ctsrd/beribsd/src/sys/mips/cavium/octeon_mp.c#4 edit .. //depot/projects/ctsrd/beribsd/src/sys/mips/gxemul/gxemul_machdep.c#6 edit .. //depot/projects/ctsrd/beribsd/src/sys/mips/include/hwfunc.h#5 edit .. //depot/projects/ctsrd/beribsd/src/sys/mips/mips/mp_machdep.c#4 edit .. //depot/projects/ctsrd/beribsd/src/sys/mips/nlm/xlp_machdep.c#4 edit .. //depot/projects/ctsrd/beribsd/src/sys/mips/rmi/xlr_machdep.c#4 edit .. //depot/projects/ctsrd/beribsd/src/sys/mips/sibyte/sb_machdep.c#5 edit Differences ... ==== //depot/projects/ctsrd/beribsd/src/sys/mips/beri/beri_mp.c#3 (text+ko) ==== @@ -95,6 +95,25 @@ } void +platform_init_secondary(int cpuid) +{ + device_t ic; + int ipi; + + ipi = platform_ipi_intrnum(); + + /* XXX: single core/pic */ + ic = SLIST_FIRST(&fdt_ic_list_head)->dev; + FDT_IC_SETUP_IPI(ic, cpuid, ipi); + picmap[cpuid] = ic; + + /* Unmask the interrupt */ + if (cpuid != 0) + mips_wr_status(mips_rd_status() | (((1 << ipi) << 8) << 2)); +} + + +void platform_ipi_send(int cpuid) { @@ -135,7 +154,6 @@ platform_init_ap(int cpuid) { u_int clock_int_mask; - device_t ic; KASSERT(cpuid < MAXCPU, ("%s: invalid CPU id %d", __func__, cpuid)); @@ -144,14 +162,6 @@ */ clock_int_mask = hard_int_mask(5); set_intr_mask(clock_int_mask); - - /* - * Enable IPIs. - */ - /* XXX: single core/pic */ - ic = SLIST_FIRST(&fdt_ic_list_head)->dev; - FDT_IC_SETUP_IPI(ic, cpuid, platform_ipi_intrnum()); - picmap[cpuid] = ic; } /* @@ -171,22 +181,31 @@ ("%s: invalid CPU id %d", __func__, cpuid)); cpu = cpu_of_nodes[cpuid]; - if (OF_getprop(cpu, "status", &prop, sizeof(prop)) <= 0 && - OF_getprop(OF_parent(cpu), "status", &prop, sizeof(prop))) - panic("%s: CPU %d has no status property", __func__, cpuid); - else - if (strcmp("disabled", prop) != 0) - panic("%s: CPU %d status is '%s' not 'disabled'", - __func__, cpuid, prop); + if (OF_getprop(cpu, "status", &prop, sizeof(prop)) <= 0) { + if (bootverbose) + printf("%s: CPU %d has no status property, " + "trying parent\n", __func__, cpuid); + if (OF_getprop(OF_parent(cpu), "status", &prop, + sizeof(prop)) <= 0) + panic("%s: CPU %d has no status property", __func__, + cpuid); + } + if (strcmp("disabled", prop) != 0) + panic("%s: CPU %d status is '%s' not 'disabled'", + __func__, cpuid, prop); - if (OF_getprop(cpu, "enable-method", &prop, sizeof(prop)) <= 0 && - OF_getprop(OF_parent(cpu), "enable-method", &prop, sizeof(prop))) - panic("%s: CPU %d has no enable-method property", __func__, - cpuid); - else - if (strcmp("spin-table", prop) != 0) - panic("%s: CPU %d enable-method is '%s' not " - "'spin-table'", __func__, cpuid, prop); + if (OF_getprop(cpu, "enable-method", &prop, sizeof(prop)) <= 0) { + if (bootverbose) + printf("%s: CPU %d has no enable-method, " + "trying parent\n", __func__, cpuid); + if (OF_getprop(OF_parent(cpu), "enable-method", &prop, + sizeof(prop)) <= 0) + panic("%s: CPU %d has no enable-method property", + __func__, cpuid); + } + if (strcmp("spin-table", prop) != 0) + panic("%s: CPU %d enable-method is '%s' not " + "'spin-table'", __func__, cpuid, prop); if (OF_getprop(cpu, "cpu-release-addr", &se, sizeof(se)) <= 0) panic("%s: CPU %d has missing or invalid cpu-release-addr", ==== //depot/projects/ctsrd/beribsd/src/sys/mips/cavium/octeon_mp.c#4 (text+ko) ==== @@ -46,6 +46,12 @@ unsigned octeon_ap_boot = ~0; void +platform_init_secondary(int cpuid) +{ + +} + +void platform_ipi_send(int cpuid) { cvmx_write_csr(CVMX_CIU_MBOX_SETX(cpuid), 1); ==== //depot/projects/ctsrd/beribsd/src/sys/mips/gxemul/gxemul_machdep.c#6 (text+ko) ==== @@ -174,6 +174,12 @@ #ifdef SMP void +platform_init_secondary(int cpuid) +{ + +} + +void platform_ipi_send(int cpuid) { GXEMUL_MP_DEV_WRITE(GXEMUL_MP_DEV_IPI_ONE, (1 << 16) | cpuid); ==== //depot/projects/ctsrd/beribsd/src/sys/mips/include/hwfunc.h#5 (text+ko) ==== @@ -70,6 +70,11 @@ int platform_ipi_intrnum(void); /* + * Set up IPIs for this CPU. + */ +void platform_init_secondary(int cpuid); + +/* * Trigger a IPI interrupt on 'cpuid'. */ void platform_ipi_send(int cpuid); ==== //depot/projects/ctsrd/beribsd/src/sys/mips/mips/mp_machdep.c#4 (text+ko) ==== @@ -301,6 +301,8 @@ while (!aps_ready) ; + platform_init_secondary(cpuid); + /* Initialize curthread. */ KASSERT(PCPU_GET(idlethread) != NULL, ("no idle thread")); PCPU_SET(curthread, PCPU_GET(idlethread)); @@ -342,6 +344,8 @@ if (mp_ncpus == 1) return; + platform_init_secondary(0); + /* * IPI handler */ ==== //depot/projects/ctsrd/beribsd/src/sys/mips/nlm/xlp_machdep.c#4 (text+ko) ==== @@ -697,6 +697,12 @@ } void +platform_init_secondary(int cpuid) +{ + +} + +void platform_ipi_send(int cpuid) { ==== //depot/projects/ctsrd/beribsd/src/sys/mips/rmi/xlr_machdep.c#4 (text+ko) ==== @@ -578,6 +578,12 @@ } void +platform_init_secondary(int cpuid) +{ + +} + +void platform_ipi_send(int cpuid) { ==== //depot/projects/ctsrd/beribsd/src/sys/mips/sibyte/sb_machdep.c#5 (text+ko) ==== @@ -295,6 +295,12 @@ #ifdef SMP void +platform_init_secondary(int cpuid) +{ + +} + +void platform_ipi_send(int cpuid) { KASSERT(cpuid == 0 || cpuid == 1, From owner-p4-projects@FreeBSD.ORG Wed Jul 3 22:33:43 2013 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 2F9899CA; Wed, 3 Jul 2013 22:33:43 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id BB035908 for ; Wed, 3 Jul 2013 22:33:42 +0000 (UTC) (envelope-from brooks@freebsd.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [8.8.178.74]) by mx1.freebsd.org (Postfix) with ESMTP id ABAA01C4B for ; Wed, 3 Jul 2013 22:33:42 +0000 (UTC) Received: from skunkworks.freebsd.org ([127.0.1.74]) by skunkworks.freebsd.org (8.14.7/8.14.7) with ESMTP id r63MXgFq071455 for ; Wed, 3 Jul 2013 22:33:42 GMT (envelope-from brooks@freebsd.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.7/8.14.6/Submit) id r63MXgmK071452 for perforce@freebsd.org; Wed, 3 Jul 2013 22:33:42 GMT (envelope-from brooks@freebsd.org) Date: Wed, 3 Jul 2013 22:33:42 GMT Message-Id: <201307032233.r63MXgmK071452@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to brooks@freebsd.org using -f From: Brooks Davis Subject: PERFORCE change 230525 for review To: Perforce Change Reviews Precedence: bulk X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.14 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 03 Jul 2013 22:33:43 -0000 http://p4web.freebsd.org/@@230525?ac=10 Change 230525 by brooks@brooks_zenith on 2013/07/03 22:33:37 Update the size to match DE4 config. Affected files ... .. //depot/projects/ctsrd/beribsd/src/sys/mips/conf/BERI_SIM_MDROOT#9 edit Differences ... ==== //depot/projects/ctsrd/beribsd/src/sys/mips/conf/BERI_SIM_MDROOT#9 (text+ko) ==== @@ -10,9 +10,9 @@ ident BERI_SIM_MDROOT # -# This kernel configuration uses an embedded 8MB memory root file system. +# This kernel configuration uses an embedded memory root file system. # Adjust the following path based on local requirements. # options MD_ROOT # MD is a potential root device -options MD_ROOT_SIZE=8192 +options MD_ROOT_SIZE=26112 # 25.5MB options ROOTDEVNAME=\"ufs:md0\"