Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Background
As the RevPi Core (with a Compute Module 1) has limited performance, in most scenarios it is no longer an optionthe first choice for most use cases. Therefore, officially the latest released buster images are not focused on RevPi Core 1 and thus not be tested on it. However, to assist the user who still haves some reason to continue there work on Buster images only provide unofficial support for it. To assist users who still continue to use it, we provide a workaround to make the Buster image to images run on the RevPi Core 1.

Reason
The known reason preventing Buster image runing on Core 1 images from running on the RevPi Core is the usb USB driver. From RevPi Buster image of 05-/2022, we started to use DWC2 instead of DWC-_OTG as the usb driver, which can run better on CM 3 and CM 4S based devices. But the DWC2 is not fit for CM 1, so to run the Buster image on Core 1, the usb driver needs to go back to DWC-OTGUSB driver, as it runs more reliably with concurrent realtime applications such as piControl.

Unfortunately DWC2 is missing a performance optimization called FIQ support. The resulting increased CPU load is negligible on RevPi products with a Compute Module 3 and 4S, but it does make a significant difference on the RevPi Core with a Compute Module 1: Without FIQ support, the Compute Module 1 becomes so slow that booting fails with a timeout.

We recommend switching back to DWC_OTG on the RevPi Core to avoid the performance issue and fix the resulting boot timeouts.

Workaround
The usb USB driver is specified in the device tree overlay on RevPi device, which includes the configurations in /boot/overlays/revpi-core.dtbo and /boot/config. txt. For Core 1, in revpi-core.dtbo, the usb driver has been chosen as DWC2. As the dtbo file is in binary format, changing it is not fit for further adaption. So the trivial. Instead, we recommend modifying /boot/config.txt would be the right file to do the change. It is sufficient to add the specifying of DWC-OTG in /boot/config.txt by adding “override the USB driver: Add the line dtoverlay=dwc-otg" after whole configuration block of " below the line dtoverlay=revpi-core " . As The order of the idea lines is important to make an amend for the specifying of usb driver, so place it after the DT overlay of override the choice of USB driver made in the preceding revpi-core is neededoverlay.

The Step-by-Step guideGuide

  1. flash the RevPi Core 1 with latest Buster image

  2. do on first login, perform the factory reset as before

  3. add configuration of dwc-otg to /boot/config.txt with command :
    echo -e "\r\ndtoverlay=dwc-otg" | sudo tee -a /boot/config.txt" add configuration of dwc-otg to config.txt

  4. reboot the device