VOGONS


First post, by Paul_V

User metadata
Rank Newbie
Rank
Newbie

Greeting to all forum members and fellow retro gamers,
I decided to create a post about Advantech PCM-3343 PC104 motherboard to share some info and hopefully, get some help regarding it's bios.

Some months ago, I got my hands on a pair of PCM-3343 motherboards, which I decided to test as a retro gaming rig.
It has a Vortex86DX cpu, SMI712GF4 videochip and runs AWARD 6.00PG BIOS
While the BIOS has a neat ability to choose the CPU divider (from x1 to x32, as on most Vortex86DX boards), it does not have the ability to disable L1\L2 caches.
None of the utilities I've used are able to work with Vortex86DX cache correctly, or even detect it.
Datasheet on the CPU metions only regulating CPU speed (by adjusting 0A register, which I tested sucessfully)

The first thing I've tried - enabling the hidden options in BIOS, but that didn't work. Disabling cache does nothing, I assume manufacturer just didn't add the code for it.
Moreover, I almost bricked a mobo - DONT USE THE "BIOS FLASH 1.1" UTILITY LISTED ON ADVANTECH SITE FOR PCM-3343 !, use BIOS F12 option (Flash from USB), or the utility for PCM-6743\9343 (VortexDX based)
The utility listed for pcm-3343 is for another model, it will detect the chip and backup it, but it flashes the chip incorrectly. After the first attempt you will not notice any changes, on the second attemp the utility will break the bios ability to boot from any device. The only thing that helped me - using a cheap USB-to-CF adapter, formatting CF card to FAT32, putting original bios file on it (rename it to update.bin), and the flash it using F12 option (none of the other usb sticks I had worked)

Now for the question itself:
This mobo does not have an external BIOS chip. Only one integrated in Vortex86DX itsef. So bricking this particular mobo is super easy.
It has a JTAG port, which can be used to flash the BIOS. The only information I could dig is that the chip can be flashed using a parralel port jtag cable (xilinx\wiggler) and a "JFlash" utility.
The only thing regarding "JFlash" utility i could find is "Flash Memory Programmer for the SA-1110 Microprocessor Development Board". But it's an ARM based board. As far as I know, I can't just connect to JTAG and flash a chip. I need something like BDSL file, which will tell the programmer how to operate with CPU and scan it's chain. I could not find any more info regarding which software I should use and how.
Has somebody succesfully used JTAG on this boards?

Why do I need it:
1) For obvious reasions of being able to unbrick the mobo. (While it is possible to solder external SPI on the mobo, I don't know the registers which will tell the CPU to use external bios, nor yet the understanding of missing components on circuit and how to implement it)
2) I have an idea to attempt to cross-flash the AMI BIOS from the other manufacturer mobo, which use the same components (CPU+video). As Vortex86DX is basically a SoC, it should theoretically work. But I need JTAG to be able to revert thr BIOS should this fail.

Any info or help is much appreciated, I'll try to post any updates on the progress should anyone stumble upn this mobo's.

Reply 1 of 1, by Paul_V

User metadata
Rank Newbie
Rank
Newbie

Small update, guys.
I have sucessfully managed to cross-flash the board to an AMI BIOS variant.
Got a single PCI IRQ table routing error at 00:09:00, I'm sure it's fixable, but now it's no use trying for me.
The result confirmed my suspicions corcerning Vortex86DX CPU speed downclock.

The thing is - the BIOS offers CPU clock division by 1/2/3/4/5/8/16/32.
But the datasheet on the CPU mentions only 1/2/3/4/5/6/7/8 division, which in the end seems to be correct .
The trick is - x16 setting seems to disable L1, while X32 setting seems to disable L1/L2. I have confirmed this by testing - disabling L1/L2 cache in BIOS has no effect on x32. Funny thing - on x16/x32 setting disabling L1 in setmul actually enables it back and makes CPU faster.
All in all - x8 division with disabled caches yields the same result for me as x32. And that is STILL TOO FAST for games like Planet's Edge or ZanyGolf.
Best Nascar Racing experience in my life though.

EDIT: Belay that statment, need more thorough testing. Most of the benchmarks show erratic results.
ex. TOPBENCH showed that with disabled L1\L2, only the CPU divider x2 shows neglectable effect. Others do not have any effect at all.

I hope this info will be usefull to someone.
And it sure would be great if someone with genuine AMI BIOS Vortex86DX could confirm my results.
I also would appreciate any ideas on downclocking this SoC further, as i'm running out of ideas honestly (maybe I need to dig about PCI clocks).
EDIT: According to the datasheet, Vortex86DX can, in fact, be underclocked\overclocked by three hardware strap pins. 800Mhz is the default value with all three straps in tri-state.
Going down to 500 or 600Mhz seems to be a good starting point for downclocking into solid x286\x386 area. The hardest part is to find these pin traces on the motherboard, if at all available.

P.S. Got a response drom DMP concerning JTAG (no response from Advantech yet), claiming it's proprietary (0_o), so no much luck there. But nevertheless, I got the result I wanted.
P.P.S. Added some benchmarks below, to get the basic idea how 4mb SM712GF4 fares.

Attachments

  • bench.PNG
    Filename
    bench.PNG
    File size
    12.74 KiB
    Views
    326 views
    File license
    Public domain
  • 20211208_184739.jpg
    Filename
    20211208_184739.jpg
    File size
    914.26 KiB
    Views
    326 views
    File license
    Public domain
  • 20211208_184039.jpg
    Filename
    20211208_184039.jpg
    File size
    809.87 KiB
    Views
    326 views
    File license
    Public domain