UFS provisioning helps divide the storage into several logical unit numbers (LUNs), allowing you to store different types of data separately. This improves access efficiency and system organization.
Note
To download the provision XML file and check the applicability of UFS provisioning for different SoCs, see the UFS Provisioning table in the Release Notes.
Ensure that the device is in EDL mode. For more information, see Force the device to EDL mode.
Based on the required SoC, download the respective provision from the UFS Provisioning table in the Release Notes.
On Ubuntu host computer
Download the provision file by running the following commands:
wget https://artifacts.codelinaro.org/artifactory/codelinaro-le/Qualcomm_Linux/QCS9100/provision.zipunzip provision.zip
Provision UFS by running the following command from the unzipped provision directory:
<qdl_tool_path>/qdl --storage ufs prog_firehose_ddr.elf <Provision file>Example
<qdl_tool_path>/qdl --storage ufs prog_firehose_ddr.elf provision_1_2.xml
On Windows host computer
Download the provision file by pasting the following link into a browser:
https://artifacts.codelinaro.org/artifactory/codelinaro-le/Qualcomm_Linux/QCS9100/provision.zip
Unzip the downloaded provision file.
Provision UFS by running the following command from the unzipped provision directory:
.<unzipped-QDL-directory-path>\qdl.exe --storage ufs prog_firehose_ddr.elf <Provision file>Example
.<unzipped-QDL-directory-path>\qdl.exe --storage ufs prog_firehose_ddr.elf provision_1_2.xml
On macOS host computer
Download the provision file by pasting the following link into a browser:
https://artifacts.codelinaro.org/artifactory/codelinaro-le/Qualcomm_Linux/QCS9100/provision.zip
unzip provision.zip
Move all provision files into the QDL directory or move the QDL tool and associated libraries into the provision directory.
Note
All required QDL binaries and supporting libraries must be present in the execution directory.
Provision UFS by running the following command from the execution directory:
./qdl --storage ufs prog_firehose_ddr.elf <Provision file>Example
./qdl --storage ufs prog_firehose_ddr.elf provision_1_2.xmlAfter successful UFS provision, the following message appears on the screen:
UFS provisioning succeeded
Run the following command from the ADB shell:
adb shell reboot edl
Install QUD on the host computer to detect the device.
Note
For Ubuntu 22.04, you may face an issue while installing QUD. To ensure a successful installation, you may need to enroll the public key on your Linux host computer. For more details, follow the steps provided in the README file available in the /opt/QUIC/sign/signReadme.txt directory.
Clone the GitHub repository by running the following commands:
sudo apt install gitsudo git clone https://github.com/quic/quic-usb-drivers.gitcd quic-usb-drivers
Provide executable permissions to the file by running the following command:
sudo chmod +x QcDevDriver.sh
Install the QUD driver by running the following command:
sudo ./QcDevDriver.sh install
Detect the device by running the following command:
lsusbSample output
Bus 002 Device 099: ID 05c6:901d Qualcomm, Inc. QCS9075_e05d8b80
Some Qualcomm tools available to licensed users with authorized access require ADB, a command-line tool that allows communication with the device. The adb command facilitates various device actions, such as debugging, capturing kernel logs, and pushing applications and files to the device.
Install ADB
Run the following command on the Linux host computer:
sudo apt install git android-tools-adb android-tools-fastboot wget
Verify the ADB version on the Linux host computer by running the following command:
adb --versionSample output
Android Debug Bridge version 1.0.39 Version 1:8.1.0+r23-5ubuntu2
Connect the device with the host computer using the USB Type-C cable. Ensure that the device displays as an ADB device.
adb devicesSample output
List of devices attached 68f592a device
Enter the shell by running the following command:
adb shell
Note
Ensure that the host computer isn’t running the ModemManager tool, as it interferes with QDL flashing.
If you’re using a Linux distribution with systemd, stop the ModemManager tool using the following command:
sudo systemctl stop ModemManager
If you need ModemManager, restart it after the flashing is complete.
If flashing fails, do the following and retry the flashing procedure:
Power off the device.
Disconnect the device from the host computer.
Restart the host computer.
Disconnect from the current network by running the following command:
nmcli c down QualcommWiFi
QualcommWiFiis the name of the current network.Sample output
Connection ‘QualcommWiFi’ successfully deactivated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/1)
Verify the disconnect status by running the following command:
nmcli -p deviceSample output
![]()
Connect to a different Wi-Fi network by running the following command:
nmcli dev wifi connect QualcommAP password XXXXXXXXX
QualcommAPis the name of the different Wi-Fi network and the network password isXXXXXXXXX.Sample output
Device ‘wlan0’ successfully activated with ‘6159ac7c-58c2-44fa-938f-45dcb544fac3’.
Minicom is a serial communication program that allows an admin user to interact with the device through the serial port.
Install Minicom on the Linux host computer by running the following commands:
sudo apt updatesudo apt install minicom
Verify the USB port connection by running the following command:
ls /dev/ttyUSB*Sample output
/dev/ttyUSB0
Open Minicom by running the following command:
sudo minicom -s
Select the Serial port setup option using the Down arrow key.
Set up the serial device configuration as follows:
Set up the serial device name such as
/dev/ttyUSB0by selecting A on your keyboard.Save the changes by selecting Enter.
Set the baud rate by selecting E on your keyboard.
If the baud rate isn’t set to 115200, select the E key again. Set the configuration to 8N1 by selecting Q on your keyboard.
Save the changes by selecting Enter.
Set the Hardware Flow Control to No by selecting F on your keyboard.
Note
Ensure that the letters A, E, Q, and F are in uppercase.
![]()
Save the changes by selecting Enter.
Select the Save setup as dfl option and select Enter.
Open the UART console of the serial device by selecting Exit.
Bring up the authentication prompt by selecting ENTER.
Sign in to the UART console using the following details:
Sign in:
rootPassword:
oelinux123Note
If the authentication console doesn’t appear as expected, verify the USB connection. If necessary, disconnect and then reconnect the Micro-USB.
By default, root users can sign in using the oelinux123 password.
Sign in as a root user.
Change the root password by running the following command:
passwdThis command prompts you to enter a new password.
Sign out using the exit command.
Sign in as root using your new password.
Note
By default, you can sign in as a root user.
Create a non-root user account by running the following command in the shell:
adduser guestThis command prompts you to enter a new password.
Sign out using the exit command.
Sign in to the shell using your new user account credentials.