S32G3 MultiCore Startup

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

S32G3 MultiCore Startup

Jump to solution
3,757 Views
jiajun
Contributor III

Hi,all:

    I have some questions about using the S32G3 development board:
The "Platform_Multicore_SingleElf_Example_S32G3XX" routine in the current S32G3 SDK demonstrates two Cortex-m7s running at the same time, and my question is, I know CM7_0 is running by default, so how does CM7_1 run; what I see in the code is that the api "OsIf_GetCoreID" determines which core is currently running, so how does Cm7_1 run? 

S32G3 @chenyin_h @Daniel-Aguirre 

0 Kudos
Reply
1 Solution
3,618 Views
Daniel-Aguirre
NXP TechSupport
NXP TechSupport

Hi,

For more information on regards of available configurations of the MCU peripheral, help us look into the following path:

C:/nxp/S32DS.3.5/S32DS/software/PlatformSDK_S32XX_4_0_0/RTD/Mcu_TS_T40D11M40I0R0/doc/

In which you should find both the User Manual (UM) and Integration Manual (IM). In there, you should find the description of the settings you are asking.

You could also hover over the setting, and it should provide more information on regards of the usage of that specific configuration.

Please, let us know.

View solution in original post

0 Kudos
Reply
8 Replies
3,739 Views
Daniel-Aguirre
NXP TechSupport
NXP TechSupport

Hi,

Can you let us know where are you able to find the "Platform_Multicore_SingleElf_Example_S32G3XX" example? For the available examples under the RTD we are unable to locate the specific example.

Please, let us know.

0 Kudos
Reply
3,697 Views
jiajun
Contributor III

Hi,

In"C:\NXP\S32DS.3.5\S32DS\software\PlatformSDK_S32XX_4_0_0\RTD\Platform_TS_T40D11M40I2R0\examples\S32DS\S32G3\Platform_Multicore_SingleElf_Example_S32G3XX",Or you can simply and I explain after powering up the next CM7_0 is how to wake up CM7_1, I am currently in the “S32G3 Reference Manual.pdf” this document inside only see the enable clock, but did not see the enable core.

0 Kudos
Reply
3,678 Views
Daniel-Aguirre
NXP TechSupport
NXP TechSupport

Hi,

Thanks for your feedback. 

Overall, on regards of multicore applications, M7_0 (in this particular case) should provide the start address of M7_1 to the MC_ME module, then deassert the RST of M7_1. More information is available under the S32G3 RM [Page 1258, S32G3 Reference Manual, Rev. 4, 02/2024]:

DanielAguirre_1-1717422340782.png

Also, on regards of the example, the code for setting/starting up M7_1 from M7_0 is provided under the system.c file, as follows:

DanielAguirre_0-1717422261340.png

Please, let us know.

0 Kudos
Reply
3,668 Views
jiajun
Contributor III

Hi,

    Thank you for your reply, but I still have some questions:
1. In this example of the function "Sys_StartSecondaryCores", the macro definition START_CM7_1 is not defined, so how to go about the next steps.
2. According to your explanation just now and the content of the reference manual, can I understand that CM7_1 is enabled by CM7_0, and only the CM7_1 starting address and clock configuration are provided in CM7_0, and then the reset is completed
3. Enabling CM7_2 is the same step as enabling CM7_1

Tags (1)
0 Kudos
Reply
3,655 Views
Daniel-Aguirre
NXP TechSupport
NXP TechSupport

Hi,

Thanks for your feedback.

Below will be some comments on regards of your questions:

1. In this example of the function "Sys_StartSecondaryCores", the macro definition START_CM7_1 is not defined, so how to go about the next steps.

[DA]I: t does seem to be that the enablement of the M7_1 is being done under the Mcu_SetMode(McuModeSettingConf_0); function. This given the following configuration under the Mcu peripheral:

DanielAguirre_0-1717437567886.png

2. According to your explanation just now and the content of the reference manual, can I understand that CM7_1 is enabled by CM7_0, and only the CM7_1 starting address and clock configuration are provided in CM7_0, and then the reset is completed

3. Enabling CM7_2 is the same step as enabling CM7_1

[DA]: We might be misunderstanding, if so we do apologize.

In general, as seen under the flow chart of the RM, you need to provide an address, enable the clock then deassert the reset of the respective core. This enablement flow is the same for all the available cores inside the S32G3 chip [Page 1256, S32G3 Reference Manual, Rev. 4, 02/2024]:

"This sequence can be used to turn on the Cortex-M7 application cores or the Cortex-A53 cluster cores."

Please, let us know.

0 Kudos
Reply
3,633 Views
jiajun
Contributor III

Hi,

According to your description CM7_1 initialization is done in this function "Mcu_SetMode(McuModeSettingConf_0)", then what are the two parameters "CM7_0 Under MCU Control & CM7_0 Core Clock Enable"? What do these two parameters mean, check or don't check respectively represent what function, please explain, thank you!

0 Kudos
Reply
3,619 Views
Daniel-Aguirre
NXP TechSupport
NXP TechSupport

Hi,

For more information on regards of available configurations of the MCU peripheral, help us look into the following path:

C:/nxp/S32DS.3.5/S32DS/software/PlatformSDK_S32XX_4_0_0/RTD/Mcu_TS_T40D11M40I0R0/doc/

In which you should find both the User Manual (UM) and Integration Manual (IM). In there, you should find the description of the settings you are asking.

You could also hover over the setting, and it should provide more information on regards of the usage of that specific configuration.

Please, let us know.

0 Kudos
Reply
3,598 Views
jiajun
Contributor III

Hi,Daniel:

Thanks for the advice, I'll go through both documents carefully,谢谢

0 Kudos
Reply
%3CLINGO-SUB%20id%3D%22lingo-sub-1878729%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3ES32G3%20MultiCore%20Startup%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1878729%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EHi%2Call%3A%3C%2FP%3E%3CP%3E%26nbsp%3B%20%26nbsp%3B%20I%20have%20some%20questions%20about%20using%20the%20S32G3%20development%20board%3A%3CBR%20%2F%3EThe%20%22Platform_Multicore_SingleElf_Example_S32G3XX%22%20routine%20in%20the%20current%20S32G3%20SDK%20demonstrates%20two%20Cortex-m7s%20running%20at%20the%20same%20time%2C%20and%20my%20question%20is%2C%20I%20know%20CM7_0%20is%20running%20by%20default%2C%20so%20how%20does%20CM7_1%20run%3B%20what%20I%20see%20in%20the%20code%20is%20that%20the%20api%20%22OsIf_GetCoreID%22%20determines%20which%20core%20is%20currently%20running%2C%20so%20how%20does%20Cm7_1%20run%3F%26nbsp%3B%3C%2FP%3E%3CP%3E%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fc-pwmxy87654%2FS32G3%2Fpd-p%2FS32G3%22%20class%3D%22lia-product-mention%22%20data-product%3D%221686-1%22%20target%3D%22_blank%22%3ES32G3%3C%2FA%3E%26nbsp%3B%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F24163%22%20target%3D%22_blank%22%3E%40chenyin_h%3C%2FA%3E%26nbsp%3B%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F205137%22%20target%3D%22_blank%22%3E%40Daniel-Aguirre%3C%2FA%3E%26nbsp%3B%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-1881049%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3ERe%3A%20S32G3%20MultiCore%20Startup%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1881049%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EHi%2CDaniel%3A%3C%2FP%3E%3CP%3EThanks%20for%20the%20advice%2C%20I'll%20go%20through%20both%20documents%20carefully%2C%E8%B0%A2%E8%B0%A2%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-1880633%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3ERe%3A%20S32G3%20MultiCore%20Startup%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1880633%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EHi%2C%3C%2FP%3E%0A%3CP%3EFor%20more%20information%20on%20regards%20of%20available%20configurations%20of%20the%20MCU%20peripheral%2C%20help%20us%20look%20into%20the%20following%20path%3A%3C%2FP%3E%0A%3CP%3E%3CEM%3EC%3A%2Fnxp%2FS32DS.3.5%2FS32DS%2Fsoftware%2FPlatformSDK_S32XX_4_0_0%2FRTD%2FMcu_TS_T40D11M40I0R0%2Fdoc%2F%3C%2FEM%3E%3C%2FP%3E%0A%3CP%3EIn%20which%20you%20should%20find%20both%20the%20User%20Manual%20(UM)%20and%20Integration%20Manual%20(IM).%20In%20there%2C%20you%20should%20find%20the%20description%20of%20the%20settings%20you%20are%20asking.%3C%2FP%3E%0A%3CP%3EYou%20could%20also%20hover%20over%20the%20setting%2C%20and%20it%20should%20provide%20more%20information%20on%20regards%20of%20the%20usage%20of%20that%20specific%20configuration.%3C%2FP%3E%0A%3CP%3EPlease%2C%20let%20us%20know.%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-1880318%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3ERe%3A%20S32G3%20MultiCore%20Startup%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1880318%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EHi%2C%3C%2FP%3E%3CP%3EAccording%20to%20your%20description%20CM7_1%20initialization%20is%20done%20in%20this%20function%20%22Mcu_SetMode(McuModeSettingConf_0)%22%2C%20then%20what%20are%20the%20two%20parameters%20%22CM7_0%20Under%20MCU%20Control%20%26amp%3B%20CM7_0%20Core%20Clock%20Enable%22%3F%20What%20do%20these%20two%20parameters%20mean%2C%20check%20or%20don't%20check%20respectively%20represent%20what%20function%2C%20please%20explain%2C%20thank%20you!%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-1880007%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3ERe%3A%20S32G3%20MultiCore%20Startup%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1880007%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EHi%2C%3C%2FP%3E%0A%3CP%3EThanks%20for%20your%20feedback.%3C%2FP%3E%0A%3CP%3EBelow%20will%20be%20some%20comments%20on%20regards%20of%20your%20questions%3A%3C%2FP%3E%0A%3CP%3E%3CEM%3E%3CSPAN%3E1.%20In%20this%20example%20of%20the%20function%20%22Sys_StartSecondaryCores%22%2C%20the%20macro%20definition%20START_CM7_1%20is%20not%20defined%2C%20so%20how%20to%20go%20about%20the%20next%20steps.%3C%2FSPAN%3E%3C%2FEM%3E%3C%2FP%3E%0A%3CP%3E%5BDA%5DI%3A%20t%20does%20seem%20to%20be%20that%20the%20enablement%20of%20the%20M7_1%20is%20being%20done%20under%20the%26nbsp%3B%3CEM%3EMcu_SetMode(McuModeSettingConf_0)%3B%3C%2FEM%3E%20function.%20This%20given%20the%20following%20configuration%20under%20the%20Mcu%20peripheral%3A%3C%2FP%3E%0A%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22DanielAguirre_0-1717437567886.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22DanielAguirre_0-1717437567886.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F282232i33FDCA272E235B6E%2Fimage-size%2Fmedium%3Fv%3Dv2%26amp%3Bpx%3D400%22%20role%3D%22button%22%20title%3D%22DanielAguirre_0-1717437567886.png%22%20alt%3D%22DanielAguirre_0-1717437567886.png%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CEM%3E%3CSPAN%3E2.%20According%20to%20your%20explanation%20just%20now%20and%20the%20content%20of%20the%20reference%20manual%2C%20can%20I%20understand%20that%20CM7_1%20is%20enabled%20by%20CM7_0%2C%20and%20only%20the%20CM7_1%20starting%20address%20and%20clock%20configuration%20are%20provided%20in%20CM7_0%2C%20and%20then%20the%20reset%20is%20completed%3C%2FSPAN%3E%3C%2FEM%3E%3C%2FP%3E%0A%3CP%3E%3CEM%3E%3CSPAN%3E3.%20Enabling%20CM7_2%20is%20the%20same%20step%20as%20enabling%20CM7_1%3C%2FSPAN%3E%3C%2FEM%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E%5BDA%5D%3A%20We%20might%20be%20misunderstanding%2C%20if%20so%20we%20do%20apologize.%20%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3EIn%20general%2C%20as%20seen%20under%20the%20flow%20chart%20of%20the%20RM%2C%20you%20need%20to%20provide%20an%20address%2C%20enable%20the%20clock%20then%20deassert%20the%20reset%20of%20the%20respective%20core.%20This%20enablement%20flow%20is%20the%20same%20for%20all%20the%20available%20cores%20inside%20the%20S32G3%20chip%20%5BPage%201256%2C%20S32G3%20Reference%20Manual%2C%20Rev.%204%2C%2002%2F2024%5D%3A%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E%22This%20sequence%20can%20be%20used%20to%20turn%20on%20the%20Cortex-M7%20application%20cores%20or%20the%20Cortex-A53%20cluster%20cores.%22%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3EPlease%2C%20let%20us%20know.%3C%2FSPAN%3E%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-1879933%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3ERe%3A%20S32G3%20MultiCore%20Startup%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1879933%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EHi%2C%3C%2FP%3E%3CP%3E%26nbsp%3B%20%26nbsp%3B%20Thank%20you%20for%20your%20reply%2C%20but%20I%20still%20have%20some%20questions%3A%3CBR%20%2F%3E1.%20In%20this%20example%20of%20the%20function%20%22Sys_StartSecondaryCores%22%2C%20the%20macro%20definition%20START_CM7_1%20is%20not%20defined%2C%20so%20how%20to%20go%20about%20the%20next%20steps.%3CBR%20%2F%3E2.%20According%20to%20your%20explanation%20just%20now%20and%20the%20content%20of%20the%20reference%20manual%2C%20can%20I%20understand%20that%20CM7_1%20is%20enabled%20by%20CM7_0%2C%20and%20only%20the%20CM7_1%20starting%20address%20and%20clock%20configuration%20are%20provided%20in%20CM7_0%2C%20and%20then%20the%20reset%20is%20completed%3CBR%20%2F%3E3.%20Enabling%20CM7_2%20is%20the%20same%20step%20as%20enabling%20CM7_1%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-1879885%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3ERe%3A%20S32G3%20MultiCore%20Startup%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1879885%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EHi%2C%3C%2FP%3E%0A%3CP%3EThanks%20for%20your%20feedback.%26nbsp%3B%3C%2FP%3E%0A%3CP%3EOverall%2C%20on%20regards%20of%20multicore%20applications%2C%20M7_0%20(in%20this%20particular%20case)%20should%20provide%20the%20start%20address%20of%20M7_1%20to%20the%20MC_ME%20module%2C%20then%20deassert%20the%20RST%20of%20M7_1.%20More%20information%20is%20available%20under%20the%20S32G3%20RM%20%5BPage%201258%2C%20S32G3%20Reference%20Manual%2C%20Rev.%204%2C%2002%2F2024%5D%3A%3C%2FP%3E%0A%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22DanielAguirre_1-1717422340782.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22DanielAguirre_1-1717422340782.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F282202i4619A2FCD13EC4B1%2Fimage-size%2Fmedium%3Fv%3Dv2%26amp%3Bpx%3D400%22%20role%3D%22button%22%20title%3D%22DanielAguirre_1-1717422340782.png%22%20alt%3D%22DanielAguirre_1-1717422340782.png%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3EAlso%2C%20on%20regards%20of%20the%20example%2C%20the%20code%20for%20setting%2Fstarting%20up%20M7_1%20from%20M7_0%20is%20provided%20under%20the%26nbsp%3B%3CEM%3Esystem.c%3C%2FEM%3E%20file%2C%20as%20follows%3A%3C%2FP%3E%0A%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22DanielAguirre_0-1717422261340.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22DanielAguirre_0-1717422261340.png%22%20style%3D%22width%3A%20362px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F282201i4291114AFFAC35FE%2Fimage-size%2Fmedium%3Fv%3Dv2%26amp%3Bpx%3D400%22%20role%3D%22button%22%20title%3D%22DanielAguirre_0-1717422261340.png%22%20alt%3D%22DanielAguirre_0-1717422261340.png%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3EPlease%2C%20let%20us%20know.%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-1879290%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3ERe%3A%20S32G3%20MultiCore%20Startup%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1879290%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EHi%2C%3C%2FP%3E%3CP%3EIn%22C%3A%5CNXP%5CS32DS.3.5%5CS32DS%5Csoftware%5CPlatformSDK_S32XX_4_0_0%5CRTD%5CPlatform_TS_T40D11M40I2R0%5Cexamples%5CS32DS%5CS32G3%5CPlatform_Multicore_SingleElf_Example_S32G3XX%22%2COr%20you%20can%20simply%20and%20I%20explain%20after%20powering%20up%20the%20next%20CM7_0%20is%20how%20to%20wake%20up%20CM7_1%2C%20I%20am%20currently%20in%20the%20%E2%80%9CS32G3%20Reference%20Manual.pdf%E2%80%9D%20this%20document%20inside%20only%20see%20the%20enable%20clock%2C%20but%20did%20not%20see%20the%20enable%20core.%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-1879049%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3ERe%3A%20S32G3%20MultiCore%20Startup%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1879049%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EHi%2C%3C%2FP%3E%0A%3CP%3ECan%20you%20let%20us%20know%20where%20are%20you%20able%20to%20find%20the%20%22%3CSPAN%3EPlatform_Multicore_SingleElf_Example_S32G3XX%3C%2FSPAN%3E%22%20example%3F%20For%20the%20available%20examples%20under%20the%20RTD%20we%20are%20unable%20to%20locate%20the%20specific%20example.%3C%2FP%3E%0A%3CP%3EPlease%2C%20let%20us%20know.%3C%2FP%3E%3C%2FLINGO-BODY%3E