AMD/Intel multicore detection (Was: Re: [PATCH] AMD multicore detection)

Mike Tancsa mike at sentex.net
Tue Oct 4 08:05:46 PDT 2005


At 04:26 PM 26/09/2005, Jung-uk Kim wrote:

>Okay.  I have a new patch here:
>
>http://people.freebsd.org/~jkim/multicore-20050926.diff
>
>I removed mp_machdep.c patch and added proper multicore identification
>for both AMD and Intel CPUs.  I hope this does not overlap with your
>work.  Please review/test.

Hi,
         Just got an AMD 3800 X2 to test with. Running just a beta5 
kernel from a few days ago does not see the second CPU and nor does 
it with your latest patch

Running the cpuid program shows

  ./a.out
CPUID function   %eax     %ebx     %ecx     %edx
--------------------------------------------------
         0h     00000001 68747541 444d4163 69746e65
         1h     00020fb1 00000800 00000001 078bfbff
8000_0000h     80000018 68747541 444d4163 69746e65
8000_0001h     00020fb1 00000150 00000001 e3d3fbff
8000_0002h     20444d41 6d6d6148 46207265 6c696d61
8000_0003h     72702079 7365636f 20726f73 6f4d202d
8000_0004h     206c6564 6e6b6e55 006e776f 00000000
8000_0005h     ff08ff08 ff20ff20 40020140 40020140
8000_0006h     00000000 42004200 02008140 00000000
8000_0007h     00000000 00000000 00000000 0000000f
8000_0008h     00003028 00000000 00000001 00000000
8000_0009h     00000000 00000000 00000000 00000000
8000_000ah     00000000 00000000 00000000 00000000
8000_000bh     00000000 00000000 00000000 00000000
8000_000ch     00000000 00000000 00000000 00000000
8000_000dh     00000000 00000000 00000000 00000000
8000_000eh     00000000 00000000 00000000 00000000
8000_000fh     00000000 00000000 00000000 00000000
8000_0010h     00000000 00000000 00000000 00000000
8000_0011h     00000000 00000000 00000000 00000000
8000_0012h     00000000 00000000 00000000 00000000
8000_0013h     00000000 00000000 00000000 00000000
8000_0014h     00000000 00000000 00000000 00000000
8000_0015h     00000000 00000000 00000000 00000000
8000_0016h     00000000 00000000 00000000 00000000
8000_0017h     00000000 00000000 00000000 00000000
8000_0018h     00000000 00000000 00000000 00000000



# dmesg
Copyright (c) 1992-2005 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
         The Regents of the University of California. All rights reserved.
FreeBSD 6.0-BETA5 #0: Wed Sep 28 17:49:46 EDT 2005
     mdtancsa at formerly-itx-vpn.sentex.ca:/usr/obj/usr/src/sys/smp
Timecounter "i8254" frequency 1193182 Hz quality 0
CPU: AMD Hammer Family processor - Model Unknown (1999.79-MHz 686-class CPU)
   Origin = "AuthenticAMD"  Id = 0x20fb1  Stepping = 1
   Features=0x78bfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CLFLUSH,MMX,FXSR,SSE,SSE2>
   Features2=0x1<SSE3>
   AMD Features=0xe2500800<SYSCALL,NX,MMX+,<b25>,LM,3DNow+,3DNow>
real memory  = 1055850496 (1006 MB)
avail memory = 1024147456 (976 MB)
ACPI APIC Table: <RS480  AWRDACPI>
ioapic0 <Version 2.1> irqs 0-23 on motherboard
npx0: [FAST]
npx0: <math processor> on motherboard
npx0: INT 16 interface
acpi0: <RS480 AWRDACPI> on motherboard
acpi0: Overriding SCI Interrupt from IRQ 9 to IRQ 21
     ACPI-0438: *** Error: Looking up [\\_SB_.PCI0.LPC0.LNK0] in 
