VOGONS


C440GX and 700mhz Xeons

Topic actions

First post, by drpogi

User metadata
Rank Newbie
Rank
Newbie

Hi,

Just re-acquired (still mad I let go of my old one many years ago) a C440GX motherboard. I have some 400mhz 1mb P2 Xeons that work fine with it, boots to FreeBSD and I can do all my usual things.

I grabbed some 2.8v 700mhz 2mb P3 Xeons, and they aren't working so well. BIOS recognizes them as 'Pentium Pro 400mhz'; if I go into setup it shows the correct CPU ID (6A1), but shows 256kb cache and clock rate is blank. At the end of POST I get:

8163: Unable to apply BIOS Update for Processor #1
8162: Unable to apply BIOS Update for Processor #2
8162: Unable to apply BIOS Update for Processor #2

(Yes, the second line is repeated) If I continue, FreeBSD boots, detects a P3 400mhz, runs stable, and performs about the same as the P2 Xeons. I've updated the BIOS to 8.1 and BMC to 1.07; didn't help.

I don't know what to do to get these running at 700mhz, any ideas?

Reply 1 of 3, by drpogi

User metadata
Rank Newbie
Rank
Newbie

Some pictures also. I've got 2gb of unbuffered CL2 RAM and a pair of 147gb Seagate Cheetahs on an Intel SRC32 Raid controller, 256mb cache.

Reply 2 of 3, by drpogi

User metadata
Rank Newbie
Rank
Newbie

A small amount of progress. The system now shows "Pentium Pro 700mhz", I didn't do anything other than leave the system powered off for a while. When I came back it was running at 700mhz instead of 400mhz. I still get the "Unable to apply BIOS Update" error messages at the end of POST. I booted into FreeBSD, it also reports 700mhz. I timed a kernel compile, it completed only a few seconds faster than my L440GX 600mhz Katmai setup. So the 700s still aren't running as they should.

I'm now trying to add hte 6a1 (700mhz 2mb) microcode to the BIOS. It's a Phoenix BIOS, so I'm playing around with cbrom195.exe. The C440GX BIOS is split into multiple files labeled P08-108.{BIO, BI1, ... BIA}, but cbrom seems to want a single file to work with. I'm about to go wrestle with that some more.

I'm using a Win XP live CD on the C440GX system to run cbrom (I only have OSX and FreeBSD here otherwise). It happens to have CPUZ as well, and people always want to see that so I took a picture. It looks as expected, nothing funny to me.

Reply 3 of 3, by drpogi

User metadata
Rank Newbie
Rank
Newbie

Made some progress! The "Unable to apply BIOS Update" errors are now gone. I modified the BIOS to include the 6a1 microcode and flashed it onto the system. Here's my steps:

1. Grab the 6a1 microcode from https://github.com/platomav/CPUMicrocodes/tree/master/Intel

2. Grab the LGA775 (yes, really) microcode swapper from https://github.com/ChipCE/LGA775-Phoenix-bios … crocode-swapper

3. I made a small hack to force the microcode swapper to always memcpy 2kb of the microcode; it was reading a length parameter from the input files which for the C440GX BIOS / 6a1 microcode was set to 0. The code compiled with a few harmless warnings using OSX's xcode clang, I expect it should compile and run on FreeBSD and Linux also. (no idea about windows)

4. Cat the C440GX BIOS files (P08-0108.*, starting with .BIO and ending with .BIA) into one file.

5. Run the microcode swapper on the combined BIOS file. Use the undocumented '-unsafe' option. I replaced slot 5, CPUID 671, with the 6a1 code from step 1. BTW, does anyone know which Xeon products were CPUID 671? cpu-world only shows AMD products for this CPUID.

6. Split the modified BIOS file back into separate files sized 65696 bytes each. They must be named the same as the original, P08-0108.*

7. Flash the modified BIOS, do the usual settings reset and configuration.

The BIOS still reports "Pentium Pro 700mhz" at POST and still reports 6a1, 256kb cache for both processors in the settings. But, there are otherwise no more errors or holdups on boot. Curiously dmesg now identifies a specifically PIII Xeon, instead of the more generic 'PIII/Celeron/Xeon'.

Performance in FreeBSD is unchanged with this modified BIOS: these 2mb 700s take 5m30s to compile my FreeBSD 6.4 kernel, while my dual Katmai 600mhz takes 5m33s.

The plot thickens! Next, I booted into linux (from scratch!) to see what cpuinfo says:

$ cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 10
model name : Pentium III (Cascades)
stepping : 1
cpu MHz : 697.210
cache size : 2048 KB
physical id : 0
siblings : 1
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 2
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 mmx fxsr sse
bogomips : 1376.25

processor : 1
vendor_id : GenuineIntel
cpu family : 6
model : 10
model name : Pentium III (Cascades)
stepping : 1
cpu MHz : 697.210
cache size : 32 KB
physical id : 0
siblings : 1
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 2
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 mmx fxsr sse
bogomips : 1384.44

Weird! One CPU has 2mb cache, the other has 32kb cache.

And that's where I have to leave it for now, I haven't had time to research and tinker further. I might find something to run pinned to each CPU and compare performance.

Does anybody know what I can do to get the 2mb cache showing up right on the second CPU?