iMX8M Mini 3 Days

Download as pdf or txt
Download as pdf or txt
You are on page 1of 8

Designing 

with i.MX8M Mini SoC 
The i.MX8M Mini processor family brings together high‐performance computing, 
power efficiency, enhanced system reliability and embedded security that is needed 
to drive the growth of fast‐growing edge node computing, streaming multimedia, 
and machine learning applications. 
At the heart is a scalable core complex of up to four Arm Cortex‐A53 cores running at 
up to 2GHz plus Cortex‐M4 for real‐time processing domain at 400+MHz. 
The i.MX8M Mini also packs‐in 1080p video acceleration, 2D/3D graphics for a rich 
visual HMI experience, and advanced audio capabilities to enable audio‐rich 
applications. 
 
Course Description 
i.MX8M Mini is a rich features SoC, encapsulating many sub‐modules, which makes it 
a challenge to comprehend. ‘Designing with i.MX8M Mini SoC’ is a 3‐day training 
that aims providing a deep understanding of the i.MX8M Mini SoC, and speed up the 
software design process, enabling you to focus on your added value as soon as 
possible. 
Practical work enriches the learning experience and provides an added value to our 
students, therefore this training blends both, technical data deep‐dive and practical 
labs on hardware platform. During the labs, you’ll take an active part in coding and 
building functional use‐cases, both on Cortex‐M4 and Cortex‐A53. You’ll experience 
developing applications and kernel modules under Linux, and software under free‐
RTOS.   

Course Goals 
 Introduce i.MX8M Mini architecture  
 Introduce heterogenous ARM cores: Cortex‐A53 and Cortex‐M4 
 Introduce i.MX8M Mini multimedia, graphics and audio capabilities 
 Introduce the clock management, reset, power management 
 Introduce the i.MX8M Mini memory architecture and capabilities 
 Introduce the i.MX8M Mini Boot process including secure boot  
 Introduce the developments tools, used to develop software on both micro‐
processors 
 
Target Audience 
Software engineers that would like developing software and BSP for platforms based 
on i.MX8M Mini SoC. 

Course Duration 
3 days 
 
Target platform 
Variscite’s DART‐MX8M‐MINI Evaluation Kit is used as the development platform for 
the lab. 

 
Prerequisites  
 Computer architecture background 
 Experience in developing embedded systems
 C/C++ knowledge 
 Familiarity with ARM architecture is an advantage
 Familiarity with Linux is an advantage
 
 
Day 1 

 Introduction to the i.MX8M Mini Family 
 i.MX applications processor values 
 i.MX processor portfolio 
 i.MX8M Mini main target applications 
 i.MX8M Mini key features 
 i.MX8M Mini, Mini Lite block diagrams and differences 
 i.MX8M Mini qualification levels and package type 
 i.MX8M Mini evaluation boards, SoM, and Software support 
 
Lab #1: Board and Tools Bring‐up  
 
 CPU Platform 
 Cortex‐A53 CPU platform overview 
 Cortex‐A53 versus Cortex‐A9/Cortex‐A7 
 What’s new in ARMv8‐A 
 Privilege levels 
 A32 vs A64 
 AArch64 registers 
 A64 instruction set 
 AArch64 exception model 
 AArch64 memory model 
 Software engineer’s guide to the Cortex‐A53 MPCore 
 Cortex‐A53 pipeline 
 Branch prediction resources 
 Cache overview 
 Data cache coherency 
 Memory Management Unit (MMU) 
 Other micro‐architecture features 
 Interrupt and bus interfaces 
 Debug and timers 
 Power management 
 Clocking 
 NEON 
 GIC 
 PMU 
 Cortex‐M4 platform 
 Cortex‐M4 features 
 M‐profile instructions 
 Core register set 
 Processor pipeline 
 Cycle counting 
 Memory map 
 Bitwise memory access 
 Bit banding 
 Modes privilege and stacks 
 Interrupts and exceptions 
 Memory Protection Unit (MPU) 
 Tightly Coupled Memory (TCM) 
 Cache features 
 Processor core, space and Backdoor port accesses 
 SRAM accesses 
 Power management 
 Core debug   
 System timer 
 Floating point unit 
 Cortex‐M4 use case 
 
