AMD Geode

Since November 2021 I've been working on a video production where I fix a board with an AMD Geode CPU. This page documents my notes. See Geode Repair/Video for details on the production.

Introduction
For a while I've been searching for a small computer with these requirements:


 * Runs real mode DOS programs
 * Has a somewhat antiquated CPU
 * Has an Ethernet card and DOS packet driver
 * Doesn't consume too much power

The use case here is to run my Twitch DOS Bot I've been developing over the years.

After the searching I found that there were a few systems that could approximate this:


 * 1) A Raspberry Pi running DOSBox-X
 * 2) Thin client machines that used VIA CPUs
 * 3) Expensive single-board computers using a Vortex86 chip
 * 4) Cheaper 86Duino boards
 * 5) An old Eee PC 1000HA I had

I eventually decided to go with option 1, a Raspberry Pi emulating DOS.

At least, until I saw an offer on eBay: a used Advantech PCM-9375F for only $50 AUD, which is over $400 less than new.

Why such a huge discount? Video output is broken. Which means you can't really do much with this machine.

I bought it on Nov 07 2021 and received it on Nov 12.

Board specifications
The PCM-9375 A3 specifications shows these points that interest me:


 * AMD Geode LX800 500 MHz CPU (see the AMD Geode LX Processors Data Book for more information)
 * AMD Geode CS5536 chipset (see the AMD Geode CS5536 Companion Device Data Book for more information)
 * Dual RTL8139 10/100 Mbps Fast Ethernet (second requires breakout board that I have)
 * 5V power supply (12V needed for optional LCD)
 * CompactFlash storage
 * 3 RS-232 serial interfaces (only the main serial interface is given a port)
 * 8 GPIO pins

This at minimum would let me run by Internet-connected DOS bot and talk to DOS over a serial port.

I've also not had an x86 board with GPIO before, so that seems like something fun to play with.

Note that the IDE connector on the board is 2.0mm pitch, not the standard 2.54mm pitch most IDE cables use.

TODO: Look at board again and validate and clarify these specifications.

TODO: Include some photos of the board.

Setup
TODO: rename this maybe?

- USB power

- CompactFlash

- Null Modem Cable

- move troubleshooting to its own page

Troubleshooting
The eBay page listed the issue as "I was able to boot Windows 98SE from a Compact Flash card and everything worked fine. It currently refuses to output a video signal that any of my monitors can recognise" which sounds like it could be anything.

It's a little difficult to tell what's wrong with an x86 computer without video output, so I just checked what I could.

Power supply
Connecting the board's 5V rail to my Gophert NPS-1601 power supply caused it to draw up to 1A of current then beep.

There were no short circuits or smoke. I'm assuming the beeping is from the board POSTing.

Looking at the voltage drop with an oscilloscope, there was jitter from current consumption but no huge drops that would cause a brownout.

Video output
Video output caused both my monitors to display a 'Input not supported' message twice during boot:


 * The first was quick just after boot and lasted a second or so, followed by a second of nothing
 * The second message lasts until you reset the board or pull power

This is different to a 'No input' message, so some signal must be generated that the monitor can recognize but still give a failure for.

RAM
In case some memory error was causing the machine to hang during video initialization I swapped the stick with a test one.

No difference at all, so I don't think anything's really wrong with the RAM.

Removing the RAM altogether caused long beeps, presumably by the BIOS.

The original RAM that came with the machine is a Transcend 512M DDR333 stick, and the test one is Kingston 256M DDR333 stick.

Serial output
I connected both a makeshift and proper null modem cable to the serial port on the device. There was no output on it, but my oscilloscope showed the transmit line being held low.

This doesn't mean necessarily mean anything, most BIOSes on consumer hardware (old and modern) don't output on the serial port. This is horrible on many levels ranging from accessibility to troubleshooting or just configuring things if you don't have a monitor.

Clock battery
I removed the clock battery and checked it with my multimeter. It was around 200mV, much lower than the 3V it should provide.

I figured this may have caused some kind of undervoltage data corruption, but booting without the battery doesn't do anything.

The battery is a Rayovac BR1632 (see Rayovac 6099 OEM Reference Guide for more details) coin battery. This is a size smaller than the standard 2032 battery you'd see in a computer so I haven't replaced it yet.

Visual inspection doesn't show any battery leakage on the battery, and I can't really check under the battery holder without de-soldering it. I'm going to assume there wasn't any damage from a leakage event.

Keyboard
I plugged in a standard PS/2 keyboard (a black Acer KB-2971 covered in grime). The system would allow toggling caps lock and num lock as well as make some beeps when pressing keys.

This confirms that the system is active and not physically dead.

Ethernet
I connected the machine to my computer using an Ethernet cable to see if some kind of network boot was being attempted.

No packets arrived at my machine, so it's definitely not trying to boot over the network.

BIOS
I removed the BIOS chip to see how this would affect things.

The system didn't respond to any keypresses and made no noise.

This confirms that the BIOS is responsible for all the behaviour seen so far.

VGA signals
Probing the VGA signal showed the following:


 * Vertical sync was a 60Hz square wave lasting for 40 microseconds
 * Horizontal sync was a 75.02KHz square wave lasting for 1.45 microseconds
 * Red green and blue were all flat signals around 200mV

This seems like the machine is outputting no graphics signal.

I didn't see any visible damage on the board's VGA section so this seems like a software issue.