Communication between asymmetric cores on i.MX6SoloX

cancel
Showing results for 
Search instead for 
Did you mean: 

Communication between asymmetric cores on i.MX6SoloX

No ratings

Communication between asymmetric cores on i.MX6SoloX

This tutorial will explain how to compile a Linux distro and the pingpong MQX application to test the communication between ARM Cortex-A9 and ARM Cortex-M4 cores on the SABRE Board for Smart Devices Based on the i.MX 6SoloX.

INITIAL SETUP

All of the steps were executed on an Ubuntu 14.04 64 bits machine, but should work on other distributions with minimal or no changes.

The first step is to install the required tools and applications in the host:

$ sudo apt-get install gawk wget git-core diffstat unzip texinfo \

  gcc-multilib build-essential chrpath socat libsdl1.2-dev xterm picocom

You also need to install the repo tool that will be used to download the Freescale's BSP:

$ mkdir ~/bin

$ curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo

$ chmod a+x ~/bin/repo

$ export PATH=${PATH}:~/bin

Create an environment variable to store the directory name that will be used to download and compile all required software and applications (do no forget to redefine this variable if you close the current terminal or open a new one).

$ export IMX6SOLOX=~/imx6solox

$ mkdir -p $IMX6SOLOX

LINUX DISTRIBUTION

Download the Freescale's BSP source code:

$ cd $IMX6SOLOX

$ mkdir -p fsl-release-bsp && cd fsl-release-bsp

$ repo init -u git://git.freescale.com/imx/fsl-arm-yocto-bsp.git -b imx-3.10.53-1.1.0_ga

$ repo sync

And compile a minimal image for the SABRE Board:

$ MACHINE=imx6sxsabresd source fsl-setup-release.sh -b build

$ bitbake core-image-minimal

After the compilation, a sdcard image should be available. Write it to the sdcard (do not forget to change the device name /dev/sdX in the command below).

$ cd tmp/deploy/images/imx6sxsabresd/

$ sudo dd if=core-image-minimal-imx6sxsabresd.sdcard of=/dev/sdX bs=1M && sync

To test the image you need to connect the board to your host machine using the USB cable. Two TTY ports will be created. Open your favorite terminal application (minicom, putty, screen, picocom) in the first one and check the Linux boot process. You should be able to login with the root user.

FIRMWARE MQX

Download the last MQX source code from Freescale's website at http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=MQX#. I have used the 4.1.0 version in the tests. Do not forget to download the Linux version (*.gz).

Create a directory and decompress the source code:

$ cd $IMX6SOLOX

$ mkdir -p mqx && cd mqx

$ tar xfv ~/Downloads/Freescale\ MQX\ RTOS\ 4.1.0\ for\ i.MX\ 6SoloX\ Linux\ Base.gz

$ ls

build config doc mcc mqx tools

Download and install the required toolchain to compile the MQX application:

$ cd $IMX6SOLOX

$ mkdir -p toolchain && cd toolchain

$ wget https://launchpad.net/gcc-arm-embedded/4.8/4.8-2014-q1-update/+download/gcc-arm-none-eabi-4_8-2014q1...

$ tar xfv gcc-arm-none-eabi-4_8-2014q1-20140314-linux.tar.bz2 && rm gcc-arm-none-eabi-4_8-2014q1-20140314-linux.tar.bz2

Now compile the MQX and related libraries:

$ cd $IMX6SOLOX/mqx/build/imx6sx_sdb_m4/make

$ export TOOLCHAIN_ROOTDIR=$IMX6SOLOX/toolchain/gcc-arm-none-eabi-4_8-2014q1

$ ./build_gcc_arm.sh

And compile the pingpong application:

$ cd $IMX6SOLOX/mqx/mcc/examples/pingpong/build/make/pingpong_example_imx6sx_sdb_m4

$ ./build_gcc_arm.sh

Convert the ELF application to a binary format:

$ arm-none-eabi-objcopy -O binary gcc_arm/extflash_release/pingpong_example_imx6sx_sdb_m4.elf m4_qspi.bin

The U-Boot bootloader will be responsible to read the MQX firmware from the SDCARD, write in the NOR flash and start the application on the Cortex-M4.

Save the m4_qspi.bin file in the first sdcard partition and access the U-Boot's prompt.

Run the following command to write the firmware image to the NOR flash:

> run update_m4_from_sd

And setup U-Boot environment variables so the application will start automatically at boot:

> setenv fdt_file imx6sx-sdb-m4.dtb

> setenv mmcargs "${mmcargs} uart_from_osc"

> setenv bootcmd "run m4boot;${bootcmd}"

> saveenv

Open another terminal application on the second TTY to have access to the MQX console e reboot the board. You should see the message below:

***** MCC PINGPONG EXAMPLE *****

Please wait :

1) A9 peer is ready

Then press "S" to start the demo

********************************

Press "S" to start the demo :

Wait for the Linux boot process to finish and press "S" to start the demo application.

In the Linux terminal, start the communication with the pingpong application:

