Difference between revisions of "MISC-TN-003: Asymmetric multiprocessing on NXP i.MX6SoloX"

From DAVE Developer's Wiki
Jump to: navigation, search
Line 21: Line 21:
  
 
This white paper describes an i.MX6UL-based AMP solution that has been implemented for a custom product.
 
This white paper describes an i.MX6UL-based AMP solution that has been implemented for a custom product.
 +
 +
  
  
Line 33: Line 35:
  
  
Is this case the role of the GPOS is played by Linux, while FreeRTOS has been used as RTOS. [1]
+
Is this case the role of the GPOS is played by Linux, while FreeRTOS has been used as real-time operating system [1].
 +
 
 +
In this specific application, it is required that the M4 core has exclusive access of the following resources:
 +
*GPT (General Purpose Timer)
 +
*some GPIOs belonging to the bank GPIO2.
 +
It is also required that M4 firmware is booted before the Linux kernel.
 +
 
 +
To satisfy the first requirement, a
 +
 
 +
 
 +
 
  
 
[1] For more details please refer to the [http://www.nxp.com/pages/i.mx-6solox-processors-heterogeneous-processing-with-arm-cortex-a9-and-cortex-m4-cores:i.MX6SX?tab=Design_Tools_Tab FreeRTOS™ BSP for the i.MX 6SoloX ARM® Cortex®-M4 core].
 
[1] For more details please refer to the [http://www.nxp.com/pages/i.mx-6solox-processors-heterogeneous-processing-with-arm-cortex-a9-and-cortex-m4-cores:i.MX6SX?tab=Design_Tools_Tab FreeRTOS™ BSP for the i.MX 6SoloX ARM® Cortex®-M4 core].
 
==Conclusion==
 
==Conclusion==

Revision as of 07:47, 13 January 2017


History[edit | edit source]

Version Date Notes
1.0.0 November 2016 First public release

Introduction[edit | edit source]

Asymmetric multiprocessing (AMP for short) is getting popular in the embedded world, thanks to the availability of multi-core embedded processors. It is particularly useful tom combine in one single chip two different operating systems (o.s.). One of the most common combination is the use of a general purpose operating system (GPOS) with a real-time o.s. (RTOS), in order to meet both hard real-time constraints and generic connectivity/user interface requirements, with a highly integrated solution.

AMP can be implemented on homogeneous [1] and heterogeneous architectures. Either way, it poses significant challenges when it comes to handle resources that are unavoidably shared across different cores. ARM cores integrates TrustZone technology that can be exploited to face such issues, as described for example in this document.

Other system-on-chips (SOC) implements proprietary solution to handle the access to the shared resources. NXP i.MX6SoloX is an example of such components, as it integrates a so called Resource Domain Controller (RDC), that " provides robust support for the isolation of destination memory mapped locations such as peripherals and memory to a single core, a bus master, or set of cores and bus masters" as stated by the manufacturer [2].

This white paper describes an i.MX6UL-based AMP solution that has been implemented for a custom product.



[1] See for example this page.

[2] See NXP i.MX 6SoloX Applications Processor Reference Manual (IMX6SXRM).

Implementation[edit | edit source]

The following image shows in more detail the implementation of the solution.


caption


Is this case the role of the GPOS is played by Linux, while FreeRTOS has been used as real-time operating system [1].

In this specific application, it is required that the M4 core has exclusive access of the following resources:

  • GPT (General Purpose Timer)
  • some GPIOs belonging to the bank GPIO2.

It is also required that M4 firmware is booted before the Linux kernel.

To satisfy the first requirement, a



[1] For more details please refer to the FreeRTOS™ BSP for the i.MX 6SoloX ARM® Cortex®-M4 core.

Conclusion[edit | edit source]