RPMsg on i.MX6 SoloX and Embedded Artist board

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

RPMsg on i.MX6 SoloX and Embedded Artist board

Jump to solution
3,408 Views
dexter2306
Contributor II

Hi,

 

I'm trying to test freescale's rpmsg demo file "str_echo_freertos" but having some issues.

I'm using an evaluation board from Embedded Artist (iMX6 SoloX Developer's Kit) with the imx6 solo x.

I've a linux kernel (3.14.52) and the app I want to test comes with the FreeRTOS BSP 1.0.1.

 

I've already compiled applications which worked (like a test of the uart from a FreeRTOS app on TCM) but can't make rpmsg working. (By the way, I've made the modifications on the pin_mux.c file to fix the UART2 settings).

 

What I've done:

I've replaced the former dtb with the imx6sxea-com-kit-m4.dtb with the command '=> setenv fdt_file imx6sxea-com-kit-m4.dtb '

I've put my image with the command '=> setenv m4image myImage.bin'

Then I've run the following instructions :

=> fatload mmc 1 0x00910000 myImage.bin

=>dcache flush

=>cp.b 0x00910000 0x7f8000 0x8000

=>dcache flush

=>bootaux 0x7f8000

 

On the m4 hyperterminal I can see then :

RPMSG String Echo FreeRTOS RTOS API Demo

RPMSG Init as Remote

 

Finally, I boot the A9 core from the u-boot menu with 'boot' and i load the rpmsg module with 'insmod imx_rpmsg_tty.ko' and I get :

imx_rpmsg_tty rpmsg0: new channel: 0x400 -> 0x0!
Install rpmsg tty driver!

 

BUT :

Nothing happens on the M4 side, even when I test a 'echo hello > /dev/ttyRPMSG'

 

What am I missing ?

 

I add my boot log in attachment

 

 

QD

Original Attachment has been moved to: log_boot_imx6.txt.zip

Labels (3)
0 Kudos
1 Solution
2,150 Views
b50844
NXP Employee
NXP Employee

Hi Quentin,

I did a comparison and the files look somewhat different, but I can recognize simmilar sections... 
At the end of the file, I can find some strings and for your file, there is version 1.0.0, whereas for the NXP binary, there is version 1.0.1. There might be some update/bugfix maybe?

Can you verify the version if your BSP? Can you access the version 1.0.1?

Sorry for just a little contribution,
Marek

View solution in original post

0 Kudos
12 Replies
2,150 Views
igorpadykov
NXP Employee
NXP Employee

Hi Quentin

one can test with nxp linux bsp on sabre sd board using

Chapter 9 RPMsg PingPong Bare Metal Demo FreeRTOS attached

Demo Guide and Chapter 52 Remote Processor Messaging (RPMsg) Linux Manual.

Demo Image

http://www.nxp.com/webapp/Download?colCode=L3.14.52_1.1.0_iMX6SX&appType=license&location=null&Paren... 

Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 Kudos
2,150 Views
dexter2306
Contributor II

Do you have another suggestion ?

0 Kudos
2,150 Views
igorpadykov
NXP Employee
NXP Employee

this is not nxp board and may be posted on vendor support

Support | Embedded Artists AB 

Best regards
igor

0 Kudos
2,150 Views
dexter2306
Contributor II

OK, but I'm wondering of the origin of my problem. Maybe it's a software issue.

Could it be caused by autorization missing for the A9 to write on the M4 TCM, or a setting on the size of shared memory ?

I've redone a test with a precompiled app given by NXP, pingpong_qspi.bin

It's working on the board, so I tried to compile myself pingpong_freertos.bin with the qspi linker, but this time I don't have the M4 handshake whench I launch the module (imx_rpmsg_pingpong.ko).

0 Kudos
2,150 Views
b50844
NXP Employee
NXP Employee

Hello Quentin,

Can you send me here please your binary and the binary provided by NXP?
Or you can even try to compare them yourself - sometimes, there must be some metadata added to the binary, which is flashed to the QSPI storage. Maybe, you are missing it... I don't have experience specifically with your board.

Regards,
Marek

0 Kudos
2,150 Views
dexter2306
Contributor II

Hi,

Thanks for answering. Indeed, it could be a lead. Here are the NXP correct compiled version, and mine :

0 Kudos
2,151 Views
b50844
NXP Employee
NXP Employee

Hi Quentin,

I did a comparison and the files look somewhat different, but I can recognize simmilar sections... 
At the end of the file, I can find some strings and for your file, there is version 1.0.0, whereas for the NXP binary, there is version 1.0.1. There might be some update/bugfix maybe?

Can you verify the version if your BSP? Can you access the version 1.0.1?

Sorry for just a little contribution,
Marek

0 Kudos
2,150 Views
dexter2306
Contributor II

Hi,

there was maybe an error of version. Moreover, it seems Eclipse configuration had a little trouble, that's why one has to be very conscientious with that.

My mistake was to think the error came from the board or the code, instead it came from this tiny error in the configuration of linker/compiler in Eclipse.

 
0 Kudos
2,150 Views
rewers
Contributor II

Hi Quentin,

I have the same issue on i.MX7 SABRE board. Maybe you can share what you tiny error in Eclipse was. I am using Eclipse, too. So maybe I did the same mistake.

Thanks for your help in advance

0 Kudos
2,150 Views
dusancervenka-b
NXP Employee
NXP Employee

Hi Quentin, maybe you can find some inspiration here: GitHub - EmbeddedRPC/erpc-imx-demos: eRPC demos for i.MX devices 

It is ePRC (embedded remote procedure call) example which is using RPSMG as a transport layer on iMX board. Maybe you can ignore eRPC steps and look only on RPMSG part of the example.

0 Kudos
2,150 Views
dexter2306
Contributor II

Thanks Dusan, I will glance at it and  I'll tell you if it helps me !

0 Kudos
2,150 Views
dexter2306
Contributor II

Thanks Igor for answering, but I'm not working on a sabre board. I need to make rpmsg working on my configuration (imx6 solo x on the Embedded Artist iMX6 SoloX Developer's Kit.

Like I said, I already compile binaries which worked (like one using uart and returning a keystroke on the M4 hyperterminal), but I fail with RPMsg.

0 Kudos