# echo 1 > /sys/devices/soc0/soc.1/2200000.aips-bus/mcctest.17/pingpong_en &

You should see the log of messages sent and received on both terminals.

Please let me know if you have any question.

Best regards,

Sergio Prado

sergio.prado@e-labworks.com

http://e-labworks.com

Comments

SergioPrado  great job! Thanks much.

SergioPrado

Sergio,

I am not able to boot from my image (core-image-minimal-imx6sxsabresd.sdcard)

Is there an issue with my SD card? Does it need to be formatted first before dd command?

Hello Javier,

The SD card does't need to be formatted before the dd command.

What is the output of the dd command? How are you testing the image? Are you using the console interface through the USB cable?

Hi Sergio,

I am testing my image the exact way I test the stock image from FSL (SD card that comes with the Sabre-SDB board).

After running dd command I get the following message:

80+0 records in

80+0 records out

83886080 bytes (84 MB) copied, 0.155259 s, 540 MB/s

When I go to boot on my board, the PuTTY terminal shows no activity.

Thanks,
javier

Hi Javier,

It looks "to fast to be true"...:)

Here is my output from dd:

$ sudo dd if=core-image-minimal-imx6sxsabresd.sdcard of=/dev/sde bs=1M && sync 

80+0 records in

80+0 records out

83886080 bytes (84 MB) copied, 26,5725 s, 3,2 MB/s

Maybe you are not writing to the correct device file? Can you send me the full dd command you are executing?

Sergio,

I noticed it was writing fast but I was not sure.

This is the command:

sudo dd if=core-image-minimal-imx6sxsabresd.sdcard of=/dev/sdb1 bs=1M && sync

I am using an SD card reader on the USB port (USB SD card reader).

Thanks.

Sergio,

I changed bs=1M to bs=4k and it worked!

The board booted. However it gets stuck at this line:

U-Boot 2014.04 (Apr 10 2015 - 12:24:57)

CPU:   Freescale i.MX6SX rev1.2 at 792 MHz

CPU:   Temperature 40 C, calibration data: 0x5a350769

Reset cause: POR

Board: MX6SX SABRE SDB

I2C:   ready

DRAM:  1 GiB

MMC:   FSL_SDHC: 0, FSL_SDHC: 1, FSL_SDHC: 2

*** Warning - bad CRC, using default environment

Display: Hannstar-XGA (1024x768)

Video: 1024x768x18

gis input --- No input

In:    serial

Out:   serial

Err:   serial

Found PFUZE200! deviceid 0x1, revid 0x21

mmc2 is current device

Net:   FEC0

Normal Boot

Hit any key to stop autoboot:  0

mmc2 is current device

** Unrecognized filesystem type **

** Unrecognized filesystem type **

Booting from net ...

FEC0 Waiting for PHY auto negotiation to complete......... TIMEOUT !

BOOTP broadcast 1

BOOTP broadcast 2

BOOTP broadcast 3

BOOTP broadcast 4

BOOTP broadcast 5

Retry count exceeded; starting again

FEC0 Waiting for PHY auto negotiation to complete......... TIMEOUT !

BOOTP broadcast 1

BOOTP broadcast 2

BOOTP broadcast 3

BOOTP broadcast 4

BOOTP broadcast 5

Retry count exceeded; starting again

FEC0 Waiting for PHY auto negotiation to complete......... TIMEOUT !

BOOTP broadcast 1

BOOTP broadcast 2

BOOTP broadcast 3

BOOTP broadcast 4

BOOTP broadcast 5

Retry count exceeded; starting again

FEC0 Waiting for PHY auto negotiation to complete......... TIMEOUT !

BOOTP broadcast 1

BOOTP broadcast 2

Abort

FEC0 Waiting for PHY auto negotiation to complete...user interrupt!

BOOTP broadcast 1

Abort

Bad Linux ARM zImage magic!

=> <INTERRUPT>

=> <INTERRUPT>

=>

Towards the end, I pressed Ctrl+C to abort.

The problem is that you have to use the device file (/dev/sdb) not the first partition of the device (/dev/sdb1).

Try again, but using /dev/sdb, and let me know the results.

sudo dd if=core-image-minimal-imx6sxsabresd.sdcard of=/dev/sdb bs=1M && sync

Sergio,

Thanks for your help. This worked.

But first I had to use gparted to fix my sdcard.

I have downloaded Freescale MQX 4.2 from https://freescale.flexnetoperations.com/control/frse/download?agree=Accept&element=6321767 and supported devices listed in config and build folders are:

frdmk22f120m

frdmk64f

kwikstikk40x256

svf522revb_a5

svf522revb_m4

twrk20d50m

twrk20d72m

twrk21d50m

twrk21f120m

twrk22f120m

twrk24f120m

twrk40d100m

twrk40x256

twrk53n512

twrk60d100m

twrk60f120m

twrk60n512

twrk64f120m

twrk65f180m

twrk70f120m

twrvf65gs10_a5

twrvf65gs10_m4

