VOGONS


First post, by Paul_V

User metadata
Rank Member
Rank
Member

Hi, everyone.

I'm searching for an Insyde ExpressROM BIOS file or a dump for a Geode LX/CS5536.
It is used in a variety of industrial or development motherboards, here is the copy of the guide:
http://web.cse.ohio-state.edu/~zhang.574/Xpre … 01-1%5B1%5D.pdf

Unfortunately, I'm not able to find a copy anywhere on the net.
A link for evaluation copy from the guide is long gone.

If anyone happens to own a motherboard that uses Insyde BIOS, a dump would be greatly appreciated.

Reply 1 of 29, by Horun

User metadata
Rank l33t++
Rank
l33t++

Hmm yeah no rom files on the archived website: http://web.archive.org/web/20060620032842/htt … esite/index.cfm
example http://web.archive.org/web/20060622070155mp_/ … RDK/EPICRDK.cfm top link to Xpressrom leads no where.
Also the Tawain website does not appear to have the rom's with a quick search: http://web.archive.org/web/20060502063707/htt … tw/en/index.asp
There are other Geode LX+CS5536 SBC, one by Jetway J8F9 has a downloadable bios but is award bios. https://www.jetwaycomputer.com/J8F9.html
Maybe someone else will have better luck finding an Xpressrom bios....

Hate posting a reply and then have to edit it because it made no sense 😁 First computer was an IBM 3270 workstation with CGA monitor. Stuff: https://archive.org/details/@horun

Reply 2 of 29, by Paul_V

User metadata
Rank Member
Rank
Member

Thanks for your time and effort, Horun.

Yes, archive links are dead too, I should've mentioned it in my post.
Insyde BIOS was also used by such brands as Kontron, Lippert, WinSystems.
Could not find any on their sites either.

I forgot to mention, that I did actually found one from the link below:
https://www.winsystems.com/product/ppm-lx800-g/

But it seems to lack the whole menu section, where you setup Multipliers and PLL clocks.
And finding an editor for that kind of BIOS is next to impossible.

I probably should also clarify what I'm trying to achieve:
Insyde BIOS has a whole section for setting up various Multipliers for CPU and GLIU.
LX architecture seems to be extremely flexible at setting clock speeds. For example, page 554 here:
https://www.amd.com/system/files/TechDocs/332 … LX_databook.pdf

Yet, I'm unable to get CPU speed below 166Mhz (33.5x5, and it works only if you also downclock memory from 200mhz to 100mhz. Without memory downclock, the lowest CPU multiplier working is 7 )
LX has a bit tricky architecture.

Reply 3 of 29, by Horun

User metadata
Rank l33t++
Rank
l33t++

Hmm the table on page 556 shows lowest CPU speed is 166Mhz as default by bootstrap. am no genius with these things but like other early chipsets the DRAM clock speed is co-dependent on the CPU FSB,
for the memory controller to work proper it must match certain multiplier/divider of cpu fsb or it looses Sync/Async... so if run lower CPU FSB then it also must have lower Mem clock.
According to table 6-87 at CPU 166Mhz the multiplier is 4 (so would be 42Mhz FSB iirc)... just an observation

Hate posting a reply and then have to edit it because it made no sense 😁 First computer was an IBM 3270 workstation with CGA monitor. Stuff: https://archive.org/details/@horun

Reply 4 of 29, by Paul_V

User metadata
Rank Member
Rank
Member
Horun wrote on 2022-07-30, 23:27:

Hmm the table on page 556 shows lowest CPU speed is 166Mhz as default by bootstrap. am no genius with these things but like other early chipsets the DRAM clock speed is co-dependent on the CPU FSB,
for the memory controller to work proper it must match certain multiplier/divider of cpu fsb or it looses Sync/Async... so if run lower CPU FSB then it also must have lower Mem clock.
According to table 6-87 at CPU 166Mhz the multiplier is 4 (so would be 42Mhz FSB iirc)... just an observation

Yes, and that's where DDR's DLL (Delay-locked loop) also comes into play, which prevents memory clock from going out of spec frequency boundaries.
It can be turned off, and some BIOSes even have this option.
I'm currently figuring out chipset and memory registers, will try to check some things manually if I won't find a suitable BIOS.
If it can clock lower, good. If it can't, good to know also 😀

