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.

"Jumping" to serial boot from running program on 2809

Other Parts Discussed in Thread: CONTROLSUITE

Hi, is it possible to detect that PC software (e.g. C2Prog) is trying to flash software while application code is running, and then jump to the serial boot routine?

I suppose the following information is necessary, please provide it and other useful information:

  1. Handshake protocol between PC and target in serial boot mode (I have read the boot ROM reference guide, for me it seems like PC sends A's as "ping" until target responds, using the auto-baud-detection. I guess the running program must configure the SCI-A to use the same baud rate as C2Prog starts with.)
  2. Location of SCI_Boot()
  3. Must InitBoot be used in order to jump to the program that has been "bootloaded"?
  • Stian,

    is this 2806x? It is completely up to the application design on how it wants to detect that someone is about to start flash upgrade. Its based on application but you would want to gracefully stop what ever the application is doing and get the device into some kind of update mode, so there has to be some communication to the device (an IO or another serial command packet) that tells the device that it would be receiving the data for flash update.

    Controlsuite should contain the ROM sources for your device. We can let you know the location of the needed ROM API once you confirm the device you are using and the REV, I see that the map file is missing in the control suite release for 2806x devices.

    There is no need to call InitBoot, you should be able to call SCIBOOT directly from your application and it will do the load and branch to the entry point. You can also implement the same SCI BOOT in your application as well by referring to the ROM sources provided.

    Hope it helps.

     

    Best Regards

    Santosh

  • Santosh, thank you.

    Santosh Athuru said:

    Stian,

    is this 2806x?

    Currently, 2809, but I hope to find a generic solution.

    Santosh Athuru said:

    It is completely up to the application design on how it wants to detect that someone is about to start flash upgrade. Its based on application but you would want to gracefully stop what ever the application is doing and get the device into some kind of update mode, so there has to be some communication to the device (an IO or another serial command packet) that tells the device that it would be receiving the data for flash update.

    This is OK, I don't think it will be a problem to detect that an update software is connected.

    Santosh Athuru said:

    Controlsuite should contain the ROM sources for your device. We can let you know the location of the needed ROM API once you confirm the device you are using and the REV, I see that the map file is missing in the control suite release for 2806x devices.

    Thank you, I suppose that the map file for the ROMs on the different devices is what I need in order to create a function pointer for the corresponding routine.

    Santosh Athuru said:

    There is no need to call InitBoot, you should be able to call SCIBOOT directly from your application and it will do the load and branch to the entry point. You can also implement the same SCI BOOT in your application as well by referring to the ROM sources provided.

    I thought InitBoot would perform the branch? I suppose "my" program could do that, as long as it was run from flash memory.

  • Stian,

    There is no boot ROM on F2809. My answer above was with the assumption of F28069 device which is a piccolo series.

    You will have to implement what you need in flash. you can refer to SCIBOOT on our piccolo devices and adapt the same for your device.

     

    Hope this helps.

     

    Best regards

    Santosh

     

  • I think we speak about different things, or there is some confusion here. Please see http://www.ti.com/product/tms320f2809 or http://www.ti.com/litv/pdf/spru722c:

    • Boot ROM (4K x 16)
      • With Software Boot Modes (via SCI, SPI, CAN, I2C, and Parallel I/O)
      • Standard Math Tables
  • Stian,

    looks like there is some confusion. Let me cross check with my manager, I will get back to you on this.

     

    Best Regards

    Santosh

     

  • Stian,

     

    sorry for the confusion. I got confused between the 'F' and 'C' class devices that the data sheet talks about and also with the other ROM and boot ROM availability on the devices.

     

    anyways the below link should help you get the ROM sources. The below page can be reached by clicking the 'Read Abstract' link next to the device boot ROM guide link in the user guides section of the technical documents.

    http://www.ti.com/mcu/docs/litabsmultiplefilelist.tsp?sectionId=96&tabId=1502&literatureNumber=spru722c&docCategoryId=6&familyId=1523

     

    once you go to the page, click on the associated files link, that will give you an exe and read me. if you run the exe the ROM sources are downloaded to your drive and you can refer to the MAP file to get the ROM API address.

     

    Let us know if you have any further questions.

     

    Best regards

    Santosh