namespace, AE_NOT_FOUND
SearchNode 0xc22d25c0 StartNode 0xc22d25c0 ReturnNode 0
acpi0: Power Button (fixed)
pci_link0: <ACPI PCI Link LNKA> irq 0 on acpi0
pci_link1: <ACPI PCI Link LNKB> irq 0 on acpi0
pci_link2: <ACPI PCI Link LNKC> irq 0 on acpi0
pci_link3: <ACPI PCI Link LNKD> irq 0 on acpi0
pci_link4: <ACPI PCI Link LNKE> irq 0 on acpi0
pci_link5: <ACPI PCI Link LNKF> irq 0 on acpi0
pci_link6: <ACPI PCI Link LNKG> irq 11 on acpi0
pci_link7: <ACPI PCI Link LNKH> irq 5 on acpi0
Timecounter "ACPI-fast" frequency 3579545 Hz quality 1000
acpi_timer0: <32-bit timer at 3.579545MHz> port 0x4008-0x400b on acpi0
cpu0: <ACPI CPU> on acpi0
acpi_throttle0: <ACPI CPU Throttling> on cpu0
acpi_button0: <Power Button> on acpi0
pcib0: <ACPI Host-PCI bridge> port 0xcf8-0xcff on acpi0
pci0: <ACPI PCI bus> on pcib0
pcib1: <ACPI PCI-PCI bridge> at device 1.0 on pci0
pci1: <ACPI PCI bus> on pcib1
pci1: <display, VGA> at device 5.0 (no driver attached)
pci0: <serial bus, USB> at device 19.0 (no driver attached)
pci0: <serial bus, USB> at device 19.1 (no driver attached)
ehci0: <EHCI (generic) USB 2.0 controller> mem 0xfe02d000-0xfe02dfff 
irq 19 at device 19.2 on pci0
ehci0: [GIANT-LOCKED]
usb0: EHCI version 1.0
usb0: wrong number of companions (2 != 0)
usb0: <EHCI (generic) USB 2.0 controller> on ehci0
usb0: USB revision 2.0
uhub0: (0x1002) EHCI root hub, class 9/0, rev 2.00/1.00, addr 1
uhub0: 8 ports with 8 removable, self powered
pci0: <serial bus, SMBus> at device 20.0 (no driver attached)
atapci0: <GENERIC ATA controller> port 
0x1f0-0x1f7,0x3f6,0x170-0x177,0x376,0xfd00-0xfd0f at device 20.1 on pci0
ata0: <ATA channel 0> on atapci0
ata1: <ATA channel 1> on atapci0
isab0: <PCI-ISA bridge> at device 20.3 on pci0
isa0: <ISA bus> on isab0
pcib2: <ACPI PCI-PCI bridge> at device 20.4 on pci0
pci2: <ACPI PCI bus> on pcib2
rl0: <RealTek 8139 10/100BaseTX> port 0xdf00-0xdfff mem 
0xfddff000-0xfddff0ff irq 22 at device 5.0 on pci2
miibus0: <MII bus> on rl0
rlphy0: <RealTek internal media interface> on miibus0
rlphy0:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
rl0: Ethernet address: 00:14:2a:1a:49:f6
fwohci0: <Texas Instruments TSB43AB22/A> mem 
0xfddfe000-0xfddfe7ff,0xfddf8000-0xfddfbfff irq 23 at device 6.0 on pci2
fwohci0: OHCI version 1.10 (ROM=1)
fwohci0: No. of Isochronous channels is 4.
fwohci0: EUI64 00:00:0a:e6:ff:33:76:4b
fwohci0: Phy 1394a available S400, 2 ports.
fwohci0: Link S400, max_rec 2048 bytes.
firewire0: <IEEE1394(FireWire) bus> on fwohci0
fwe0: <Ethernet over FireWire> on firewire0
if_fwe0: Fake Ethernet address: 02:00:0a:33:76:4b
fwe0: Ethernet address: 02:00:0a:33:76:4b
fwe0: if_start running deferred for Giant
sbp0: <SBP-2/SCSI over FireWire> on firewire0
fwohci0: Initiate bus reset
fwohci0: node_id=0xc800ffc0, gen=1, CYCLEMASTER mode
firewire0: 1 nodes, maxhop <= 0, cable IRM = 0 (me)
firewire0: bus manager 0 (me)
pci0: <multimedia, audio> at device 20.5 (no driver attached)
acpi_tz0: <Thermal Zone> on acpi0
fdc0: <floppy drive controller> port 0x3f0-0x3f5,0x3f7 irq 6 drq 2 on acpi0
fdc0: [FAST]
sio0: <16550A-compatible COM port> port 0x3f8-0x3ff irq 4 flags 0x10 on acpi0
sio0: type 16550A, console
sio1: <16550A-compatible COM port> port 0x2f8-0x2ff irq 3 on acpi0
sio1: type 16550A
ppc0: <ECP parallel printer port> port 0x378-0x37f,0x778-0x77b irq 7 
drq 3 on acpi0
ppc0: Generic chipset (NIBBLE-only) in COMPATIBLE mode
ppbus0: <Parallel port bus> on ppc0
plip0: <PLIP network interface> on ppbus0
lpt0: <Printer> on ppbus0
lpt0: Interrupt-driven port
ppi0: <Parallel I/O> on ppbus0
atkbdc0: <Keyboard controller (i8042)> port 0x60,0x64 irq 1 on acpi0
atkbd0: <AT Keyboard> irq 1 on atkbdc0
kbd0 at atkbd0
atkbd0: [GIANT-LOCKED]
pmtimer0 on isa0
orm0: <ISA Option ROMs> at iomem 0xc0000-0xccfff,0xd0000-0xd3fff on isa0
sc0: <System console> at flags 0x100 on isa0
sc0: VGA <16 virtual consoles, flags=0x300>
vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0
Timecounter "TSC" frequency 1999790735 Hz quality 800
Timecounters tick every 1.000 msec
Fast IPsec: Initialized Security Association Processing.
ad0: 38166MB <Seagate ST340014A 8.54> at ata0-master UDMA33
Trying to mount root from ufs:/dev/ad0s1a
rl0: link state changed to DOWN
rl0: link state changed to UP