Reply 5 of 29, by Petrozawodsky

User metadata
Rank Newbie
Rank
Newbie

Hello.
Maybe it helps: https://file.remont-aud.net/dumps_1/s_10-02-2 … 900_Comfort.zip

Can anybody help with ultilities for work with Geode BIOS dumps?
This bios is locked for entering to menues. Not Del, nor F1 are not worked.

I need to boot from USB-flash drive, but this BIOS is locked to boot only from the IDE-drive.

Reply 6 of 29, by Petrozawodsky

User metadata
Rank Newbie
Rank
Newbie
Petrozawodsky wrote on 2023-06-03, 18:47:
Hello. Maybe it helps: https://file.remont-aud.net/dumps_1/s_10-02-2 … 900_Comfort.zip […]
Show full quote

Hello.
Maybe it helps: https://file.remont-aud.net/dumps_1/s_10-02-2 … 900_Comfort.zip

Can anybody help with ultilities for work with Geode BIOS dumps?
This bios is locked for entering to menues. Not Del, nor F1 are not worked.

I need to boot from USB-flash drive, but this BIOS is locked to boot only from the IDE-drive.

Pleae, help.

Reply 7 of 29, by Paul_V

User metadata
Rank Member
Rank
Member
Petrozawodsky wrote on 2023-07-19, 15:08:

Pleae, help.

I'm sorry, but I'm afraid you won't get much help there. It's proprietary industrial equipment through and through.
No tools I could find would do any good, it's BIOS is probably proprietary one too.

Reply 8 of 29, by Petrozawodsky

User metadata
Rank Newbie
Rank
Newbie
Paul_V wrote on 2023-07-22, 13:28:
Petrozawodsky wrote on 2023-07-19, 15:08:

Pleae, help.

I'm sorry, but I'm afraid you won't get much help there. It's proprietary industrial equipment through and through.
No tools I could find would do any good, it's BIOS is probably proprietary one too.

Some investigations tells that BIOS is ordinary, but tweaked.
rle.exe DOS-utility can unpack that content.
I think, it enough to find, how to change BIOS settings manually or enter to BIOS menus.
Here boot options from that BIOS: NONE, Hard Drive, USB Hard Drive/Flash Drive, USB CD-ROM Drive.

Reply 9 of 29, by hooddy

User metadata
Rank Newbie
Rank
Newbie

If there is anyone alive and wanna it i have two geode lx 800 bios dump. And im search a way to edit bios. To be clear a way to change some settings in one dump equal to another one.

And ya should to try shift+f8 to enter hidden settings.

Reply 10 of 29, by Nexxen

User metadata
Rank l33t
Rank
l33t
hooddy wrote on 2024-03-31, 21:54:

If there is anyone alive and wanna it i have two geode lx 800 bios dump. And im search a way to edit bios. To be clear a way to change some settings in one dump equal to another one.

And ya should to try shift+f8 to enter hidden settings.

Whatever you have, post it here.
Thanks

PC#1 Pentium 233 MMX - 98SE
PC#2 PIII-1Ghz - 98SE/W2K

Reply 11 of 29, by hooddy

User metadata
Rank Newbie
Rank
Newbie
Nexxen wrote on 2024-03-31, 22:24:

Whatever you have, post it here.
Thanks

Here it is. Its from similar netbooks based on some Chinese Malata netbooks. Different in some starting setting like splashscreen, default screen resolution and onboard keyboard.

Reply 12 of 29, by Paul_V

User metadata
Rank Member
Rank
Member
hooddy wrote on 2024-03-31, 21:54:

If there is anyone alive and wanna it i have two geode lx 800 bios dump. And im search a way to edit bios. To be clear a way to change some settings in one dump equal to another one.

And ya should to try shift+f8 to enter hidden settings.

Thanks a lot!

It's been a while, could not find where I stashed my previous motherboard (I think it was from Advantech, which is an AWARD based mobo)
But I tested both BIOS'es on some futjitsu thin client motherboard and both worked like a charm.
I also found a compatible AWARD based one with PLL settings and did some testing.

