AIOP SDK Applications Debug Application Note

AIOP SDK Applications Debug Application Note
Freescale Semiconductor
Application Note
Document Number: AN4971
Rev. 06/2015
AIOP SDK Applications Debug
Contents
1 Overview
This document describes how to debug an AIOP SDK
Applications with CodeWarrior for APP. The AIOP targeted
by this application note is AIOP Packet reflector.
AIOP packet reflector provides an entry-level demonstration
about how to use and program an AIOP. It has no predefined
Freescale infrastructure that is required to be used by the end
user. It uses the AIOP SL-Service Layer routines only.
The purpose of this sample application is to demonstrate a
simple application data path on AIOP. The application is
available in these two flavors:
• A basic reflector for every IPv4 frame (further
referenced as Reflector). It works much like the NADK
Packet Reflector application, except that it runs on the
AIOP.
• The second one applies an extra classification and only
accepted frames are further reflected (further referenced
as Reflector-Classifier).
For more details about this application, see the AIOP ‘packet
reflector’ sample application chapter of the LS2085 SDK
Quick Start Guide.
This application note focuses on the Reflector flavor.
© 2014–2015 Freescale Semiconductor, Inc.
1
Overview....................................................................1
2
Prerequisites............................... ............................... 2
3
Getting AIOP reflector source files...........................2
4
Hardware setup..........................................................2
4.1
Hardware setup using two boards.................. 3
4.2
Hardware setup using one board.. ................. 5
5
Importing and building AIOP reflector
project..................................................... .................. 8
6
Debugging AIOP APP using
CodeWarrior.............................................................. 9
7
DDR settings in memory configuration
files.......................................................................... 14
8
Simulator setup........................................................16
8.1
Configuring and starting
simulator...................................... ................ 16
Prerequisites
2 Prerequisites
The application note is intended to be used on a Linux 64-bits host machine for simulator. For the hardware you can use
either Linux or Windows. The table below shows the different components required.
Component
Version
CodeWarrior for APP
10.1.0 Alpha3 or later
SDK
EAR3.0 or later
3 Getting AIOP reflector source files
To get the AIOP APP source files, follow these steps:
1. Install the SDK .iso image from here on a 64-bits machine using the commands listed below:
a. mount -o loop <image>.iso dir_to_mount
b. cd <dir_to_mount>
c. ./install
d. cd <install_dir>
e. ./poky/scripts/host-prepare.sh
f. source ./poky/fsl-setup-poky -m <target>
Where target can be ls2085ardb or ls2085a-simu, in case you want to use a hardware board or a simulator,
respectively.
2. Prepare to build and deploy the aiopapp projects and images, set CW PATH in Yocto
a. vim conf/local.conf
b. add next line: CW_PATH=”path to your CW for APP” as listed below:
3. Build the AIOP reflector using this command:
bitbake aiopapp-reflector
4. Build the rest of images needed by AIOP reflector as follows:
a. bitbake fsl-image-kernelitb
b. bitbake dpl-examples
4 Hardware setup
To demonstrate the AIOP reflector capabilities, you can use a hardware setup formed from two boards connected back-toback or a single board having two ports connected back-to-back.
These setups are described in the following sections:
• Hardware setup using two boards
• Hardware setup using one board
AIOP SDK Applications Debug, Rev. 06/2015
2
Freescale Semiconductor, Inc.
Hardware setup
4.1 Hardware setup using two boards
The application reflects back the packet on the same interface from where it was received. In order to demonstrate the traffic
reflected needs to be used a back-to-back hardware setup using two different LS2085ARDB boards, as shown in the figure
listed below:
Figure 1. Hardware setup using two different LS2085ARDB
The above setup contains two reference design boards (RDB) connected back-to-back via first 2 XFI optical ports (mac1 and
mac2). The Linux container (left board) sends the traffic to the AIOP reflector container (right board).
After you get a u-boot prompt on each board, you need to enter the next commands.
On Linux container:
Bring up the board via tftp from u-boot (or you can write the images to the flash using the flash programmer from
CodeWarrior for ARMv8). You can use vbank0 (0x580000000) or vbank4 (0x584000000), depending on how the boards are
configured and if you want to alter the actual bank or not. The commands listed below are from vbank0 and to boot up the
new images from vbank4.
setenv filesize; setenv myaddr 0x584100000; tftp 0x80000000 u-boot.<version>.bin; protect
off $myaddr +$filesize; erase $myaddr +$filesize; cp.b 0x80000000 $myaddr $filesize; protect
on $myaddr +$filesize
setenv filesize; setenv myaddr 0x584000000; tftp 0x80000000 rcw_0x2a_0x41/
PBL_0x2a_0x41_1333.bin; protect off $myaddr +$filesize; erase $myaddr +$filesize; cp.b
0x80000000 $myaddr $filesize; protect on $myaddr +$filesize
setenv filesize; setenv myaddr 0x584300000; tftp 0x80000000 mc_<version>.itb; protect off
$myaddr +$filesize; erase $myaddr +$filesize; cp.b 0x80000000 $myaddr $filesize; protect on
$myaddr +$filesize
setenv filesize; setenv myaddr 0x584700000; tftp 0x80000000 dpl-eth.0x2A_0x41.dtb; protect
off $myaddr +$filesize; erase $myaddr +$filesize; cp.b 0x80000000 $myaddr $filesize; protect
on $myaddr +$filesize
setenv filesize; setenv myaddr 0x584800000; tftp 0x80000000 dpc.<version>.dtb; protect off
$myaddr +$filesize; erase $myaddr +$filesize; cp.b 0x80000000 $myaddr $filesize; protect on
$myaddr +$filesize
qixis_reset altbank
tftp a0000000 kernel.<version>.itb
bootm a0000000
AIOP SDK Applications Debug, Rev. 06/2015
Freescale Semiconductor, Inc.
3
Hardware setup
Configure the ni1 and ni2 interfaces and create static ARP entries. Set the destination MAC as the ARP hardware address for
all the IP flows on which the packet needs to be sent:
$ ifconfig ni1 6.6.6.1 up
$ arp –s 6.6.6.10 000000000006
$ ifconfig ni2 7.7.7.1 up
$ arp –s 7.7.7.10 000000000007
Initiate pings on two interfaces to forward packets to the Reflector application running on the AIOP container board.
$ ping 6.6.6.10
$ ping 7.7.7.10
On AIOP container:
setenv filesize; setenv myaddr 0x584100000; tftp 0x80000000 u-boot.<version>.bin; protect
off $myaddr +$filesize; erase $myaddr +$filesize; cp.b 0x80000000 $myaddr $filesize; protect
on $myaddr +$filesize
setenv filesize; setenv myaddr 0x584000000; tftp 0x80000000 PBL_0x2a_0x41_1333.bin; protect
off $myaddr +$filesize; erase $myaddr +$filesize; cp.b 0x80000000 $myaddr $filesize; protect
on $myaddr +$filesize
setenv filesize; setenv myaddr 0x584300000; tftp 0x80000000 mc_<version>.itb; protect off
$myaddr +$filesize; erase $myaddr +$filesize; cp.b 0x80000000 $myaddr $filesize; protect on
$myaddr +$filesize
setenv filesize; setenv myaddr 0x584700000; tftp 0x80000000 dpl-eth-aiop-nadk.0x2A_0x41.dtb;
protect off $myaddr +$filesize; erase $myaddr +$filesize; cp.b 0x80000000 $myaddr $filesize;
protect on $myaddr +$filesize
setenv filesize; setenv myaddr 0x584800000; tftp 0x80000000 dpc.<version>.dtb; protect off
$myaddr +$filesize; erase $myaddr +$filesize; cp.b 0x80000000 $myaddr $filesize; protect on
$myaddr +$filesize
setenv filesize; setenv myaddr 0x584900000; tftp 0x80000000 aiop_reflector.elf; protect off
$myaddr +$filesize; erase $myaddr +$filesize; cp.b 0x80000000 $myaddr $filesize; protect on
$myaddr +$filesize
qixis_reset altbank
tftp a0000000 kernel.<version>.itb
bootm a0000000
To check if the AIOP reflector application loaded successfully, execute the following command in the LS2085 Linux
command shell:
$ root@ls2085ardb:~# cat /dev/fsl_aiop_console
The command output displays the number of DPNIs that are successfully configured, together with the DPNIs that are
provided to the AIOP Reflector Application:
REFLECTOR :
REFLECTOR :
REFLECTOR :
> INFO [CPU
> INFO [CPU
Successfully configured DPNI 6
Successfully configured DPNI 7
Ready to receive traffic on 2 DPNIs
0, init.c:309 core_ready_for_tasks]: AIOP core 0 completed boot sequence
0, init.c:315 core_ready_for_tasks]: AIOP boot finished; ready for tasks...
The AIOP Logger prints a brief information about every frame that is reflected. You can also view these logs in CodeWarrior
using the Debug Print view. For more information, see Debug Print application note.
$ root@ls2085ardb:~# tail -f /dev/fsl_aiop_console
MAC SA: 100040c-07-07-07-07-07
IP SRC: 198.20.1.1 IP DST: 198.19.1.29
RX on DPNI:7 | CORE:1
AIOP SDK Applications Debug, Rev. 06/2015
4
Freescale Semiconductor, Inc.
Hardware setup
MAC SA: 100040c-07-07-07-07-07
IP SRC: 198.20.1.1 IP DST: 198.19.1.30
RX on DPNI:7 | CORE:0
MAC SA: 100040c-07-07-07-07-07
IP SRC: 198.20.1.1 IP DST: 198.19.1.31
Figure 2. Debug Print view displaying output for reflected frames
AIOP SDK Applications Debug, Rev. 06/2015
Freescale Semiconductor, Inc.
5
Hardware setup
4.2 Hardware setup using one board
To demonstrate the reflected traffic, you can use only one board with two ports connected back-to-back, as the following
figure shows (in the example below, the copper ports 5 and 7 are connected):
Figure 3. Hardware setup using one board with two ports connected back-to-back
The Linux container role is played by the port 7 and the AIOP container role is played by the port 5.
For using only one board setup, you need to have a custom dpl file and link the dpni.6 (AIOP container) to dpmac.5 (copper
port). By default all copper ports are associated with DPMACS from the Linux container.
You need to update the default dpl-eth-aiop-nadk.0x2A_0x41.dts file as listed below and generate a new dtb file
using the dtc file from SDK.
//update the connection@1 and remove the connection@5
/* new connection for AIOP reflector*/
connection@1{
endpoint1 = "dpni@6";
endpoint2 = "dpmac@5";
};
...
/*connection@5{
endpoint1 = "dpni@1";
endpoint2 = "dpmac@5";
};*/
//generate the new dtb file
<sdk_path>/<sdk_build_output_path>/git/scripts/dtc/dtc -I dts -O dtb -o dpl_AIOP_dpni.
6_to_dpmac.5.dtb dpl-eth-aiop-nadk.0x2A_0x41.dts
After you get a u-boot prompt on the board, use these commands:
AIOP SDK Applications Debug, Rev. 06/2015
6
Freescale Semiconductor, Inc.
Hardware setup
Bring up the board via tftp from u-boot (or you can write the images to the flash using the flash programmer from
CodeWarrior for ARMv8). You can use vbank0 (0x580000000) or vbank4 (0x584000000), depending on how the boards are
configured and if you want to alter the actual bank or not. The commands listed below are given from vbank0 and to boot up
the new images from vbank4.
setenv filesize; setenv myaddr 0x584100000; tftp 0x80000000 u-boot.<version>.bin; protect
off $myaddr +$filesize; erase $myaddr +$filesize; cp.b 0x80000000 $myaddr $filesize; protect
on $myaddr +$filesize
setenv filesize; setenv myaddr 0x584000000; tftp 0x80000000 rcw_0x2a_0x41/
PBL_0x2a_0x41_1333.bin; protect off $myaddr +$filesize; erase $myaddr +$filesize; cp.b
0x80000000 $myaddr $filesize; protect on $myaddr +$filesize
setenv filesize; setenv myaddr 0x584300000; tftp 0x80000000 mc_<version>.itb; protect off
$myaddr +$filesize; erase $myaddr +$filesize; cp.b 0x80000000 $myaddr $filesize; protect on
$myaddr +$filesize
setenv filesize; setenv myaddr 0x584700000; tftp 0x80000000 dpl_AIOP_dpni.6_to_dpmac.5.dtb;
protect off $myaddr +$filesize; erase $myaddr +$filesize; cp.b 0x80000000 $myaddr $filesize;
protect on $myaddr +$filesize
setenv filesize; setenv myaddr 0x584800000; tftp 0x80000000 dpc.<version>.dtb; protect off
$myaddr +$filesize; erase $myaddr +$filesize; cp.b 0x80000000 $myaddr $filesize; protect on
$myaddr +$filesize
setenv filesize; setenv myaddr 0x584900000; tftp 0x80000000 aiop_reflector.elf; protect off
$myaddr +$filesize; erase $myaddr +$filesize; cp.b 0x80000000 $myaddr $filesize; protect on
$myaddr +$filesize
qixis_reset altbank
tftp a0000000 kernel.<version>.itb
bootm a0000000
Configure the ni3 interface and create a static ARP entry. Set the destination MAC as the ARP hardware address for all the IP
flows on which the packet needs to be sent:
$ ifconfig ni3 6.6.6.1 up
$ arp –s 6.6.6.10 000000000006
Initiate ping on the interface to forward packets to the Reflector application running on the AIOP container board. Basically,
this is a ping from ni3 interface (dpni.3 – dpmac.7) to dpni.6 – dpmac.5.
$ ping 6.6.6.10
To check if the AIOP reflector application loaded successfully, execute the following command in the LS2085 Linux
command shell:
$ root@ls2085ardb:~# cat /dev/fsl_aiop_console
The command output displays the number of DPNIs that are successfully configured, together with the DPNIs that are
provided to the AIOP Reflector Application:
REFLECTOR :
REFLECTOR :
REFLECTOR :
> INFO [CPU
> INFO [CPU
Successfully configured DPNI 6
Successfully configured DPNI 7
Ready to receive traffic on 2 DPNIs
0, init.c:309 core_ready_for_tasks]: AIOP core 0 completed boot sequence
0, init.c:315 core_ready_for_tasks]: AIOP boot finished; ready for tasks...
The AIOP Logger prints a brief information about every frame that is reflected, as listed below:
$ root@ls2085ardb:~# tail -f /dev/fsl_aiop_console
MAC SA: 100040c-07-07-07-07-07
IP SRC: 198.20.1.1 IP DST: 198.19.1.29
RX on DPNI:7 | CORE:1
AIOP SDK Applications Debug, Rev. 06/2015
Freescale Semiconductor, Inc.
7
Importing and building AIOP reflector project
MAC SA: 100040c-07-07-07-07-07
IP SRC: 198.20.1.1 IP DST: 198.19.1.30
RX on DPNI:7 | CORE:0
MAC SA: 100040c-07-07-07-07-07
IP SRC: 198.20.1.1 IP DST: 198.19.1.31
5 Importing and building AIOP reflector project
To import and build the AIOP reflector project, follow these steps:
1. Start the CodeWarrior and create a new workspace.
2. Import (File > Import > General > Existing Projects Into Workspace) the reflector and aiop_sl projects from this
location: <yocto_path>/build_ls2085ardb_release\tmp\work\aarch64-fsl-linux\aiopappreflector
Figure 4. Import dialog - Import Projects page
3. The aiop reflector project (aiop_reflector.elf) is already built by Yocto, but if you want you can edit the sources
and build the project directly from the CodeWarrior. To do this, right-click on the project in the CodeWarrior
Projects view and select Build Project. The IDE also rebuilds the aiop_sl library project that is linked to reflector
project.
AIOP SDK Applications Debug, Rev. 06/2015
8
Freescale Semiconductor, Inc.
Debugging AIOP APP using CodeWarrior
Figure 5. CodeWarrior Projects view - Build Project option
6 Debugging AIOP APP using CodeWarrior
To debug the AIOP using CodeWarrior IDE, follow these steps:
1. Copy the new aiop_reflector.elf just compiled with CodeWarrior or yocto to the flash board (see Hardware
setup) or in ls2-sim-support/images folder, if you want to run on the simulator. To locate the elf, expand the
Binaries group from reflector project, right click on the aiop_app.elf and select Show in Windows Explorer for
Windows, or Show in File Manager for Linux.
AIOP SDK Applications Debug, Rev. 06/2015
Freescale Semiconductor, Inc.
9
Debugging AIOP APP using CodeWarrior
Figure 6. Show in Windows Explorer option
2. Select Run > Debug Configurations from the IDE menu bar.
The Debug Configuration dialog appears.
3. Select aiop_dbg launch configuration from the left panel.
4. Click Edit from Connection.
5. Specify the Hostname/IP.
AIOP SDK Applications Debug, Rev. 06/2015
10
Freescale Semiconductor, Inc.
Debugging AIOP APP using CodeWarrior
Figure 7. Properties for <connection> dialog - Hostname/IP option
6. Click OK.
7. Ensure that the AIOP OS Awareness is enabled. Select Debugger > OS Awareness tabs and check if AIOP Target OS
is activated.
Figure 8. Selecting AIOP Target OS
8. Click Debug for attaching to the AIOP.
NOTE
Before attaching, ensure that the u-boot is already boot up to be able to attach to
AIOP. If you suspend the AIOP before starting this, you will find your the PC at
0xFFFFFFFC.
AIOP SDK Applications Debug, Rev. 06/2015
Freescale Semiconductor, Inc.
11
Debugging AIOP APP using CodeWarrior
Figure 9. Debug view - Attaching AIOP
9. You can set breakpoints, make steps and so on. You can set up breakpoints directly from the source files or using the
Debugger Shell. The entry point function executed by a triggered AIOP task is app_reflector. A breakpoint in this
function reaches when you generates traffic using the ping (see Hardware setup).
Figure 10. Setting breakpoint using Editor view
Figure 11. Setting breakpoint using Debugger Shell view
AIOP SDK Applications Debug, Rev. 06/2015
12
Freescale Semiconductor, Inc.
Debugging AIOP APP using CodeWarrior
10. The breakpoint from __sys_start init reaches after the AIOP starts to boot up (in the simulator this can take a
while due to MC firmware booting time).
Figure 12. Breakpoint at __sys_start
11. You can now resume the AIOP and after Linux finishes to boot, the AIOP can be find out if suspended in
core_ready_for_tasks() function as shown by the figure listed below:
Figure 13. core_ready_for_tasks() function
12. The core finishes booting and waits for the tasks to be triggered.
13. You can now proceed with the AIOP reflector Demo steps listed in the Hardware setup section. Sending packets (with
ping) to the AIOP interfaces generates tasks that can be observed/debugged in the System Browser view. For full
debugging capabilities of System Browser and AIOP task aware debugging, see AN5044 AIOP Task Aware Debug.
AIOP SDK Applications Debug, Rev. 06/2015
Freescale Semiconductor, Inc.
13
DDR settings in memory configuration files
Figure 14. Debug view displaying triggered task
Figure 15. System Browser view displaying generated tasks
7 DDR settings in memory configuration files
The memory access can hang the LS2 board. In order to avoid it, specify the the DDR limits used by the AIOP application
for debugging. These limits or the reserved areas that narrows the valid DDR, have to be to specified in the memory
configuration files. In case of AIOP reflector, the valid DDR range is from 0x4000_0000 to 0x40A1_0000. For the other
applications, you need to determine the range. The example below lists only the reserved ranges where computed, as the
CodeWarrior assumes the entire memory ranges are accessible.
To display the memory contents correctly within DP-DDR and PEBM access windows, follow these steps:
AIOP SDK Applications Debug, Rev. 06/2015
14
Freescale Semiconductor, Inc.
DDR settings in memory configuration files
1. Copy the correct memory configuration file for the target board from the CodeWarrior layout
<CW4NET_InstallDir>/CW_APP/LS/AIOP_Support/Initialization_Files/Memory/LS2 folder to your
project folder.
2. For DP-DDR, edit the file as follow:
• Open the linker control file (LCF) and determine the DP-DDR end-address.
• Replace the existing reversed entry with reserved v*:<end of DP DDR address> v:0xFFFFFFFF or
reserved v:<end of DP DDR address> v:<PEBM start window address**>.
This figure shows how to configure the correct reserved memory range between DP-DDR and PEBM access
window in the CodeWarrior memory configuration file.
Figure 16. Configuring correct reserved memory range
NOTE
You must prefix the all addresses with v: to denote a virtual address. If
PEBM window is configured, you must add a reserved from the end of
PEBM to 0xFFFFFFFF as shown in Figure 16.
3. Select File > Save from the IDE menu bar to save the changes.
After you set the memory contents correctly within DP-DDR and PEBM access windows, specify the memory configuration
files in the CodeWarrior debugger settings of AIOP applications, as listed below:
1. Open your project in the CodeWarrior IDE.
2. Select Run > Debug Configurations from the IDE menu bar.
The Debug Configurations dialog appears.
3. Expand the CodeWarrior tree control and select your project from the left panel.
4. Click Edit from the Target settings group.
The Properties for <connection> dialog appears.
5. Click Edit.
The Properties for <target_name> Target dialog appears.
AIOP SDK Applications Debug, Rev. 06/2015
Freescale Semiconductor, Inc.
15
Simulator setup
6. Click the Memory tab and set the path to the new memory configuration file. Ensure that you use relative paths, using
the {ProjDirPath} variable instead of the absolute addresses. The figure below shows the the memory configuration file
for the AIOP core within RSE target system properties dialog.
Figure 17. Update memory configuration file address for AIOP core
7. Click OK to save settings.
8. Click OK.
9. Click Apply to apply the settings in the debugger.
8 Simulator setup
To setup the LS software simulator, you have to:
• Complete the CSAM registration (only for the Freescale internal users)
• Configure and start the simulator
8.1 Configuring and starting simulator
To configure and start the simulator, perform these steps:
1. If you are running the CodeWarrior on a Linux machine, the simulator is available unpacked under Common/CCSSim
folder, therefore, you may skip to step 4.
2. For running CodeWarrior software on a Windows machine, the simulator is available in the CodeWarrior layout at this
location: <CW_Layout>/Common/CCSSim/LS_SIM_RELEASE_0_x_0_xxxx_xxxxxx.tgz
3. Copy the file to the Linux x86_64 machine and untar it.
4. To enable the AIOP debug in parallel with the u-boot/Linux, follow the steps listed below:
a. On top of the simulator start-up scripts, there is a package consisting of a set of SDK binary images (U-Boot,
Linux kernel) and a start-up script run-sim.sh, which loads all the mentioned images and begins execution on
the primary GPP core. For details, see Using ls2-sim-support scripts (run-sim.sh) and CodeWarrior section of the
Layerscape Simulator User Guide.
AIOP SDK Applications Debug, Rev. 06/2015
16
Freescale Semiconductor, Inc.
Simulator setup
b. If you have your custom SDK images, copy all of them in the images folder from ls2-sim-support package (see
step 1 Debugging AIOP APP using CodeWarrior)
c. In a console, set the LS2_SIM_BASE_DIR variable to simulator path <Layout>/Common/CCSSim/
d. In the same console, navigate to the ls2-sim-support folder and run the command listed below (using this
command you can debug only the APP – AIOP side and triggers the u-boot to boot up)
./run-sim.sh -G -i images/aiop_reflector.elf -d images/dpl-reflector.dtb
e. If you also need to see the MC firmware and AIOPAPP consoles during booting, you can use this command:
./run-sim.sh -G -m -a-i images/aiop_reflector.elf -d images/dpl-reflector.dtb
f. If you need a custom debugging port (a set up in CodeWarrior Connection settings), you can use -e ‘-port
xxxxx’. Also, you can change the default tio port (very useful for example when multiple users are using the
same Linux machine) as listed below, using the -p option:
./run_sim.sh -p 47178 -G -e '-port 41976' -i images/aiop_reflector.elf -d images/
dpl-reflector.dtb
g. For closing the simulator during the booting, press Ctrl+D followed by Ctrl+C.
h. For more details about run-sim.sh parameters, use the ./run-sim.sh -h command.
AIOP SDK Applications Debug, Rev. 06/2015
Freescale Semiconductor, Inc.
17
How to Reach Us:
Home Page:
freescale.com
Web Support:
freescale.com/support
Information in this document is provided solely to enable system and
software implementers to use Freescale products. There are no express
or implied copyright licenses granted hereunder to design or fabricate
any integrated circuits based on the information in this document.
Freescale reserves the right to make changes without further notice to
any products herein.
Freescale makes no warranty, representation, or guarantee regarding
the suitability of its products for any particular purpose, nor does
Freescale assume any liability arising out of the application or use of
any product or circuit, and specifically disclaims any and all liability,
including without limitation consequential or incidental damages.
“Typical” parameters that may be provided in Freescale data sheets
and/or specifications can and do vary in different applications, and
actual performance may vary over time. All operating parameters,
including “typicals,” must be validated for each customer application by
customer's technical experts. Freescale does not convey any license
under its patent rights nor the rights of others. Freescale sells products
pursuant to standard terms and conditions of sale, which can be found
at the following address: freescale.com/SalesTermsandConditions.
Freescale, the Freescale logo, CodeWarrior, and QorIQ are trademarks
of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. Layerscape
is trademark of Freescale Semiconductor, Inc. All other product or
service names are the property of their respective owners. ARM®,
Cortex®, Cortex®-A53, Cortex®-A57, TrustZone® are trademarks of
ARM Limited.
© 2014-2015, Freescale Semiconductor, Inc.
Document Number AN4971
Revision 06/2015
Was this manual useful for you? yes no
Thank you for your participation!

* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project

Download PDF

advertising