VOGONS


First post, by WJG6260

User metadata
Rank Member
Rank
Member

Hello all,

I apologize if this is an amateurish question, but I seem to have some trouble understanding whether either the Cyrix MediaGXm or the National Semiconductor Geode GX1 supports the CMPXCHG8B instruction. I see some vague/confusing references in the data sheets of both, but as a self-admitted complete amateur to higher-order CPU understanding and design, I don’t exactly know what I’m reading.

Also, just to confirm—is the National Semiconductor Geode GXm a direct one-for-one clone of the Cyrix MediaGXm, or are there any architectural differences?

I’d really appreciate the help and, for your convenience, I’ve attached links to the Geode GXm data sheet, and the Geode GX1 data sheet.

If you’re wondering, I’m working on a sort of joking/strange/comedic project for my small YouTube channel, where I want to get Windows XP running on something 486-related, since it won’t actually run on a 486. I’m figuring that, should one of these SoCs support this instruction, this could be another route than just the Pentium Overdrive, because they’re lineal descendants of the Cyrix 5x86.

Again, thanks for all the help! I really appreciate it!

MediaGXm Datasheet: http://datasheets.chipdb.org/Cyrix/MediaGX/gxmdb_v20.pdf

Geode GX1 Datasheet: https://www.amd.com/system/files/TechDocs/goe … tabook-rev5.pdf

-Live Long and Prosper-

Feel free to check out my YouTube and Twitter!

Reply 1 of 19, by jtchip

User metadata
Rank Member
Rank
Member

Short answer, yes. It's in the datasheet, for the GXm it's in section 9.2.1.2 table 9-19 where bit 8 of EDX is 1, indicating CMPXCHG8B is supported.
This blog post has the cpuinfo dump from Linux for a GX1 and, under flags, cx8 indicates support for CMPXCHG8B. It also supports CMOV so it's really an i686-class CPU. I actually have this board and was able to get Debian 9 and 10 to run on it (Debian 8 being the last version with i586 support).
I'm fairly certain the Geode GXm was simply a rebranded Cyrix MediaGXm, in fact the CPUID vendor returns CyrixInstead right up to the Geode GX1, where some of the newer batches did switch to GeodebyNSC.

Reply 2 of 19, by red-ray

User metadata
Rank Oldbie
Rank
Oldbie

I have a SIV save file from one and can confirm it has CX8 support and would be interested to know if WXP will install and run as I have only seen one running W2K.

file.php?id=105363

I seem to recall WXP + 2K3 refused to install on my Rise mP6 (Lynx) as it does not have CX8 so I installed it with an AMD K6 CPU installed. Having done this I then reverted to the mP6, booted 2K3 and it runs!

file.php?id=105367

Reply 3 of 19, by WJG6260

User metadata
Rank Member
Rank
Member
jtchip wrote on 2021-03-15, 03:47:

Short answer, yes. It's in the datasheet, for the GXm it's in section 9.2.1.2 table 9-19 where bit 8 of EDX is 1, indicating CMPXCHG8B is supported.
This blog post has the cpuinfo dump from Linux for a GX1 and, under flags, cx8 indicates support for CMPXCHG8B. It also supports CMOV so it's really an i686-class CPU. I actually have this board and was able to get Debian 9 and 10 to run on it (Debian 8 being the last version with i586 support).
I'm fairly certain the Geode GXm was simply a rebranded Cyrix MediaGXm, in fact the CPUID vendor returns CyrixInstead right up to the Geode GX1, where some of the newer batches did switch to GeodebyNSC.

Thank you for clarifying! This makes a lot more sense. I'm a bit lost when it comes to complicated datasheets, and was starting to doubt myself. It's interesting that the GX1 is i686 class. Do you think there's any real implications to that? From what I've read, the GX1 is not really a substantial advancement over the GXm and GXLV, but just a refinement and more of the same. Huh, maybe I'll try Debian on my GX1 just for curiosity's sake.

My Geode GXm returns the CyrixInstead string for the CPUID vendor, so I guess that makes sense then! I wonder why they switched later. Are there any real differences between the later model Geode GXms and the earlier ones?

