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.

PROCESSOR-SDK-OMAPL138: BOOTPROCESS - OMAPL138

Part Number: PROCESSOR-SDK-OMAPL138
Other Parts Discussed in Thread: OMAPL138

HI TI Team,

What is the boot process of OMAPL138 PROCESSOR and where to study that.

Thanks in advance,

Regards,

A. Ajith Kumar

  • Hi 

    You can look at the following E2E post for some relevant resources on OMAPL138 boot .

    Regards

    Mukul 

  • Please refer to : 

    OMAPL138/C6748 ROM Bootloader Resources and FAQ (Rev. A) (ti.com)

    For Software, You can use PRocessor SDK bootloaders defined in Linux and RTOS SDK available from ti.com

    Thanks and Regards,

    Rahul 

  • Chapter 13 in TRM and the bootloader application notes should be a good start:

    https://www.ti.com/lit/an/sprab41f/sprab41f.pdf

  • Hi TI Team,

    I have learn about the boot process. I have understand something but I have still confusion about this. I will tell below what I understand ,Please correct me if I am wrong.

    1. After the microcontroller startup (or) reset.

    2. The boot code will execute from the flash.(which was predefined by the manufacturer)

    3. This boot code will contains the peripherals initializes and load the bootloader. The bootloader will check for nRST pin low for update the main program. If  its low. The bootloader will erase the previous memory and load the main program into the microcontroller.

    4.The main application program consists of startup program which will initialize all the peripherals, clock, interrupts and Programmable Built in Self Test (PBIST)Module will test all the peripherals working currectly or not.

    5.After that main function will execute which user defined.

    Questions:

    1.Is the Above process I have mentioned was correct or change in any order.

    2.Is the Boot code can be modified by user. Is it possible and how?

    3.PBIST Module will persent in boot code or startup code?

    4.Difference between boot code and startup code?

    5. Is the same process is also for microprocessors? Please mentions the differences.

    6. What is the role of assembly language in boot code?

    Thanks and regards,

    A. Ajith Kumar

  • 1. After the microcontroller startup (or) reset.

    2. The boot code will execute from the flash.(which was predefined by the manufacturer)

    [TT] Do you mean the boot code is ROM bootloader? if yes, then yes.

    3. This boot code will contains the peripherals initializes and load the bootloader. The bootloader will check for nRST pin low for update the main program. If  its low. The bootloader will erase the previous memory and load the main program into the microcontroller.

    [TT] Bootloader doesn't and can't check nRST pin low, the nRST latch boot mode pin into bootcfg register, bootloader check the register for boot mode. then loader main program from boot mode specified peripherals/flash, then jump to main program.

    4.The main application program consists of startup program which will initialize all the peripherals, clock, interrupts and Programmable Built in Self Test (PBIST)Module will test all the peripherals working currectly or not.

    [TT] can do peripherals initialize from startup program( also name UBL: user boot loader) or interpret the AIS format main program binary head which contain parameter to initialize peripherals, clock, pinmux, DDR, PSC, etc.

    I don't think there is PBIST in boot, user can add it.

    5.After that main function will execute which user defined.

    [TT] The main function is user application now. boot completed from device view.

    1.Is the Above process I have mentioned was correct or change in any order.

    2.Is the Boot code can be modified by user. Is it possible and how?

    [TT] The ROM bootload is efused, can't be modified.

    3.PBIST Module will persent in boot code or startup code?

    [TT] PBIS is not part of must to have. depends on user to add it.

    4.Difference between boot code and startup code?

    [TT] I think the start up code is UBL, it is user program already. it initialize the device modules before user can access or use it.

    5. Is the same process is also for microprocessors? Please mentions the differences.

    [TT] do you mean MCU? usually MCU execute from flash address 0 after power up, no option to select boot device, and limited RAM and flash. for MPU program usually is larger, can't fit into MCU flash and RAM, so use external flash and DDR. so need a ROM bootloader to loader user application to RAM or DDR and jump to it to execute.

    6. What is the role of assembly language in boot code?

    [TT] ARM exception vector and CP15 initialization are in assembly code, can C run environment(stack, heap, bss, etc..) also need to be initialized in assembly.