Am I looking in the wrong place or downloaded wrong version?

Dear Mandic,

On the MQX download list page, please download the version named:

MQX RTOS for i.MX 6SoloX v4.1.0 releases and patches

Hi, I need to run the ping pong test on DDR RAM.

I exactly followed the instructions wrote into the document AN5127: "How to run the MQX RTOS on various ram memories for i.MX 6SoloX" but when I run the kernel I received a kernel panic error.

Starting kernel ...

Booting Linux on physical CPU 0x0

Linux version 3.10.53-1.1.0_ga+g496fbe0 (mirko_ardinghi@engicam) (gcc version 4.8.2 (GCC) ) #5 SMP PREEMPT Wed Dec 9 10:03:09 CET 2015

CPU: ARMv7 Processor [412fc09a] revision 10 (ARMv7), cr=10c53c7d

CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache

Machine: Freescale i.MX6 SoloX (Device Tree), model: Freescale i.MX6 SoloX SDB Board

cma: CMA: reserved 320 MiB at ac000000

Memory policy: ECC disabled, Data cache writealloc

PERCPU: Embedded 8 pages/cpu @81598000 s8960 r8192 d15616 u32768

Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 256032

Kernel command line: console=ttymxc0,115200 root=/dev/mmcblk3p2 rootwait rw

PID hash table entries: 4096 (order: 2, 16384 bytes)

Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)

Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)

Memory: 1008MB = 1008MB total

Memory: 680872k/680872k available, 351320k reserved, 0K highmem

Virtual kernel memory layout:

    vector  : 0xffff0000 - 0xffff1000   (   4 kB)

    fixmap  : 0xfff00000 - 0xfffe0000   ( 896 kB)

    vmalloc : 0xbf800000 - 0xff000000   (1016 MB)

    lowmem  : 0x80000000 - 0xbf000000   (1008 MB)

    pkmap   : 0x7fe00000 - 0x80000000   (   2 MB)

    modules : 0x7f000000 - 0x7fe00000   (  14 MB)

      .text : 0x80008000 - 0x80c71754   (12710 kB)

      .init : 0x80c72000 - 0x80cbe300   ( 305 kB)

      .data : 0x80cc0000 - 0x80d178c0   ( 351 kB)

       .bss : 0x80d178c0 - 0x80d809ac   ( 421 kB)

SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1

Preemptible hierarchical RCU implementation.

  RCU restricting CPUs from NR_CPUS=4 to nr_cpu_ids=1.

NR_IRQS:16 nr_irqs:16 16

L310 cache controller enabled

l2x0: 16 ways, CACHE_ID 0x410000c8, AUX_CTRL 0x32030000, Cache size: 262144 B

clk: shared clk nodes exceed the max number!

clk: fsl,shared-mem-addr NOT found!

clk: fsl,shared-mem-size NOT found!

sched_clock: 32 bits at 3000kHz, resolution 333ns, wraps every 1431655ms

Console: colour dummy device 80x30

Calibrating delay loop... 1581.05 BogoMIPS (lpj=7905280)

pid_max: default: 32768 minimum: 301

Mount-cache hash table entries: 512

CPU: Testing write buffer coherency: ok

CPU0: thread -1, cpu 0, socket 0, mpidr 80000000

Setting up static identity map for 0x80685698 - 0x806856f0

Brought up 1 CPUs

SMP: Total of 1 processors activated (1581.05 BogoMIPS).

CPU: All CPU(s) started in SVC mode.

devtmpfs: initialized

pinctrl core: initialized pinctrl subsystem

regulator-dummy: no parameters

NET: Registered protocol family 16

DMA: preallocated 256 KiB pool for atomic coherent allocations

Use WDOG1 as reset source

syscon 20c8000.anatop: regmap [mem 0x020c8000-0x020c8fff] registered

vdd1p1: 800 <--> 1375 mV at 1125 mV

vdd3p0: 2800 <--> 3150 mV at 3000 mV

vdd2p5: 2100 <--> 2875 mV at 2525 mV

cpu: 725 <--> 1450 mV

vddpcie: 725 <--> 1450 mV

vddsoc: 725 <--> 1450 mV

syscon 20e4000.iomuxc-gpr: regmap [mem 0x020e4000-0x020e7fff] registered

syscon 21bc000.ocotp-ctrl: regmap [mem 0x021bc000-0x021bffff] registered

syscon 21ac000.romcp: regmap [mem 0x021ac000-0x021affff] registered

syscon 2294000.mu: regmap [mem 0x02294000-0x02297fff] registered

hw-breakpoint: found 5 (+1 reserved) breakpoint and 1 watchpoint registers.

hw-breakpoint: maximum watchpoint size is 4 bytes.

imx6sx-pinctrl 20e0000.iomuxc: initialized IMX pinctrl driver

bio: create slab <bio-0> at 0

mxs-dma 1804000.dma-apbh: initialized

VCC_SD3: 3000 mV

vref-3v3: 3300 mV

PSU-5V0: 5000 mV

