Subject: port-i386/2910: NetBSD/i386 is clueless about modern machines.
To: None <gnats-bugs@gnats.netbsd.org>
From: Lennart Augustsson <augustss@cs.chalmers.se>
List: netbsd-bugs
Date: 10/31/1996 17:40:53
>Number:         2910
>Category:       port-i386
>Synopsis:       NetBSD/i386 is clueless about modern machines.
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    gnats-admin (GNATS administrator)
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Thu Oct 31 08:50:00 1996
>Last-Modified:
>Originator:     Lennart Augustsson
>Organization:
Chalmers, Dept of CS
>Release:        NetBSD-current 961031
>Environment:
System: NetBSD dogbert.cs.chalmers.se 1.2B NetBSD 1.2B (DOGBERT) #7: Thu Oct 31 17:03:18 MET 1996 augustss@dogbert.cs.chalmers.se:/usr/src/sys/arch/i386/compile/DOGBERT i386


>Description:
	NetBSD i386 does not recognize the Pentium Pro CPU when booting.
	Nor does it know about the Natoma chipset (as is printed when
	you use PCIVERBOSE).
>How-To-Repeat:
	Do a dmesg on a modern machine.
>Fix:
	Apply the paches below.
	I'm not sure about the naming of the chips since Intel
	seems to have the same number for two of them.
	The PCI information was gleaned from FreeBSD.


*** /usr/src/sys/arch/i386/i386/machdep.c.orig	Mon Oct 28 16:34:02 1996
--- /usr/src/sys/arch/i386/i386/machdep.c	Mon Oct 28 16:34:05 1996
***************
*** 425,430 ****
--- 425,431 ----
  	{ "i486DX",	CPUCLASS_486 },	/* CPU_486   */
  	{ "Pentium",	CPUCLASS_586 },	/* CPU_586   */
  	{ "Cx486DLC",	CPUCLASS_486 },	/* CPU_486DLC (Cyrix) */
+ 	{ "Pentium Pro",CPUCLASS_586 },	/* CPU_686   */
  };
  
  void
*** /usr/src/sys/arch/i386/i386/locore.s.orig	Mon Oct 28 16:28:30 1996
--- /usr/src/sys/arch/i386/i386/locore.s	Mon Oct 28 16:31:28 1996
***************
*** 322,328 ****
--- 322,332 ----
  	andl	$15,%eax
  	cmpl	$5,%eax
  	jb	is486			# less than a Pentium
+ 	ja      3f                      # call it a Pentium Pro
  	movl	$CPU_586,RELOC(_cpu)	# it's a Pentium
+         jmp     2f
+ 3:
+         movl	$CPU_686,RELOC(_cpu)
  
  2:
  	/*
*** /usr/src/sys/arch/i386/include/cputypes.h.orig	Mon Oct 28 16:32:51 1996
--- /usr/src/sys/arch/i386/include/cputypes.h	Mon Oct 28 16:32:30 1996
***************
*** 45,47 ****
--- 45,48 ----
  #define	CPU_486		3	/* Intel 80486DX */
  #define	CPU_586		4	/* Intel P.....m (I hate lawyers; it's TM) */
  #define	CPU_486DLC	5	/* Cyrix 486DLC */
+ #define	CPU_686		6	/* Intel P.....m Pro (I hate lawyers too; it's TM) */




*** /usr/src/sys/dev/pci/pcidevs.orig	Mon Oct 28 16:50:07 1996
--- /usr/src/sys/dev/pci/pcidevs	Mon Oct 28 16:56:15 1996
***************
*** 523,528 ****
--- 523,533 ----
  product INTEL 82437	0x122d	82437 Triton
  product INTEL 82471	0x122e	82471 Triton
  product INTEL 82438	0x1230	82438
+ product INTEL 82440FX	0x1237  82440FX Natoma, PCI and memory controller
+ product INTEL 82371SBa	0x7000  82371SB PCI-ISA bridge
+ product INTEL 82371SBb	0x7010  82371SB IDE interface
+ product INTEL 82450KX	0x84c4	82450KX Orion, PCI memory controller
+ product INTEL 82454GX	0x84c5	82454GX Orion, host to PCI bridge
  
  /* I. T. T. products */
  product ITT AGX016	0x0001	AGX016
>Audit-Trail:
>Unformatted: