S32G IPCF Data Cache Support

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

S32G IPCF Data Cache Support

Jump to solution
3,049 Views
Lee_Mitchell
Contributor I

Hi,

 We're using the S32G274 and have Linux running on the A53 cores and an application running FreeRTOS on CM7 core 0. The code for the M7 being loaded at boot time using U-Boot. This all works without any problems and our application exchanges data between Linux and the M7 application using IPCF.

All of the examples we've seen from NXP show the command "dcache off" being executed in U-Boot before loading the M7 firmware and starting its execution, but we've not seen any examples where "dcache on" is performed subsequently.

Is it supported to turn the data cache back on again after this point (before booting Linux) ? We're keen to reduce the boot time of the system, and testing with dcache on results in a decent performance increase.

Thanks,

Lee

0 Kudos
Reply
1 Solution
2,986 Views
carlos_o
NXP TechSupport
NXP TechSupport

Hi @Lee_Mitchell

The internal team mention you can use "dcache on" once the load of the M7 firmware is complete. 

The limitation I mentioned you before only applies in older versions of the driver. 

 

 

View solution in original post

0 Kudos
Reply
7 Replies
3,023 Views
Lee_Mitchell
Contributor I

Hi Carlos,

 Thanks for the response. In answer to your questions:

1) We're using a custom board with the S32G device being provided by a module from MicroSys.

2) We're using IPCF 4.9.0 from here: https://github.com/nxp-auto-linux/ipc-shm/tree/release/SW32G_IPCF_4.9.0_D2310

3) We're using BSP 36.0 (Provided in a package from MicroSys)

4) We're using the version of U-Boot provided by MicroSys which I believe is based on BSP 36.0

With reference to the IPCF user manual, could you please provide a link to the latest version ? Searching on nxp.com doesn't yield any results.

On the M7 side of things, I can see in the function ipc_shm_unmanaged_tx() the following:

	/* flush and invalidate dcache */
	ipc_hw_flush_cache_local(instance);
	ipc_hw_flush_cache_remote(instance);

D_CACHE_ENABLE is defined at compile time

So I believe the cache is being invalidated before tx, at least on the M7 side of things.

 

Actually testing with dcache on added after the M7 application has started seems to work ok and performance is significantly better, we're just concerned that we've missed something that could come back to bite us at a later date!

0 Kudos
Reply
3,016 Views
carlos_o
NXP TechSupport
NXP TechSupport

Hi @Lee_Mitchell
The User Manual is only available at the IPCF 4.6.0 you need to download the .exe file from the NXP Inter-Platform Communication Framework (IPCF) page at the Software Offering section.

carlos_o_0-1730239308427.png

Select GET IPCF FOR S32G2 and go to the software tab and select the IPCF 4.6.0 version

carlos_o_1-1730239522375.png

 

Check the IPCF and click on GENERATE BUNDLE INSTALLER, run this installer to get the corresponding files and after you execute the .exe file at the installation folder you will get the User Manual.

At your particular case to run the command "dcache on" on the U-Boot we are reviewing it with the internal team, this response time will be a bit longer, so we appreciate your patience, I'll come back when a relevant information is given.

3,003 Views
Lee_Mitchell
Contributor I

I actually found a user manual for IPCF 4.9.0 D2310 installed on my system which was included in the IPCF package downloaded within S32DS, the location is as follows:

C:\NXP\S32DS.3.5\S32DS\software\PlatformSDK_S32XX_4_0_0\IPCF\doc

In that version of the manual, the note you highlighted in the manual for V 4.6.0 is not present.

0 Kudos
Reply
3,007 Views
Lee_Mitchell
Contributor I
Thanks Carlos, I await your response.
0 Kudos
Reply
2,987 Views
carlos_o
NXP TechSupport
NXP TechSupport

Hi @Lee_Mitchell

The internal team mention you can use "dcache on" once the load of the M7 firmware is complete. 

The limitation I mentioned you before only applies in older versions of the driver. 

 

 

0 Kudos
Reply
2,949 Views
Lee_Mitchell
Contributor I
Great, thanks Carlos. It would be nice if the examples included with IPCF were updated to include that step to make it a bit clearer that this is now supported for later versions.
0 Kudos
Reply
3,034 Views
carlos_o
NXP TechSupport
NXP TechSupport

Hi @Lee_Mitchell,

The user manual of the IPCF 4.6.0 says the following:

carlos_o_0-1730150319485.png

[page 36, IPCF Shared Memory Driver User Manual, Version 1.17, 05/2022]

Could you help me answering the next questions?

1. Are you using S32G-VNP-RDB2 or a custom board?
2. Which version of IPCF are you using?
3. Which version of BSP are you using?
4. Are you using this same version for U-Boot and ATF? (In the case you are doing the compilation manually)

Regards.

0 Kudos
Reply