usb_otg1_vbus: 5000 mV

usb_otg2_vbus: 5000 mV

i2c-core: driver [max17135] using legacy suspend method

i2c-core: driver [max17135] using legacy resume method

SCSI subsystem initialized

usbcore: registered new interface driver usbfs

usbcore: registered new interface driver hub

usbcore: registered new device driver usb

i2c i2c-0: IMX I2C adapter registered

i2c i2c-1: IMX I2C adapter registered

i2c i2c-2: IMX I2C adapter registered

i2c i2c-3: IMX I2C adapter registered

Linux video capture interface: v2.00

pps_core: LinuxPPS API ver. 1 registered

pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>

PTP clock support registered

MIPI CSI2 driver module loaded

Advanced Linux Sound Architecture Driver Initialized.

Bluetooth: Core ver 2.16

NET: Registered protocol family 31

Bluetooth: HCI device and connection manager initialized

Bluetooth: HCI socket layer initialized

Bluetooth: L2CAP socket layer initialized

Bluetooth: SCO socket layer initialized

cfg80211: Calling CRDA to update world regulatory domain

disp-regulator: no parameters

pureg-dummy: no parameters

Switching to clocksource mxc_timer1

NET: Registered protocol family 2

TCP established hash table entries: 8192 (order: 4, 65536 bytes)

TCP bind hash table entries: 8192 (order: 4, 65536 bytes)

TCP: Hash tables configured (established 8192 bind 8192)

TCP: reno registered

UDP hash table entries: 512 (order: 2, 16384 bytes)

UDP-Lite hash table entries: 512 (order: 2, 16384 bytes)

NET: Registered protocol family 1

RPC: Registered named UNIX socket transport module.

RPC: Registered udp transport module.

RPC: Registered tcp transport module.

RPC: Registered tcp NFSv4.1 backchannel transport module.

hw perfevents: enabled with ARMv7 Cortex-A9 PMU driver, 7 counters available

Bus freq driver module loaded

futex hash table entries: 256 (order: 2, 16384 bytes)

VFS: Disk quotas dquot_6.5.2

Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)

NFS: Registering the id_resolver key type

Key type id_resolver registered

Key type id_legacy registered

jffs2: version 2.2. (NAND) © 2001-2006 Red Hat, Inc.

fuse init (API version 7.22)

msgmni has been set to 1969

io scheduler noop registered

io scheduler deadline registered

io scheduler cfq registered (default)

MIPI DSI driver module loaded

mxsfb 2224000.lcdif: registered mxc display driver ldb

Console: switching to colour frame buffer device 128x48

mxsfb 2224000.lcdif: initialized

imx-sdma 20ec000.sdma: no iram assigned, using external mem

imx-sdma 20ec000.sdma: no event needs to be remapped

imx-sdma 20ec000.sdma: initialized

imx-sdma 20ec000.sdma: loaded firmware 1.1

pfuze100-regulator 0-0008: Illegal ID: 10

pfuze100-regulator 0-0008: unrecognized pfuze chip ID!

Serial: IMX driver

2020000.serial: ttymxc0 at MMIO 0x2020000 (irq = 58) is a IMX

console [ttymxc0] enabled

21e8000.serial: ttymxc1 at MMIO 0x21e8000 (irq = 59) is a IMX

21f4000.serial: ttymxc4 at MMIO 0x21f4000 (irq = 62) is a IMX

serial: Freescale lpuart driver

imx sema4 driver is registered.

[drm] Initialized drm 1.1.0 20060810

[drm] Initialized vivante 1.0.0 20120216 on minor 0

brd: module loaded

loop: module loaded

fsl-quadspi 21e4000.qspi: found s25fl128s, expected n25q256a

fsl-quadspi 21e4000.qspi: s25fl128s (16384 Kbytes)

fsl-quadspi 21e4000.qspi: found s25fl128s, expected n25q256a

fsl-quadspi 21e4000.qspi: s25fl128s (16384 Kbytes)

fsl-quadspi 21e4000.qspi: QuadSPI SPI NOR flash driver

CAN device driver interface

flexcan 2090000.can: device registered (reg_base=bf9c0000, irq=142)

flexcan 2094000.can: device registered (reg_base=bf9c8000, irq=143)

libphy: fec_enet_mii_bus: probed

fec 2188000.ethernet eth0: registered PHC device 0

fec 21b4000.ethernet eth1: registered PHC device 1

ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver

usbcore: registered new interface driver usb-storage

ci_hdrc ci_hdrc.1: EHCI Host Controller

ci_hdrc ci_hdrc.1: new USB bus registered, assigned bus number 1

ci_hdrc ci_hdrc.1: USB 2.0 started, EHCI 1.00

hub 1-0:1.0: USB hub found

hub 1-0:1.0: 1 port detected

mousedev: PS/2 mouse device common for all mice

input: 20cc000.snvs-pwrkey as /devices/soc0/soc.1/2000000.aips-bus/20cc000.snvs-pwrkey/input/input0

