S32G IPCF Data Cache Support

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

S32G IPCF Data Cache Support

ソリューションへジャンプ
3,058件の閲覧回数
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 件の賞賛
返信
1 解決策
2,995件の閲覧回数
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 件の賞賛
返信
7 返答(返信)
3,032件の閲覧回数
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 件の賞賛
返信
3,025件の閲覧回数
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,012件の閲覧回数
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 件の賞賛
返信
3,016件の閲覧回数
Lee_Mitchell
Contributor I
Thanks Carlos, I await your response.
0 件の賞賛
返信
2,996件の閲覧回数
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 件の賞賛
返信
2,958件の閲覧回数
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 件の賞賛
返信
3,043件の閲覧回数
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 件の賞賛
返信