CYUSB3013-BZXC - 2nd Bootloader Question

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
MiRo_263836
Level 5
Level 5
100 replies posted 50 likes received 50 replies posted

We are implementing 2nd bootloader, which has EEPROM writing/update capability and will reside in I2C-access EEPROM,  for FX3, CYUSB3013-BZXC.  There is an urgency and preference to finish within a few days.

Background,

  1. We use the following Cypress FX3 example project for bootloader and EEPROM writing.
    1. Cypress FX3 SDK1.3.4
      • 1. (for 2nd bootloader) EZ-USB FX3 SDK\1.3\firmware\boot_fw
      • 2. (for EEPROM writing/update) EZ-USB FX3 SDK\1.3\firmware\basic_examples\cyfxflashprog
    2. FX3 Fail Safe Firmware Update
  2. Current status on Cypress FX3 explorer kit
    1. 2nd bootloader was implemented by using above 1.1 sample project. We have some stable issue but can tolerate for now.
    2. EEPROM writing/update by 2nd bootloader is briefly tried out by using above 1.2 sample project. It hangs.

Here are questions.

  1. (most important task) Writing EEPROM from 2nd bootloader
    1. We saw DMA setup is configured along with EEPROM writing in above 1.2 sample project. Initial tryout of this project hangs. Is there a simple sample project of EEPROM writing or reading sample project without DMA we can use to simplify things?
    2. Is there any Cypress sample project other than above 1.2 sample project we can or should use?
  2. Debugging tools
    1. UART output is not working from 2nd bootloader but working from multi-thread functions. Any comment?
  3. 2nd Bootloader - Cypress bootloader doesn’t load successfully 2nd bootloader every time from EEPROM to RAM.
0 Likes
1 Solution
Rashi_Vatsa
Moderator
Moderator
Moderator
5 likes given 500 solutions authored 1000 replies posted

Hello,

From the description, I would like to have some more details about the application

1. We saw DMA setup is configured along with EEPROM writing in above 1.2 sample project. Initial tryout of this project hangs. Is there a simple sample project of EEPROM writing or reading sample project without DMA we can use to simplify things?

>> Please confirm if the booting from the second stage bootloader is successful and the FX3 enumerates with the Flash Prog firmware.

If yes, where does the flash prog firmware hang?

Flash Prog uses DMA channel for reading/writing to EEPROM. It is good to use DMA channel to transfer the firmware to the EEPROM as the amount data transfer is more. We can debug the problem of hanging. Please share the UART debug prints from the Flash Prog example.

UART output is not working from 2nd bootloader but working from multi-thread functions. Any comment?

>> Please refer to CyFx3BootUartPrintMessage API in the FX3 API guide. This allows to print a formatted string out through the UART from the second stage bootloader. You can refer to gpiftousb boot firmware for its implementation (Path C:\Program Files (x86)\Cypress\EZ-USB FX3 SDK\1.3\firmware\boot_fw\gpiftousb)

Cypress bootloader doesn’t load successfully 2nd bootloader every time from EEPROM to RAM.

>> Please confirm if the communication on I2C bus is working fine. To check the I2C bus, i2cregmode/i2cdmamode example can be use to directly(without second stage bootloader) read/write to EEPROM and check if the I2C bus is working fine.

Regards,

Rashi

Regards,
Rashi

View solution in original post

0 Likes
1 Reply
Rashi_Vatsa
Moderator
Moderator
Moderator
5 likes given 500 solutions authored 1000 replies posted

Hello,

From the description, I would like to have some more details about the application

1. We saw DMA setup is configured along with EEPROM writing in above 1.2 sample project. Initial tryout of this project hangs. Is there a simple sample project of EEPROM writing or reading sample project without DMA we can use to simplify things?

>> Please confirm if the booting from the second stage bootloader is successful and the FX3 enumerates with the Flash Prog firmware.

If yes, where does the flash prog firmware hang?

Flash Prog uses DMA channel for reading/writing to EEPROM. It is good to use DMA channel to transfer the firmware to the EEPROM as the amount data transfer is more. We can debug the problem of hanging. Please share the UART debug prints from the Flash Prog example.

UART output is not working from 2nd bootloader but working from multi-thread functions. Any comment?

>> Please refer to CyFx3BootUartPrintMessage API in the FX3 API guide. This allows to print a formatted string out through the UART from the second stage bootloader. You can refer to gpiftousb boot firmware for its implementation (Path C:\Program Files (x86)\Cypress\EZ-USB FX3 SDK\1.3\firmware\boot_fw\gpiftousb)

Cypress bootloader doesn’t load successfully 2nd bootloader every time from EEPROM to RAM.

>> Please confirm if the communication on I2C bus is working fine. To check the I2C bus, i2cregmode/i2cdmamode example can be use to directly(without second stage bootloader) read/write to EEPROM and check if the I2C bus is working fine.

Regards,

Rashi

Regards,
Rashi
0 Likes