Date: Wed, 17 Jan 2001 23:39:06 -0800 From: Peter Wemm <peter@netplex.com.au> To: smp@freebsd.org Subject: DL360 *fun*.. Message-ID: <200101180739.f0I7d6K10125@mobile.wemm.org>
next in thread | raw e-mail | index | archive | help
Compaq have got some interesting hardware and software in these beasties. First of all, the DL360 that we have has got these cpus: APIC ID Version State Family Model Step Flags 0 0x10 BSP, usable 6 2 1 0x0381 0 0x10 AP, usable 6 8 6 0x383fbff One is clocked at 800MHz, and the other is at 866MHz !!!!! I was unaware that this was possible. But it sure is! This is a serverworks chipset based motherboard. And yes, they really are running at different speeds. So much for the theory about using the TSC for time measurement on the SMP kernel some day. I just thought I'd pass along that bit of info. The second "interesting" problem are the well known mptable bugs. Compaq have got the PIC->apic pin 0 (ExtINT) table entry at the *end* of the table. In the released roms, they have an off-by-one error in the table header that leads to the 'MP extended table HOSED!" message. The fixed rom they gave me has an interesting quirk.. the entries are now out of order! mptable(1) cannot deal with this and gets VERY VERY upset. I fixed mptable and a before-and-after is appended: BEFORE: ------------------------------------------------------------------------------- MP Config Table Header: physical address: 0x000f29c9 signature: 'PCMP' base table length: 356 version: 1.4 checksum: 0x1e OEM ID: 'COMPAQ ' Product ID: 'PROLIANT ' OEM table pointer: 0x00000000 OEM table size: 0 entry count: 36 (<<<< Here is where the off-by-one was) local APIC address: 0xfee00000 extended table length: 184 extended table checksum: 106 ------------------------------------------------------------------------------- MP Config Base Table Entries: -- Processors: APIC ID Version State Family Model Step Flags 0 0x10 BSP, usable 6 2 1 0x0381 0 0x10 AP, usable 6 8 6 0x383fbff -- Bus: Bus ID Type 0 PCI 1 PCI 9 ISA -- I/O APICs: APIC ID Version State Address 8 0x11 usable 0xfec00000 -- I/O Ints: Type Polarity Trigger Bus ID IRQ APIC ID PIN# INT active-lo level 0 5:A 8 21 INT active-lo level 0 5:B 8 20 INT active-lo level 0 5:C 8 21 INT active-lo level 0 5:D 8 20 INT active-lo level 1 6:A 8 23 INT active-lo level 1 6:B 8 22 INT active-lo level 1 6:C 8 23 INT active-lo level 1 6:D 8 22 INT active-lo level 0 1:A 8 19 INT active-lo level 0 1:B 8 18 INT active-lo level 1 4:A 8 17 INT active-lo level 1 5:A 8 24 INT active-hi edge 9 1 8 1 INT active-hi edge 9 0 8 2 INT active-hi edge 9 3 8 3 INT active-hi edge 9 4 8 4 INT active-hi edge 9 5 8 5 INT active-hi edge 9 6 8 6 INT active-hi edge 9 7 8 7 INT active-hi edge 9 8 8 8 INT active-hi edge 9 9 8 9 INT active-hi edge 9 10 8 10 INT active-hi edge 9 11 8 11 INT active-hi edge 9 12 8 12 INT active-lo level 9 13 8 13 INT active-hi edge 9 14 8 14 INT active-hi edge 9 15 8 15 -- Local Ints: Type Polarity Trigger Bus ID IRQ APIC ID PIN# ExtINT conforms conforms 9 0 255 0 NMI conforms conforms 9 0 255 1 ------------------------------------------------------------------------------- MP Config Extended Table Entries: Extended Table HOSED! ------------------------------------------------------------------------------- Here is what we get after fixing mptable(1): AFTER: ------------------------------------------------------------------------------- MP Config Table Header: physical address: 0x000f29c9 signature: 'PCMP' base table length: 356 version: 1.4 checksum: 0x1e OEM ID: 'COMPAQ ' Product ID: 'PROLIANT ' OEM table pointer: 0x00000000 OEM table size: 0 entry count: 36 local APIC address: 0xfee00000 extended table length: 184 extended table checksum: 106 ------------------------------------------------------------------------------- MP Config Base Table Entries: -- Processors: APIC ID Version State Family Model Step Flags 0 0x10 BSP, usable 6 2 1 0x0381 0 0x10 AP, usable 6 8 6 0x383fbff -- Bus: Bus ID Type 0 PCI 1 PCI 9 ISA -- I/O APICs: APIC ID Version State Address 8 0x11 usable 0xfec00000 -- I/O Ints: Type Polarity Trigger Bus ID IRQ APIC ID PIN# INT active-lo level 0 5:A 8 21 INT active-lo level 0 5:B 8 20 INT active-lo level 0 5:C 8 21 INT active-lo level 0 5:D 8 20 INT active-lo level 1 6:A 8 23 INT active-lo level 1 6:B 8 22 INT active-lo level 1 6:C 8 23 INT active-lo level 1 6:D 8 22 INT active-lo level 0 1:A 8 19 INT active-lo level 0 1:B 8 18 INT active-lo level 1 4:A 8 17 INT active-lo level 1 5:A 8 24 INT active-hi edge 9 1 8 1 INT active-hi edge 9 0 8 2 INT active-hi edge 9 3 8 3 INT active-hi edge 9 4 8 4 INT active-hi edge 9 5 8 5 INT active-hi edge 9 6 8 6 INT active-hi edge 9 7 8 7 INT active-hi edge 9 8 8 8 INT active-hi edge 9 9 8 9 INT active-hi edge 9 10 8 10 INT active-hi edge 9 11 8 11 INT active-hi edge 9 12 8 12 INT active-lo level 9 13 8 13 INT active-hi edge 9 14 8 14 INT active-hi edge 9 15 8 15 -- Local Ints: Type Polarity Trigger Bus ID IRQ APIC ID PIN# ExtINT conforms conforms 9 0 255 0 NMI conforms conforms 9 0 255 1 -- MPTABLE OUT OF ORDER! I/O Ints: Type Polarity Trigger Bus ID IRQ APIC ID PIN# ExtINT conforms conforms 9 0 8 0 ------------------------------------------------------------------------------- MP Config Extended Table Entries: -- System Address Space bus ID: 0 address type: I/O address address base: 0x0 address range: 0x3000 -- System Address Space bus ID: 0 address type: I/O address address base: 0x3080 address range: 0xcf80 .... much trimmed .... Note how we go from I/O Ints to Local ints and back to I/O Ints for the last PIC->apic daisy chain entry? -current hangs on this box right now. I will fix it, but I thought I'd pass along the good news about mptable(1). Cheers, -Peter -- Peter Wemm - peter@FreeBSD.org; peter@yahoo-inc.com; peter@netplex.com.au "All of this is for nothing if we don't go to the stars" - JMS/B5 To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-smp" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200101180739.f0I7d6K10125>