snvs_pwrkey 20cc000.snvs-pwrkey: i.MX snvs powerkey probed

egalax_ts 1-0004: Failed to read firmware version

egalax_ts: probe of 1-0004 failed with error -5

input: isl29023 light sensor as /devices/virtual/input/input1

isl29023 2-0044: driver version 1.0 enabled

i2c-core: driver [isl29023] using legacy suspend method

i2c-core: driver [isl29023] using legacy resume method

snvs_rtc 20cc034.snvs-rtc-lp: rtc core: registered 20cc034.snvs-rtc-lp as rtc0

i2c /dev entries driver

pxp-v4l2 pxp_v4l2_out.19: initialized

mag3110 2-000e: check mag3110 chip ID

input: mag3110 as /devices/virtual/input/input2

mag3110 2-000e: mag3110 is probed

i2c-core: driver [mag3110] using legacy suspend method

i2c-core: driver [mag3110] using legacy resume method

input: mma845x as /devices/virtual/input/input3

imx2-wdt 20bc000.wdog: IMX2+ Watchdog Timer enabled. timeout=60s (nowayout=0)

Bluetooth: HCI UART driver ver 2.2

Bluetooth: HCI H4 protocol initialized

Bluetooth: HCI BCSP protocol initialized

Bluetooth: HCIATH3K protocol initialized

usbcore: registered new interface driver bcm203x

usbcore: registered new interface driver btusb

Bluetooth: Generic Bluetooth SDIO driver ver 0.1

usbcore: registered new interface driver ath3k

cpuidle: using governor ladder

cpuidle: using governor menu

sdhci: Secure Digital Host Controller Interface driver

sdhci: Copyright(c) Pierre Ossman

sdhci-pltfm: SDHCI platform and OF driver helper

mmc1: no vqmmc regulator found

mmc1: no vmmc regulator found

mmc1: SDHCI controller on 2194000.usdhc [2194000.usdhc] using ADMA

mmc2: no vqmmc regulator found

mmc2: SDHCI controller on 2198000.usdhc [2198000.usdhc] using ADMA

sdhci-esdhc-imx 219c000.usdhc: could not get ultra high speed state, work on normal mode

mmc3: no vqmmc regulator found

mmc3: no vmmc regulator found

mmc3: SDHCI controller on 219c000.usdhc [219c000.usdhc] using ADMA

galcore: clk_get 2d core clock failed, disable 2d/vg!

Galcore version 5.0.11.25762

mmc3: new high speed SDHC card at address e624

mmcblk3: mmc3:e624 SU04G 3.69 GiB

mmcblk3: p1 p2

mxc_asrc 2034000.asrc: mxc_asrc registered

caam 2100000.caam: Instantiated RNG4 SH0

caam 2100000.caam: Instantiated RNG4 SH1

caam 2100000.caam: device ID = 0x0a160100 (Era 4)

caam 2100000.caam: job rings = 2, qi = 0

caam algorithms registered in /proc/crypto

caam_jr 2101000.jr0: registering rng-caam

platform caam_sm: blkkey_ex: 8 keystore units available

platform caam_sm: 64-bit clear key:

platform caam_sm: [0000] 00 01 02 03 04 0f 06 07

platform caam_sm: 64-bit black key:

platform caam_sm: [0000] 62 7e 92 e2 e9 0b 51 cb

platform caam_sm: [0008] ca 31 c2 0d 8c 6b b1 79

platform caam_sm: 128-bit clear key:

platform caam_sm: [0000] 00 01 02 03 04 0f 06 07

platform caam_sm: [0008] 08 09 0a 0b 0c 0d 0e 0f

platform caam_sm: 128-bit black key:

platform caam_sm: [0000] 12 f6 14 ff ef fe d3 2a

platform caam_sm: [0008] 0c 95 87 2b 77 2c 27 81

platform caam_sm: 192-bit clear key:

platform caam_sm: [0000] 00 01 02 03 04 0f 06 07

platform caam_sm: [0008] 08 09 0a 0b 0c 0d 0e 0f

platform caam_sm: [0016] 10 11 12 13 14 15 16 17

platform caam_sm: 192-bit black key:

platform caam_sm: [0000] 43 21 c3 21 03 42 46 94

platform caam_sm: [0008] ed 00 db 9f b0 c5 15 47

platform caam_sm: [0016] b6 86 a4 d1 87 f4 84 f1

platform caam_sm: [0024] 30 24 3e 2e 19 ee 0b 62

platform caam_sm: 256-bit clear key:

platform caam_sm: [0000] 00 01 02 03 04 0f 06 07

platform caam_sm: [0008] 08 09 0a 0b 0c 0d 0e 0f

platform caam_sm: [0016] 10 11 12 13 14 15 16 17

platform caam_sm: [0024] 18 19 1a 1b 1c 1d 1e 1f

platform caam_sm: 256-bit black key:

platform caam_sm: [0000] 6e 2d 47 c6 02 c0 c4 34

platform caam_sm: [0008] d6 0f 6f b8 2d 1a 3e df

