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
infinity yes yes
infinity3 yes yes
infinity6 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
infinity yes yes yes
infinity3 yes yes yes
infinity6 wip wip wip
mercury5 yes wip wip

Reverse Engineering Progress

  sample device acquired boot rom dumped firmware dumped SDK acquired product brief acquired datasheet acquired
cedric            
- mst786           yes
infinity1       yes[0]    
- msc313 yes yes        
infinity3       yes[0]    
- msc313e yes yes yes   yes  
- msc316dc yes       yes  
- msc316q         yes  
- msc318         yes  
infinity6            
- ssc325 yes   yes      
mercury5            
- ssc8836n yes yes yes      
- ssc8339d         yes  

SoCs

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

ARM based

Cedric Family

Infinity IP camera family

Infinity 1

Infinity 3

Infinity 5

Infinity 6

Mercury family

Mercury 2

Mercury 5

Misc

IP blocks

See IP.

ISP/Debug Tool

See ISP.

Blobs, headers, layouts

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>