Lab #2: Measuring Application Performance and memory implications with 
linked lists 
Lab #3: Configure the MPU with Different Access Permissions and Identify Stack 
Overflow 
 
 
Day 2 
 
 i.MX8M Mini Memory System Overview 
 Internal memory (Cache, TCM, OCRAM, ROM, ROMCP) 
 Nand/Nor flash storage 
 SD/eMMC interface 
 DRAM interface 
 
 i.MX8M Mini Mass Storage Overview 
 ECSPI 
 Quad SPI 
 uSDHC 
 
 i.MX8M Mini Timers 
 
 i.MX8M Mini Messaging Unit (MU) 
 MU overview
 MU memory mapping
 Messaging mechanism
 Messaging use‐cases 
 Short messages
 Frame information
 Event notices and requests
 Fixed length data
 Announcements
 MU interrupts
 Remote Processor Msg (RPMSG)
 RPMSG channel
 RPMSG Lite
 MU Linux driver
 
Lab #4: Open a communication channel and transfer messages between the 
Cortex‐A53 and Cortex‐M4 
 
 
 i.MX8M Mini Clock Management 
 Clock Control Module (CCM) overview 
 CCM block diagram 
 PLLs 
 Crystal Oscillator (XTALOSC) 
 Clock roots, max frequency and source select 
 CCM output clock connectivity and gating 
 Clock divider 
 Clock switching multiplexer  
 Clock gate 
 Clock slices 
 Access control 
 
 i.MX8M Mini System Reset Controller (SRC) 
 SRC overview 
 Reset inputs
 Reset and power‐up sequence 
 Rest outputs
 External POR 
 Internal POR 
 Reset inputs & outputs 
 Parallel reset requests 
 Boot mode control 
 
 i.MX8M Mini Power Management 
 General Power Controller (GPC) overview 
 GPC main features 
 GPC block diagram 
 Processors modes (RUN, Low power, WAIT, STOP, Deep Sleep) 
 Low power mode process (entering and exiting) 
 Power Gating Controller (PGC) overview 
 PGC power domains 
 Triggering the PGC via HW and SW 
 Power control for A53 platform 
 Power control for the M4 platform 
 Thermal Management Unit (TMU) 
 
Lab #5: Control power regulators 
 
 
 i.MX8M Mini SDMA 
 SDMA overview 
 SDMA block diagram 
 SDMA main features 
 SDMA Core 
 SDMA Scheduler 
 Burst DMA unit  
 Peripheral DMA unit 
 SDMA security support 
 OnCE and PCU debug states 
 SDMA clocks and low power modes 
 Linux DMA Engine driver
 
Lab #6: Measuring the memcpy Function Using SDMA, Cortex‐A53, and Cortex‐M4 
 
 i.MX8M Mini Boot 
 System boot overview 
 Boot modes 
 Pin settings 
 Boot sequence 
 Boot security configuration 
 Boot eFUSE 
 Device Configuration Data (DCD) 
 Boot block activation 
 Clocks at boot time 
 Enabling MMU & caches 
 Exception and interrupt handling during boot 
 Cortex‐A and Cortex‐M boot process 
 Boot devices supported 
 Program image 
 IVT 
 HDMI image boot‐up 
 DCD 
 Plugin image 
 Serial downloader  
 Recovery devices  
 High Assurance Boot (HAB) 
 
Lab #7: Apply High Assurance Boot by securing u‐boot  
 
 
Day 3 
 
 i.MX8M Mini Multimedia Overview 
 Multimedia components 
 Enhanced LCD interface (eLCDIF) 
 GPU 3D/2D 
 MIPI_DSI 
 MIPI_CSI 
 Sony/Philips Digital Interface (SPDIF) 
 Synchronous Audio Interface (SAI) 
 Enhanced LCD Interface (eLCDIF) 
 eLCDIF functional description 
 Write data path 
 Read data path 
 eLCDIF interrupts 
 MPU interface 
 VSYNC interface 
 DOTCLK interface 
 DVI interface 
 Alpha blending 
 GPU fundamentals 
 What is a GPU?
 Graphics pipeline overview 
 Fixed & programmable pipelines  
 2D GPU
 3D GPU
 Supported APIs 
 GPU performance 
 Video Processing Unit (VPU) 
 VPU G1 overview
 VPU G2 overview
 VPU H1 overview
 Gstreamer overview 
 Gstraemer pipeline
 Gstreamer elements
 Gstreamer communication 
 
 
Lab #7: Build Video and Graphics Stream Flow to the Display Controller 
Lab #8: Encode a video file and stream it over the network 

You might also like