-Live Long and Prosper-

Feel free to check out my YouTube and Twitter!

Reply 4 of 19, by WJG6260

User metadata
Rank Member
Rank
Member
red-ray wrote on 2021-03-15, 08:09:
I have a SIV save file from one and can confirm it has CX8 support and would be interested to know if WXP will install and run […]
Show full quote

I have a SIV save file from one and can confirm it has CX8 support and would be interested to know if WXP will install and run as I have only seen one running W2K.

file.php?id=105363

I seem to recall WXP + 2K3 refused to install on my Rise mP6 (Lynx) as it does not have CX8 so I installed it with an AMD K6 CPU installed. Having done this I then reverted to the mP6, booted 2K3 and it runs!

file.php?id=105367

Oh wow this is awesome! I'll give it a go then and report back! If I can get it going, I'm going to run some benchmarks and I'll get a SIV save file from it!

That's pretty interesting that the mP6 continued on to boot 2k3! I wonder if that's an indication of sorts that other CPUs like the i486 family, which definitely do not support CX8, would actually work in a similar way?

-Live Long and Prosper-

Feel free to check out my YouTube and Twitter!

Reply 5 of 19, by jtchip

User metadata
Rank Member
Rank
Member
WJG6260 wrote on 2021-03-15, 19:05:

It's interesting that the GX1 is i686 class. Do you think there's any real implications to that? From what I've read, the GX1 is not really a substantial advancement over the GXm and GXLV, but just a refinement and more of the same.

It just means it'll be able to run newer OSes, like current versions of Debian, for instance. AFAICT from the datasheets, the GXLV and GX1 are essentially die-shrinks of the GXm, they all return the same CPUID of family 5 model 4 after all. It's the GX2 that has improvements like larger L1 cache, adds L2 cache, and so reports itself as model 5.

WJG6260 wrote on 2021-03-15, 19:05:

My Geode GXm returns the CyrixInstead string for the CPUID vendor, so I guess that makes sense then! I wonder why they switched later. Are there any real differences between the later model Geode GXms and the earlier ones?

There's a cost to making changes so NSC would have just waited until the silicon had to be revised for a new stepping, for instance, to slip in the new vendor name. Any changes are usually noted in specification updates but I haven't come across one for the GXm.

Last edited by jtchip on 2021-03-17, 00:11. Edited 1 time in total.

Reply 6 of 19, by red-ray

User metadata
Rank Oldbie
Rank
Oldbie
WJG6260 wrote on 2021-03-15, 19:06:

That's pretty interesting that the mP6 continued on to boot 2k3! I wonder if that's an indication of sorts that other CPUs like the i486 family, which definitely do not support CX8, would actually work in a similar way?

I have been wondering for some time if Server 2003 and/or Windows XP would boot on a i486, but don't have a i486 system to try. To do this you would need to install with a i486 Pentium Overdrive CPU and once installed swap back to the i486. It's also possible that i486/DX2 and/or i486/DX4 may be OK, but i486/DX50, etc.. may not.

I suspect that the CMPXCHG8B is mainly needed for the locking code sequences on Multi-Processor systems.

Reply 7 of 19, by jtchip

User metadata
Rank Member
Rank
Member

This article suggests not as the alternate coding was removed in 5.1 (aka XP). It also suggests that Rise CPUs do support CMPXCHG8B even if they do not advertise it in CPUID, which explains why Server 2003 works.

Reply 8 of 19, by WJG6260

User metadata
Rank Member
Rank
Member
jtchip wrote on 2021-03-15, 20:11:
It just means it'll be able to run newer OSes, like current versions of Debian, for instance. AFAICT from the datasheets, the GX […]
Show full quote
WJG6260 wrote on 2021-03-15, 19:05:

It's interesting that the GX1 is i686 class. Do you think there's any real implications to that? From what I've read, the GX1 is not really a substantial advancement over the GXm and GXLV, but just a refinement and more of the same.

It just means it'll be able to run newer OSes, like current versions of Debian, for instance. AFAICT from the datasheets, the GXLV and GX1 are essentially die-shrinks of the GXm, they all return the same CPUID of family 5 model 4 after all. It's the GX2 that has improvements like larger L1 cache, adds L2 cache, and so reports itself as model 5.

