About Bootloader v1.60 specifications

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

cross mob
NaMo_1534561
Level 5
Level 5
Distributor - Macnica (Japan)
100 replies posted 100 sign-ins 50 replies posted

Hello,

(1) I2C communication buffer size in Bootloader

Users are creating a Bootloader with an I2C interface to update PSoC Firmware via an external MCU. Firmware update has been confirmed to work properly. At this time, in Bootloader_Start (), a fixed-size buffer of 64 bytes is allocated as the I2C communication buffer.

Is it possible for the user to change the Bootloader I2C buffer size? (Size larger than 128 bytes)

I found I2C buffer size definition in I2C_Slave_BOOT.h.

#define I2C_Slave_I2C_BTLDR_SIZEOF_READ_BUFFER   (64u)

#define I2C_Slave_I2C_BTLDR_SIZEOF_WRITE_BUFFER  (64u)

(2) About obtaining bootloader version information

As a method to get the metadata (Appllication version, Application ID, Application custom ID) of the Bootloader component, the customer can get the value by executing the Get Metadata (0x3C) command of Bootloader Commands while entering Bootloader.

Is it possible to get these meta data from the Bootloadable project?

The customer wants to get these metadata information from the host MCU after Bootloadable_Load.

Best Regards,

Naoaki Morimoto

0 Likes
1 Solution
  1. We do not have reference example with buffer length of 128 bytes.  Once you finalize the PSoC Creator schematic requirements, you can disable code re-generation and modify the generated source files. Please refer https://www.cypress.com/comment/263081 
  2. Yes, your understanding is correct.

View solution in original post

0 Likes
4 Replies
GeonaP_26
Moderator
Moderator
Moderator
250 solutions authored 100 solutions authored 50 solutions authored
  1. Yes. The default buffer size is 64 bytes. The bootloader component files needs to be modified at multiple places according to the new buffer size requirement.
  2. Yes, it is possible. Metadata is the common area for bootloader and bootloadable flash areas. You can perform metadata flash reads from the bootloadable project to obtain various metadata contents.
0 Likes
NaMo_1534561
Level 5
Level 5
Distributor - Macnica (Japan)
100 replies posted 100 sign-ins 50 replies posted

Hello GeonaM_26,

Thank you for reply.

About #1

Is there a sample project that expanded the I2C buffer to 128 bytes? .

The header file is automatically generated by PSoC Creator and cannot be changed by the user.

About # 2, I understood as follows.

When the bootloader project is running, use the API to access Metadata.

     uint32 Bootloader_GetMetadata (uint8 field, uint8 appId)

When the bootloadable project is running, the user needs to write in code what the API is doing.

This is because metadata is stored in the common area of flash.

Best Regards,

Naoaki Morimoto

0 Likes
  1. We do not have reference example with buffer length of 128 bytes.  Once you finalize the PSoC Creator schematic requirements, you can disable code re-generation and modify the generated source files. Please refer https://www.cypress.com/comment/263081 
  2. Yes, your understanding is correct.
0 Likes
NaMo_1534561
Level 5
Level 5
Distributor - Macnica (Japan)
100 replies posted 100 sign-ins 50 replies posted

Hello GeonaM_26-san,

Thank you for giving the knowledge base information.

I was able to confirm that the edit was valid.

Best Regards,

Naoaki Morimoto

0 Likes