platform caam_sm: [0016] c9 51 6b bb 5a 1c 32 31

platform caam_sm: [0024] 6e dc c9 86 5e c6 3e 7c

platform caam_sm: 64-bit unwritten blob:

platform caam_sm: [0000] 00 00 00 00 00 00 00 00

platform caam_sm: [0008] 00 00 00 00 00 00 00 00

platform caam_sm: [0016] 00 00 00 00 00 00 00 00

platform caam_sm: [0024] 00 00 00 00 00 00 00 00

platform caam_sm: [0032] 00 00 00 00 00 00 00 00

platform caam_sm: [0040] 00 00 00 00 00 00 00 00

platform caam_sm: [0048] 00 00 00 00 00 00 00 00

platform caam_sm: [0056] 00 00 00 00 00 00 00 00

platform caam_sm: [0064] 00 00 00 00 00 00 00 00

platform caam_sm: [0072] 00 00 00 00 00 00 00 00

platform caam_sm: [0080] 00 00 00 00 00 00 00 00

platform caam_sm: [0088] 00 00 00 00 00 00 00 00

platform caam_sm: 128-bit unwritten blob:

platform caam_sm: [0000] 00 00 00 00 00 00 00 00

platform caam_sm: [0008] 00 00 00 00 00 00 00 00

platform caam_sm: [0016] 00 00 00 00 00 00 00 00

platform caam_sm: [0024] 00 00 00 00 00 00 00 00

platform caam_sm: [0032] 00 00 00 00 00 00 00 00

platform caam_sm: [0040] 00 00 00 00 00 00 00 00

platform caam_sm: [0048] 00 00 00 00 00 00 00 00

platform caam_sm: [0056] 00 00 00 00 00 00 00 00

platform caam_sm: [0064] 00 00 00 00 00 00 00 00

platform caam_sm: [0072] 00 00 00 00 00 00 00 00

platform caam_sm: [0080] 00 00 00 00 00 00 00 00

platform caam_sm: [0088] 00 00 00 00 00 00 00 00

platform caam_sm: 196-bit unwritten blob:

platform caam_sm: [0000] 00 00 00 00 00 00 00 00

platform caam_sm: [0008] 00 00 00 00 00 00 00 00

platform caam_sm: [0016] 00 00 00 00 00 00 00 00

platform caam_sm: [0024] 00 00 00 00 00 00 00 00

platform caam_sm: [0032] 00 00 00 00 00 00 00 00

platform caam_sm: [0040] 00 00 00 00 00 00 00 00

platform caam_sm: [0048] 00 00 00 00 00 00 00 00

platform caam_sm: [0056] 00 00 00 00 00 00 00 00

platform caam_sm: [0064] 00 00 00 00 00 00 00 00

platform caam_sm: [0072] 00 00 00 00 00 00 00 00

platform caam_sm: [0080] 00 00 00 00 00 00 00 00

platform caam_sm: [0088] 00 00 00 00 00 00 00 00

platform caam_sm: 256-bit unwritten blob:

platform caam_sm: [0000] 00 00 00 00 00 00 00 00

platform caam_sm: [0008] 00 00 00 00 00 00 00 00

platform caam_sm: [0016] 00 00 00 00 00 00 00 00

platform caam_sm: [0024] 00 00 00 00 00 00 00 00

platform caam_sm: [0032] 00 00 00 00 00 00 00 00

platform caam_sm: [0040] 00 00 00 00 00 00 00 00

platform caam_sm: [0048] 00 00 00 00 00 00 00 00

platform caam_sm: [0056] 00 00 00 00 00 00 00 00

platform caam_sm: [0064] 00 00 00 00 00 00 00 00

platform caam_sm: [0072] 00 00 00 00 00 00 00 00

platform caam_sm: [0080] 00 00 00 00 00 00 00 00

platform caam_sm: [0088] 00 00 00 00 00 00 00 00

platform caam_sm: 64-bit black key in blob:

platform caam_sm: [0000] d4 50 41 ce c8 3b bf 65

platform caam_sm: [0008] 61 a2 35 10 61 56 48 1f

platform caam_sm: [0016] 24 6f 81 76 d4 d7 e8 67

platform caam_sm: [0024] ad 2e e6 b7 7c 15 ae 11

platform caam_sm: [0032] d4 ce 2b 9b ce 09 a5 2f

platform caam_sm: [0040] f8 a7 20 9c 5f 4d b8 ce

platform caam_sm: [0048] b9 6e bb 7a 4d c8 4a 53

platform caam_sm: [0056] 00 00 00 00 00 00 00 00

platform caam_sm: [0064] 00 00 00 00 00 00 00 00

platform caam_sm: [0072] 00 00 00 00 00 00 00 00

platform caam_sm: [0080] 00 00 00 00 00 00 00 00

platform caam_sm: [0088] 00 00 00 00 00 00 00 00

platform caam_sm: 128-bit black key in blob:

platform caam_sm: [0000] 41 ba 5b 95 92 9c f7 01

