2019-04-16

Information on DM&P Vortex86DX3 SoC

DM&P Vortex86 SoC series are 32-bit x86 compatible CPUs which are pretty rarely seen outside embedded usage. Original Vortex86 was the same as SiS55x SoC based on Rise mP6 CPU but later designs diverged into the independent unrelated architecture implementations. Unfortunately, there is no information on how and if models are related to each other. Though some specifications are provided in the official page but some information is still left out, possibly accesbile on NDA basis only. At the time of writing this article, wikipedia page was incomplete, partially messy and possibly still incorrect because of the lack of verified sources, it didn't mention anything about EX2 model yet. Nevertheless some models are still produced and one can find solutions made by ICOP Technology or DM&P itself. Since I had a chance to buy Vortex86DX3 based EBOX-3352DX3-AP small PC system last year, I decided to gather and share some information on this SoC, part of it can be challenging to find. I've used several sources like CWID, dmesg, /proc/cpuinfo (NetBSD 8.99.x, SparkyLinux 5.7 with 4.19.0-4-686 kernel version), various datasheets, pages and images.

Vortex86DX3 specifications (mostly from official page, PCI IDs from NetBSD dmesg):

  • DM&P A9126 in BIOS
  • CPUID 0x36504d44
  • Dual-core
  • ~1 GHz frequency
  • 6-stage pipeline
  • 40 nm manufacturing process
  • integrated FPU (1 per core, 2 in general)
    • Implements ANSI/IEEE standard 754-1985 for binary Floating-Point Architecture
  • 8-way 32KB I-Cache, 8-way 32KB D-Cache, 4-way 512KB L2 Cache with write through or write back policy
  • DDR3 control interface, up to 2GB RAM, 32-bit data bus (it runs at 667MHz in my system)
  • Integrated graphics (2D acceleration only), RDC semiconductor (vendor 17f3) PCI ID: 2015.
    • UMA architecture
    • VGA controller
    • 2D Graphics engine support
    • Max display resolution 1920×1440@60Hz with 234MHz video clock
    • Dual Display support: only one display can be 1920×1200, 1 DVO (24bits) & 1 D-SUB or 2 DVO (12bit x 2)
    • Supports H.264 1080P video decode 
  • HD-Audio (Realtek ALC262 is used in my system)
  • Embedded 2MB Flash for BIOS storage
  • ISA bus interface (most likely R6035, RDC semiconductor (vendor 17f3) PCI ID: 6035)
    • AT clock programmable
    • 8/16 Bit ISA device with Zero-Wait-State
  • IDE Controller, R1012, RDC semiconductor (vendor 17f3), PCI ID: 1012.
    • 2 IDE or 2 SD cards
  • 1 port SATA I (1.5 Gb/s)
  • Package: 31x31mm, 720 Ball PBGA
  • Operating temperature -40 to 85
 


CPU supports CMPXCHG8B, CMOV, FXSAVE/FXSTOR instructions, MMX and SSE extensions (no SSE2 or above). It supports page size extension (4MB) and time stamp counter. Because of above it can be probably classified as i686-compatible CPU (it loads i686 Linux kernel successfully). It does not support physical address extension (PAE), but considering maximum 2GB RAM limitation it is not needed. Due to lack of SSE2 and above extensions it may be challenging to use it as a desktop system (all moderns browsers require SSE2 by default, however SSE only build of palemoon browser can be still downloaded manually). /proc/cpuinfo information marks CPU affected by Meltdown, Spectre v1, v2, v4 (speculative store bypass) and even L1TF vulnerabilities but actually it may not be vulnerable to at least some of them, since Linux does that on precaution, not on actual testing results. FPU is built-in. It also has integrated GPU without any 3D acceleration. SoC also supports 1xSATA I, 2xIDE or SD cards, USB 2.0, Fast Ethernet (10/100), PCIe bus, integrated 2MB flash for BIOS, SPI. Additional information also can be found in CWID report in cpu-world.com (report has apparently incorrect halved cache sizes). /proc/cpuinfo can be found below.

/proc/cpuinfo (SparkyLinux 5.7):

processor    : 0
vendor_id    : Vortex86 SoC
cpu family    : 6
model        : 1
model name    : Vortex86DX3
stepping    : 1
cpu MHz        : 1000.051
physical id    : 0
siblings    : 1
core id        : 0
cpu cores    : 1
apicid        : 0
initial apicid    : 0
fdiv_bug    : no
f00f_bug    : no
coma_bug    : no
fpu        : yes
fpu_exception    : yes
cpuid level    : 3
wp        : yes
flags        : fpu pse tsc msr cx8 apic sep pge cmov mmx fxsr sse cpuid
bugs        : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf
bogomips    : 2000.10
clflush size    : 32
cache_alignment    : 32
address sizes    : 32 bits physical, 32 bits virtual
power management:

processor    : 1
vendor_id    : Vortex86 SoC
cpu family    : 6
model        : 1
model name    : Vortex86DX3
stepping    : 1
cpu MHz        : 1000.051
physical id    : 1
siblings    : 1
core id        : 0
cpu cores    : 1
apicid        : 1
initial apicid    : 1
fdiv_bug    : no
f00f_bug    : no
coma_bug    : no
fpu        : yes
fpu_exception    : yes
cpuid level    : 3
wp        : yes
flags        : fpu pse tsc msr cx8 apic sep pge cmov mmx fxsr sse cpuid
bugs        : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf
bogomips    : 2000.04
clflush size    : 32
cache_alignment    : 32
address sizes    : 32 bits physical, 32 bits virtual
power management:

DM&P Vortex86DX3
DM&P Vortex86DX3 SoC


No comments: