SigmaStar SSD201 is a dual-core Cortex-A7 processor with 64MB RAM onchip that is designed for smart HD displays. We’ve previously seen it in Industio 7-inch smart display running Linux, but if you want to modify anything you’d need sign an NDA before getting the SDK.
Luckily there’s an open-source community named linux-chenxing that aims to bring mainline support to those low-cost SigmaStar processor to mainline, the same way linux-sunxi is working on Allwinner processors. Daniel Palmer noticed MYZR recently launched GW300 4G LTE industrial gateway with specifications that looked familiar.
- Processor – Arm Cortex-A7 dual-core processor @ 1.2GHz
- Memory – 64MB RAM
- Storage – 128MByte Flash
- Connectivity – Ethernet and 4G LTE with high-gain antenna
- Serial – RS485/ RS232 via 5-pin terminal block
- Misc – RTC
- Power Supply – 12V to 24V DC input
- Dimensions – 127.7 x 87.5 x 30 mm
- Temperature Range – -20°C to +75°C
The gateway runs Linux and supports ModBus and MQTT for all sort of industrial IoT applications. But just to make sure Daniel bought a sample and took it apart…
It turns about this particular model is based on a SigmaStar SSD202D dual-core Cortex-A7 processor that is supposed to come with 128MB RAM, and also includes a LongSung M5710 4G LTE Cat 1 modem (See AT commands set PDF), ISL1208 RTC chip, SIPEX 3232EE RS232 transceiver, and SP3485 RS485 transceiver.
What even more interesting that he managed to port mainline U-boot and mainline Linux to the gateway:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 |
... ! U-Boot SPL 2021.01-rc4-00137-gb3f4baadc5b4-dirty (Jan 24 2021 - 18:57:06 +0900) cpuid: 410fc075, mstar chipid: f0 normal power on ... DRAM: 128 MiB ... Warning: emac@2a2000 (eth0) using random MAC address - ce:f7:e1:8a:a2:5d eth0: emac@2a2000 => run boot_rescue ... No size specified -> Using max size (16887808) Read 16887808 bytes from volume rescue to 22000000 ## Loading kernel from FIT Image at 22000000 ... Using 'gw302' configuration Trying 'kernel@0' kernel subimage Description: unavailable Type: Kernel Image Compression: uncompressed Data Start: 0x220000b0 Data Size: 3450368 Bytes = 3.3 MiB Architecture: ARM OS: Linux Load Address: 0x22800000 Entry Point: 0x22800000 Hash algo: crc32 Hash value: e0a8fe63 Hash algo: sha1 Hash value: d18e5f4096db31bfe2f41dcf7be5234dc2e5455e Verifying Hash Integrity ... crc32+ sha1+ OK ## Loading ramdisk from FIT Image at 22000000 ... Using 'gw302' configuration Trying 'ramdisk@0' ramdisk subimage Description: unavailable Type: RAMDisk Image Compression: uncompressed Data Start: 0x223743a0 Data Size: 2666374 Bytes = 2.5 MiB Architecture: ARM OS: Linux Load Address: 0x22e00000 Entry Point: unavailable Hash algo: crc32 Hash value: 40cc8f2a Hash algo: sha1 Hash value: 4d0663b152157f6257d08a8b34564b10c43fdb2c Verifying Hash Integrity ... crc32+ sha1+ OK Loading ramdisk from 0x223743a0 to 0x22e00000 ## Loading fdt from FIT Image at 22000000 ... Using 'gw302' configuration Trying 'fdt@2' fdt subimage Description: unavailable Type: Flat Device Tree Compression: uncompressed Data Start: 0x2235f430 Data Size: 42786 Bytes = 41.8 KiB Architecture: ARM Load Address: 0x22d00000 Hash algo: crc32 Hash value: ae1c50c7 Hash algo: sha1 Hash value: ec0fded850a2e7aa1dc82574a105ee34db6f2b4f Verifying Hash Integrity ... crc32+ sha1+ OK Loading fdt from 0x2235f430 to 0x22d00000 Booting using the fdt blob at 0x22d00000 Loading Kernel Image Loading Ramdisk to 26cfb000, end 26f85f86 ... OK Loading Device Tree to 26ced000, end 26cfa721 ... OK Starting kernel ... [ 0.000000] Booting Linux on physical CPU 0x0 [ 0.000000] Linux version 5.11.0-rc4+ (daniel@shiro) (arm-buildroot-linux-gnueabihf-gcc.br_real (Buildroot 2020.08-1318-ge7000b15fe) 10.2.0, GNU ld (GNU Binutils) 2.1 [ 0.000000] CPU: ARMv7 Processor [410fc075] revision 5 (ARMv7), cr=10c5387d [ 0.000000] CPU: div instructions available: patching division code [ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache [ 0.000000] OF: fdt: Machine model: GW302 ... [ 11.223520] block ubiblock0_4: created from ubi0:4(rootfs) [ 11.229606] cfg80211: Loading compiled-in X.509 certificates for regulatory database [ 11.244896] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7' [ 11.251480] clk: Not disabling unused clocks [ 11.255797] ALSA device list: [ 11.258778] No soundcards found. [ 11.264211] Freeing unused kernel memory: 1024K [ 11.293848] Run /init as init process |
That’s U-boot 2021-01 RC4 with Linux 5.11 RC4 boot from the SPI NAND flash. You can check out the full boot log if you are interested. Many things are already working in Linux 5.11, and Daniel submitted a patch to add support the M5710 modem in Linux 5.12. Eventually, OpenWrt may be ported to the gateway if there’s enough interest from the community. You’ll find additional information on Github.
There may seen be more progress made on open-source software around SigmaStar processors, as I’ve been told the company released the SDK publicly on their website where registration is required together with a China Mobile number, and Widora is current developing a SSD202D module and posted (parts of) the SDK on Github.

Jean-Luc started CNX Software in 2010 as a part-time endeavor, before quitting his job as a software engineering manager, and starting to write daily news, and reviews full time later in 2011.
Support CNX Software! Donate via cryptocurrencies, become a Patron on Patreon, or purchase goods on Amazon or Aliexpress