How to use 2-stage boot loader to download image file into internal SRAM and re-enumerate it as an UVC device ?

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

cross mob
dawa_2529456
Level 4
Level 4
5 sign-ins 5 solutions authored First solution authored

Dear Sir,

My CX3 board can connect different camera head board(different image sensor), I have to write unique camera driver for all of them, but it is difficult to integrate them all together into one firmware. CX3 firmware shall be programmed specifically while a specific camera head is attached. it is not convenient for my customer.

So, I have to use usb-boot to download a specific firmware into internal SRAM and re-enumerate  it as an UVC device.

rom boot loader is not suitable for my case, I will use 2-stage boot loader( provided by SDK 1.33 ) to finish this task by adding image sensor probe code.

1:  add sensor probe code 

second-stage boot loader will read chip-id from image sensor register by i2c bus

2: add new vendor request for reading image sensor TYPE

3: get img file from usb host and download them into internal SRAM

4:  jump xx_ ENTRY address

APP down loader  on host:

1: read sensor TYPE by vendor request cmd

2: download the specific .img file to CX3 internal SRAM

3: send JUMP cmd to 2-stage boot loader

4: UVC device will be found

Is it reasonable and practicable ?

Best regards.

0 Likes
1 Solution

Hello,

- Both the suggested methods are feasible.

- In the first method, the jump to the start of the code need not be sent by the host code. Instead, it should be performed in the FX3 firmware.

- In the second method, the host application can monitor the attachment of a new device using an event handler and can download the IMG file based on the PID of the device.

Please let me know if you need further information.

Best regards,

Srinath S

View solution in original post

0 Likes
2 Replies
dawa_2529456
Level 4
Level 4
5 sign-ins 5 solutions authored First solution authored

Dear  Sir,

I will show another simple method to distinguish the attached camera head:

1: add camera probe code in 2-stage bootloader

2: download 2-stage bootloader into internal SRAM

3: 2-stage bootloader read image sensor ID before enumeration

4: replace PID by image sensor ID

5: feedback this new PID while enumerate

6: wait for specific firmware image file download process

//////////////////////

App on USB host will get this PID and download a specific firmware img to drive the dedicated camera head.

Is it practicable?

Best regards.

0 Likes

Hello,

- Both the suggested methods are feasible.

- In the first method, the jump to the start of the code need not be sent by the host code. Instead, it should be performed in the FX3 firmware.

- In the second method, the host application can monitor the attachment of a new device using an event handler and can download the IMG file based on the PID of the device.

Please let me know if you need further information.

Best regards,

Srinath S

0 Likes