platform caam_sm: [0008] 06 3d 37 91 f7 4d d4 6d

platform caam_sm: [0016] 54 58 b0 40 61 4a a8 71

platform caam_sm: [0024] 38 a4 3c 6a 60 ae 3d 2a

platform caam_sm: [0032] 43 b7 12 fc 7e fb 24 18

platform caam_sm: [0040] 51 72 d2 fa 6d ed fa b4

platform caam_sm: [0048] 3c 2d 4c c5 0c 79 cb 0f

platform caam_sm: [0056] 84 f5 31 e8 5b 08 b0 ee

platform caam_sm: [0064] 00 00 00 00 00 00 00 00

platform caam_sm: [0072] 00 00 00 00 00 00 00 00

platform caam_sm: [0080] 00 00 00 00 00 00 00 00

platform caam_sm: [0088] 00 00 00 00 00 00 00 00

platform caam_sm: 192-bit black key in blob:

platform caam_sm: [0000] cf ac aa b3 97 9d 0a cd

platform caam_sm: [0008] 5d d6 e8 8b 36 82 be 74

platform caam_sm: [0016] f0 a6 98 41 ae 5f 66 25

platform caam_sm: [0024] 35 bd 7a a2 c0 72 e3 11

platform caam_sm: [0032] b2 10 d2 ad cc 7b c7 7c

platform caam_sm: [0040] 22 5e 9a 96 f5 3c b0 c8

platform caam_sm: [0048] 73 82 1b b3 f7 51 71 6b

platform caam_sm: [0056] 6d f0 be f1 fe 54 32 2f

platform caam_sm: [0064] 1c d0 83 9b 20 29 4d 98

platform caam_sm: [0072] 00 00 00 00 00 00 00 00

platform caam_sm: [0080] 00 00 00 00 00 00 00 00

platform caam_sm: [0088] 00 00 00 00 00 00 00 00

platform caam_sm: 256-bit black key in blob:

platform caam_sm: [0000] 76 63 86 09 37 85 bf 24

platform caam_sm: [0008] 71 66 49 1b 8e 59 eb 0e

platform caam_sm: [0016] c9 e3 3a 28 aa 83 4c 8b

platform caam_sm: [0024] d6 a3 17 d8 2f 68 17 21

platform caam_sm: [0032] 2e b4 a7 93 8e 90 c7 90

platform caam_sm: [0040] dc bc 3c a0 8f fd c5 b0

platform caam_sm: [0048] 42 f4 a9 4c 5d f3 cf 39

platform caam_sm: [0056] 2a cd d8 26 02 60 74 d2

platform caam_sm: [0064] d6 e3 a0 0d 9c fe 32 4a

platform caam_sm: [0072] 11 a8 63 b5 6b 09 46 fb

platform caam_sm: [0080] 00 00 00 00 00 00 00 00

platform caam_sm: [0088] 00 00 00 00 00 00 00 00

platform caam_sm: restored 64-bit black key:

platform caam_sm: [0000] cf 8d fb 94 a7 2c 8f 57

platform caam_sm: [0008] 8c a5 40 6e b2 d2 99 fa

platform caam_sm: restored 128-bit black key:

platform caam_sm: [0000] 12 f6 14 ff ef fe d3 2a

platform caam_sm: [0008] 0c 95 87 2b 77 2c 27 81

platform caam_sm: restored 192-bit black key:

platform caam_sm: [0000] 43 21 c3 21 03 42 46 94

platform caam_sm: [0008] ed 00 db 9f b0 c5 15 47

platform caam_sm: [0016] ee f6 ae 69 75 17 0d fb

platform caam_sm: [0024] b9 bf d4 1c e9 c1 b0 f8

platform caam_sm: restored 256-bit black key:

platform caam_sm: [0000] 6e 2d 47 c6 02 c0 c4 34

platform caam_sm: [0008] d6 0f 6f b8 2d 1a 3e df

platform caam_sm: [0016] c9 51 6b bb 5a 1c 32 31

platform caam_sm: [0024] 6e dc c9 86 5e c6 3e 7c

snvs-secvio 20cc000.caam-snvs: violation handlers armed - non-secure state

usbcore: registered new interface driver usbhid

usbhid: USB HID core driver

wm8962 3-001a: Failed to get supply 'DCVDD': -517

wm8962 3-001a: Failed to request supplies: -517

i2c 3-001a: Driver wm8962 requests probe deferral

imx-wm8962 sound.27: failed to find codec platform device

imx-wm8962: probe of sound.27 failed with error -22

imx-spdif sound-spdif.28:  dit-hifi <-> 2004000.spdif mapping ok

NET: Registered protocol family 26

TCP: cubic registered

NET: Registered protocol family 10

sit: IPv6 over IPv4 tunneling driver

NET: Registered protocol family 17

can: controller area network core (rev 20120528 abi 9)

NET: Registered protocol family 29

can: raw protocol (rev 20120528)

can: broadcast manager protocol (rev 20120528 t)

can: netlink gateway (rev 20130117) max_hops=1

