Neither (as licensed by ARM) has the logic required to consider this a multi-core chip (no cache coherency logic, bus snooping etc). An
Thats why I said dual-core, but you're correct in indicating that this could be a point of confusion. The GP2X has two ARM processors (on the same core), one of them is for Linux and the other is for whatever you feel like programming it to do .. Linux acts as the Host operating system, the 2nd CPU sits idle until its given code to run ..
SMP kernel should still only find one CPU though the other could be used as a _very_ smart peripheral.
From the standpoint of "Multi-processing", Linux doesn't know about the second CPU on the GP2X at all - its ignorant of the 2nd CPU in any sense other than seeing it as a device and giving you a way to get code onto it/share memory with it - you have to load the 2nd CPU with your own code and run your own sub-program.
GPH ship the GP2X with a video codec sub-program for the internal movie-player; others have built an audio processing sub-program, an OpenGL software-renderer (which is already getting use in ports), some games put their AI on the 2nd CPU, etc.
With the independent work of the #gp2xdev community, its quite easy to write code for the 2nd CPU and run it alongside your Linux app ..
Note that an ARM 940 does not (if memory serves) have any MMU or even an MPU (you could of course run uClinux on that though).
You don't need either of those things to write smart code for the 2nd CPU ..
I also have to declare bias in that I work for one of the parties mentioned above, and that I am speaking purely for myself.
1. GamePark 2. MagicEyes 3. ARM, Inc? -- ; Jay Vaughan