The lowest I could downclock is 166Mhz for both CPU and RAM (133Mhz CPU boots but fails to load DOS)
CPU frequency can go down only if you downlock memory first.
Unfortunately, both BIOS'es (AWARD and INSYDE) do not allow disabling memory DLL to downclock it further.
At 166Mhz, Topbench scored close to Pentium 266 MMX with cache on and 386DX@40Mhz with cache off. Still pretty fast
And did I mention native 1600x1200 resolution in DOS? Niiiice. And it does not suffer from performance issues at 1600x1200 with sierra game engines, unlike 855gm
Also Insyde XpressROM guides mention built-in OPL3 emulation through AC97 (although only GX-1 is mentioned), imagine the possibilities with the right firmware...
Maybe sometime I'll revisit the project.

I wish I could help you with editing, but my initial search did not yield much result, aside of what's already been mentioned in this topic.
There are some editors floating around the web, but they are for newer UEFI H20
If your dumps are the same BIOS, but have different settings, you could try finding and modifying those differences in dissasembler or with hex editing
Also AMD Geode seems to allow cross-flashing, which requires a donor motherboard BIOS with a matching Super I\O controller.

The last ditch effort would be asking Insyde Software directly.

Reply 13 of 29, by hooddy

User metadata
Rank Newbie
Rank
Newbie

Im glad it helps. About bios modding yep it may changed with hex editin. There is nothing special to do even not import export modules coz all settings is existed in both of thus dump (but splash screens so heck with it). I need just change startup defaults from one state to another - screen resolution, keyboard type and maybe ata settings to 80 conductor type and cpu clock for auto. All this presets already existed i just need to make it deafult so my netbook not requred onboard battery to store it and works fine with no attachet external perifery like monitor and keyboard.

Reply 14 of 29, by hooddy

User metadata
Rank Newbie
Rank
Newbie

And well no Insyde software deny in help. At least the one available e-mail at their site. Found some decompiler (which useless with no compiler and to change settings i don't need those tools i suppose) and logo reader.

And found some Insyde roms but not for Geode cpu. Dunno ya need it in here or not.

Reply 15 of 29, by Paul_V

User metadata
Rank Member
Rank
Member

You could also try searching something like "CGUTIL congatec System Utility"
Claims to update and modify AMI / Insyde based ROMs. But only boot logo modification is mentioned for Insyde. Module modification section is probably for AMI-only

Reply 16 of 29, by hooddy

User metadata
Rank Newbie
Rank
Newbie
Paul_V wrote on 2024-04-06, 21:35:

You could also try searching something like "CGUTIL congatec System Utility"
Claims to update and modify AMI / Insyde based ROMs. But only boot logo modification is mentioned for Insyde. Module modification section is probably for AMI-only

Well its placed here https://www.congatec.com/en/products/qseven/conga-qa3/#tab3 but I didn't receive admin approve for registration and can't download it.

Reply 17 of 29, by Paul_V

User metadata
Rank Member
Rank
Member

I'm writing down this info in case someone else would need it.
After a couple days of fiddling I can more or less make some conclusions:

If you have a system with LX800\CS5536, have access to BIOS chip and nessecary tools\skills, you may try cross-flashing it with firmware from another similar LX800 MoBo.
It should work in most cases provided:
1) CPU and companion chip match.
2) Super I/O chip also matches or is compatible register-wise
3) If RAM chips are soldered, they have the same characteristics (often there's no SPD chip either and memory init comes from BIOS code)
4) Peripheral devices like LAN\PCI\VGA should work after swapping corresponding ROMs,editing PCI Tables or changing default BIOS setting for panel\resolution (Award\AMI)
5) Proprietary stuff like FPGA may or may not work, but the system should boot in any case. May also be custom PLL circuit, but I have not seen that yet.

This can be considered as a workaround for MoBo's with restricted BIOS. There's also a coreboot build for LX800, but I've not tried that.
Of course, there may be caveats. Like a non-working temperature sensor, which forces Linux installation to halt, because it reads "255" value.

