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.

TDA4VMXEVM: Uploading binary to RAM using CCS and debugger.

Part Number: TDA4VMXEVM

Dear Sir/Madam,

 

We are not sure if we addressed the question to proper forum, because it touches the CCS and Ti hardware as well, please redirect post if no.

 

We have question related to flashing eMMC using TI debugger. We have done it successfully, but the first stage - writing binary file to RAM memory takes a while.

We are using TDA4VMx evaluation board (J721EXSOMG01EVM and J721EXCP01EVM) and build-in XDS110 debugger.

 

We used the procedure written in this topic: https://e2e.ti.com/support/processors/f/791/t/898360

1.Boot the board and stop at u-boot prompt

2.Launch CCS and connect to CoretexA72_0_0

3.Click from menu View --> Memory Browser

4.In Memory Browser, click on Load Memory (As shown in picture)

5.Choose the rootfs .img file, set the File Type as Binary

6.Click Next and choose Start Address as 0x80080000, and click Finish

7.Wait for the memory to be loaded. based on the debugger used the time will vary (xds560 is faster)

 

Everything works, but based on address change, after more one hour we calculated, the average upload speed is around 21KiB/s.

 

We have tried to increase this speed using debugger advanced settings, but only JTAG protocol works, and increasing JTAG TCLK frequency makes no change to uploading speed. We got similar results for frequency from 1 to 14Mhz.

 

Q1. Can we do anything with actual hardware (ex. Change debugger settings, input data format, project settings, etc.) to make this process faster?

 

Q2. On the 7th point of the procedure is mentioned the xds560 debugger is faster. How much faster this debugger is according to ram binary uploading?

 

Q3. In current procedure, we copy the binary file to RAM to move it to eMMC finally. Is there another option to write date to EMMC available?

 

Regards,

Mateusz

  • Hi Mateusz,

    Mateusz Malanowski said:
    Everything works, but based on address change, after more one hour we calculated, the average upload speed is around 21KiB/s.

    What address change are you referring to here?

    The 1hr you are taking about that is the debugger load to RAM or debugger load to RAM + Copy from RAM to eMMC?

    I can check on Q1, Q2 and Q3 of yours. I'm thinking that the Uniflash tool can help here. Let me check.

    EDIT: eMMC flash support as part of Uniflash is limited to raw data write to eMMC boot partition. We don’t have support for writing the data as a file to user area. So this won't be possible.

    One question though - Can you use the SD card itself to flash to eMMC? Or the intention of this activity is to get rid of the SD card interface going into designing your custom boards?

    Regards,

    Karan

  • Karan Saxena said:

    What address change are you referring to here?

    I mean the current address which is displayed on progress bar window during binary uploading. We calculated the difference between start address and actual address, which after dividing gave uploading speed, equal around 21KiB/s.

    Karan Saxena said:

    The 1hr you are taking about that is the debugger load to RAM or debugger load to RAM + Copy from RAM to eMMC?

    I am talking about time after which we calculated the speed, and it is time of binary to RAM uploading only. Copying from RAM to eMMC is much faster, and we did not include it during the measurements.
     

    Karan Saxena said:

    I can check on Q1, Q2 and Q3 of yours. I'm thinking that the Uniflash tool can help here. Let me check.
    EDIT: eMMC flash support as part of Uniflash is limited to raw data write to eMMC boot partition. We don’t have support for writing the data as a file to user area. So this won't be possible.

    I will be grateful for checking.
    I have no experience with Uniflash, at this moment we flashing the binary image of the rootfs partition. If the access is possible to boot partition only, it is not solution for our case.

    Karan Saxena said:

    One question though - Can you use the SD card itself to flash to eMMC? Or the intention of this activity is to get rid of the SD card interface going into designing your custom boards?


    We started our tests from copying image from SD to eMMC. I agree this is best option, but  we are working on the procedure which will be applicable on the custom PCB, where only eMMC will be available.

  • Hi Mateusz,

    Yes, uniflash can not solve your issue.

    Do you plan have USB interface on the custom PCBs? There is another method then which we can use.

    Let me know and I can let you know.

    Regards,

    Karan

  • Hi Karan,
    The task we are working for is focused on flashing using debugger. I'm afraid we won't be able to use other interfaces, but we do not exclude this possibility.
    I started an internal discussion of which interfaces we will be available to use in final product.

    Regards,
    Mateusz

  • Hi Mateusz,

    Mateusz Malanowski said:
    I started an internal discussion of which interfaces we will be available to use in final product.

    Let me know after this.

    Essentially I would say that SD card -> eMMC will be the best, followed by dfu-util (USB), followed by xds560v2 and then finally xds110. I don't have a quantitative data on these but I can try to do some experiments once you let me know what all we can try out from.

    Regards,

    Karan

  • Hi Karan,


    Unfortunately we must use JTAG.
    At this moment we only need to know if we can increase speed on current hardware, and how much faster the xds560v2 would be.

    Regards,
    Mateusz

  • Hi Karan,


    Do you have any results, how much faster xds560v2 is in comparison to xds110 for our purpose?

    Regards,
    Mateusz

  • Hi Mateusz,

    I can do some measurements, can you let me know how big is your image?

    Regards,

    Karan

  • Hi Karan,


    We are using images (or their parts) from 100MiB to 2GiB, and we noticed the upload speed is similar for any size of image in this range. I think the test for 100MiB binary will be enough, and it will allow to check it without waiting tens of hours.

    Best regards,
    Mateusz

  • Hi Mateusz,

    I will try to flash a minimal file system using the method you mentioned in https://e2e.ti.com/support/processors/f/791/t/898360 and get back with results by next week.

    Regards,

    Karan

  • Hi Mateusz,

    I had some discussions on this with the team and on second thoughts here, how do you plan to flash the u-boot, SPL etc in case you just have a JTAG interface?

    I mean right now what you are doing is using 1. SD card to boot to uboot and then 2. JTAG to flash the rootfs. How will the step 1 happen in future?

    Regards,
    Karan

  • Hi Mateusz,

    We are looking at this problem in detail now, trying to collate data on what use-cases can customers have. So in essence looking at what possible interface combinations they plan to have on their board and then suggest the best suited options. There are suggestions to do this over NW too.

    Do you plan to have ETHERNET interface on your custom board? 

    Regards,

    Karan

  • Hi Karan,

    About bootloader flashing, I know the eMMC will be flashable directly using its interface and dedicated programmer. In the future also flashing over the ethernet will be possible using R5 core.
    I know, the JTAG is probably the worse method, but it is one of the required, probably because is only solution available for anyone in project until flashing over ethernet is not implemented.

    Regards,
    Mateusz

  • Hi Mateusz,

    A tiny file system of 100MB took around 20mins to flash using the xds560v2.

    Regards,

    Karan