and with your patch, still no difference

  dmesg
Copyright (c) 1992-2005 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
         The Regents of the University of California. All rights reserved.
FreeBSD 6.0-BETA5 #1: Tue Oct  4 10:54:37 EDT 2005
     mdtancsa at formerly-itx-vpn.sentex.ca:/usr/obj/usr/src/sys/smp
Timecounter "i8254" frequency 1193182 Hz quality 0
CPU: AMD Hammer Family processor - Model Unknown (1999.79-MHz 686-class CPU)
   Origin = "AuthenticAMD"  Id = 0x20fb1  Stepping = 1
   Features=0x78bfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CLFLUSH,MMX,FXSR,SSE,SSE2>
   Features2=0x1<SSE3>
   AMD Features=0xe2500800<SYSCALL,NX,MMX+,FFXSR,LM,3DNow+,3DNow>
real memory  = 1055850496 (1006 MB)
avail memory = 1024147456 (976 MB)
ACPI APIC Table: <RS480  AWRDACPI>
ioapic0 <Version 2.1> irqs 0-23 on motherboard
npx0: [FAST]
npx0: <math processor> on motherboard
npx0: INT 16 interface
acpi0: <RS480 AWRDACPI> on motherboard
acpi0: Overriding SCI Interrupt from IRQ 9 to IRQ 21
     ACPI-0438: *** Error: Looking up [\\_SB_.PCI0.LPC0.LNK0] in 
