Skip navigation

i.MX Processors

4 posts

GmSSL is an open source cryptographic toolbox that supports SM2 / SM3 / SM4 / SM9 and other national secret (national commercial password) algorithm, SM2 digital certificate and SM2 certificate based on SSL / TLS secure communication protocol to support the national security hardware password device , To provide in line with the national standard programming interface and command line tools, can be used to build PKI / CA, secure communication, data encryption and other standards in line with national security applications. For more information, please access GmSSL official website


Software environments as the belows:

Linux kernel: imx_4.14.98_2.0.0_ga

cryptodev: 1.9

HW platform: i.MX6UL, i.MX7D/S, i.MX8M/MM, i.MX8QM/QXP.

The patches include the following features:

1, Support SM2/SM9 encryption/decryption/sign/verify/key exchange, RSA encryption/decryption, DSA/ECDSA sign/verify, DH/ECDH key agreement, ECC & DLC & RSA key generation and big number operation and elliptic curve math by CAAM hardware accelerating.

2, run "git apply 0001-Enhance-cryptodev-and-its-engine-in-GmSSL-by-CAAM-s-.patch" under folder sources/poky, and "git apply 0001-Add-public-key-cryptography-operations-in-CAAM-drive.patch" under folder sources/meta-fsl-bsp-release for patch these codes.

3, GmSSL Build command:

$ tar zxvf GmSSL-master-iMX.tgz

cd GmSSL-master-iMX

(For i.MX8M/MM, i.MX8QM/QXP)

source /opt/arm-arch64/environment-setup-aarch64-poky-linux 

$ ./Configure -DHAVE_CRYPTODEV -DUSE_CRYPTODEV_DIGESTS -DHW_ENDIAN_SWAP  --prefix=~/install64 --openssldir=/etc/gmssl --libdir=/usr/lib no-saf no-sdf no-skf no-sof no-zuc -no-ssl3 shared linux-aarch64

$ make 

$ make install                            /*image and config file will be installed to folder ~/install64 */


(For i.MX6UL, i.MX7D/S)

$ source /opt/arm-arch32/environment-setup-cortexa7hf-neon-poky-linux-gnueabi

$ ./Configure -DHAVE_CRYPTODEV -DUSE_CRYPTODEV_DIGESTS --prefix=~/install32 --openssldir=/etc/gmssl --libdir=/usr/lib no-saf no-sdf no-skf no-sof no-zuc -no-ssl3 shared linux-armv4

$ make 

$ make install                            /*image and config file will be installed to folder ~/install32 */


4, How to use GmSSL:

copy image gmssl to /usr/bin on i.MX board; copy gmssl and to /usr/lib on i.MX board; copy folder etc/gmssl to /etc/ on i.MX board. copy test examples (dhtest, dsatest, rsa_test, ecdhtest, ecdsatest, eciestest, sm3test, sms4test, sm2test, sm9test) under GmSSL-master-iMX/test  to U disk for running.

You can run test examples by the following commands:

#insmod /lib/modules/4.14.98-imx_4.14.98_2.0.0_ga+g5d6cbeafb80c/extra/cryptodev.ko


and speed test commands:

#gmssl speed sm2
#gmssl genrsa -rand -f4 512
#gmssl speed dsa
#gmssl genrsa -rand -f4 1024
#gmssl speed rsa
#gmssl genrsa -rand -f4 2048
#gmssl speed ecdsa
#gmssl genrsa -rand -f4 3072
#gmssl speed ecdh
#gmssl genrsa -rand -f4 4096




Linux kernel: imx_4.14.98_2.0.0_ga

cryptodev: 1.9

硬件平台: i.MX6UL, i.MX7D/S, i.MX8M/MM, i.MX8QM/QXP.





The way in which people digest information is changing, as more distractions lead way to shorter attention spans and multi-tasking becomes even more important.  The new training series from NXP, i.MX RT Tech Minute, is intended to address this.  The need for technical information present in things like webinars, applications notes, white papers, etc. is important.  But what if you do not even know which topic you are interested in?  How do you know where to get started?

The i.MX RT Tech Minute provides 1-2 minute intro videos about key topics that engineers are interested in.  Things like motor control, security, memory expansion – even PCB layout.  The links from the webpage, will then also direct you to where to find more information.  This way, engineers can dig deeper in to the topics that are most important to them. 

So, if you have a minute to spare, please check out the i.MX RT Tech Minute and see what areas you might want to dig deeper into.

Have an idea for a future Tech Minute topic?  Comment below


As a marketer, I never like to use the suffix “less” as it usually has a negative connotation.  “Less” means not having; without; free from something. Words like hopeless, motionless, and helpless come to mind.  So, when a system architect recently spoke to me about the products in the i.MX RT series and referred to them as being flashless, I cringed a little.


But, is being flashless such a bad thing?  Yes, it means it has no flash memory on-chip, but that is actually giving customers more - More opportunity for differentiated on-chip peripherals.  More options for selecting the perfect memory.  And more opportunity to create cost competitive solutions.


More on-chip peripherals - Flash takes up a lot of die space on the MCU. By eliminating the flash, there is suddenly room for more differentiated features and peripherals. The i.MX RT series, for example, includes things like an advanced 2D graphics acceleration engine, LCD display controllers, camera sensor interfaces, and audio interfaces for high-performance, multi-channel audio streaming. And removing the flash allows the chip manufacturers to move to future technology nodes faster – thereby offering designers more peripherals and features in the same die space.


More flexibility to find the perfect memory - Because the i.MX RT series eliminates the flash, suddenly a whole world of memory options are available to designers.  i.MX RT series of crossover processors support greater design flexibility through extensive external memory interface options, including NAND, eMMC, Quad/Octal/Hyper SPI NOR Flash, and Parallel NOR Flash. The combination of high-speed interfaces for external memory and on-the-fly decryption enables secure external data storage, and the need for embedded flash is eliminated.  And sourcing external flash memory is easy and low-cost. By doing a quick search online, designers will see that 2MB of quad-SPI flash is only a couple of dollars.


More competitive - Embedding flash in an MCU is expensive.  Shedding the burden of on-chip flash reduces the MCU cost to the OEM and also helps enable higher frequency operation for increased processor performance—which in turn lets product designers boost capabilities, increase efficiency, and add more features.


The i.MX RT1015 is the newest addition to the popular i.MX RT Series and provides a great entry-point into the crossover processor space by providing a 500 MHz ARM Cortex-M7 core in a small LQFP package that enables 2-layer PCBs.  With 128 KB SRAM, the i.MX RT1015 supports external Flash memory options, and the EVK for the i.MX RT1015 features a Quad interface with Adesto’s 128Mbit, 133MHz Quad flash memory on-board.


i.MX RT1015 EVK


To learn more about i.MX RT, check out the i.MX RT fact sheet or visit