My exprements mostly involved Fujitsu-Siemens Futro A220 and Advantech PCM-9375
The former successfully worked with Insyde\AWARD\AMI. W83627HF is a very common I/O chip.
The latter is a real pain, as it uses SCH3114 for Super I/O. Not many manufactures did use it. But on the other hand, there's no real need for flashing it as Advantech uses standard Award BIOS.

As for downclocking - 133Mhz is the maximum I could get, though not very stable.
This CPU cannot clock lower than memory. And memory cannot clock lower than that, because DDR DLL does not work below 125Mhz (according to JEDEC datasheet)
I tried disabling DLL (Delay Locked Loop) through MSR registers, but without any results so far. System just freezes or crashes.

Other than that - if BIOS allows you to set Manual CPU\RAM speeds beforehand, ignoring H\W straps, you can then change those settings on the fly through MSR address 4C000014h (editing MSR with AUTO setting in BIOS makes system freeze)
So, it would not be very difficult to make programm like cpuspd to set LX800 multipliers.

Reply 18 of 29, by StefanPutureanu

User metadata
Rank Newbie
Rank
Newbie

I have done some reverse engineering on an Insyde BIOS made for the WYSE Sx0 S50 machine with a GX500 CPU and the CS5536 companion chip.

I think all the legacy Insyde BIOS-es have the same structure. I have made a blog with lots of information, including the BIOS Boot Block IDA disassemble where the clocks are being set up.

Unfortunately there is no NVRAM token to change for easy underclocking the system. The BIOS user interface is only updateing this NVRAM tokens when you make a change, then the system is restarting and BIOS functions read this NVRAM variables to know what settings to apply.

To add a new menu setting in the user interface is almost impossible, only if that setting was there from the beginning and the machine manufacturer have stripped it out.

The BIOS boot block is always provided by the chipset manufacturer (AMD in this case) together with a document that let you customize the BIOS.

There is a link with this document in my blog. XpressROM Firmware_funcspec is the name of the file. You can see there all the BIOS menus that have been provided by the AMD.

Anyway, for other settings like CPU clock you will need to read the CS5536 datasheet to find the MSRs that need to be set for this, then find the BIOS function that does that and patch the values manually with a hex editor.

My blog:
https://wysereverseengineering.blogspot.com/?m=1

There is so much information about this Insyde BIOS that is impossible to cover everything here.

I'm personally looking for a piece of code from this Geode machines BIOS. The Xpress Audio VSM (it is not system department - it can be ported from one BIOS to another).

Thanks for the provided dumps, I will look in them, maybe I will find this code.

Reply 19 of 29, by Paul_V

User metadata
Rank Member
Rank
Member
StefanPutureanu wrote on 2024-08-25, 19:39:
My blog: https://wysereverseengineering.blogspot.com/?m=1 […]
Show full quote

My blog:
https://wysereverseengineering.blogspot.com/?m=1

There is so much information about this Insyde BIOS that is impossible to cover everything here.

I'm personally looking for a piece of code from this Geode machines BIOS. The Xpress Audio VSM (it is not system department - it can be ported from one BIOS to another).

Thanks for the provided dumps, I will look in them, maybe I will find this code.

Thanks! Definitely will look into it.
I have a couple of those machines myself. So far, I've been unable to find a suitable BIOS for it. And it's pretty terrible as retro PC (no windows 95\98 drivers, limited BIOS, no PS/2, etc)
Sx0 has a pretty unique combination of GX2 CPU and CS5536 companion IC (other brands mosly use CS5535) and some proprietary hardware INIT.

AFAIK, no VSM exist for GX2 (GX433\500). It was a feature of it's predecessor - GX1.
And most files included in this topic are for GX3 (LX800).
I have successfully cross-flashed some GX3 based motherboards with AWARD and AMI BIOSes, so INSYDE XpressROM is not an issue for me anymore.
Now I can set any multiplier I want both through BIOS and MSR, the only issue I've left is disabling DDR DLL on boot.

If you're interested - I have a bunch of GX2 based BIOSes from various industrial motherboards (mostly AWARD), as well as a reference schematic for Sx0.
The only INSYDE based one I have is for EPX-GX500.