WJG6260 wrote on 2021-03-15, 19:05:

My Geode GXm returns the CyrixInstead string for the CPUID vendor, so I guess that makes sense then! I wonder why they switched later. Are there any real differences between the later model Geode GXms and the earlier ones?

There's a cost to making changes so NSC would have just waited until the silicon had to be revised for a new stepping, for instance, to slip in the new vendor name. Any changes are usually noted in specification updates but I haven't come across one for the GXm.

Ah I see, that makes sense. It's a shame that the GX2 isn't available in a means by which one could upgrade an older GX1- or GXm-based system. I wonder how large the performance delta is between the GX2 and GX1, as it seems that the GX1 is only marginally--if at all--faster than the GXm.

And I see, that makes sense as to the vendor update. It's interesting that you mentioned the lack of specification updates--it seems as if Cyrix's documentation was a mess, and National Semiconductor didn't improve things, that's for sure!

-Live Long and Prosper-

Feel free to check out my YouTube and Twitter!

Reply 9 of 19, by WJG6260

User metadata
Rank Member
Rank
Member
red-ray wrote on 2021-03-15, 21:55:

I have been wondering for some time if Server 2003 and/or Windows XP would boot on a i486, but don't have a i486 system to try. To do this you would need to install with a i486 Pentium Overdrive CPU and once installed swap back to the i486. It's also possible that i486/DX2 and/or i486/DX4 may be OK, but i486/DX50, etc.. may not.

I suspect that the CMPXCHG8B is mainly needed for the locking code sequences on Multi-Processor systems.

I'm curious as well. If I can get this off the ground, I'm going to use it as proof-of-concept for a Pentium Overdrive setup. I'm wondering if something weird like the U5SX would work, as, from my understanding, the CPUID information of the UMC 486s is strange, and Windows 98SE often erroneously reports them as Pentium MMXes. That being said, that might also be an issue, no? Because the OS might try to execute certain sequences of which the UMC 486 just doesn't support.

Out of curiosity, could this be because the multiprocessor specification and HAL changed between 2000 and XP?

-Live Long and Prosper-

Feel free to check out my YouTube and Twitter!

Reply 10 of 19, by WJG6260

User metadata
Rank Member
Rank
Member
jtchip wrote on 2021-03-15, 22:29:

This article suggests not as the alternate coding was removed in 5.1 (aka XP). It also suggests that Rise CPUs do support CMPXCHG8B even if they do not advertise it in CPUID, which explains why Server 2003 works.

Huh, go figure! Thanks for sharing this! I'll have to check this out for sure!

-Live Long and Prosper-

Feel free to check out my YouTube and Twitter!

Reply 11 of 19, by red-ray

User metadata
Rank Oldbie
Rank
Oldbie
WJG6260 wrote on 2021-03-16, 14:37:

the CPUID information of the UMC 486s is strange, and Windows 98SE often erroneously reports them as Pentium MMXes.

After reading what Geoff Chappell said I assume that the Rise mP6 has CMPXCHG8 and possibly CMOV, but CPUID 1 EDX fails to have the bits set.

The only UMC CPUID information I have is from a UMC Family 4 Model 2 on which CPUID 1 EDX returned zero so does not even report/have an FPU!

I am intrigued to know what SIV would report for a UMC CPU that W9x reports as Pentium MMX and wonder if someone can post similar to as below so I can see.

file.php?id=105459

Reply 12 of 19, by jtchip

User metadata
Rank Member
Rank
Member
WJG6260 wrote on 2021-03-16, 14:34:

I wonder how large the performance delta is between the GX2 and GX1, as it seems that the GX1 is only marginally--if at all--faster than the GXm.

Per-clock the GX2 is likely going to be marginally faster than the GX1, it's probably only the doubled, and split, L1 cache (I got mixed up, it's the LX that has L2 cache). The GX1 should be identical in performance per-clock to the GXm, they appear to have the same architecture.

WJG6260 wrote on 2021-03-16, 14:34:

