Date: Mon, 24 Apr 2006 23:48:03 GMT From: Marcel Moolenaar <marcel@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Subject: PERFORCE change 96037 for review Message-ID: <200604242348.k3ONm38o016114@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=96037 Change 96037 by marcel@marcel_nfs on 2006/04/24 23:47:11 IFC @96033 Affected files ... .. //depot/projects/uart/amd64/amd64/identcpu.c#9 integrate .. //depot/projects/uart/conf/files#62 integrate .. //depot/projects/uart/conf/files.alpha#16 integrate .. //depot/projects/uart/conf/files.amd64#20 integrate .. //depot/projects/uart/conf/files.i386#25 integrate .. //depot/projects/uart/conf/files.ia64#17 integrate .. //depot/projects/uart/conf/files.pc98#22 integrate .. //depot/projects/uart/conf/files.powerpc#9 integrate .. //depot/projects/uart/conf/options#31 integrate .. //depot/projects/uart/conf/options.alpha#6 integrate .. //depot/projects/uart/conf/options.amd64#8 integrate .. //depot/projects/uart/conf/options.i386#13 integrate .. //depot/projects/uart/conf/options.ia64#7 integrate .. //depot/projects/uart/conf/options.pc98#12 integrate .. //depot/projects/uart/dev/ppc/ppc.c#10 integrate .. //depot/projects/uart/dev/ppc/ppc_acpi.c#2 integrate .. //depot/projects/uart/dev/ppc/ppc_isa.c#2 integrate .. //depot/projects/uart/dev/ppc/ppc_pci.c#2 integrate .. //depot/projects/uart/dev/ppc/ppc_puc.c#5 integrate .. //depot/projects/uart/dev/ppc/ppcreg.h#3 integrate .. //depot/projects/uart/dev/ppc/ppcvar.h#5 integrate .. //depot/projects/uart/dev/sab/sab.c#9 delete .. //depot/projects/uart/dev/sab/sab82532reg.h#3 delete .. //depot/projects/uart/i386/i386/identcpu.c#18 integrate .. //depot/projects/uart/pc98/cbus/ppc.c#4 delete .. //depot/projects/uart/pc98/cbus/ppcreg.h#2 delete Differences ... ==== //depot/projects/uart/amd64/amd64/identcpu.c#9 (text+ko) ==== @@ -39,7 +39,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/amd64/amd64/identcpu.c,v 1.144 2006/02/15 14:48:59 dwmalone Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/identcpu.c,v 1.146 2006/04/24 22:56:57 jkim Exp $"); #include "opt_cpu.h" @@ -233,7 +233,7 @@ "\014<b11>" "\015<b12>" "\016CX16" /* CMPXCHG16B Instruction */ - "\017<b14>" + "\017XTPR" /* Send Task Priority Messages*/ "\020<b15>" "\021<b16>" "\022<b17>" @@ -360,7 +360,8 @@ else if (strcmp(cpu_vendor, "GenuineIntel") == 0 && (cpu_high >= 4)) { cpuid_count(4, 0, regs); - cmp = ((regs[0] & 0xfc000000) >> 26) + 1; + if ((regs[0] & 0x1f) != 0) + cmp = ((regs[0] >> 26) & 0x3f) + 1; } if (cmp > 1) printf("\n Cores per package: %d", cmp); ==== //depot/projects/uart/conf/files#62 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/files,v 1.1110 2006/04/19 19:38:35 marcel Exp $ +# $FreeBSD: src/sys/conf/files,v 1.1111 2006/04/24 23:31:49 marcel Exp $ # # The long compile-with and dependency lines are required because of # limitations in config: backslash-newline doesn't work in strings, and ==== //depot/projects/uart/conf/files.alpha#16 (text+ko) ==== @@ -1,7 +1,7 @@ # This file tells config what files go into building a kernel, # files marked standard are always included. # -# $FreeBSD: src/sys/conf/files.alpha,v 1.125 2006/03/14 22:40:44 sam Exp $ +# $FreeBSD: src/sys/conf/files.alpha,v 1.126 2006/04/24 23:31:50 marcel Exp $ # # The long compile-with and dependency lines are required because of # limitations in config: backslash-newline doesn't work in strings, and ==== //depot/projects/uart/conf/files.amd64#20 (text+ko) ==== @@ -1,7 +1,7 @@ # This file tells config what files go into building a kernel, # files marked standard are always included. # -# $FreeBSD: src/sys/conf/files.amd64,v 1.84 2006/04/21 04:24:49 peter Exp $ +# $FreeBSD: src/sys/conf/files.amd64,v 1.85 2006/04/24 23:31:50 marcel Exp $ # # The long compile-with and dependency lines are required because of # limitations in config: backslash-newline doesn't work in strings, and ==== //depot/projects/uart/conf/files.i386#25 (text+ko) ==== @@ -1,7 +1,7 @@ # This file tells config what files go into building a kernel, # files marked standard are always included. # -# $FreeBSD: src/sys/conf/files.i386,v 1.554 2006/04/21 04:28:43 peter Exp $ +# $FreeBSD: src/sys/conf/files.i386,v 1.555 2006/04/24 23:31:50 marcel Exp $ # # The long compile-with and dependency lines are required because of # limitations in config: backslash-newline doesn't work in strings, and ==== //depot/projects/uart/conf/files.ia64#17 (text+ko) ==== @@ -1,7 +1,7 @@ # This file tells config what files go into building a kernel, # files marked standard are always included. # -# $FreeBSD: src/sys/conf/files.ia64,v 1.85 2006/03/05 22:52:16 yar Exp $ +# $FreeBSD: src/sys/conf/files.ia64,v 1.86 2006/04/24 23:31:50 marcel Exp $ # # The long compile-with and dependency lines are required because of # limitations in config: backslash-newline doesn't work in strings, and ==== //depot/projects/uart/conf/files.pc98#22 (text+ko) ==== @@ -3,7 +3,7 @@ # # modified for PC-9801/PC-9821 # -# $FreeBSD: src/sys/conf/files.pc98,v 1.337 2006/04/21 12:13:11 nyan Exp $ +# $FreeBSD: src/sys/conf/files.pc98,v 1.338 2006/04/24 23:31:50 marcel Exp $ # # The long compile-with and dependency lines are required because of # limitations in config: backslash-newline doesn't work in strings, and @@ -317,7 +317,6 @@ pc98/cbus/olpt.c optional olpt pc98/cbus/pckbd.c optional pckbd pc98/cbus/pmc.c optional pmc -pc98/cbus/ppc.c optional ppc pc98/cbus/scgdcrndr.c optional sc gdc pc98/cbus/scterm-sck.c optional sc pc98/cbus/scvtb.c optional sc ==== //depot/projects/uart/conf/files.powerpc#9 (text+ko) ==== @@ -1,7 +1,7 @@ # This file tells config what files go into building a kernel, # files marked standard are always included. # -# $FreeBSD: src/sys/conf/files.powerpc,v 1.51 2006/04/01 04:53:08 marcel Exp $ +# $FreeBSD: src/sys/conf/files.powerpc,v 1.53 2006/04/24 23:36:32 marcel Exp $ # # The long compile-with and dependency lines are required because of # limitations in config: backslash-newline doesn't work in strings, and ==== //depot/projects/uart/conf/options#31 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/options,v 1.535 2006/04/18 22:24:55 mjacob Exp $ +# $FreeBSD: src/sys/conf/options,v 1.536 2006/04/24 23:31:50 marcel Exp $ # # On the handling of kernel options # ==== //depot/projects/uart/conf/options.alpha#6 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/options.alpha,v 1.43 2004/07/10 22:29:40 marcel Exp $ +# $FreeBSD: src/sys/conf/options.alpha,v 1.44 2006/04/24 23:31:50 marcel Exp $ # Options specific to the Alpha platform kernels EV5 opt_global.h ==== //depot/projects/uart/conf/options.amd64#8 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/options.amd64,v 1.24 2005/12/12 10:15:11 ru Exp $ +# $FreeBSD: src/sys/conf/options.amd64,v 1.25 2006/04/24 23:31:50 marcel Exp $ # Options specific to AMD64 platform kernels AUTO_EOI_1 opt_auto_eoi.h ==== //depot/projects/uart/conf/options.i386#13 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/options.i386,v 1.232 2006/03/03 18:09:37 imp Exp $ +# $FreeBSD: src/sys/conf/options.i386,v 1.233 2006/04/24 23:31:50 marcel Exp $ # Options specific to the i386 platform kernels AUTO_EOI_1 opt_auto_eoi.h ==== //depot/projects/uart/conf/options.ia64#7 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/options.ia64,v 1.26 2004/08/16 18:54:22 marcel Exp $ +# $FreeBSD: src/sys/conf/options.ia64,v 1.27 2006/04/24 23:31:50 marcel Exp $ # Options specific to the ia64 platform kernels ITANIUM opt_global.h ==== //depot/projects/uart/conf/options.pc98#12 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/options.pc98,v 1.196 2006/03/03 18:09:37 imp Exp $ +# $FreeBSD: src/sys/conf/options.pc98,v 1.197 2006/04/24 23:31:50 marcel Exp $ # Options specific to the pc98 platform kernels AUTO_EOI_1 opt_auto_eoi.h ==== //depot/projects/uart/dev/ppc/ppc.c#10 (text+ko) ==== @@ -26,7 +26,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/dev/ppc/ppc.c,v 1.50 2006/04/15 12:31:33 iwasaki Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/ppc/ppc.c,v 1.51 2006/04/24 23:31:51 marcel Exp $"); #include "opt_ppc.h" @@ -37,7 +37,6 @@ #include <sys/bus.h> #include <sys/malloc.h> -#include <machine/clock.h> #include <machine/bus.h> #include <machine/resource.h> #include <sys/rman.h> @@ -64,6 +63,10 @@ #define LOG_PPC(function, ppc, string) \ if (bootverbose) printf("%s: %s\n", function, string) +#if defined(__i386__) && defined(PC98) +#define PC98_IEEE_1284_DISABLE 0x100 +#define PC98_IEEE_1284_PORT 0x140 +#endif #define DEVTOSOFTC(dev) ((struct ppc_data *)device_get_softc(dev)) @@ -1627,6 +1630,10 @@ { #ifdef __i386__ static short next_bios_ppc = 0; +#ifdef PC98 + unsigned int pc98_ieee_mode = 0x00; + unsigned int tmp; +#endif #endif struct ppc_data *ppc; int error; @@ -1648,6 +1655,17 @@ * If port not specified, use bios list. */ if (error) { +#ifdef PC98 + if (next_bios_ppc == 0) { + /* Use default IEEE-1284 port of NEC PC-98x1 */ + port = PC98_IEEE_1284_PORT; + next_bios_ppc += 1; + if (bootverbose) + device_printf(dev, + "parallel port found at 0x%x\n", + (int) port); + } +#else if((next_bios_ppc < BIOS_MAX_PPC) && (*(BIOS_PORTS+next_bios_ppc) != 0) ) { port = *(BIOS_PORTS+next_bios_ppc++); @@ -1658,6 +1676,7 @@ device_printf(dev, "parallel port not found.\n"); return ENXIO; } +#endif /* PC98 */ bus_set_resource(dev, SYS_RES_IOPORT, rid, port, IO_LPTSIZE_EXTENDED); } @@ -1726,7 +1745,31 @@ ppc->ppc_type = PPC_TYPE_GENERIC; +#if defined(__i386__) && defined(PC98) /* + * IEEE STD 1284 Function Check and Enable + * for default IEEE-1284 port of NEC PC-98x1 + */ + if (ppc->ppc_base == PC98_IEEE_1284_PORT && + !(ppc->ppc_flags & PC98_IEEE_1284_DISABLE)) { + tmp = inb(ppc->ppc_base + PPC_1284_ENABLE); + pc98_ieee_mode = tmp; + if ((tmp & 0x10) == 0x10) { + outb(ppc->ppc_base + PPC_1284_ENABLE, tmp & ~0x10); + tmp = inb(ppc->ppc_base + PPC_1284_ENABLE); + if ((tmp & 0x10) == 0x10) + goto error; + } else { + outb(ppc->ppc_base + PPC_1284_ENABLE, tmp | 0x10); + tmp = inb(ppc->ppc_base + PPC_1284_ENABLE); + if ((tmp & 0x10) != 0x10) + goto error; + } + outb(ppc->ppc_base + PPC_1284_ENABLE, pc98_ieee_mode | 0x10); + } +#endif + + /* * Try to detect the chipset and its mode. */ if (ppc_detect(ppc, ppc->ppc_flags & 0xf)) @@ -1735,6 +1778,12 @@ return (0); error: +#if defined(__i386__) && defined(PC98) + if (ppc->ppc_base == PC98_IEEE_1284_PORT && + !(ppc->ppc_flags & PC98_IEEE_1284_DISABLE)) { + outb(ppc->ppc_base + PPC_1284_ENABLE, pc98_ieee_mode); + } +#endif if (ppc->res_irq != 0) { bus_release_resource(dev, SYS_RES_IRQ, ppc->rid_irq, ppc->res_irq); ==== //depot/projects/uart/dev/ppc/ppc_acpi.c#2 (text+ko) ==== ==== //depot/projects/uart/dev/ppc/ppc_isa.c#2 (text+ko) ==== ==== //depot/projects/uart/dev/ppc/ppc_pci.c#2 (text+ko) ==== ==== //depot/projects/uart/dev/ppc/ppc_puc.c#5 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/dev/ppc/ppc_puc.c,v 1.2 2004/05/30 20:08:37 phk Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/ppc/ppc_puc.c,v 1.3 2006/04/24 23:31:51 marcel Exp $"); #include <sys/param.h> #include <sys/kernel.h> ==== //depot/projects/uart/dev/ppc/ppcreg.h#3 (text+ko) ==== @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/dev/ppc/ppcreg.h,v 1.15 2001/06/23 06:52:54 nsouch Exp $ + * $FreeBSD: src/sys/dev/ppc/ppcreg.h,v 1.16 2006/04/24 23:31:51 marcel Exp $ * */ #ifndef __PPCREG_H @@ -124,10 +124,18 @@ #define PPC_SPP_CTR 2 /* SPP control register */ #define PPC_EPP_ADDR 3 /* EPP address register (8 bit) */ #define PPC_EPP_DATA 4 /* EPP data register (8, 16 or 32 bit) */ +#if defined(__i386__) && defined(PC98) +#define PPC_1284_ENABLE 0x09 /* IEEE STD 1284 Enable register */ +#define PPC_ECP_D_FIFO 0x0c /* ECP Data fifo register */ +#define PPC_ECP_CNFGA 0x0c /* Configuration register A */ +#define PPC_ECP_CNFGB 0x0d /* Configuration register B */ +#define PPC_ECP_ECR 0x0e /* ECP extended control register */ +#else #define PPC_ECP_D_FIFO 0x400 /* ECP Data fifo register */ #define PPC_ECP_CNFGA 0x400 /* Configuration register A */ #define PPC_ECP_CNFGB 0x401 /* Configuration register B */ #define PPC_ECP_ECR 0x402 /* ECP extended control register */ +#endif #define PPC_FIFO_EMPTY 0x1 /* ecr register - bit 0 */ #define PPC_FIFO_FULL 0x2 /* ecr register - bit 1 */ ==== //depot/projects/uart/dev/ppc/ppcvar.h#5 (text+ko) ==== @@ -24,7 +24,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/dev/ppc/ppcvar.h,v 1.3 2006/04/15 12:31:33 iwasaki Exp $ + * $FreeBSD: src/sys/dev/ppc/ppcvar.h,v 1.4 2006/04/24 23:31:51 marcel Exp $ * */ ==== //depot/projects/uart/i386/i386/identcpu.c#18 (text+ko) ==== @@ -39,7 +39,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/i386/i386/identcpu.c,v 1.160 2006/03/03 18:54:05 netchild Exp $"); +__FBSDID("$FreeBSD: src/sys/i386/i386/identcpu.c,v 1.162 2006/04/24 22:56:57 jkim Exp $"); #include "opt_cpu.h" @@ -729,7 +729,7 @@ "\014<b11>" "\015<b12>" "\016CX16" /* CMPXCHG16B Instruction */ - "\017<b14>" + "\017XTPR" /* Send Task Priority Messages*/ "\020<b15>" "\021<b16>" "\022<b17>" @@ -856,7 +856,8 @@ else if (strcmp(cpu_vendor, "GenuineIntel") == 0 && (cpu_high >= 4)) { cpuid_count(4, 0, regs); - cmp = ((regs[0] & 0xfc000000) >> 26) + 1; + if ((regs[0] & 0x1f) != 0) + cmp = ((regs[0] >> 26) & 0x3f) + 1; } if (cmp > 1) printf("\n Cores per package: %d", cmp);
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200604242348.k3ONm38o016114>