Some firmware is added to a device, and the device remembers that firmware. If that were the case, then the firmware would only have to be installed once. Other firmware uploads to a device every time the system is used, and so in that case firmware would have to be added to all systems. I have no idea what the firmware requirements are for your camera, and especially do not know if the camera would have had that firmware permanently uploaded, versus needing something from the system each boot. Don’t know, but it is always worth looking for firmware packages since it won’t hurt to have this on the system.
Btw, does any other USB3 device work on that port as USB3? Do you have some other USB3 device you can test, e.g., a USB3 external hard drive, or a different model of camera? If so, then you could monitor “
dmesg --follow” as this other device is plugged in and see if that other device shows as USB3.
Note that if you are not using a dev kit, and thus are using a third party carrier board, you would then need a custom device tree. An incorrect device tree might prevent the USB3 controller from being routed to a USB3 connector.
If this is a dev kit, then flash should always provide the correct device tree. In this case (and in all function USB3 cases), if the signal quality is not high enough quality, then the port would intentionally back off on speed and reduce to USB2 speed. This would not be a bug so much as it is a case of a quirk of a particular device and cable combination.