I’m back home from the Interop Labs, and I am starting the my next technical project. Soon, it will be initiative season in California’s political cycle, which means that political surveys, telemarketers, and presumably, push pollers will soon be upon us. I intend to build an Asterisk server to keep them away from my phone. I also want a PBX so that I can continue to study VoIP, especially VoIP on 802.11. Before I could start working on Asterisk, though, I had to get the motherboard BIOS straightened out.
I’m back home from the Interop Labs, and I am starting my next technical project. Soon, it will be initiative season in California’s political cycle, which means that political surveys and telemarketers will soon be upon us. I intend to build an Asterisk server to keep them away from my phone. I also want a PBX so that I can continue to study VoIP, especially VoIP on 802.11. I don’t have a basement to stash a server in, so once again, I started researching low-noise parts to build a living-room quiet host system for Asterisk.
Under the influence of Silent PC Review, I decided to use an AMD Turion64 chip in a desktop, since their incredibly low power should help build a low-noise system. The article states that the MSI RS482M-IL was the only motherboard they tested to correctly support the Turion64. Although I was leery of using an ATI-based board in Linux, Asterisk does not require great graphics performance. (This is very different from MythTV, where nVidia-based graphics chips are practically a necessity.)
When I first assembled the system, I couldn’t get the CPU speed selection to work correctly. When the kernel booted, it would print out the following message indicating that it was unable to change speeds:
powernow-k8: no PSB or ACPI _PSS objects
Digging around, I learned that this message is printed by the powernow-k8 driver when it’s unable to find out the processor’s voltage settings from the BIOS. It can happen when Cool ‘n Quiet or PowerNow! are disabled, or when the processor is not supported. In my case, the BIOS that shipped with the board were version 1.4. When I checked the MSI web site, I noted with hope that BIOS version 1.5 updated the CPU ID.
Unfortunately for me, upgrading the BIOS was a non-trivial task. I’d built the system without a floppy disk, so I had to yank a floppy drive out of another computer, find a boot disk that would let me copy the BIOS and flasher program to a RAM disk since my hard drive was already happily installed with Linux, and then, hardest of all, find a good floppy disk! I eventually found an ancient DOS 6.2 “step-up” disk that was good, and I could successfully boot the RAM drive-enabled Windows ME image from bootdisk.com. (Although the MSI site says the board does not support Windows98/ME, it’s the graphics chip in the board that lacks support. You can still boot text-mode to flash BIOS just fine.)
Oddly enough, the first floppy drive I used was keyed incorrectly and therefore was installed “flipped,” connecting pin 1 to pin 38. When I blindly installed the keyed cable, the floppy drive activity light came on when the system was powered on and refused to read the disk. Tracing the cable and making out the small pin numbers on the motherboard showed me the error of my ways, but also ate nearly half an hour.
Once the BIOS were updated, the powernow-k8 driver successfully read power information, and reported two values for the core CPU voltage:
powernow-k8: Found 1 AMD Athlon 64 / Opteron processors (version 1.50.4) powernow-k8: 0 : fid 0x0 (800 MHz), vid 0x16 (1000 mV) powernow-k8: 1 : fid 0x8 (1600 MHz), vid 0xa (1300 mV)
As an interesting aside, the fifth page of the SPCR Turion64 review noted that one of the differences between the Turion and the Athlon64 CPU speed switching code is that the Turion reports speeds in increasing order (and hence, power consumption), while the Athlon64 reports them in descending order. When I looked at the report from the BIOS in my MythTV system, which runs a Winchester-core A64, sure enough, the speeds were reported in descending order:
powernow-k8: Found 1 AMD Athlon 64 / Opteron processors (version 1.50.4) powernow-k8: 0 : fid 0xc (2000 MHz), vid 0x6 (1400 mV) powernow-k8: 1 : fid 0xa (1800 MHz), vid 0x8 (1350 mV) powernow-k8: 2 : fid 0x2 (1000 MHz), vid 0x12 (1100 mV)
The SPCR article also warned that the MSI board reads the voltage incorrectly, which can be plainly seen from information that the powernow-k8 driver gets from the BIOS. The two speeds should be 1.6 GHz at 1.2V, and 800 MHz at 0.9V. When I reported the bug to MSI, they replied that the Turion isn’t officially supported. I argued that the board already supports the Turion quite well, and that the BIOS team simply needs to change the voltage information in the BIOS. They passed my report on to the BIOS team, but I am not holding my breath to see
All in all, I have some regrets about purchasing the MSI board. It doesn’t correctly support the Turion CPUs, which was the whole reason for purchasing it. Getting system monitoring (lm_sensors) running on the ATI southbridge looks like it will require some patches, too. I wish I had delayed a couple of days in purchasing the board. I was looking for a micro-ATX socket 754 board that supported Cool ‘n Quiet. The day after purchasing the MSI board, I saw this report in the SPCR forums that the Asrock K8NF4G-SATA2 supports CnQ as well, and it looks like some of the system voltage controls are a good bit more sophisticated than the MSI board.
In any case, now that I have the system board set up for low power consumption, I can move on to getting Asterisk running on the computer.


http://www.silentpcreview.com/forums/viewtopic.php?t=29313&postdays=0&postorder=asc&start=60
You might want to check out a post most of the way down on this forum discussion. It relates to how the voltages (as you pointed out in your article above) are misinterpreted by most desktop boards for mobile 754 cpus. However, when searching for the powernow-k8 patch mentioned there are snippets of info on the net which seem to suggest patches the kernel module are not necessary any more? Could it be that the powernow-k8.c code has been fixed for buggy bioses?
For Linux bios updating without a floppy I found this page invaluable:
http://www.linuxinsight.com/how-to-flash-motherboard-bios-from-linux-no-dos-windows-no-floppy-drive.html