namespace, AE_NOT_FOUND
SearchNode 0xc22d25c0 StartNode 0xc22d25c0 ReturnNode 0
acpi0: Power Button (fixed)
pci_link0: <ACPI PCI Link LNKA> irq 0 on acpi0
pci_link1: <ACPI PCI Link LNKB> irq 0 on acpi0
pci_link2: <ACPI PCI Link LNKC> irq 0 on acpi0
pci_link3: <ACPI PCI Link LNKD> irq 0 on acpi0
pci_link4: <ACPI PCI Link LNKE> irq 0 on acpi0
pci_link5: <ACPI PCI Link LNKF> irq 0 on acpi0
pci_link6: <ACPI PCI Link LNKG> irq 11 on acpi0
pci_link7: <ACPI PCI Link LNKH> irq 5 on acpi0
Timecounter "ACPI-fast" frequency 3579545 Hz quality 1000
acpi_timer0: <32-bit timer at 3.579545MHz> port 0x4008-0x400b on acpi0
cpu0: <ACPI CPU> on acpi0
acpi_throttle0: <ACPI CPU Throttling> on cpu0
acpi_button0: <Power Button> on acpi0
pcib0: <ACPI Host-PCI bridge> port 0xcf8-0xcff on acpi0
pci0: <ACPI PCI bus> on pcib0
pcib1: <ACPI PCI-PCI bridge> at device 1.0 on pci0
pci1: <ACPI PCI bus> on pcib1
pci1: <display, VGA> at device 5.0 (no driver attached)
pci0: <serial bus, USB> at device 19.0 (no driver attached)
pci0: <serial bus, USB> at device 19.1 (no driver attached)
ehci0: <EHCI (generic) USB 2.0 controller> mem 0xfe02d000-0xfe02dfff 
irq 19 at device 19.2 on pci0
ehci0: [GIANT-LOCKED]
usb0: EHCI version 1.0
usb0: wrong number of companions (2 != 0)
usb0: <EHCI (generic) USB 2.0 controller> on ehci0
usb0: USB revision 2.0
uhub0: (0x1002) EHCI root hub, class 9/0, rev 2.00/1.00, addr 1
uhub0: 8 ports with 8 removable, self powered
pci0: <serial bus, SMBus> at device 20.0 (no driver attached)
atapci0: <GENERIC ATA controller> port 
0x1f0-0x1f7,0x3f6,0x170-0x177,0x376,0xfd00-0xfd0f at device 20.1 on pci0
ata0: <ATA channel 0> on atapci0
ata1: <ATA channel 1> on atapci0
isab0: <PCI-ISA bridge> at device 20.3 on pci0
isa0: <ISA bus> on isab0
pcib2: <ACPI PCI-PCI bridge> at device 20.4 on pci0
pci2: <ACPI PCI bus> on pcib2
rl0: <RealTek 8139 10/100BaseTX> port 0xdf00-0xdfff mem 
0xfddff000-0xfddff0ff irq 22 at device 5.0 on pci2
miibus0: <MII bus> on rl0
rlphy0: <RealTek internal media interface> on miibus0
rlphy0:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
rl0: Ethernet address: 00:14:2a:1a:49:f6
fwohci0: <Texas Instruments TSB43AB22/A> mem 
0xfddfe000-0xfddfe7ff,0xfddf8000-0xfddfbfff irq 23 at device 6.0 on pci2
fwohci0: OHCI version 1.10 (ROM=1)
fwohci0: No. of Isochronous channels is 4.
fwohci0: EUI64 00:00:0a:e6:ff:33:76:4b
fwohci0: Phy 1394a available S400, 2 ports.
fwohci0: Link S400, max_rec 2048 bytes.
firewire0: <IEEE1394(FireWire) bus> on fwohci0
fwe0: <Ethernet over FireWire> on firewire0
if_fwe0: Fake Ethernet address: 02:00:0a:33:76:4b
fwe0: Ethernet address: 02:00:0a:33:76:4b
fwe0: if_start running deferred for Giant
sbp0: <SBP-2/SCSI over FireWire> on firewire0
fwohci0: Initiate bus reset
fwohci0: node_id=0xc800ffc0, gen=1, CYCLEMASTER mode
firewire0: 1 nodes, maxhop <= 0, cable IRM = 0 (me)
firewire0: bus manager 0 (me)
pci0: <multimedia, audio> at device 20.5 (no driver attached)
acpi_tz0: <Thermal Zone> on acpi0
fdc0: <floppy drive controller> port 0x3f0-0x3f5,0x3f7 irq 6 drq 2 on acpi0
fdc0: [FAST]
sio0: <16550A-compatible COM port> port 0x3f8-0x3ff irq 4 flags 0x10 on acpi0
sio0: type 16550A, console
sio1: <16550A-compatible COM port> port 0x2f8-0x2ff irq 3 on acpi0
sio1: type 16550A
ppc0: <ECP parallel printer port> port 0x378-0x37f,0x778-0x77b irq 7 
drq 3 on acpi0
ppc0: Generic chipset (NIBBLE-only) in COMPATIBLE mode
ppbus0: <Parallel port bus> on ppc0
plip0: <PLIP network interface> on ppbus0
lpt0: <Printer> on ppbus0
lpt0: Interrupt-driven port
ppi0: <Parallel I/O> on ppbus0
atkbdc0: <Keyboard controller (i8042)> port 0x60,0x64 irq 1 on acpi0
atkbd0: <AT Keyboard> irq 1 on atkbdc0
kbd0 at atkbd0
atkbd0: [GIANT-LOCKED]
pmtimer0 on isa0
orm0: <ISA Option ROMs> at iomem 0xc0000-0xccfff,0xd0000-0xd3fff on isa0
sc0: <System console> at flags 0x100 on isa0
sc0: VGA <16 virtual consoles, flags=0x300>
vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0
Timecounter "TSC" frequency 1999787075 Hz quality 800
Timecounters tick every 1.000 msec
Fast IPsec: Initialized Security Association Processing.
ad0: 38166MB <Seagate ST340014A 8.54> at ata0-master UDMA33
Trying to mount root from ufs:/dev/ad0s1a


MB is an RS480-M with ATI chipset.
http://www.ecs.com.tw/ECSWeb/Products/ProductsDetail.aspx?MenuID=90&LanID=0&DetailID=506&DetailName=BIOS 



More information about the freebsd-current mailing list