Editing AMD Geode/Troubleshooting

Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.

Latest revision Your text
Line 88: Line 88:
* DOTREF - 48MHz input clock
* DOTREF - 48MHz input clock


After looking at the [https://wiki.laptop.org/mediawiki/images/8/83/XO-1_Schematics.pdf OLPC XO-1 Schematics] and [https://manualzz.com/doc/29656964/amd-geode%E2%84%A2-lx-epic-rdk-reference AMD Geode LX EPIC RDK Schematics] which both use LX processors and inspecting the PCM-9375 board itself I figured out the following:
After looking at the [https://wiki.laptop.org/mediawiki/images/8/83/XO-1_Schematics.pdf OLPC XO-1 Schematics] and [https://manualzz.com/doc/29656964/amd-geode%E2%84%A2-lx-epic-rdk-reference AMD Geode LX EPIC RDK Schematics] which both use LX processors and the PCM-9375 board itself I figured out the following:


* The OLPC XO-1 uses a resistor voltage divider to generate DVREF
* The OLPC XO-1 uses a resistor voltage divider to generate DVREF
Line 155: Line 155:


== Rebuilding solder failure ==
== Rebuilding solder failure ==
I managed to spend a lot of time and effort rebuilding the stuff I messed up to the point it works again. I actually couldn't find the ceramic capacitors I ordered so I skipped them. I documented this failure in [[AMD Geode/Video 2]] .
I managed to spend a lot of time and effort rebuilding the stuff I messed up to the point it works again. I actually couldn't find the ceramic capacitors I ordered so I skipped them.


Alpine Linux does give a nice login prompt again.
Alpine Linux does give a nice login prompt again.
Line 169: Line 169:
* DAC status registers always say the DAC is below 0.35V
* DAC status registers always say the DAC is below 0.35V
* VGA to HDMI gives the same weird signal on a monitor
* VGA to HDMI gives the same weird signal on a monitor
* Using external DVREF doesn't work at all
* One time VGA output was proper white
* One time VGA output was proper white
* Another time VGA output was blue
* Another time VGA output was blue
Line 180: Line 181:
* The DRSET resistor is 1.21K to GND
* The DRSET resistor is 1.21K to GND
* The VGA resistors seem fine and correct values
* The VGA resistors seem fine and correct values
*When external DVREF is used, the shunt drops to 800mV, the rail somehow drops to 960mV
*When external DVREF is used, the shunt drops to 800mv, the rail somehow drops to 960mV


I reflowed some solder pins that looked a little lacking to me. I managed to break the second Ethernet chip doing this. Fixing it would require running wires for some PCI lines probably. I put nail polish on the exposed pins to protect from the elements.
I reflowed some solder pins that looked a little lacking to me. I managed to break the second Ethernet chip doing this. Fixing it would require running wires for some PCI lines probably.


I put some contact cleaner on the VGA connector pins and that didn't help.
== Future ideas ==
Here's some things I'll try:


== Even more measurements ==
* BIOS flash
Still heading down this trail of madness:
*Deoxit VGA connector
 
*Nail polish/lacquer the Ethernet port pins (or epoxy?)
* DAVdd drops to around when Linux initializes video
*Clock battery
* Bridging DAVdd and the 3V line causes Linux to display white text
I removed a capacitor and replaced a resistor with a wire, this fixed the DAVdd rail I think.
 
At this point I believe the DAC is working, so the problem might be related to clocking.
 
I added in a fresh clock battery and it had no effect.
 
== BIOS modding ==
I checked the VGA output and it seems fine when Linux uses it, but during boot it just doesn't use VGA out at all. It's seemingly likely that the BIOS is deciding not to output to VGA. I decided to try flashing a known good BIOS, and if that didn't help I'd tweak the settings using a BIOS editor.
 
I installed FreeDOS 1.2 and used the following commands in AUTOEXEC.BAT to output over serial:
 
MODE COM1: 9600,N,8,1,P
CTTY COM1
 
This didn't work in FreeDOS 1.3 for some reason, perhaps its serial is broken.
 
I downloaded the following tools:
 
* [http://awdbedit.sourceforge.net/ awdbedit-1.0_bin.zip]
*[http://www.lejabeach.com/CBROM.html CBROM32_198.EXE] (listed as CBROM 1.98)
* [http://www.lejabeach.com/Modbin6.html modbin62.04.03.exe]
* [http://ftp.emacinc.com/LegacyProducts/SBC/pcm-9375/Drivers/BIOS/ awd829.EXE]
* [https://www.wimsbios.com/awardflasher.jsp awdflash899.exe]
* [https://downloadt.advantech.com/download/downloadsr.aspx?File_Id=1-1E1MK Awdflash.exe]
I downloaded the following BIOS versions:
* [http://ftp.emacinc.com/LegacyProducts/SBC/pcm-9375/Drivers/BIOS/9375f113.zip 9375f113.zip]
* [http://ftp.emacinc.com/LegacyProducts/SBC/pcm-9375/Drivers/BIOS/9375f114.zip 9375f114.zip]
* [http://ftp.emacinc.com/LegacyProducts/SBC/pcm-9375/Drivers/BIOS/9375v115.zip 9375v115.zip]
* [http://ftp.emacinc.com/LegacyProducts/SBC/pcm-9375/Drivers/BIOS/9375v117.zip 9375v117.zip]
* [https://www.advantech.com/support/details/bios?id=1-22Y526 9375V115.BIN]
* [https://www.advantech.com/support/details/bios?id=1-2DYMY1 9375V116.BIN]
* [https://www.advantech.com/support/details/bios?id=1-2DYMZE 9375V117.BIN]
* [https://www.advantech.com/support/details/bios?id=1-2DYN1X 9375V118.BIN]
I also found [http://ftp.emacinc.com/LegacyProducts/SBC/pcm-9375/Drivers/BIOS/readme.txt a warning on CRT support with BIOS 1.17] and [https://www.advantech.com/support/details/faq?id=1+FY+68 how to make a CRT-only PCM-5862E BIOS].
 
Using modbin6 I was able to check the BIOS settings and found that it's already set to CRT and doesn't have the broken default 1.17 has, so I'm not even sure this method is going to work.
 
Using awdbedit I was able to decompress and extract parts of the BIOS.
 
I wasn't able to use any version of awdflash to flash any BIOS, at least I didn't think it worked. It requires VGA output to display its menus. I might try Uniflash or flashrom in the future.
 
This is also risky in case I break the BIOS. The chip is a PM49FL004TJ chip and I don't have a flasher for it.
 
I ordered 5 of those chips off eBay, my plan is to hot swap the chip and use that for BIOS foolery and keep the current one as a known good.
 
== Ethernet desoldering ==
I attempted to desolder the RTL8139DL chip I had broken earlier. Even with a large amount of flux and 40 minutes of hot air rework at various it didn't come off, instead making a flux mess and possibly damaging the board.
 
I tried again the next day, changing my technique to use a larger nozzle, putting the nozzle closer to the chip and using tweezers to push the chip upwards to try and defeat surface tension. It worked!
 
I prepared to re-solder the 6 lost pads, belonging to the following pins:
 
* GND
* AD21
* AD20
* AD17
* IRDYB
* TRDYB
 
Only to find out only AD17, TRDYB were visibly connected. It's unclear where IRDYB connects, if at all.
 
== BIOS flashing ==
One night I was bored so I installed Debian 12 in QEMU then transferred it to the board's CompactFlash. The remaining Ethernet connector didn't work but I'm not sure if it ever connected.
 
I had some trouble with the RAM detecting. The board wouldn't beep due to lack of RAM but it also wouldn't initialize. Under a microscope the joints look bad, but I'm a little more suspicious of the SODIMM connection pins in the socket itself. The RAM doesn't feel like it snaps it properly, or maybe it's not making proper contact.
 
Only one Ethernet port shows, but even that one doesn't work. Maybe I've fried that chip? Though it wouldn't really enumerate. There was a resistor I lost when desoldering, that might be important.
 
The Molex USB to power connector also seems to have failed, because the crimping on it failed its once job of handling physical strain. I decided to just solder the crimp and be gentle with it for now.
 
Once Debian was up and running I used flashrom and chip hot swapping to try BIOS versions v1.18, v1.17, v1.16 and v1.15. None of them had any changes.
 
I gave up after a while until I decided to try the TV connector jumper on the board. I had tried this previously and had mixed results as it just seems to stop the boot altogether. When I tried booting it the machine didn't power at all. Removing the jumper also kept the system not booting.
 
I tried swapping RAM sticks but overall it seems like the slot really is failing in some way. But when it did work something interesting happened: The screen completely worked. I managed to see the BIOS screens and GRUB.
 
I'm tempted to believe this whole thing is some kind of memory issue, but that doesn't make much sense given OSes seemed to run just fine.
 
== Ethernet pins ==
While working on video 3 I was seriously, seriously confused about why IRDYB and TRDYB wouldn't be connected. It mades no sense, this is REQUIRED for bus transfer. The mystery is that I was looking at the chip upside down.
 
The real broken pins are:
 
* CLKRUNB
* REQB2
* GNTB2
* AVDD
* RTT3
* LWAKE
 
Most of these are test pins. The only ones that were connected was AVDD and RTT3, both should be fine left disconnected!
 
== Ethernet testing ==
I decided to try and figure out if the reason the remaining Ethernet was broken was due to me using the wrong type of Ethernet cable: I usually run small cross-over cables from the switch on my desk but the board may need an actual cable.
 
I booted the board and confirmed VGA works, but I was having serious problems with serial garbage. I had to send a break to get the Linux prompt to show itself.
 
Surprisingly, the board no longer acknowledges it has any Ethernet ports. It doesn't seem to show up in lspci either. Really not sure what is happening here.
 
I tried to reboot the board and go in to setup to check that. The delete key didn't work. In fact only some keys on my PS/2 keyboard worked. Same with a USB to PS/2 adapter. I did try to
 
VGA turned garbled very fast while the machine was running. I lifted the board up and found the RAM stick fell out. That's not normal, right? RAM sticks aren't supposed to do that.
 
Also the reset button isn't working. I think this started when working on the VGA port, not the BIOS or Ethernet.
 
I think the next step is clear: Fix the RAM slot.
 
== To-do ==
I need to:
 
* Repair traces
* Reinstall Ethernet
* Validate the USB power cable
* Fix the RAM
* Run a memory test using memtest86+ and its serial mode
* Debug why remaining Ethernet is broken
* Debug why PS/2 is broken
* Check if it was the BIOS breaking the VGA
*Repair the reset button
Please note that all contributions to JookWiki are considered to be released under the Creative Commons Zero (Public Domain) (see JookWiki:Copyrights for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource. Do not submit copyrighted work without permission!

To edit this page, please answer the question that appears below (more info):

Cancel Editing help (opens in new window)