My bad, the image works perfectly. The problem was I have modified the m4 example, and then wrote back as original, but I was wrong. I restore this example and compile again. Also the steps for execution the example were wrong. Here the correct steps: 1.- Load the firmware from linux by using m4fwloader provided here. 2.- Load the module driver with: sudo modprobe imx_rpmsg_tty 3.- Then ttyRPMSG will appear in /dev/ folder, also we can use dmesg command to see that driver was successfully installed 4.- Now we can open minicom in this port with: minicom -D ttyRPMSG 5.- Everything written in minicom will appear in minicom as effect of echo communication, also in debug uart of m4 will appear the message "Get Message From Master Side : "a" [len : 1] from slot 0" I used Udoobuntu 3.0 beta 2 with kernel 4.1.15_2 and FreeRTOS_BSP_1.0.1_iMX6SX from nxp. The example used was "str_echo_bm" located in \FreeRTOS_BSP_1.0.1_iMX6SX\examples\imx6sx_sdb_m4\demo_apps\rpmsg. I didn't make any modification to device tree layout and with this example working it is pretty clear that memory layout is compatible with the example, however the example shows (in file "platform_info.c") #define VRING0_BASE 0xBFFF0000 #define VRING1_BASE 0xBFFF8000 which is not the same as the device tree which shows (in file "imx6sx-udoo-neo-m4.dtsi") /* Reserved 1Mb for MCC */ mcc_memory: m4@0xBFF00000 { no-map; reg = <0xBFF00000 0x00100000>; }; but I think that the example of m4 is making alignment process in the code. And for finish this message. Thank you very much @Francesco, you saved a life (thesis coff coff) and for sure future lifes of people that come into this wonderful board.
The image seems to work fine. However, it seems to me the udoo repo is not fully updated to be compatible with this image and I dare not to upgrade the packages from udoo repo since it will downgrade many packages. udooer@udooneo:~/myconfig$ sudo apt list --upgradable Listing... Done firmware-udooneo-wl1831/unknown 2016.02-xenial-kernel3 all [upgradable from: 2016.02-xenial] udev-udooneo-rules/unknown 11 all [upgradable from: 10] udoo-gpio-export/unknown 0.4 all [upgradable from: 0.2] udoo-web-conf/unknown 2.4.0 all [upgradable from: 2.0.2] udooneo-m4uploader/unknown 2.1.0 armhf [upgradable from: 0.3.0-1] udooer@udooneo:~/myconfig$ sudo apt upgrade Reading package lists... Done Building dependency tree Reading state information... Done Calculating upgrade... Done The following packages were automatically installed and are no longer required: avr-libc avrdude binutils-avr gcc-avr libdrm-common libdrm-etnaviv1 libftdi1 libgeoclue0 libllvm6.0 librxtx-java libsensors4 Use 'sudo apt autoremove' to remove them. The following NEW packages will be installed: astyle The following packages will be upgraded: firmware-udooneo-wl1831 udev-udooneo-rules udoo-gpio-export udoo-web-conf udooneo-m4uploader The following packages will be DOWNGRADED: arduino arduino-core arduino-core-udooneo libdrm-amdgpu1 libdrm-freedreno1 libdrm-nouveau2 libdrm-radeon1 libdrm2 libegl1-mesa libgbm1 libgl1-mesa-dri libgl1-mesa-glx libglapi-mesa libgles2-mesa libuv1 libwayland-egl1-mesa libwebsockets7 linux-libc-dev linux-udooneo xserver-common xserver-xorg-core 5 upgraded, 1 newly installed, 21 downgraded, 0 to remove and 0 not upgraded. Need to get 11.4 MB/47.7 MB of archives. After this operation, 33.2 MB of additional disk space will be used. Do you want to continue? [Y/n] n Abort.
Hey quick question... I've been trying to do exactly what you're doing (you're using a Neo right?) but I'm not getting any results. I've followed your outline to a T. what load addr are you using for this? Is there somewhere I can dig into to find it? I tried 0x1FFF8000 (from the linker script) and it completed, but not sure if its working or not. I don't see ttyRPMSG in /dev/ after loading the module driver. Not sure if this is because I'm loading the binary incorrectly? I've gotten it to appear once but have not been able to reproduce it. Any help would be greatly appreciated!
Actually figured it out. If anyone else happens to come across this, the memory address is 0x007F8000 which i found here (need to be registered). You want to look at the memory system overview for the m4. With this, I was able to successfully load and run my demo program.