linux-chenxing

Intro

This is intended to be a repository for info on the MStar/SigmaStar SoCs. The name is a parody of linux-sunxi for Allwinner SoCs. MStar in Chinese is chenxing and the newer SigmaStar name is xingchen.

This will probably never get as big as linux-sunxi so github pages should be more than enough.

Before MStar was bought out by MediaTek the company offered a wide range of SoCs focused at STB and camera applications. Since the company was bought by MediaTek the camera SoC part of the company has been spun out into the fully owned subsidiary called Sigmastar. The camera SoCs that are now marketed by Sigmastar will be the main focus here.

It’s worth noting that the MStar/Sigmastar camera SoCs seem to be derived from the SoCs made by Alpha Imaging Technology which was merged into MStar at some point.

Porting Progress Matrix

u-boot

  load u-boot SPL from vendor IPL load u-boot from SPI NOR
infinity1 yes yes
infinity2m wip wip
infinity3 yes yes
infinity6 wip wip
infinity6b0 wip wip
mercury5 yes yes

linux

  boots to shell from initramfs boots to shell from local storage full system from local storage with network etc boots without blobs (no vendor IPL) smp
infinity1 yes yes yes    
infinity2m yes       yes
infinity3 yes yes yes    
infinity6 wip wip wip    
infinity6b0 yes wip wip    
mercury5 yes yes yes yes  

Reverse Engineering Progress

This table is an attempt to collect all of the different part numbers for the different families and the resources that have been found to reverse engineer each of them.

If possible the data codes will have the earliest and latest known date codes so that we can tell roughly when each type of chip was produced.

family part date codes sample device acquired boot rom dumped firmware dumped SDK acquired product brief acquired datasheet acquired
cedric                
  mst786             yes
infinity1           yes[0]    
  msc313 1647B yes yes        
  msc313d 1638B            
infinity2m                
  msr620              
  msr620q 1717S            
  ssr621d 1945S yes yes yes      
  ssd201           partial  
  ssd202           partial  
infinity3           yes[0]    
  msc313e 1744B yes yes yes   yes  
    1916S            
  msc316dc 1929S yes same as msc313e yes   yes  
  msc316q           yes  
  msc318           yes  
infinity6                
  ssc323 1928S            
    1936J            
  ssc325 1937S yes yes yes      
infinity6b0                
  ssc335de              
  ssc337de              
mercury2     yes          
  msc8328 1744     yes      
mercury5                
  ssc8336 1915S yes   yes      
  ssc8336n 1918S yes yes yes      
    1936S            
  ssc8339d 1838A         yes  

Mainlining progress

See mainlining

SoCs

Spotted a chip that isn’t here? Please see adding new chips.

MIPS based

MStar used to make a lot of MIPS based SoCs for STBs. These aren’t that interesting in themselves but the IP blocks used in the MIPS SoCs were carried forward to the later ARM chips so any datasheets that can be found for the MIPS SoCs might help with reverse engineering the current ARM based ones.

STB

32bit ARM based

Napoli?

Cedric Family

Infinity IP camera family

Infinity1

Infinity2

Infinity2m

references to infinity2m in SDK. seems to be a multi-core part.

Infinity3

Infinity 4

Doesn’t seem to exist.

Infinity5

Infinity6

Infinity6b0

Infinity 6e

Mercury family

Mercury2

Mercury5

Misc

64bit ARM based

According to the code that is in the wild and SigmaStars page there are some Cortex-A53 based chips.

MediaTek chips that contain have some MStar heritage

Non-SoC chips

Injoinic PMICs

Injoinic seem to be the recommended PMIC vendor for these chips. Maybe like the Allwinner/Xpowers relationship?

Silan chips

Silan MEMs accelerometers seem to be used for a lot of the dash cam devices.

IP blocks

See IP.

ISP/Debug Tool

See ISP.

Blobs, headers, layouts

Vendor uboot, kernels..

Vendor SDKs

Sources of firmwares for reverse engineering

To get the device tree out of the kernel you can use binwalk + extract-dtb and dtc.

binwalk -e <firmware.bin>
extract-dtb.py <extracted firmware dir><uncompressed kernel blob>
dtc -I dtb -O dts -o out.dts <extracted dtb that looks right>

Development boards

Links

Buying chips

See wheretobuy