Hello,
I trying to run the pingpong example on the Sabre SD board with iMX6Solox. I have been able to build and boot core-image-minimal and core-image-base using the 3.10.53 BSP. The problem is that both of them do not have the pingpong example capabilities.
I used the following:
1. MACHINE=imx6sxsabresd source fsl-setup-release.sh -b build
2. bitbake core-image-base
So i tried with 3.14.52 and 4.1.15, they both have the pingpong code in them but do not boot for me on the same board. Not booting is usually looping on "Starting Kernel....".
I followed the instruction to the letter and i guess i am missing something. If i want to build the "base" image with no graphical backend, which DISTRO should i use and how exactly do i need to configure the build?
This is what i see on the terminal when it loops:
U-Boot 2015.04-imx_v2015.04_3.14.52_1.1.0_ga+g6cf684a (Aug 08 2016 - 23:27:21)
CPU: Freescale i.MX6SX rev1.2 at 792 MHz
CPU: Temperature 34 C
Reset cause: POR
Board: MX6SX SABRE SDB
I2C: ready
DRAM: 1 GiB
PMIC: PFUZE100 ID=0x11
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
switch to partitions #0, OK
mmc2 is current device
Net: FEC [PRIME]
Normal Boot
Hit any key to stop autoboot: 0
switch to partitions #0, OK
mmc2 is current device
switch to partitions #0, OK
mmc2 is current device
reading boot.scr
** Unable to read file boot.scr **
reading zImage
6037600 bytes read in 377 ms (15.3 MiB/s)
Booting from mmc ...
reading imx6sx-sdb.dtb
47342 bytes read in 18 ms (2.5 MiB/s)
Kernel image @ 0x80800000 [ 0x000000 - 0x5c2060 ]
## Flattened Device Tree blob at 83000000
Booting using the fdt blob at 0x83000000
Using Device Tree in place at 83000000, end 8300e8ed
switch to ldo_bypass mode!
Starting kernel ...
U-Boot 2015.04-imx_v2015.04_3.14.52_1.1.0_ga+g6cf684a (Aug 08 2016 - 23:27:21)
CPU: Freescale i.MX6SX rev1.2 at 792 MHz
CPU: Temperature 38 C
Reset cause: POR
Board: MX6SX SABRE SDB
I2C: ready
DRAM: 1 GiB
PMIC: PFUZE100 ID=0x11
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
switch to partitions #0, OK
mmc2 is current device
Net: FEC [PRIME]
Normal Boot
Hit any key to stop autoboot: 0
switch to partitions #0, OK
mmc2 is current device
switch to partitions #0, OK
mmc2 is current device
reading boot.scr
** Unable to read file boot.scr **
reading zImage
6037600 bytes read in 377 ms (15.3 MiB/s)
Booting from mmc ...
reading imx6sx-sdb.dtb
47342 bytes read in 18 ms (2.5 MiB/s)
Kernel image @ 0x80800000 [ 0x000000 - 0x5c2060 ]
## Flattened Device Tree blob at 83000000
Booting using the fdt blob at 0x83000000
Using Device Tree in place at 83000000, end 8300e8ed
switch to ldo_bypass mode!
Starting kernel ...
U-Boot 2015.04-imx_v2015.04_3.14.52_1.1.0_ga+g6cf684a (Aug 08 2016 - 23:27:21)
CPU: Freescale i.MX6SX rev1.2 at 792 MHz
CPU: Temperature 39 C
Reset cause: POR
Board: MX6SX SABRE SDB
I2C: ready
DRAM: 1 GiB
PMIC: PFUZE100 ID=0x11
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
switch to partitions #0, OK
mmc2 is current device
Net: FEC [PRIME]
Normal Boot
Hit any key to stop autoboot: 0
switch to partitions #0, OK
mmc2 is current device
switch to partitions #0, OK
mmc2 is current device
reading boot.scr
** Unable to read file boot.scr **
reading zImage
6037600 bytes read in 378 ms (15.2 MiB/s)
Booting from mmc ...
reading imx6sx-sdb.dtb
47342 bytes read in 18 ms (2.5 MiB/s)
Kernel image @ 0x80800000 [ 0x000000 - 0x5c2060 ]
## Flattened Device Tree blob at 83000000
Booting using the fdt blob at 0x83000000
Using Device Tree in place at 83000000, end 8300e8ed
switch to ldo_bypass mode!
Starting kernel ...
Thanks,
Evgeny
Solved! Go to Solution.
Seems that the driver is not included in 3.10.53 then. I tried to build the image with 3.14.52 for i.MX6SX sabresd board, added the driver manually, as I described in my first post and it works fine (core-image-minimal).
Could you please try the same source as I did?
repo init -u git://git.freescale.com/imx/fsl-arm-yocto-bsp.git -b imx-3.14.52-1.1.0_ga
Hi Evgeny
reason may be that processor can not find rootfs, as wrong device
was given in kernel boot parameters. One can check Table 30. Linux uSDHC relationships
Linux Guide or run Demo images using MFG Tools from
i.MX 6 Series Software and Development Tool|NXP
If demos run well, then check uboot environment variables and
compare with own uboot settings.
PingPong demo is described on
Communication between asymmetric cores on i.MX6... | NXP Community
and sect.52.5 Running i.MX RPMsg Test Programs Linux Manual
Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
Hi Igor,
I just downloaded the L4.1.15_1.2.0_ga-mfg-tools.tar package and used the mfgtool2-yocto-mx-sabresd-sdcard-sd3 script to load the precompiled image.
I tried with two different SD cards on two different boards, this is the output (still looping on boot):
U-Boot 2015.04imx_v2015.04_4.1.15_1.2.0_ga+gede7538 (Jun 30 2016 - 10:23:19)
CPU: Freescale i.MX6SX rev1.2 at 792 MHz
CPU: Temperature 46 C
Reset cause: WDOG
Board: MX6SX SABRE SDB
I2C: ready
DRAM: 1 GiB
PMIC: PFUZE100 ID=0x11
MMC: FSL_SDHC: 0, FSL_SDHC: 1, FSL_SDHC: 2
Display: Hannstar-XGA (1024x768)
Video: 1024x768x18
gis input --- No input
In: serial
Out: serial
Err: serial
switch to partitions #0, OK
mmc2 is current device
Net: FEC [PRIME]
Normal Boot
Hit any key to stop autoboot: 0
switch to partitions #0, OK
mmc2 is current device
switch to partitions #0, OK
mmc2 is current device
reading boot.scr
** Unable to read file boot.scr **
reading zImage
6620376 bytes read in 316 ms (20 MiB/s)
Booting from mmc ...
reading imx6sx-sdb.dtb
48333 bytes read in 19 ms (2.4 MiB/s)
Kernel image @ 0x80800000 [ 0x000000 - 0x6504d8 ]
## Flattened Device Tree blob at 83000000
Booting using the fdt blob at 0x83000000
Using Device Tree in place at 83000000, end 8300eccc
switch to ldo_bypass mode!
Starting kernel ...
U-Boot 2015.04imx_v2015.04_4.1.15_1.2.0_ga+gede7538 (Jun 30 2016 - 10:23:19)
CPU: Freescale i.MX6SX rev1.2 at 792 MHz
CPU: Temperature 44 C
Reset cause: POR
Board: MX6SX SABRE SDB
I2C: ready
DRAM: 1 GiB
PMIC: PFUZE100 ID=0x11
MMC: FSL_SDHC: 0, FSL_SDHC: 1, FSL_SDHC: 2
Display: Hannstar-XGA (1024x768)
Video: 1024x768x18
gis input --- No input
In: serial
Out: serial
Err: serial
switch to partitions #0, OK
mmc2 is current device
Net: FEC [PRIME]
Normal Boot
Hit any key to stop autoboot: 0
switch to partitions #0, OK
mmc2 is current device
switch to partitions #0, OK
mmc2 is current device
reading boot.scr
** Unable to read file boot.scr **
reading zImage
6620376 bytes read in 315 ms (20 MiB/s)
Booting from mmc ...
reading imx6sx-sdb.dtb
48333 bytes read in 18 ms (2.6 MiB/s)
Kernel image @ 0x80800000 [ 0x000000 - 0x6504d8 ]
## Flattened Device Tree blob at 83000000
Booting using the fdt blob at 0x83000000
Using Device Tree in place at 83000000, end 8300eccc
switch to ldo_bypass mode!
Starting kernel ...
Igor,
Thank you for the quick reply, i followed the instructions in the link you have provided. Wen i build the minimal image, it does not generate the source code for the pingpong driver, and of-course the driver is not there when i boot the image on the board. Same thing for base image. Should it even work with 3.10.53? do i need to do some additional setup during compilation for the pingpong to work?
Thanks,
Evgeny
Hi Evgeny,
try to add the driver manually. After executing
MACHINE=imx6sxsabresd source fsl-setup-release.sh -b build
run:
$ bitbake -c menuconfig linux-imx
Device drivers -> Rpmsg drivers and select IMX RPMSG pingpong driver for ping pong example.
$ bitbake linux-imx
$ bitbake core-image-minimal
I did what you proposed to do, but
Device drivers -> Rpmsg drivers-> Empty
The Rpmsg is empty, and does not have the option to be included in the build.....
For both minimal and base builds
Seems that the driver is not included in 3.10.53 then. I tried to build the image with 3.14.52 for i.MX6SX sabresd board, added the driver manually, as I described in my first post and it works fine (core-image-minimal).
Could you please try the same source as I did?
repo init -u git://git.freescale.com/imx/fsl-arm-yocto-bsp.git -b imx-3.14.52-1.1.0_ga
Just to follow up, i think what confused me was the switch from MCC (3.10) to RPMSG (3.14) for A9<->M4 communication. I can confirm that the pingpong example is working perfectly out of the box for latest code from 4.1.15 branch.
MACHINE=imx6sxsabresd source fsl-setup-release.sh -b build
bitbake core-image-base
Hi Evgeny
one can check sect.53.5.3 Running the pingpong Demo/Test
L3.10.53 Linux Manual
Best regards
igor
Igor,
Here:
Communication between asymmetric cores on i.MX6SoloX
The instructions talk about the minimal image for the pingpong example.
Here:
I cant get the linux side of yocto rpmsg example for imx6sx
You propose using "more full images" after the guy tried working with minimal image for the pingpong example.
I am a bit confused....
All i am trying to do is to follow the build instruction step by step in-order to build "minimal" Linux image without any graphical backend using imx6sx evaluation board, nothing fancy, no additions, no custom boards. I double checked in the precompiled image that i got on a SD card with the board, there is no rpmsg directory in the /lib/modules/3.10.53-1.1.0_ga+g496fbe0/kernel/drivers/.
Maybe i am not explaining myself properly. I want to build a headless (no graphical backend) "minimal size" image with rpmsg and ethernet capabilities. I think 4.1 kernel with the core-image-base is what i am looking for, but i can not find anywhere how to build it this way. It is only explained how to build it for graphical backends.
Thanks,
Evgeny