This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
J Breeze,
This is not an issue with the ROM bootloader based on the information that you have shared. When the Debug GEL file shows that he code has jumped into RAM memory (0x00712FB0) and the ROM boot detected no error which means that user level code has started executing. Can you export the AIS config that you are using to generate the boot image for analysis.
Can you indicate if the customer is loading a secondary bootloader or an application directly. If you have the map file for the secondary bootloader or the application, can check what function/code is located at location 0x00712FB0 . Also indicate if the application is BIOS application and if it meets the entry point alignment requirement specified here:
processors.wiki.ti.com/.../Boot_Images_for_OMAP-L138
Considering, user level code is executing a good way to debug this would be to load symbols for the .out that you are booting on the DSP after the boot fails. Do not use GEL file when connecting to the DSP else the system state will be changed.
Regards,
Rahul
Hi Rahul,
I think there seems to be some misunderstanding about the memory address which the Debug GEL showed.
The address 0x00712FB0 shows DSP L2 ROM area, not RAM memory. It means the RBL is running, not jumped to my SBL.
I'd appreciate it if you can check it again
Regards,
j-breeze
Hi,
I would appreciate it if you could reply by 10 a.m. on Monday, our time. Because I have to report the status of this issue to my boss.
Regards,
j-breeze
Hi Rahul,
Thank you for your support.
First, the instruction at location 0x00712FB0 I confirmed is "B.S2 B0", not BNOP. The below is the CCS Disassembly window.
And, I'd like to ask you about the RBL code. Is there any conditional expression in the RBL code that read the magic word again?
Could you please check the RBL code again?
I will answer your questions in my another post.
Regards,
j-breeze
Hi Rahul,
I doubt that an exception occur after jumping to my SBL now.
I am so sorry to ask you many times, but could you please let me know the interrupt service vectors which the RBL sets?
Regards,
j-breeze
SOrry for the delayed response. I was tied up with high priority tasks and was out of office for some time so was not able to follow up on this topic
the Interrupt service vectors setup by ROM can be seen in the base location of the following memory section.
/* ARM Internal RAM Memory*/
RAM_ARM : o = 0xFFFF0000 l = 0x00002000 /* 8 KB */
the initial arm vector setup by ROM appears as follows:
.sect ".text" .global reset .global ARM_ROM_START reset: b ARM_ROM_START b reset b reset b reset b reset b reset b reset b reset
and the ROM idle vector is setup as follows:
.sect ".text"
.global reset
.align 4
reset:
b reset
b reset
b reset
b reset
b reset
b reset
b reset
b reset
Hope this helps.
Regards,
Rahul
Hi Rahul,
I found a problem with the DDR2 device. So, it seemed that an opcode exception occurred after jumping to my SBL in the DDR2 and jump to the reset vector address 0x700000 in DSP L2 ROM and then RBL started again.
I really appreciate your support and I'd like to close this thread.
Regards,
j-breeze