And I see, that makes sense as to the vendor update. It's interesting that you mentioned the lack of specification updates--it seems as if Cyrix's documentation was a mess, and National Semiconductor didn't improve things, that's for sure!

At this point all we have are what can be found in public, AMD probably has a copy of the GXm spec update somewhere.

WJG6260 wrote on 2021-03-16, 14:37:

Out of curiosity, could this be because the multiprocessor specification and HAL changed between 2000 and XP?

It probably comes down to maintainability, less code means fewer test cases and (probably) fewer bugs. Microsoft did the same thing with 64-bit Windows 8.1 when that required CMPXCHG16B, obsoleting socket 939, and earlier, Athlon 64s.

Reply 13 of 19, by Schule04

User metadata
Rank Member
Rank
Member

XP definitively runs on my Geode. I think it's a GX1. However I can't find any XP drivers for its CS5530A companion chip.

At 300MHz the system feels like using a sub-100 MHz Pentium, even Win98 is pretty slow.

The built in OPL3 emulation sounds like it's running at 22KHz.

Reply 14 of 19, by WJG6260

User metadata
Rank Member
Rank
Member

Thanks a million everyone, really! This about answers all of my questions, and I definitely have to say that I've learned quite a lot! I really do appreciate the help, and have to say that the knowledge of each and every of you all has been invaluable!

red-ray, I just wanted to let you know that, at some point, I will test my UMC 486 in Windows 98SE. If I have one that misidentifies as a Pentium MMX, I'll send you an SIV read-out!

-Live Long and Prosper-

Feel free to check out my YouTube and Twitter!

Reply 15 of 19, by Schule04

User metadata
Rank Member
Rank
Member

Some pics from AIDA64.

The attachment gx1.PNG is no longer available

Device manager. Just letting task manager run used up around 15% of the CPU, the rest was used by some dotnet optimisation running in the background.

The attachment gx2.PNG is no longer available

CMPXCHG8B is supported

The attachment gx3.PNG is no longer available

Even AIDA64 isn't sure which CPU I have, I guess they really are identical

The attachment gx4.PNG is no longer available

The PCI devices. The Cyrix ones lack usable XP drivers

The attachment cpuy.PNG is no longer available

CPU-Z

https://valid.x86.fr/hlwfb2

Reply 16 of 19, by Schule04

User metadata
Rank Member
Rank
Member
The attachment hdinfo1.PNG is no longer available
The attachment hdinfo2.PNG is no longer available

Reply 17 of 19, by red-ray

User metadata
Rank Oldbie
Rank
Oldbie
Schule04 wrote on 2021-03-19, 03:16:

Even AIDA64 isn't sure which CPU I have, I guess they really are identical

No they are not as DIR1 allows different models to be detected and AIDA64 also fails to report the L1 cache.

I just uploaded SIV 5.57 Beta-07 in which I added support for your GXm-Cx5530A system. Please will you test it for me and post the two Menu->File->Save Local files so I can check if SIV now reports the system correctly?

Reply 18 of 19, by Nexxen

User metadata
Rank l33t
Rank
l33t

I installed WXp Sp2 on a GXM 200.
Worked but I had an issue with explorer.exe crashing and I couldn't solve it. I dropped Xp because each installation was like 60+ minutes long.
Companion chip was a Cx5520.
Also ACPI was supported in W98SE but not in W2K and Xp, annoying.

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

Reply 19 of 19, by Schule04

User metadata
Rank Member
Rank
Member
red-ray wrote on 2021-03-20, 13:50:
Schule04 wrote on 2021-03-19, 03:16:

Even AIDA64 isn't sure which CPU I have, I guess they really are identical

No they are not as DIR1 allows different models to be detected and AIDA64 also fails to report the L1 cache.

I just uploaded SIV 5.57 Beta-07 in which I added support for your GXm-Cx5530A system. Please will you test it for me and post the two Menu->File->Save Local files so I can check if SIV now reports the system correctly?

Here you go. If you're wondering about the CPU frequency, I've changed it from 300 to to 333MHz using a jumper on the board.

The Mainboard is an "Aquarius systems 5BLMP10E".