S32G2, Using IPCF with MCU peripheral

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

S32G2, Using IPCF with MCU peripheral

724 Views
tomasmrovec
Contributor I

Hi,

We use S32G-VNO-GLDBOX ver. 47800 REV D1 with S32DS, IPCF 4.9.0 D2310, RTD 4.0.2 D2306, Linux BSP 39.0.

We are able run IPCF example after rebuild linux BSP 39.0 release 5.15.129-rt with ipcf-shm release 4.9.0 D2310 available from nxp-auto-linux git using arm-gnu-toolchain 11.3rel1.

Now we want to use the IPCF RTD example in combination with MCU RTD 4.0.2 peripherals. However, we ran into a problem here, when using the Mcu_InitClock() function in the sample code and then booting the M7 kernel with uboot, the entire uboot reboots. Additionally, uboot freezes when using the Mcu_SetMode() function in the sample code. These functions are necessary for the possible use of other peripherals in our project.

So we want to ask if there is a way to reconfigure the MCU clock and peripherals of the RTD example so that they can be used together with the IPCF example.

Thanks for any advice.

@won0020 

0 Kudos
Reply
4 Replies

711 Views
Daniel-Aguirre
NXP TechSupport
NXP TechSupport

Hi,

We understand that the behavior you are seeing is due to the clock configuration happening 2 times (1 under the A53 core and 1 under the M7 core). This creates a conflict since the application is reconfiguring the clock configuration on 1 core while the other core is not expecting it. You should only initialize once clocks prior to the cores executing their respective application. More information on this regard seems to be provided under the following knowledge base:

S32G Bootloader Customzition - NXP Community

As for the Mcu_SetMode() function, the same seems to apply, since you are setting a specific configuration for all available cores (or so we understand) when other cores are not expecting it. All resource sharing and mode changing under a multicore execution is to be taken care by the developer for a correct implementation.

Please, let us know.

0 Kudos
Reply

678 Views
won0020
Contributor III

Hi,
Now we can use the IPCF RTD example in combination with the Can, Gpt and Crc example.
Unfortunately, when we try to use the LLCE Can example in combination with IPCF, the Can_Enable_Timestamp() function causes our RTD application to not work when started from uboot.

0 Kudos
Reply

643 Views
Daniel-Aguirre
NXP TechSupport
NXP TechSupport

Hi,

Aside from the IPCF examples, there are no guidelines on how to initialize the M7 application from uboot. The recommended scenario for multicore booting is to use a bootloader (which NXP provides ones). We can recommend looking into AN13750 available under the S32G2 product page (link: S32G2 Safe and Secure Vehicle Network Processor | NXP Semiconductors) for more information.

As for the overall behavior, seems to be a problem on regards of misconfiguration of clocks. A general idea is provided under the previously mentioned knowledge base.

Please, let us know.

614 Views
won0020
Contributor III
Hello,
I deleted all my changes and tried to configure the M7 demo apps again. I am now able to run a combination of IPCF, Can, LLCE Can, Crc, Gpt examples from uboot that continue to work while running linux.
We encountered the following behavior during configuration:
-Can_Enable_Timestamp() - app freeze disappeared after reconfiguration.
-Llce_Firmware_Load() - app freeze after calling Reg_Write32() disappeared after reconfiguring McuModeSettings in accordance with the LLCE example.
-STM_0_CH0 - Gpt notification function is called after 40 seconds after application startup when Can_43_LLCE_Init() is initialized. When selecting the PIT_0_CH0 for GPT Notification function, Uboot did not respond to the "boot" command after starting the application, when PIT_1_CH0 was selected, everything worked as expected.
-IPCF - the application no longer responds after running the echo command under linux, but that doesn't matter, we will solve it in the future, for now we communicate with the RTD using the CAN bus.