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
$ 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
SergioPrado great job! Thanks much.
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:
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
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?