S32G2: A-core & M-core IPCF Communication

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

S32G2: A-core & M-core IPCF Communication

711 Views
Lee0202
Contributor III

Hi, I am a beginner to S32G2 platform. I am using S32G2-VNP-RDB2 board. I successfully flashed blinking LED program on SDcard in M-core. Now I would like to launch the blinking LED program from A-core so that it runs on M-core using "Inter Processor Communication Framework (IPCF) on SDcard". Please mention the build steps and point to the right documents.

Tags (4)
0 Kudos
Reply
10 Replies

322 Views
chenyin_h
NXP Employee
NXP Employee

Hello, @Lee0202 

Thanks for the reply.

In actual industrial environment, usually the bootloader is used to boot both M core and A core, which is similar to the AN13750.

The bootloader is running on M7_0, it will load the A core and M core application from the flash, then M core application will run on M7, while the A core application will run on the A53(BSP). The image loading process is done by the bootloader.

I understand that you want to boot the M core application(LED) and the A core application(BSP41) simultaneously, as this moment, I suggest keeping using the bootloader method.

From several posts from your side, I understand that the phenomenon you faced is that there is no output from the terminal(for some cases, seem you boot the BSP first, and then try boot the M core via uboot), and you want to know what the reason is. From my experience, there may be really several possible reasons:

1.    Bootloader issue, maybe crashed, image load error, etc.

2.    A core side, in general if you have applied the patch from AN13750, then there are not much points to be take care, however, there may be some resource conflicts faced between M core and A core side, then the boot process would failed.

3.    M core side, I understand that you may have successfully run the LED application individually on the RDB2, however, the same image may not function correctly when A/M booting simultaneously(or seems correct, but A core side is impacted), it is usually because of the pinmux, re-init of the same resource, etc.

 

BR

Chenyin

 

0 Kudos
Reply

354 Views
chenyin_h
NXP Employee
NXP Employee

Hello, @Lee0202 

I feel sorry that there may not be a document based on BSP41 that describe the similar contents with AN13750.

If you interested in IPCF itself, you may try the IPCF_multi_instance example directly without bootloader involved. The testing method is detailed described in the description.txt under the IPCF directly. It is relatively easy to follow.

If you do need the example shown in AN13750, I suggest strict following the package version listed in the document, since there may be some compatible issues if using the latest one.

From the log itself, the kernel panic because of the SError, may I know which version IPCF you had built? I suggest using the BSP version that described in the release notes of your IPCF specific version used.

 

BR

Chenyin

0 Kudos
Reply

353 Views
Lee0202
Contributor III
  • As mentioned in Muticore enablement guide .at beginning I used IPCF 4.6 version .but I didn't find 3 multi instance IPCF examples in that, as like in  document . IPCF 4.6 has only for 2 cores multi instance examples.
  • So,along with ATF patch file I got IPCF examples where I import in s32ds and built

 

 

 

Please check Above things.when I tried with bundle I got licence issue.So from flex I downloaded all packages individual with same versions exactly.

 

Please give me another way how to boot both at a time at least.till now I am not seeing any progress with working on multi core enablement guide. So I want to see at first to enable both A53 and M7 at a time with bsp and blinking led. Later I will into IPCF muticore enablement guide. 

0 Kudos
Reply

505 Views
chenyin_h
NXP Employee
NXP Employee

Hello, @Lee0202 

I feel very sorry for the delay.

So I can understand that you were following the AN13750 to have your test.

From the examples in AN13750, there would be the following parts:

  1. Bootloader.bin, which is compiled from the S32G2 Platform Software Integration 2022.06
  2. BSP images, while the TF-A have to be recompiled, the pre-built images could not be used directly.
  3. M core application, it could be either a LED blinking or anything else, in AN13750, it is IPCF M core application, which could be built from the IPCF packages.(Inter-Platform Communication 4.6)
  4. The IPCF modules for Linux, which are compiled by yourself.

The bootloader is flashed to the QSPI flash, then it could boot the M core to run with the IPCF instance, also boot the A core with TF-A, the TF-A will load the Linux kernel and finally enter Linux prompt, you may copy the IPCF modules built to the rootfs, and insmod them, then there will be the logs shown as described in AN13750.

Regarding to the questions listed, since you did not get anything from the terminal, there would be multiple possibilities,(bootloader crashed; bootloader is OK, but there are issues when load A53 images; etc.) it could not be simply confirmed, you may use the debugger to help to check where the problem is.

 

BR

Chenyin

 

0 Kudos
Reply

370 Views
Lee0202
Contributor III

This time I did the following. Steps 

1) manual built of bsp41(u-boot, kernel ,ATF,IPCF4.9)

2) i took  .Pfe package and copied the . SD card file into SD card of bsp41

3)in bootfs I replaced IMAGE and .dtb file with the newly built one. 

