Xcore86 CPU in Gecko Edubook

I have been tracking down technical details on the Xcore86 CPU used the the Gecko Edubook laptops. The website for the Xcore86:

http://www.xcore86.com/

However that site is severely lacking in technical detail. However, I discovered from this wikipedia page that the Xcore86 is a rebadged Vortex86:

http://en.wikipedia.org/wiki/Vortex86

The Gecko uses a Vortex86MX chip, and there is a PDF technical specifications file:

ftp://download@ftp.dmp.com.tw/vortex86dx/Vortex86DX_V0.9A_Brief.pdf

...well, that is for the "DX" model, which apparently has the same CPU core. Um, need to do better than that, ok, the pmx-1000 is the consumer-grade version of the Vortex86MX and here is a technical specification file:

http://www.vortex86mx.com/wp-content/uploads/2009/03/PMX-1000_V10_Brief.pdf

...no, that one is very brief, hardly any information.

Anyway, what I can glean from the "DX" specs, the CPU core is a equivalent to a 486SX CPU, plus FPU (maths processor) and GPU (graphics processor) plus lots of other things are on the chip.

The chip is actually manufactured by DMP Electronics in Taiwan:

http://dmp.com.tw/
http://www.vortex86mx.com/

The 486 CPU does not have the MMX instructions, nor the MTRR registers. The kernels that we compile for Puppy are for the "i486", which basically means "486sx + FPU". One thing that is enabled in the kernel config is support for MTRRs, but I have done some research on this and apparently it doesn't matter, the kernel will still work on a CPU that does not have the MTRR registers.

There is a question mark over Xorg and whether it needs the MTRRs. I'll have to check, perhaps that is also configurable prior to compiling the Xorg servers.

There may be some multimedia apps used in Puppy that are configured to expect the MMX instructions, or even some more advanced architectures such as SSE and SSE2. It will be necessary to check when configuring those apps prior to compiling that if these features are enabled, the app can still work if they aren't there.

Anyway, overall conclusion is that the CPU used in the Gecko Edubook is Puppy-compatible, but we will need to be mindful that it lacks MTRR, MMX, SSE, SSE2 when configuring some applications prior to compiling.

Now to confuse the issue... quoting from this site:
http://hkampar.moh.gov.my/modules/news/article.php?storyid=31

The Xcore86 (also known as the PMX 1000) is x586 based System on Chip (SoC) that offers a less than average thermal envelope of the Atom. The Xcore86 uses a x586 core, MMX compatible extensions, Video Core and r6040 Lan on Chip from RDC, HD sound core from Realtek and electronic integration from DMP.

...huh, "MMX compatible extensions"? Why isn't that in any of the official docs?


Posted on 16 Jan 2010, 10:23


Comments:

Posted on 16 Jan 2010, 20:22 by BarryK
Developers site for gecko
There is a developers site for the Gecko and other Xcore86 based computers:

http://www.deviceonchip.com/



Posted on 17 Jan 2010, 2:52 by prehistoric
MMX and MTRR on Xcore86
The reason this is called a x586, and the SIMD multi-media instructions are not called MMX has to do with trademarks. Pentium and MMX are trademarks registered by Intel. This design was not licensed from Intel. They appear to be saying it will execute MMX instructions, without saying anything which will bring Intel lawyers down on them. The core design is a different super-scalar architecture from the Pentium with three pipelines instead of two. The emphasis on audio/video applications is a strong hint that they really have implemented MMX instructions.

MTRR are a similar matter. They appear to have taken the approach of Cyrix with AAR, implementing registers with similar functionality, but differing in name and some details. If you knew how the design was licensed, you would have a better idea.

The final test is to actually run one and see what hardware functions are reported by diagnostic programs. Since you already have compatibility with at least Cyrix and AMD versions of MTRR, I would guess you have compatibility with the version they have licensed.


Posted on 17 Jan 2010, 6:34 by kevin bowers
Hardinfo won't work
I'm running fellow Edubook user pskin's Puppy 431 build for the Gecko (http://murga-linux.com/puppy/viewtopic.php?t=50208). I tried to generate a report from hardinfo, with the intention of posting it here, but it returns an empty file. Any command-line functions you'd have me run? Or??


Posted on 18 Jan 2010, 18:28 by Raffy
Diagrams of Xcore86MX
Some diagrams of Xcore86MX are given here.


Posted on 23 Jan 2010, 5:05 by Anonymous Coward
No MMX
' "MMX compatible extensions"? Why isn't that in any of the official docs? '

Ran SiSoft Sandra against it, and found the following:



Hope this helps.

Also, DMP have their own distro of Linux, X-Linux [1], and provide supplementary packages for Debian and Ubuntu. Perhaps you could get in touch with their developers?

By the way, if you want to get your hands on a Vortex86MX development platform, as listed on Vortex86MX.com, I wouldn't mind donating!

References:
[1] http://www.dmp.com.tw/tech/os-xlinux/


Posted on 26 Jan 2010, 19:59 by Anonymous Coward
No MMX?
' "MMX compatible extensions"? Why isn't that in any of the official docs? '

Ran SiSoft Sandra against it, and found that it does support MMX, as Kevin Bowers has reported, see http://www.flickr.com/photos/46578721@N08/4296160520/sizes/l/in/set-72157623079189553/ . Hope this helps.

Also, DMP have their own distro of Linux, X-Linux [1], and provide supplementary packages for Debian and Ubuntu. Perhaps you could get in touch with their developers?

By the way, if you want to get your hands on a Vortex86MX development platform, as listed on Vortex86MX.com, I wouldn't mind donating!

References:
[1] http://www.dmp.com.tw/tech/os-xlinux/


Posted on 28 Jan 2010, 6:32 by pakt
Vortex86MX/PMX-1000 cpuinfo
Found a printout of cpuinfo for the Vortex86MX/PMX-1000 online (it is a '586' and has 'mmx'):

/proc/cpuinfo: processor : 0
/proc/cpuinfo: vendor_id : Vortex86 SoC
/proc/cpuinfo: cpu family : 5
/proc/cpuinfo: model : 8
/proc/cpuinfo: model name : 05/08
/proc/cpuinfo: stepping : 6
/proc/cpuinfo: cpu MHz : 1000.208
/proc/cpuinfo: fdiv_bug : no
/proc/cpuinfo: hlt_bug : no
/proc/cpuinfo: f00f_bug : no
/proc/cpuinfo: coma_bug : no
/proc/cpuinfo: fpu : yes
/proc/cpuinfo: fpu_exception : yes
/proc/cpuinfo: cpuid level : 1
/proc/cpuinfo: wp : yes
/proc/cpuinfo: flags : fpu tsc cx8 mmx
/proc/cpuinfo: bogomips : 2000.41
/proc/cpuinfo: clflush size : 32
/proc/cpuinfo: power management:
/proc/cpuinfo: