LLCE Firmware load failure in S32g274a whewn booting QSPI

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

LLCE Firmware load failure in S32g274a whewn booting QSPI

Jump to solution
436 Views
naveenkumar_muthusamy
Contributor IV

Hi all,

we are using S32g274a, in which all the LIN cores are used as UART, we are also using interrupt forwarding for LIN cores to get interrupt whenever there is an rx data.Everything works perfectly with the debugger. but the issue we are facing is that when we flash the image into the external boot memory like qspi flash and boot from it, the code is stopped  at the llce_firmware_load().

 

is there any way we can fix this issue?

 

S32G2  #LLCE

Tags (1)
0 Kudos
Reply
1 Solution
142 Views
alejandro_e
NXP TechSupport
NXP TechSupport

Hello @naveenkumar_muthusamy 

As discussed in the support ticket, the LLCE problem was caused by a missing initialization of the LLCE module. 

And also as discussed, this topic was solved.

 

Best regards, 

Alejandro

View solution in original post

0 Kudos
Reply
7 Replies
384 Views
naveenkumar_muthusamy
Contributor IV

Hi @alejandro_e ,

i have created a support and shared the files. and also RTD we are using is 3.2.0 and LLCE is 1.4.0.

in IVT tool and image_table only application bootloader is added. RAM_START_ADDRESS 0x34000000 RAM_ENTRY_ADDRESS 0x34207000.

we are exporting image after updating the above address and then exporting blob image.

0 Kudos
Reply
367 Views
naveenkumar_muthusamy
Contributor IV

Hi @alejandro_e ,

below is the current Linker file we are using in which you can see that the size of RAM is changed.

MEMORY
{
int_itcm : ORIGIN = 0x00000000, LENGTH = 0x00000000 /* 0KB - Not Supported */
int_dtcm : ORIGIN = 0x20000000, LENGTH = 0x00010000 /* 64K */
int_sram_shareable : ORIGIN = 0x22C00000, LENGTH = 0x00004000 /* 16KB */

/* int_sram : ORIGIN = 0x34000000, LENGTH = 0x00400000 */ /* 4MB */
/* int_sram_stack_c0 : ORIGIN = 0x34400000, LENGTH = 0x00002000 */ /* 8KB */
/* int_sram_stack_c1 : ORIGIN = 0x34402000, LENGTH = 0x00002000 */ /* 8KB */
/* int_sram_stack_c2 : ORIGIN = 0x34404000, LENGTH = 0x00002000 */ /* 8KB */
/* int_sram_no_cacheable : ORIGIN = 0x34500000, LENGTH = 0x00100000 */ /* 1MB, needs to include int_results */
/* ram_rsvd2 : ORIGIN = 0x34600000, LENGTH = 0 */ /* End of SRAM */

int_sram : ORIGIN = 0x34000000, LENGTH = 0x00200000
int_sram_stack_c0 : ORIGIN = 0x34200000, LENGTH = 0x00002000 /* 8KB */
int_sram_stack_c1 : ORIGIN = 0x34202000, LENGTH = 0x00002000 /* 8KB */
int_sram_stack_c2 : ORIGIN = 0x34204000, LENGTH = 0x00002000 /* 8KB */
int_sram_no_cacheable : ORIGIN = 0x34206000, LENGTH = 0x00100000 /* 1MB, needs to include int_results */
ram_rsvd2 : ORIGIN = 0x34800000, LENGTH = 0 /* End of SRAM */

LLCE_CAN_SHAREDMEMORY : ORIGIN = 0x43800000 LENGTH = 0x3C800
LLCE_LIN_SHAREDMEMORY : ORIGIN = 0x4383C800 LENGTH = 0xa0
LLCE_BOOT_END : ORIGIN = 0x4383C8A0 LENGTH = 0x50
LLCE_MEAS_SHAREDMEMORY : ORIGIN = 0x4384FFDF LENGTH = 0x20
}

for the above linker file,  In IVT tool, we use the RAM_START_ADDRESS as 0x34000000 and RAM_ENTRY_ADDRESS in 0x34207000. for this we are atleast seeing some logs, LLCE is not working but atleast the we can confirm that QSPI boot is working, the above values are taken from the MAP file in the project.

 

also when we revert back to the older linker file which is like below,