4) copied that ipc_shm_dev.ko and ipc_shm_sample_multi_instance.ko into roots

5) trying to insert .ko files into kernel by using insmod iam able to to insert ipc_shm_dev.ko .but not second (multi_instances.ko).

I attached screenshot of logs . please give reply quickly  . and also For M7 side can I import and build the ipcf multipl_instances example which is available along with patch files mentioned in muticore enablement guide for Bsp41. 

 

Give source  link for latest muticore enablement guide for bsp38 to 41 ... If not available give some idea how to apply muticore enablement guide for bsp41 or 38

0 Kudos
Reply

626 Views
chenyin_h
NXP Employee
NXP Employee

Hello, @Lee0202 

Thanks for the reply.

I suggest using the IPCF software package directly, for example, version 4.9.

After the IPCF 4.9 installed, you may firstly import the IPCF_Example_S32G274A_M7_0, and reference the description.txt in that directory. Which shows the method for configuration, A53 side setup and the test logs.

For the technical details of IPCF, you may reference the document SW32G_IPCF_4.9.0_D2310_User_Manual.pdf that exist in your installation path.

 

Best Regards

Chenyin

 

0 Kudos
Reply

618 Views
Lee0202
Contributor III

hey thanks for reply,

i am working on " multicore enablement guide " where I am using same version packages and everything. i did from building U-boot to flashing images flashing images to NOR -flash. I didn't get any prompt terminal after flashing. Iam suspecting the following deviations may be reasons, if not please let me know.

1)while building ATF

my log file load address are these:

IVT Location: SD/eMMC
Load address: 0x342fc680
Entry point: 0x34302000

but in document values are:

IVT Location: SD/eMMC
Load address: 0x342fc580
Entry point: 0x34302000

load address got deviated

2)IPCF while building got some errors, but any way   . ko files generated and kept in FAT32 (boot_s32g27).

3)I got only IPCF examples for only M7_core_0 and M7_core_1 in DS studios but not for M7_core_2.

4)I didn't disable or removed both RM plugin and RM_init in EBtresos (because i got header file missing error while "Generating Project")

5)While making final IVT address configuration, after making "Generate S32G Boot Image Using S32DS IVT_TOOL". Initially it is deviated later I forcefully aligned as per the Document image.

 

Please find the Document attached below." Let me what is the problem why Iam not getting anything in terminal after following " multicore enablement guide" .

0 Kudos
Reply

658 Views
Lee0202
Contributor III

Yes iam interested in IPCF .I referred "muti core enablement guide"  where I am not getting any output promts of A53 booting . I configured everything as provided by the guide . I am getting some c code error while building IPCF module. Until that I didn't get any error. While configuring boot bootloader in Ebtresos after disable of Rm_int I encountered some header file Missing error, Later I enbled Rm_int.But anyway iam not able boot any thing after doing all configurations. 

0 Kudos
Reply

669 Views
chenyin_h
NXP Employee
NXP Employee

Hello, @Lee0202 

Thanks for the question.

From my understanding, you may want to launch the M core application(blinking LED program) from A core? Is it right?

Currently, if you want to boot the M cores binary from A core, you may use the bootm7 command under u-boot.

IPCF can be used for the communication between A53(linux) and M7(IPCF application), if you are interested in it, you may reference the example and document in IPCF release packages.

 

Best Regards

Chenyin

0 Kudos
Reply

587 Views
Lee0202
Contributor III

yes, tried this bootM7 command but i didn't see that led glow, may I know mistake where I did?

these are the steps I followed till now

1)I built .bin file by following software enablement guide for blinking led. after doing configuration in IVT table I got two binaries a) Export image b) Export blob image

2)when I insert only "export blob image" by SD. LED turned ON. Only M7 core_0. Looks GOOD.

3)now I took Linux BSP 33   .sdcard file and ported into new empty SD card.  kept this export blob Image of blinking LED. Bin in FAT partition of BSP33 SD card.

4)I used these commands to boot both A53 with Linux and M7 with blinking led.

RAM start pointer is :0x34000000

RAM entry pointer is:0x34207000

5)Is there any problem with address values in u-boot commands when compared with above values? why LED is not glowing?

 

""""

setenv xw_file Blinking_LED_RTD_M7_0.bin
setenv xw_load_addr 0x80000000
setenv xw_sram_address_m7_0 0x34000000
setenv xw_file_size 0x40000
setenv xw_load_firmware 'dcache off'; mw.q ${xw_sram_address} 0x0 0x100000;fatlo

ad mmc 0:1 ${xw_load_addr} ${xw_file};cp.q ${xw_load_addr} ${xw_sram_address_m7_0} ${xw_file_size};startm7 ${xw_start_addr}'
setenv xw_sram_address 0x34000000
setenv xw_start_addr 0x34501000
saveenv
bootm7 xw_load_firmware 

boot

 """

0 Kudos
Reply