Trouble Entering EDL Mode for Provisioning After Flash Failure

After failing to flash the image to the board, I attempted to enter EDL mode for UFS provisioning as instructed in the official documentation.
I tried all the methods described in the guide, but none of them worked.

Eventually, I managed to enter EDL mode by randomly trying different button combinations
but I’m not exactly sure how it worked.

Could you please confirm whether the methods described in the official documentation are still valid for entering EDL mode?
I’d appreciate any clarification to ensure I’m following the correct process.

The principle of entering EDL mode is to press both the power button and EDL button simultaneously. However, in our current hardware design, plugging in the power supply is equivalent to pressing the power button. Therefore, the power button doesn’t need to be pressed in actual operation.

The method I’ve always used is: first hold down the EDL button, then plug in the power supply, wait about 2 seconds, and release the EDL button.

1 Like

May I ask what the hardware version number of the device the customer is using is?
If it is V02, please refer to the following documents:

thanks! i will try your method

I failed to flash Debian using Tflash, and in order to proceed with provisioning,
I tried all the methods in the guide dozens of times to enter ELD mode again.

None of them worked, but after trying various button combinations,
I finally managed to enter ELD mode, but I can’t remember how does it works.
In the end, I did manage to install Debian.

and I’m not sure which version it is.
The serial number is ZT51HU210015.

Precautions for Entering EDL Mode
Method 1:
Hold the EDL button, then connect the power supply and Type-C, and wait for 3 seconds. During this process, keep holding the EDL button without releasing it.

Method 2:
After confirming that the device is powered on normally, execute the following commands:
$ adb root
$ adb shell reboot edl

Method 3:
Hold the EDL button, then connect the power supply and press the PWR button. After waiting for 3 seconds, connect the Type-C. Do not release the EDL button during this process.

I’m not sure if this will help, but I’d like to share a bit of my experience. Based on what you’ve written, it seems like you’re working from a Linux host PC—if not, you can ignore the rest of this message.

The Rubik PI hardware comes in two versions: the early bird version and the official version. If you received your board after around March 20, it’s likely the official version. What I want to point out is that the method to enter EDL mode is different between these two versions. As you may know, the Rubik PI EVK has two USB-C ports. Let’s call the one next to the HDMI port the “USB Power” port, and the one next to the USB 2.0 (white) port the “USB DL (download) 2” port.

Early bird version:
Do not connect the USB Power port. Instead, connect the USB DL port to your Linux host computer. Then, if you type ‘lsusb’ in the terminal, you probably won’t see anything mentioning Qualcomm yet.
Now, press and hold the EDL button, and while holding it, also press and hold the Power button for more than 3 seconds. You need to hold both buttons for at least 3 seconds before releasing them. After that, if you type ‘lsusb’, you should see something like the following:

vsdall@vsdall-LOQ-15IRX9:~/work/kernel_src/linux$ lsusb
Bus 002 Device 003: ID 05c6:9008 Qualcomm, Inc. Gobi Wireless Modem (QDL mode)
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 004: ID 048d:c996 Integrated Technology Express, Inc. ITE Device(8176)
Bus 001 Device 003: ID 13d3:54b6 IMC Networks Integrated Camera
Bus 001 Device 002: ID 0461:4d64 Primax Electronics, Ltd USB Optical Mouse
Bus 001 Device 006: ID 05ac:12a8 Apple, Inc. iPhone 5/5C/5S/6/SE
Bus 001 Device 005: ID 0bda:4853 Realtek Semiconductor Corp. Bluetooth Radio
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

But it doesn’t end there. To actually download the firmware, the host PC uses a tty interface to communicate with the Rubik PI device. So you need to make sure the device is correctly connected to your PC. Type ‘ls /dev/ttyUSB*’ and you should see ‘ttyUSB0’. After confirming this, run ‘tflash -r’, and it should work smoothly.

Official version:
In this mode, you must connect the USB Power after connecting the USB DL. Here’s the sequence: before connecting the USB Power, press and hold the EDL button. While holding it, also press and hold the Power button for more than 3 seconds.

if not to see the ‘ttyUSB0’:
If you don’t see ttyUSB0, check if any modules have been blacklisted. In my case, it was in the ‘/etc/modprobe.d/blacklist.conf’ file.

Blacklist these module so that Qualcomm clients use only

GobiNet, GobiSerial, QdssDiag, qtiDevInf driver

#blacklist qcserial
#install qcserial /bin/false
#blacklist qmi_wwan
#install qmi_wwan /bin/false
#blacklist option
#install option /bin/false
#blacklist usb_wwan
#install usb_wwan /bin/false

Make sure nothing related to Qualcomm is listed there. If it is, comment them all out. I believe the SDK installer automatically adds those entries to the blacklist.

I hope this helps you solve the issue!