Bluetooth: RFCOMM TTY layer initialized

Bluetooth: RFCOMM socket layer initialized

Bluetooth: RFCOMM ver 1.11

Bluetooth: BNEP (Ethernet Emulation) ver 1.3

Bluetooth: BNEP filters: protocol multicast

Bluetooth: BNEP socket layer initialized

Bluetooth: HIDP (Human Interface Emulation) ver 1.2

Bluetooth: HIDP socket layer initialized

8021q: 802.1Q VLAN Support v1.8

Key type dns_resolver registered

VFP support v0.3: implementor 41 architecture 3 part 30 variant 9 rev 4

imx6-cpufreq imx6-cpufreq.0: failed to get regulators

imx6-cpufreq: probe of imx6-cpufreq.0 failed with error -2

Unable to handle kernel NULL pointer dereference at virtual address 00000018

pgd = 80004000

[00000018] *pgd=00000000

Internal error: Oops: 805 [#1] PREEMPT SMP ARM

Modules linked in:

CPU: 0 PID: 1 Comm: swapper/0 Not tainted 3.10.53-1.1.0_ga+g496fbe0 #5

task: a7068000 ti: a706a000 task.ti: a706a000

PC is at imx_amp_power_init+0x8c/0xd8

LR is at __arm_ioremap+0x18/0x1c

pc : [<80c8a4e4>]    lr : [<80019128>]    psr: a0000113

sp : a706bef8  ip : 00000000  fp : 00000000

r10: 80caff6c  r9 : 80c8a458  r8 : 00000014

r7 : 00000001  r6 : 80d18838  r5 : 80d18838  r4 : 00000001

r3 : 00000000  r2 : 80d18838  r1 : 00000000  r0 : a700b180

Flags: NzCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment kernel

Control: 10c53c7d  Table: 8100404a  DAC: 00000015

Process swapper/0 (pid: 1, stack limit = 0xa706a238)

Stack: (0xa706bef8 to 0xa706c000)

bee0:                                                       80cbb1b8 00000007

bf00: 80d178c0 80d178c0 80d178c0 80008704 00000103 80047e94 80caff44 a706a010

bf20: 80b779d4 80c3c5e8 00000007 00000007 80047700 80047758 00000000 80cbb1b8

bf40: 00000007 80d178c0 80d178c0 80c724dc 00000103 80caff6c 80caff64 80c72be0

bf60: 00000007 00000007 80c724dc e08d7f63 a726bff8 20041010 a706bf9c 00000000

bf80: 80679540 00000000 00000000 00000000 00000000 00000000 00000000 80679548

bfa0: a706a000 00000000 80679540 8000e118 00000000 00000000 00000000 00000000

bfc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

bfe0: 00000000 00000000 00000000 00000000 00000013 00000000 e8d5debf f47dcf60

[<80c8a4e4>] (imx_amp_power_init+0x8c/0xd8) from [<80008704>] (do_one_initcall+0x108/0x158)

[<80008704>] (do_one_initcall+0x108/0x158) from [<80c72be0>] (kernel_init_freeable+0x138/0x1d8)

[<80c72be0>] (kernel_init_freeable+0x138/0x1d8) from [<80679548>] (kernel_init+0x8/0x158)

[<80679548>] (kernel_init+0x8/0x158) from [<8000e118>] (ret_from_fork+0x14/0x3c)

Code: e0233498 e2844001 e0862102 e5920004 (e5c37018)

---[ end trace 399390648cbc89fe ]---

Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b

I solved! I added the correct dts imx6sx-sdb-m4.dts

I would like the uart2 peripheral while the M4 is up, but in the imx6sx-sdb-m4.dts is "disabled". If I try to enable I obtain a kernel panic.

Why is not possible to enable the shared peripherals?

Hi Sergio,

I'm trying to download the MQX RTOS for i.MX 6SoloX v4.1.0 as suggested but is not available.

I also try the link suggested by Bruno and the following message appear:

----

Error Message

Either the item was not found, or you are not authorized to download this item.

For Customer Support assistance, please enter a description of the problem and press the "send" button.

----

Any suggestion?

Thanks

MQX RTOS for i.MX 6SoloX v4.1.0.png

MQX RTOS for i.MX 6SoloX v4.1.0 2.png

Any solution?

It doesn't work. This link redirects to my account .

1) Log in with your community.freescale.com account

2) Go to the url

I've done this, but it doesn't work. It must be something related to permission.

Sergio,

i was working to change the Boot Command, some how i got screwed up.

Boot variable got reset, now linux is not running on A9, i have only MQX running on M4 on  IMx6solo Sabre Board

what is the Boot command variable to enable the linux to run on A9.

this is to enable M4

setenv bootcmd "run m4boot;${bootcmd}" 

what is the variable for A9?

Does RPMSG use the Messagin Unit(MU)? Or is it possible to use the MU without RPMSG?

Version history
Revision #:
2 of 2
Last update:
‎09-10-2020 03:07 AM
Updated by: