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.

boot on external RAM



Hello.

I want to use my external SDRAM for boot to RM57. I've tested access my SDRAM already. .Please give me some documents or example for booting on SDRAM.

Thank you.

  • Hello,

    I have forwarded you question to one of our RM57 experts. They should reply soon.

  • Hi, there.

    Would you please provide more details what you mean by "boot from external SDRAM". What system functionality do you want to achiee?  After a power-on-reset, CPU always executes from adress 0x0 which is the on-chip flash. You can have a bootloader in flash and update the flash content with the new flash image saved in SDRAM.

    Thansk and regards,

    Zhaohong

  • Hello Zhaohong.

    I have two questions related boot.

    1) I want to execute my applications on the SDRAM for high speed, and an application binary code is downloaded by external communication(e.g. ethernet or serial...) it will be updated without emulator.

    2) For mass production, Is there a way to download binary to RM57 except emulator when a flash in RM57 is empty(initial state). Does it support serial or external flash boot?

    Thank you

  • Hello Wonjae,

    For your point 1: For this device, the speed of the EMIF will limit the speed of execution and we do not recommend this type of approach. In some cases it is beneficial to store binary in external SDRAM but we recommend copying it into internal SRAM in order to execute. Overall, the speed of the application will be limited by the speed of the internal architecture  in regard to peripheral accesses and the CPUs ability to process the information. Bottom line, I don't think execution from an external SDRAM will be beneficial with out architecture.

    For Point 2: The device does not have a built in boot rom and the device starts execution at address 0x00000000. This cannot be changed so there has to be an initial programming of the device via a production programmer or via JTAG. This initial program can be very basic to simply load boot strap code to copy some communication sw into SRAM and execute from there in order to download and program the flash with the primary application. We have customers that take this approach today. The primary point here is that there has to be an initial programming step to get an executable into flash.

  • Hello Chuck.

    1) SRAM is small to my applications.. it is only 512 kB, we need more big memory. so SDRAM is chose. I think SDRAM access time is very fast and many hardwares using this way(executing on SDRAM). I wonder why you don't recommend this way. Could you explain it more specifically? it will be really helpful to me.

    2) I have to download binary(for boot) using emulator(JTAG) at first when internal flash is empty. Is it right?

    Downloading a bootloader with JTAG and application binary will be downloaded using another communication.. It maybe best way..

    Thank you

  • Wonjae,

    Are you are going to downlad your application for every power cycle or reset?

    Thansk and regards,

    Zhaohong

  • Wonjae,

    The primary reasons for not recommending use of the external SDRAM for program execution is the safety of the memory, speed of the EMIF, and memory access address alignment.

    First, there is no built in safety mechanism to protect the external memory content or the EMIF logic. Any safing of the memory will need to be done by either your system HW or SW. This complicates a safety implementation.

    Second, EMIF is clocked using VCLK3 within the device. VCLK3 is limited to 150MHz maximum which may be limited by the divider since it is divided down from HCLK (max 330MHz) and only whole number dividers are available. i.e., EMIF frequency would be limited to 110MHz.

    Finally, the CPU would need to access on 64bit boundaries.

    In regard to flashing the device, as has been mentioned, code execution always starts at address 0x00000000. This cannot be changed so there always will need to be startup code located in flash to initialize the device and, at a minimum, EMIF, and then jump to the external memory for execution.

    Personally I do not have any benchmarks for performance from Flash vs. an External SDRAM but I am fairly certain that if you try this you will see that performance will be better from internal Flash.

  • Hello, Zaohong.

    It is not required to download it everytime. The Downloading will be happened when the application is changed like version up.

     

    Hello, Chuck.

    Thank you for your detailed reply. I will discuss this issue with colleagues. My applications is bigger than 512KB, so it cannot executed in internal RAM. I have to use SDRAM. I heard that there is a burst mode in SDRAM and it can make the system more fast. Also I will use the cache.

    Best Regards.

    Wonjae Kim