MEMORY 
{         
    int_itcm                : ORIGIN = 0x00000000, LENGTH = 0x00000000 /* 0KB - Not Supported */
    int_dtcm                : ORIGIN = 0x20000000, LENGTH = 0x00010000 /* 64K */
    int_sram_shareable      : ORIGIN = 0x22C00000, LENGTH = 0x00004000 /* 16KB */
    
	 int_sram                : ORIGIN = 0x34000000, LENGTH = 0x00400000  /* 4MB */
     int_sram_stack_c0       : ORIGIN = 0x34400000, LENGTH = 0x00002000  /* 8KB  */
     int_sram_stack_c1       : ORIGIN = 0x34402000, LENGTH = 0x00002000  /* 8KB  */
     int_sram_stack_c2       : ORIGIN = 0x34404000, LENGTH = 0x00002000  /* 8KB  */
     int_sram_no_cacheable   : ORIGIN = 0x34500000, LENGTH = 0x00100000  /* 1MB, needs to include int_results  */
     ram_rsvd2               : ORIGIN = 0x34600000, LENGTH = 0           /* End of SRAM */
    
  /* int_sram                : ORIGIN = 0x34000000, LENGTH = 0x00200000 */ /* 4MB */
  /*  int_sram_stack_c0       : ORIGIN = 0x34200000, LENGTH = 0x00002000 */ /* 8KB  */
  /*  int_sram_stack_c1       : ORIGIN = 0x34202000, LENGTH = 0x00002000 /* 8KB  */
  /*  int_sram_stack_c2       : ORIGIN = 0x34204000, LENGTH = 0x00002000 /* 8KB  */
  /*  int_sram_no_cacheable   : ORIGIN = 0x34206000, LENGTH = 0x00100000 /* 1MB, needs to include int_results  */
  /*  ram_rsvd2               : ORIGIN = 0x34800000, LENGTH = 0          /* End of SRAM */

    LLCE_CAN_SHAREDMEMORY   : ORIGIN = 0x43800000 LENGTH = 0x3C800
    LLCE_LIN_SHAREDMEMORY   : ORIGIN = 0x4383C800 LENGTH = 0xa0
    LLCE_BOOT_END           : ORIGIN = 0x4383C8A0 LENGTH = 0x50 
	LLCE_MEAS_SHAREDMEMORY  : ORIGIN = 0x4384FFDF LENGTH = 0x20
}

 

for the above the RAM_START_ADDRESS and RAM_ENTRY_ADDRESS as per Map file is 0x34000000 and 0x34501000, but when create blob image and try booting, we are not seeing any logs, is anything wrong i am doing,

 

can you help on this?

Tags (2)
0 Kudos
Reply
359 Views
alejandro_e
NXP TechSupport
NXP TechSupport

hello @naveenkumar_muthusamy

thanks for the clarification on the RTD version and thanks for opening a ticket with the details. I will try to reproduce your problem with my board. 

Please let me know in which channel you preferer to continue the discussion,  here in the community or int the support ticket.

 

Best regards,

Alejandro

0 Kudos
Reply
410 Views
alejandro_e
NXP TechSupport
NXP TechSupport

Hello @naveenkumar_muthusamy

Can you provide more information about your setup?

  • I understand you are using Core M7 for this project, is my understanding correct?
  • I understand you are using a custom board instead of an RDB2, is my understanding correct?
  • What is the version of the LLCE FW you are using?
  • What is the version of the RTD you are using?
  • Did you start your project from an example? if so, which one?
  • Have you being able to boot a LLCE application from the QSPI in the past?
  • Can you describe the general process you are following yo build and flash the binary into the QSPI flash?
  • How are you identifying that the program is blocking executing in the mentioned function, llce_firmware_load().

 

Thanks in advance for the information.

0 Kudos
Reply
398 Views
naveenkumar_muthusamy
Contributor IV

Hi @alejandro_e ,

yes we are using the M7 core in our project and we are using custom board. we have never tried to boot from the QSPI, this is the first time we are doing this. we were using JTAG for our development purpose and LLCE was working smoothly in JTAG but when we try to boot from QSPI flash we are facing issues exactly in this function as i confiemed it by placing debug prints before calling the llce_firmware_load and after. as soon as llce_firmware_load is called, the code hangs or stops and nothing is executed after that.

we are using IVT tool in S32DS to create the blob image and we flash it using S32 flash tool., we have used lin_llce_example project.

 

we are using LLCE version 1.0.4 and RTD 4.0.0

0 Kudos
Reply
389 Views
alejandro_e
NXP TechSupport
NXP TechSupport

Hello @naveenkumar_muthusamy

Thanks a lot for the information.

Although it may not be the source of the problem, I recommend upgrading the LLCE version 1.0.5, which is the one tested with the RTD 4.0.0, as you can see in its release notes [Release Notes for LLCE, Version 1.0.5, 16 December 2022]:

alejandro_e_0-1732137032927.png

 

About the problem:

can you share your IVT configuration?

did you follow any guide to create the IVT?

If possible, please share your project so I may have a better understanding of it, if you prefer you can open a support ticket so you can upload your files privately:

alejandro_e_1-1732138120520.png

 

Thanks in advance for the information.

 

 

0 Kudos
Reply
143 Views
alejandro_e
NXP TechSupport
NXP TechSupport

Hello @naveenkumar_muthusamy 

As discussed in the support ticket, the LLCE problem was caused by a missing initialization of the LLCE module. 

And also as discussed, this topic was solved.

 

Best regards, 

Alejandro

0 Kudos
Reply