Initial Commit
Add db845c and RB5 firmware binaries. These files are copied/downloaded
from multiple sources and are covered under different different
redistributable licences. Here is a short summary:
vendor/
└── linaro_devices/
├── common/
│ └── linux-firmware/
│ All but one (ath10k/WCN3390/hw1.0/board-2.bin) binaries are covered
│ under upstream licenses mentioned in WHENCE file.
│ https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git (f5d519563ac9)
│
│ ath10k/WCN3390/hw1.0/board-2.bin binary for db845c is picked from
│ linux-firmware.git fork:
│ https://github.com/andersson/linux-firmware/commit/e165604ca024
└── qcom/
├── db845c/
│ ├── dragonboard-845c-bootloader-ufs-aosp-88/
│ │ Db845c bootloader/rescue package is covered under LICENSE file.
│ │ The package can be downloaded from
│ │ http://snapshots.linaro.org/96boards/dragonboard845c/linaro/rescue/88/dragonboard-845c-bootloader-ufs-aosp-88.zip
│ │
│ ├── qdl/
│ │ QDL board recovery tool (covered under LICENSE) is built from
│ │ https://git.linaro.org/landing-teams/working/qualcomm/qdl.git (760b3dffb03d)
│ │
│ └── RB3_firmware_20190529180356-v4/
│ These binaries are covered under LICENSE.qcom.txt
│ The package can be downloaded from
│ http://releases.linaro.org/96boards/dragonboard845c/qualcomm/firmware/RB3_firmware_20190529180356-v4.zip
└── rb5/
├── qdl/
│ QDL board recovery tool (covered under LICENSE) is built from
│ https://git.linaro.org/landing-teams/working/qualcomm/qdl.git (13681fcb359c)
│
├── rb5-bootloader-ufs-aosp-19/
│ RB5 bootloader/rescue package is covered under LICENSE file.
│ The package can be downloaded from
│ http://snapshots.linaro.org/96boards/qrb5165-rb5/linaro/rescue/19/rb5-bootloader-ufs-aosp-19.zip
│
└── RB5_firmware_20210331-v4/
These binaries are covered under LICENSE.qcom.txt
The package can be downloaded from
http://releases.linaro.org/96boards/rb5/qualcomm/firmware/RB5_firmware_20210331-v4.zip
Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
diff --git a/linaro_devices/qcom/Android.mk b/linaro_devices/qcom/Android.mk
new file mode 100644
index 0000000..4e30bfe
--- /dev/null
+++ b/linaro_devices/qcom/Android.mk
@@ -0,0 +1,31 @@
+#
+# Copyright (C) 2015 The Android Open-Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+# WARNING: Everything listed here will be built on ALL platforms,
+# including x86, the emulator, and the SDK. Modules must be uniquely
+# named (liblights.panda), and must build everywhere, or limit themselves
+# to only building on ARM if they include assembly. Individual makefiles
+# are responsible for having their own logic, for fine-grained control.
+
+ifneq ($(filter db845c rb5, $(TARGET_BOARD_PLATFORM)),)
+
+LOCAL_PATH := $(call my-dir)
+
+# If some modules are built directly from this directory (not subdirectories),
+# their rules should be written here.
+
+include $(call all-makefiles-under,$(LOCAL_PATH))
+endif
diff --git a/linaro_devices/qcom/db845c/Android.mk b/linaro_devices/qcom/db845c/Android.mk
new file mode 100644
index 0000000..6f725c0
--- /dev/null
+++ b/linaro_devices/qcom/db845c/Android.mk
@@ -0,0 +1,6 @@
+LOCAL_PATH := $(call my-dir)
+
+# If some modules are built directly from this directory (not subdirectories),
+# their rules should be written here.
+
+include $(call all-makefiles-under,$(LOCAL_PATH))
diff --git a/linaro_devices/qcom/db845c/RB3_firmware_20190529180356-v4/07-devcfg/Android.mk b/linaro_devices/qcom/db845c/RB3_firmware_20190529180356-v4/07-devcfg/Android.mk
new file mode 100644
index 0000000..0802d59
--- /dev/null
+++ b/linaro_devices/qcom/db845c/RB3_firmware_20190529180356-v4/07-devcfg/Android.mk
@@ -0,0 +1,5 @@
+LOCAL_PATH := $(call my-dir)
+
+include vendor/linaro_devices/common/CommonBuildMacros.mk
+
+$(call add-qcom-firmware, devcfg.mbn, devcfg.mbn, $(TARGET_OUT_VENDOR)/firmware/, vendor/linaro_devices/qcom/db845c/RB3_firmware_20190529180356-v4/LICENSE.qcom.txt)
diff --git a/linaro_devices/qcom/db845c/RB3_firmware_20190529180356-v4/07-devcfg/devcfg.mbn b/linaro_devices/qcom/db845c/RB3_firmware_20190529180356-v4/07-devcfg/devcfg.mbn
new file mode 100644
index 0000000..f7080e7
--- /dev/null
+++ b/linaro_devices/qcom/db845c/RB3_firmware_20190529180356-v4/07-devcfg/devcfg.mbn
Binary files differ
diff --git a/linaro_devices/qcom/db845c/RB3_firmware_20190529180356-v4/17-USB3-201-202-FW/Android.mk b/linaro_devices/qcom/db845c/RB3_firmware_20190529180356-v4/17-USB3-201-202-FW/Android.mk
new file mode 100644
index 0000000..539affc
--- /dev/null
+++ b/linaro_devices/qcom/db845c/RB3_firmware_20190529180356-v4/17-USB3-201-202-FW/Android.mk
@@ -0,0 +1,5 @@
+LOCAL_PATH := $(call my-dir)
+
+include vendor/linaro_devices/common/CommonBuildMacros.mk
+
+$(call add-qcom-firmware, K2026090.mem, K2026090.mem, $(TARGET_OUT_VENDOR)/firmware/, vendor/linaro_devices/qcom/db845c/RB3_firmware_20190529180356-v4/LICENSE.qcom.txt)
diff --git a/linaro_devices/qcom/db845c/RB3_firmware_20190529180356-v4/17-USB3-201-202-FW/K2026090.mem b/linaro_devices/qcom/db845c/RB3_firmware_20190529180356-v4/17-USB3-201-202-FW/K2026090.mem
new file mode 100644
index 0000000..47424d4
--- /dev/null
+++ b/linaro_devices/qcom/db845c/RB3_firmware_20190529180356-v4/17-USB3-201-202-FW/K2026090.mem
Binary files differ
diff --git a/linaro_devices/qcom/db845c/RB3_firmware_20190529180356-v4/Android.mk b/linaro_devices/qcom/db845c/RB3_firmware_20190529180356-v4/Android.mk
new file mode 100644
index 0000000..6f725c0
--- /dev/null
+++ b/linaro_devices/qcom/db845c/RB3_firmware_20190529180356-v4/Android.mk
@@ -0,0 +1,6 @@
+LOCAL_PATH := $(call my-dir)
+
+# If some modules are built directly from this directory (not subdirectories),
+# their rules should be written here.
+
+include $(call all-makefiles-under,$(LOCAL_PATH))
diff --git a/linaro_devices/qcom/db845c/RB3_firmware_20190529180356-v4/LICENSE.qcom.txt b/linaro_devices/qcom/db845c/RB3_firmware_20190529180356-v4/LICENSE.qcom.txt
new file mode 100644
index 0000000..6b9a0a2
--- /dev/null
+++ b/linaro_devices/qcom/db845c/RB3_firmware_20190529180356-v4/LICENSE.qcom.txt
@@ -0,0 +1,206 @@
+PLEASE READ THIS LICENSE AGREEMENT ("AGREEMENT") CAREFULLY. THIS AGREEMENT IS
+A BINDING LEGAL AGREEMENT ENTERED INTO BY AND BETWEEN YOU (OR IF YOU ARE
+ENTERING INTO THIS AGREEMENT ON BEHALF OF AN ENTITY, THEN THE ENTITY THAT YOU
+REPRESENT) AND QUALCOMM TECHNOLOGIES, INC. ("QTI" "WE" "OUR" OR "US"). THIS IS
+THE AGREEMENT THAT APPLIES TO YOUR USE OF THE DESIGNATED AND/OR LINKED
+APPLICATIONS, THE ENCLOSED QUALCOMM TECHNOLOGIES' MATERIALS, INCLUDING RELATED
+DOCUMENTATION AND ANY UPDATES OR IMPROVEMENTS THEREOF
+(COLLECTIVELY, "MATERIALS"). BY USING OR COMPLETING THE INSTALLATION OF THE
+MATERIALS, YOU ARE ACCEPTING THIS AGREEMENT AND YOU AGREE TO BE BOUND BY ITS
+TERMS AND CONDITIONS. IF YOU DO NOT AGREE TO THESE TERMS, QTI IS UNWILLING TO
+AND DOES NOT LICENSE THE MATERIALS TO YOU. IF YOU DO NOT AGREE TO THESE TERMS
+YOU MUST DISCONTINUE THE INSTALLATION PROCESS AND YOU MAY NOT USE THE MATERIALS
+OR RETAIN ANY COPIES OF THE MATERIALS. ANY USE OR POSSESSION OF THE MATERIALS
+BY YOU IS SUBJECT TO THE TERMS AND CONDITIONS SET FORTH IN THIS AGREEMENT.
+
+1. RIGHT TO USE DELIVERABLES; RESTRICTIONS.
+
+ 1.1 License. Subject to the terms and conditions of this Agreement,
+ including, without limitation, the restrictions, conditions, limitations and
+ exclusions set forth in this Agreement, QTI hereby grants to you a
+ nonexclusive, limited license under QTI's copyrights to: (i) install and use
+ the Materials; and (ii) to reproduce and redistribute the binary code portions
+ of the Materials (the "Redistributable Binary Code"). You may make and use a
+ reasonable number of copies of any documentation.
+
+ 1.2 Redistribution Restrictions. Distribution of the Redistributable Binary
+ Code is subject to the following restrictions: (i) Redistributable Binary Code
+ may only be distributed in binary format and may not be distributed in source
+ code format:; (ii) the Redistributable Binary Code may only operate in
+ conjunction with platforms incorporating Qualcomm Technologies, Inc. chipsets;
+ (iii) redistribution of the Redistributable Binary Code must include the .txt
+ file setting forth the terms and condition of this Agreement; (iv) you may not
+ use Qualcomm Technologies' or its affiliates or subsidiaries name, logo or
+ trademarks; and (v) copyright, trademark, patent and any other notices that
+ appear on the Materials may not be removed or obscured.
+
+ 1.3 Additional Restrictions. Except as expressly permitted by this Agreement,
+ you shall have no right to sublicense, transfer or otherwise disclose the
+ Materials to any third party. You shall not reverse engineer, reverse
+ assemble, reverse translate, decompile or reduce to source code form any
+ portion of the Materials provided in object code form or executable form.
+ Except for the purposes expressly permitted in this Agreement, You shall not
+ use the Materials for any other purpose. QTI (or its licensors) shall retain
+ title and all ownership rights in and to the Materials and any alterations,
+ modifications (including all derivative works), translations or adaptations
+ made of the Materials, and all copies thereof, and nothing herein shall be
+ deemed to grant any right to You under any of QTI's or its affiliates'
+ patents. You shall not subject the Materials to any third party license
+ terms (e.g., open source license terms). You shall not use the Materials for
+ the purpose of identifying or providing evidence to support any potential
+ patent infringement claim against QTI, its affiliates, or any of QTI's or
+ QTI's affiliates' suppliers and/or direct or indirect customers. QTI hereby
+ reserves all rights not expressly granted herein.
+
+ 1.4 Third Party Software and Materials. The Software may contain or link to
+ certain software and/or materials that are written or owned by third parties.
+ Such third party code and materials may be licensed under separate or
+ different terms and conditions and are not licensed to you under the terms of
+ this Agreement. You agree to comply with all terms and conditions imposed on
+ you in the applicable third party licenses. Such terms and conditions may
+ impose certain obligations on you as a condition to the permitted use of such
+ third party code and materials. QTI does not represent or warrant that such
+ third party licensors have or will continue to license or make available their
+ code and materials to you.
+
+ 1.5 Feedback. QTI may from time to time receive suggestions, feedback or
+ other information from You regarding the Materials. Any suggestions, feedback
+ or other disclosures received from You are and shall be entirely voluntary on
+ the part of You. Notwithstanding any other term in this Agreement, QTI shall
+ be free to use suggestions, feedback or other information received from You,
+ without obligation of any kind to You. The Parties agree that all inventions,
+ product improvements, and modifications conceived of or made by QTI that are
+ based, either in whole or in part, on ideas, feedback, suggestions, or
+ recommended improvements received from You are the exclusive property of QTI,
+ and all right, title and interest in and to any such inventions, product
+ improvements, and modifications will vest solely in QTI.
+
+ 1.6 No Technical Support. QTI is under no obligation to provide any form of
+ technical support for the Materials, and if QTI, in its sole discretion,
+ chooses to provide any form of support or information relating to the
+ Materials, such support and information shall be deemed confidential and
+ proprietary to QTI.
+
+2. WARRANTY DISCLAIMER. YOU EXPRESSLY ACKNOWLEDGE AND AGREE THAT THE USE OF
+THE MATERIALS IS AT YOUR SOLE RISK. THE MATERIALS AND TECHNICAL SUPPORT, IF
+ANY, ARE PROVIDED "AS IS" AND WITHOUT WARRANTY OF ANY KIND, WHETHER EXPRESS OR
+IMPLIED. QTI ITS LICENSORS AND AFFILIATES MAKE NO WARRANTIES, EXPRESS OR
+IMPLIED, WITH RESPECT TO THE MATERIALS OR ANY OTHER INFORMATION OR DOCUMENTATION
+PROVIDED UNDER THIS AGREEMENT, INCLUDING BUT NOT LIMITED TO ANY WARRANTY OF
+MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE OR AGAINST INFRINGEMENT, OR
+ANY EXPRESS OR IMPLIED WARRANTY ARISING OUT OF TRADE USAGE OR OUT OF A COURSE OF
+DEALING OR COURSE OF PERFORMANCE. NOTHING CONTAINED IN THIS AGREEMENT SHALL BE
+CONSTRUED AS (I) A WARRANTY OR REPRESENTATION BY QTI, ITS LICENSORS OR
+AFFILIATES AS TO THE VALIDITY OR SCOPE OF ANY PATENT, COPYRIGHT OR OTHER
+INTELLECTUAL PROPERTY RIGHT OR (II) A WARRANTY OR REPRESENTATION BY QTI THAT ANY
+MANUFACTURE OR USE WILL BE FREE FROM INFRINGEMENT OF PATENTS, COPYRIGHTS OR
+OTHER INTELLECTUAL PROPERTY RIGHTS OF OTHERS, AND IT SHALL BE THE SOLE
+RESPONSIBILITY OF YOU TO MAKE SUCH DETERMINATION AS IS NECESSARY WITH RESPECT TO
+THE ACQUISITION OF LICENSES UNDER PATENTS AND OTHER INTELLECTUAL PROPERTY OF
+THIRD PARTIES.
+
+3. NO OTHER LICENSES OR INTELLECTUAL PROPERTY RIGHTS. Neither this Agreement,
+nor any act by QTI or any of its affiliates pursuant to this Agreement or
+relating to the Materials (including, without limitation, the provision by QTI
+or its affiliates of the Materials), shall provide to You any license or any
+other rights whatsoever under any patents, trademarks, trade secrets, copyrights
+or any other intellectual property of QTI or any of its affiliates, except for
+the copyright rights expressly licensed under this Agreement. You understand and
+agree that:
+
+ (i) Neither this Agreement, nor delivery of the Materials, grants any right to
+ practice, or any other right at all with respect to, any patent of QTI or any
+ of its affiliates; and
+
+ (ii) A separate license agreement from QUALCOMM Incorporated is needed to use
+ or practice any patent of QUALCOMM Incorporated. You agree not to contend in
+ any context that, as a result of the provision or use of the Materials, either
+ QTI or any of its affiliates has any obligation to extend, or You or any other
+ party has obtained any right to, any license, whether express or implied, with
+ respect to any patent of QTI or any of its affiliates for any purpose.
+
+4. TERMINATION. This Agreement shall be effective upon acceptance, or access or
+use of the Materials (whichever occurs first) by You and shall continue until
+terminated. You may terminate the Agreement at any time by deleting and
+destroying all copies of the Materials and all related information in Your
+possession or control. This Agreement terminates immediately and automatically,
+with or without notice, if You fail to comply with any provision hereof.
+Additionally, QTI may at any time terminate this Agreement, without cause, upon
+notice to You. Upon termination You must, to the extent possible, delete or
+destroy all copies of the Materials in Your possession and the license granted
+to You in this Agreement shall terminate. Sections 1.2 through 10 shall survive
+the termination of this Agreement. In the event that any restrictions,
+conditions, limitations are found to be either invalid or unenforceable, the
+rights granted to You in Section 1 (License) shall be null, void and ineffective
+from the Effective Date, and QTI shall also have the right to terminate this
+Agreement immediately, and with retroactive effect to the effective date.
+
+5. LIMITATION OF LIABILITY. IN NO EVENT SHALL QTI, QTI's AFFILIATES OR ITS
+LICENSORS BE LIABLE TO YOU FOR ANY INCIDENTAL, CONSEQUENTIAL OR SPECIAL DAMAGES,
+INCLUDING BUT NOT LIMITED TO ANY LOST PROFITS, LOST SAVINGS, OR OTHER INCIDENTAL
+DAMAGES, ARISING OUT OF THE USE OR INABILITY TO USE, OR THE DELIVERY OR FAILURE
+TO DELIVER, ANY OF THE DELIVERABLES, OR ANY BREACH OF ANY OBLIGATION UNDER THIS
+AGREEMENT, EVEN IF QTI HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+THE FOREGOING LIMITATION OF LIABILITY SHALL REMAIN IN FULL FORCE AND EFFECT
+REGARDLESS OF WHETHER YOUR REMEDIES HEREUNDER ARE DETERMINED TO HAVE FAILED OF
+THEIR ESSENTIAL PURPOSE. THE ENTIRE LIABILITY OF QTI, QTI's AFFILIATES AND ITS
+LICENSORS, AND THE SOLE AND EXCLUSIVE REMEDY OF YOU, FOR ANY CLAIM OR CAUSE OF
+ACTION ARISING HEREUNDER (WHETHER IN CONTRACT, TORT, OR OTHERWISE) SHALL NOT
+EXCEED US$50.
+
+6. INDEMNIFICATION. You agree to indemnify and hold harmless QTI and its
+officers, directors, employees and successors and assigns against any and all
+third party claims, demands, causes of action, losses, liabilities, damages,
+costs and expenses, incurred by QTI (including but not limited to costs of
+defense, investigation and reasonable attorney's fees) arising out of, resulting
+from or related to: (i) any breach of this Agreement by You; and (ii) your acts,
+omissions, products and services. If requested by QTI, You agree to defend QTI
+in connection with any third party claims, demands, or causes of action
+resulting from, arising out of or in connection with any of the foregoing.
+
+7. ASSIGNMENT. You shall not assign this Agreement or any right or interest
+under this Agreement, nor delegate any obligation to be performed under this
+Agreement, without QTI's prior written consent. For purposes of this Section 7,
+an "assignment" by You under this Section shall be deemed to include, without
+limitation, any merger, consolidation, sale of all or substantially all of its
+assets, or any substantial change in the management or control of You.
+Any attempted assignment in contravention of this Section 9 shall be void.
+QTI may freely assign this Agreement or delegate any or all of its rights and
+obligations hereunder to any third party.
+
+8. COMPLIANCE WITH LAWS; APPLICABLE LAW. You agree to comply with all
+applicable local, international and national laws and regulations and with U.S.
+Export Administration Regulations, as they apply to the subject matter of this
+Agreement. This Agreement is governed by the laws of the State of California,
+excluding California's choice of law rules.
+
+9. CONTRACTING PARTIES. If the Materials are downloaded on any computer owned
+by a corporation or other legal entity, then this Agreement is formed by and
+between QTI and such entity. The individual accepting the terms of this
+Agreement represents and warrants to QTI that they have the authority to bind
+such entity to the terms and conditions of this Agreement.
+
+10. MISCELLANEOUS PROVISIONS. This Agreement, together with all exhibits
+attached hereto, which are incorporated herein by this reference, constitutes
+the entire agreement between QTI and You and supersedes all prior negotiations,
+representations and agreements between the parties with respect to the subject
+matter hereof. No addition or modification of this Agreement shall be effective
+unless made in writing and signed by the respective representatives of QTI and
+You. The restrictions, limitations, exclusions and conditions set forth in this
+Agreement shall apply even if QTI or any of its affiliates becomes aware of or
+fails to act in a manner to address any violation or failure to comply
+therewith. You hereby acknowledge and agree that the restrictions, limitations,
+conditions and exclusions imposed in this Agreement on the rights granted in
+this Agreement are not a derogation of the benefits of such rights. You further
+acknowledges that, in the absence of such restrictions, limitations, conditions
+and exclusions, QTI would not have entered into this Agreement with You. Each
+party shall be responsible for and shall bear its own expenses in connection
+with this Agreement. If any of the provisions of this Agreement are determined
+to be invalid, illegal, or otherwise unenforceable, the remaining provisions
+shall remain in full force and effect. This Agreement is entered into solely
+in the English language, and if for any reason any other language version is
+prepared by any party, it shall be solely for convenience and the English
+version shall govern and control all aspects. If You are located in the
+province of Quebec, Canada, the following applies: The Parties hereby confirm
+they have requested this Agreement and all related documents be prepared
+in English..
\ No newline at end of file
diff --git a/linaro_devices/qcom/db845c/device.mk b/linaro_devices/qcom/db845c/device.mk
new file mode 100644
index 0000000..3c3affa
--- /dev/null
+++ b/linaro_devices/qcom/db845c/device.mk
@@ -0,0 +1,78 @@
+# WLAN
+PRODUCT_PACKAGES := \
+ board-2.bin \
+ firmware-5.bin \
+ wlanmdsp.mbn
+
+# Bluetooth
+PRODUCT_PACKAGES += \
+ crbtfw21.tlv \
+ crnv21.bin
+
+# Adreno
+PRODUCT_PACKAGES += \
+ a630_gmu.bin \
+ a630_sqe.fw \
+ a630_zap.mbn \
+ a630_zap.mdt
+
+# DSP (adsp+cdsp)
+PRODUCT_PACKAGES += \
+ adsp.mbn \
+ adsp.mdt \
+ adspr.jsn \
+ adspua.jsn \
+ cdsp.mbn \
+ cdsp.mdt \
+ cdspr.jsn
+
+# Modem
+PRODUCT_PACKAGES += \
+ mba.mbn \
+ modem.mbn \
+ modemuw.jsn
+
+# Video encoder/decoder accelerator
+PRODUCT_PACKAGES += \
+ venus.b00 \
+ venus.b01 \
+ venus.b02 \
+ venus.b03 \
+ venus.b04 \
+ venus.mbn \
+ venus.mdt
+
+# USB (USB Host to PCIE)
+# For Ethernet and one of the USB-A host port to work
+PRODUCT_PACKAGES += \
+ K2026090.mem
+
+# I2C/SPI fix
+PRODUCT_PACKAGES += \
+ devcfg.mbn
+
+# Copy Venus and ADSP/CDSP firmware files to ramdisk to drop the
+# dependency on user sysfs fw loader helper (FW_LOADER_USER_HELPER_FALLBACK)
+ifeq ($(TARGET_USES_BOOT_HDR_V3), true)
+ PRODUCT_COPY_FILES += \
+ vendor/linaro_devices/common/linux-firmware/qcom/sdm845/adsp.mbn:$(TARGET_COPY_OUT_VENDOR_RAMDISK)/vendor/firmware/qcom/sdm845/adsp.mbn \
+ vendor/linaro_devices/common/linux-firmware/qcom/sdm845/cdsp.mbn:$(TARGET_COPY_OUT_VENDOR_RAMDISK)/vendor/firmware/qcom/sdm845/cdsp.mbn \
+ vendor/linaro_devices/common/linux-firmware/qcom/venus-5.2/venus.b00:$(TARGET_COPY_OUT_VENDOR_RAMDISK)/vendor/firmware/qcom/venus-5.2/venus.b00 \
+ vendor/linaro_devices/common/linux-firmware/qcom/venus-5.2/venus.b01:$(TARGET_COPY_OUT_VENDOR_RAMDISK)/vendor/firmware/qcom/venus-5.2/venus.b01 \
+ vendor/linaro_devices/common/linux-firmware/qcom/venus-5.2/venus.b02:$(TARGET_COPY_OUT_VENDOR_RAMDISK)/vendor/firmware/qcom/venus-5.2/venus.b02 \
+ vendor/linaro_devices/common/linux-firmware/qcom/venus-5.2/venus.b03:$(TARGET_COPY_OUT_VENDOR_RAMDISK)/vendor/firmware/qcom/venus-5.2/venus.b03 \
+ vendor/linaro_devices/common/linux-firmware/qcom/venus-5.2/venus.b04:$(TARGET_COPY_OUT_VENDOR_RAMDISK)/vendor/firmware/qcom/venus-5.2/venus.b04 \
+ vendor/linaro_devices/common/linux-firmware/qcom/venus-5.2/venus.mbn:$(TARGET_COPY_OUT_VENDOR_RAMDISK)/vendor/firmware/qcom/venus-5.2/venus.mbn \
+ vendor/linaro_devices/common/linux-firmware/qcom/venus-5.2/venus.mdt:$(TARGET_COPY_OUT_VENDOR_RAMDISK)/vendor/firmware/qcom/venus-5.2/venus.mdt
+else
+ PRODUCT_COPY_FILES += \
+ vendor/linaro_devices/common/linux-firmware/qcom/sdm845/adsp.mbn:$(TARGET_COPY_OUT_RAMDISK)/vendor/firmware/qcom/sdm845/adsp.mbn \
+ vendor/linaro_devices/common/linux-firmware/qcom/sdm845/cdsp.mbn:$(TARGET_COPY_OUT_RAMDISK)/vendor/firmware/qcom/sdm845/cdsp.mbn \
+ vendor/linaro_devices/common/linux-firmware/qcom/venus-5.2/venus.b00:$(TARGET_COPY_OUT_RAMDISK)/vendor/firmware/qcom/venus-5.2/venus.b00 \
+ vendor/linaro_devices/common/linux-firmware/qcom/venus-5.2/venus.b01:$(TARGET_COPY_OUT_RAMDISK)/vendor/firmware/qcom/venus-5.2/venus.b01 \
+ vendor/linaro_devices/common/linux-firmware/qcom/venus-5.2/venus.b02:$(TARGET_COPY_OUT_RAMDISK)/vendor/firmware/qcom/venus-5.2/venus.b02 \
+ vendor/linaro_devices/common/linux-firmware/qcom/venus-5.2/venus.b03:$(TARGET_COPY_OUT_RAMDISK)/vendor/firmware/qcom/venus-5.2/venus.b03 \
+ vendor/linaro_devices/common/linux-firmware/qcom/venus-5.2/venus.b04:$(TARGET_COPY_OUT_RAMDISK)/vendor/firmware/qcom/venus-5.2/venus.b04 \
+ vendor/linaro_devices/common/linux-firmware/qcom/venus-5.2/venus.mbn:$(TARGET_COPY_OUT_RAMDISK)/vendor/firmware/qcom/venus-5.2/venus.mbn \
+ vendor/linaro_devices/common/linux-firmware/qcom/venus-5.2/venus.mdt:$(TARGET_COPY_OUT_RAMDISK)/vendor/firmware/qcom/venus-5.2/venus.mdt
+endif
diff --git a/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/BTFM.bin b/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/BTFM.bin
new file mode 100644
index 0000000..b82e363
--- /dev/null
+++ b/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/BTFM.bin
Binary files differ
diff --git a/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/LICENSE b/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/LICENSE
new file mode 100644
index 0000000..6b9a0a2
--- /dev/null
+++ b/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/LICENSE
@@ -0,0 +1,206 @@
+PLEASE READ THIS LICENSE AGREEMENT ("AGREEMENT") CAREFULLY. THIS AGREEMENT IS
+A BINDING LEGAL AGREEMENT ENTERED INTO BY AND BETWEEN YOU (OR IF YOU ARE
+ENTERING INTO THIS AGREEMENT ON BEHALF OF AN ENTITY, THEN THE ENTITY THAT YOU
+REPRESENT) AND QUALCOMM TECHNOLOGIES, INC. ("QTI" "WE" "OUR" OR "US"). THIS IS
+THE AGREEMENT THAT APPLIES TO YOUR USE OF THE DESIGNATED AND/OR LINKED
+APPLICATIONS, THE ENCLOSED QUALCOMM TECHNOLOGIES' MATERIALS, INCLUDING RELATED
+DOCUMENTATION AND ANY UPDATES OR IMPROVEMENTS THEREOF
+(COLLECTIVELY, "MATERIALS"). BY USING OR COMPLETING THE INSTALLATION OF THE
+MATERIALS, YOU ARE ACCEPTING THIS AGREEMENT AND YOU AGREE TO BE BOUND BY ITS
+TERMS AND CONDITIONS. IF YOU DO NOT AGREE TO THESE TERMS, QTI IS UNWILLING TO
+AND DOES NOT LICENSE THE MATERIALS TO YOU. IF YOU DO NOT AGREE TO THESE TERMS
+YOU MUST DISCONTINUE THE INSTALLATION PROCESS AND YOU MAY NOT USE THE MATERIALS
+OR RETAIN ANY COPIES OF THE MATERIALS. ANY USE OR POSSESSION OF THE MATERIALS
+BY YOU IS SUBJECT TO THE TERMS AND CONDITIONS SET FORTH IN THIS AGREEMENT.
+
+1. RIGHT TO USE DELIVERABLES; RESTRICTIONS.
+
+ 1.1 License. Subject to the terms and conditions of this Agreement,
+ including, without limitation, the restrictions, conditions, limitations and
+ exclusions set forth in this Agreement, QTI hereby grants to you a
+ nonexclusive, limited license under QTI's copyrights to: (i) install and use
+ the Materials; and (ii) to reproduce and redistribute the binary code portions
+ of the Materials (the "Redistributable Binary Code"). You may make and use a
+ reasonable number of copies of any documentation.
+
+ 1.2 Redistribution Restrictions. Distribution of the Redistributable Binary
+ Code is subject to the following restrictions: (i) Redistributable Binary Code
+ may only be distributed in binary format and may not be distributed in source
+ code format:; (ii) the Redistributable Binary Code may only operate in
+ conjunction with platforms incorporating Qualcomm Technologies, Inc. chipsets;
+ (iii) redistribution of the Redistributable Binary Code must include the .txt
+ file setting forth the terms and condition of this Agreement; (iv) you may not
+ use Qualcomm Technologies' or its affiliates or subsidiaries name, logo or
+ trademarks; and (v) copyright, trademark, patent and any other notices that
+ appear on the Materials may not be removed or obscured.
+
+ 1.3 Additional Restrictions. Except as expressly permitted by this Agreement,
+ you shall have no right to sublicense, transfer or otherwise disclose the
+ Materials to any third party. You shall not reverse engineer, reverse
+ assemble, reverse translate, decompile or reduce to source code form any
+ portion of the Materials provided in object code form or executable form.
+ Except for the purposes expressly permitted in this Agreement, You shall not
+ use the Materials for any other purpose. QTI (or its licensors) shall retain
+ title and all ownership rights in and to the Materials and any alterations,
+ modifications (including all derivative works), translations or adaptations
+ made of the Materials, and all copies thereof, and nothing herein shall be
+ deemed to grant any right to You under any of QTI's or its affiliates'
+ patents. You shall not subject the Materials to any third party license
+ terms (e.g., open source license terms). You shall not use the Materials for
+ the purpose of identifying or providing evidence to support any potential
+ patent infringement claim against QTI, its affiliates, or any of QTI's or
+ QTI's affiliates' suppliers and/or direct or indirect customers. QTI hereby
+ reserves all rights not expressly granted herein.
+
+ 1.4 Third Party Software and Materials. The Software may contain or link to
+ certain software and/or materials that are written or owned by third parties.
+ Such third party code and materials may be licensed under separate or
+ different terms and conditions and are not licensed to you under the terms of
+ this Agreement. You agree to comply with all terms and conditions imposed on
+ you in the applicable third party licenses. Such terms and conditions may
+ impose certain obligations on you as a condition to the permitted use of such
+ third party code and materials. QTI does not represent or warrant that such
+ third party licensors have or will continue to license or make available their
+ code and materials to you.
+
+ 1.5 Feedback. QTI may from time to time receive suggestions, feedback or
+ other information from You regarding the Materials. Any suggestions, feedback
+ or other disclosures received from You are and shall be entirely voluntary on
+ the part of You. Notwithstanding any other term in this Agreement, QTI shall
+ be free to use suggestions, feedback or other information received from You,
+ without obligation of any kind to You. The Parties agree that all inventions,
+ product improvements, and modifications conceived of or made by QTI that are
+ based, either in whole or in part, on ideas, feedback, suggestions, or
+ recommended improvements received from You are the exclusive property of QTI,
+ and all right, title and interest in and to any such inventions, product
+ improvements, and modifications will vest solely in QTI.
+
+ 1.6 No Technical Support. QTI is under no obligation to provide any form of
+ technical support for the Materials, and if QTI, in its sole discretion,
+ chooses to provide any form of support or information relating to the
+ Materials, such support and information shall be deemed confidential and
+ proprietary to QTI.
+
+2. WARRANTY DISCLAIMER. YOU EXPRESSLY ACKNOWLEDGE AND AGREE THAT THE USE OF
+THE MATERIALS IS AT YOUR SOLE RISK. THE MATERIALS AND TECHNICAL SUPPORT, IF
+ANY, ARE PROVIDED "AS IS" AND WITHOUT WARRANTY OF ANY KIND, WHETHER EXPRESS OR
+IMPLIED. QTI ITS LICENSORS AND AFFILIATES MAKE NO WARRANTIES, EXPRESS OR
+IMPLIED, WITH RESPECT TO THE MATERIALS OR ANY OTHER INFORMATION OR DOCUMENTATION
+PROVIDED UNDER THIS AGREEMENT, INCLUDING BUT NOT LIMITED TO ANY WARRANTY OF
+MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE OR AGAINST INFRINGEMENT, OR
+ANY EXPRESS OR IMPLIED WARRANTY ARISING OUT OF TRADE USAGE OR OUT OF A COURSE OF
+DEALING OR COURSE OF PERFORMANCE. NOTHING CONTAINED IN THIS AGREEMENT SHALL BE
+CONSTRUED AS (I) A WARRANTY OR REPRESENTATION BY QTI, ITS LICENSORS OR
+AFFILIATES AS TO THE VALIDITY OR SCOPE OF ANY PATENT, COPYRIGHT OR OTHER
+INTELLECTUAL PROPERTY RIGHT OR (II) A WARRANTY OR REPRESENTATION BY QTI THAT ANY
+MANUFACTURE OR USE WILL BE FREE FROM INFRINGEMENT OF PATENTS, COPYRIGHTS OR
+OTHER INTELLECTUAL PROPERTY RIGHTS OF OTHERS, AND IT SHALL BE THE SOLE
+RESPONSIBILITY OF YOU TO MAKE SUCH DETERMINATION AS IS NECESSARY WITH RESPECT TO
+THE ACQUISITION OF LICENSES UNDER PATENTS AND OTHER INTELLECTUAL PROPERTY OF
+THIRD PARTIES.
+
+3. NO OTHER LICENSES OR INTELLECTUAL PROPERTY RIGHTS. Neither this Agreement,
+nor any act by QTI or any of its affiliates pursuant to this Agreement or
+relating to the Materials (including, without limitation, the provision by QTI
+or its affiliates of the Materials), shall provide to You any license or any
+other rights whatsoever under any patents, trademarks, trade secrets, copyrights
+or any other intellectual property of QTI or any of its affiliates, except for
+the copyright rights expressly licensed under this Agreement. You understand and
+agree that:
+
+ (i) Neither this Agreement, nor delivery of the Materials, grants any right to
+ practice, or any other right at all with respect to, any patent of QTI or any
+ of its affiliates; and
+
+ (ii) A separate license agreement from QUALCOMM Incorporated is needed to use
+ or practice any patent of QUALCOMM Incorporated. You agree not to contend in
+ any context that, as a result of the provision or use of the Materials, either
+ QTI or any of its affiliates has any obligation to extend, or You or any other
+ party has obtained any right to, any license, whether express or implied, with
+ respect to any patent of QTI or any of its affiliates for any purpose.
+
+4. TERMINATION. This Agreement shall be effective upon acceptance, or access or
+use of the Materials (whichever occurs first) by You and shall continue until
+terminated. You may terminate the Agreement at any time by deleting and
+destroying all copies of the Materials and all related information in Your
+possession or control. This Agreement terminates immediately and automatically,
+with or without notice, if You fail to comply with any provision hereof.
+Additionally, QTI may at any time terminate this Agreement, without cause, upon
+notice to You. Upon termination You must, to the extent possible, delete or
+destroy all copies of the Materials in Your possession and the license granted
+to You in this Agreement shall terminate. Sections 1.2 through 10 shall survive
+the termination of this Agreement. In the event that any restrictions,
+conditions, limitations are found to be either invalid or unenforceable, the
+rights granted to You in Section 1 (License) shall be null, void and ineffective
+from the Effective Date, and QTI shall also have the right to terminate this
+Agreement immediately, and with retroactive effect to the effective date.
+
+5. LIMITATION OF LIABILITY. IN NO EVENT SHALL QTI, QTI's AFFILIATES OR ITS
+LICENSORS BE LIABLE TO YOU FOR ANY INCIDENTAL, CONSEQUENTIAL OR SPECIAL DAMAGES,
+INCLUDING BUT NOT LIMITED TO ANY LOST PROFITS, LOST SAVINGS, OR OTHER INCIDENTAL
+DAMAGES, ARISING OUT OF THE USE OR INABILITY TO USE, OR THE DELIVERY OR FAILURE
+TO DELIVER, ANY OF THE DELIVERABLES, OR ANY BREACH OF ANY OBLIGATION UNDER THIS
+AGREEMENT, EVEN IF QTI HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+THE FOREGOING LIMITATION OF LIABILITY SHALL REMAIN IN FULL FORCE AND EFFECT
+REGARDLESS OF WHETHER YOUR REMEDIES HEREUNDER ARE DETERMINED TO HAVE FAILED OF
+THEIR ESSENTIAL PURPOSE. THE ENTIRE LIABILITY OF QTI, QTI's AFFILIATES AND ITS
+LICENSORS, AND THE SOLE AND EXCLUSIVE REMEDY OF YOU, FOR ANY CLAIM OR CAUSE OF
+ACTION ARISING HEREUNDER (WHETHER IN CONTRACT, TORT, OR OTHERWISE) SHALL NOT
+EXCEED US$50.
+
+6. INDEMNIFICATION. You agree to indemnify and hold harmless QTI and its
+officers, directors, employees and successors and assigns against any and all
+third party claims, demands, causes of action, losses, liabilities, damages,
+costs and expenses, incurred by QTI (including but not limited to costs of
+defense, investigation and reasonable attorney's fees) arising out of, resulting
+from or related to: (i) any breach of this Agreement by You; and (ii) your acts,
+omissions, products and services. If requested by QTI, You agree to defend QTI
+in connection with any third party claims, demands, or causes of action
+resulting from, arising out of or in connection with any of the foregoing.
+
+7. ASSIGNMENT. You shall not assign this Agreement or any right or interest
+under this Agreement, nor delegate any obligation to be performed under this
+Agreement, without QTI's prior written consent. For purposes of this Section 7,
+an "assignment" by You under this Section shall be deemed to include, without
+limitation, any merger, consolidation, sale of all or substantially all of its
+assets, or any substantial change in the management or control of You.
+Any attempted assignment in contravention of this Section 9 shall be void.
+QTI may freely assign this Agreement or delegate any or all of its rights and
+obligations hereunder to any third party.
+
+8. COMPLIANCE WITH LAWS; APPLICABLE LAW. You agree to comply with all
+applicable local, international and national laws and regulations and with U.S.
+Export Administration Regulations, as they apply to the subject matter of this
+Agreement. This Agreement is governed by the laws of the State of California,
+excluding California's choice of law rules.
+
+9. CONTRACTING PARTIES. If the Materials are downloaded on any computer owned
+by a corporation or other legal entity, then this Agreement is formed by and
+between QTI and such entity. The individual accepting the terms of this
+Agreement represents and warrants to QTI that they have the authority to bind
+such entity to the terms and conditions of this Agreement.
+
+10. MISCELLANEOUS PROVISIONS. This Agreement, together with all exhibits
+attached hereto, which are incorporated herein by this reference, constitutes
+the entire agreement between QTI and You and supersedes all prior negotiations,
+representations and agreements between the parties with respect to the subject
+matter hereof. No addition or modification of this Agreement shall be effective
+unless made in writing and signed by the respective representatives of QTI and
+You. The restrictions, limitations, exclusions and conditions set forth in this
+Agreement shall apply even if QTI or any of its affiliates becomes aware of or
+fails to act in a manner to address any violation or failure to comply
+therewith. You hereby acknowledge and agree that the restrictions, limitations,
+conditions and exclusions imposed in this Agreement on the rights granted in
+this Agreement are not a derogation of the benefits of such rights. You further
+acknowledges that, in the absence of such restrictions, limitations, conditions
+and exclusions, QTI would not have entered into this Agreement with You. Each
+party shall be responsible for and shall bear its own expenses in connection
+with this Agreement. If any of the provisions of this Agreement are determined
+to be invalid, illegal, or otherwise unenforceable, the remaining provisions
+shall remain in full force and effect. This Agreement is entered into solely
+in the English language, and if for any reason any other language version is
+prepared by any party, it shall be solely for convenience and the English
+version shall govern and control all aspects. If You are located in the
+province of Quebec, Canada, the following applies: The Parties hereby confirm
+they have requested this Agreement and all related documents be prepared
+in English..
\ No newline at end of file
diff --git a/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/MD5SUMS.txt b/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/MD5SUMS.txt
new file mode 100644
index 0000000..90e10db
--- /dev/null
+++ b/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/MD5SUMS.txt
@@ -0,0 +1,50 @@
+c84e74fe73b9ab88a66a262b68a04c95 abl.elf
+71c6dd41e387ddb12c8553091928ec39 aop.mbn
+b6d81b360a5672d80c27430f39153e2c boot-erase.img
+40e97319f57ab9d0b60009163ff940c2 BTFM.bin
+cbd3f7ab1a261c30e9e3178c0ec09428 cmnlib64.mbn
+7e89535018695c938593581134d14871 cmnlib.mbn
+699e4dc2a0dbac11b255c79422744b44 devcfg.mbn
+d5cf22da99f6a871d4c7d43ce8eb801a dspso.bin
+4400827c0a6689bfe118a67d79b4fcd7 flashall
+264f55867061334b21ef69ef2d91149c gpt_backup0.bin
+03174a2beb3291ca66a2a15930c5cb9e gpt_backup1.bin
+840f50ac7d3d926ab7fdd0ed98a7560e gpt_backup2.bin
+eed1e80d8fc4943df0c8aa8ad1b73e4b gpt_backup3.bin
+26ab4ed9d160a0306735bf78ab6cefa9 gpt_backup4.bin
+c10a648091610effa41de4b9ee50eb5c gpt_backup5.bin
+9172f4826357bf619ca0b33a09f6779d gpt_both0.bin
+e6667b48079135ca722d3084a7806216 gpt_both1.bin
+3236a9e8b98116e7ccd4887880942479 gpt_both2.bin
+77a1e4c365356b2680c7398345698241 gpt_both3.bin
+000f146a62bd660308544a1ff734c86d gpt_both4.bin
+f7b3e3a0b2f8d235340fe096031d7e55 gpt_both5.bin
+2bf75b8a42ba360252cadfc9456e901e gpt_main0.bin
+5646c1db1527215f3192e50b2a46ef21 gpt_main1.bin
+8b01994b6fa047ec18444d17ce4b76db gpt_main2.bin
+785a2b74aa71227582eebb11da45f9af gpt_main3.bin
+7880b4539f887e18ed283cafb99cc07f gpt_main4.bin
+c0fce13c0dbf76493c1ad8d036f379ae gpt_main5.bin
+94794668fb0a63c599e754cba52f6517 hyp.mbn
+35cc47772102f785807556e03135764a imagefv.elf
+1fbaef77827cc531b5b7372ad1ee4937 keymaster64.mbn
+cbbe399f2c983ad51768f4561587f000 LICENSE
+7da8e656c3c01e6471479328af510728 patch0.xml
+0780990ee59934bdcaffc918cac99aed patch1.xml
+81036277fd056a16c0e418a756a5a835 patch2.xml
+f1e955eeee449ed57767ac0b87552cf1 patch3.xml
+04859b2cf8561a9d54e85a01595c44bb patch4.xml
+ab5847dcda2a52572616499f37ff1676 patch5.xml
+61e29ca7d21884af0e3a813d3bd0ade1 prog_firehose_ddr.elf
+57f570d8896ef6c0e55af6c3dc0940e1 qupv3fw.elf
+259d08f10ead09a858dec1a49736d398 rawprogram0.xml
+078978d92fc3c2a0ad0744e5e905e806 rawprogram1.xml
+e829b09f11eeed7f44caca1b592c91bf rawprogram2.xml
+e03411d04b290ffe1ea9b993d1f23074 rawprogram3.xml
+884a90a2d2ef5270caad52ac6e113fba rawprogram4.xml
+3640402754265a04aaff27ede61fa1c0 rawprogram5.xml
+21775907582b06389a656ab56011c160 sec.dat
+a09977823a706b04e851609cfe0a9113 storsec.mbn
+ce1bdfe85a34c3ce8f30f99e01a9f2af tz.mbn
+3d4e3c711e9fcdb2513afefb4072ab69 xbl_config.elf
+53510083c9fc81d0e7b75e8f09c5c0ea xbl.elf
diff --git a/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/abl.elf b/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/abl.elf
new file mode 100644
index 0000000..bfc9949
--- /dev/null
+++ b/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/abl.elf
Binary files differ
diff --git a/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/aop.mbn b/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/aop.mbn
new file mode 100644
index 0000000..59c3db6
--- /dev/null
+++ b/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/aop.mbn
Binary files differ
diff --git a/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/boot-erase.img b/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/boot-erase.img
new file mode 100644
index 0000000..9e0f96a
--- /dev/null
+++ b/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/boot-erase.img
Binary files differ
diff --git a/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/cmnlib.mbn b/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/cmnlib.mbn
new file mode 100644
index 0000000..f6a5688
--- /dev/null
+++ b/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/cmnlib.mbn
Binary files differ
diff --git a/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/cmnlib64.mbn b/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/cmnlib64.mbn
new file mode 100644
index 0000000..3c1f8e0
--- /dev/null
+++ b/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/cmnlib64.mbn
Binary files differ
diff --git a/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/devcfg.mbn b/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/devcfg.mbn
new file mode 100644
index 0000000..f7080e7
--- /dev/null
+++ b/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/devcfg.mbn
Binary files differ
diff --git a/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/dspso.bin b/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/dspso.bin
new file mode 100644
index 0000000..0468851
--- /dev/null
+++ b/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/dspso.bin
Binary files differ
diff --git a/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/flashall b/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/flashall
new file mode 100755
index 0000000..2c4db9e
--- /dev/null
+++ b/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/flashall
@@ -0,0 +1,27 @@
+#!/bin/sh
+
+fastboot flash partition:0 gpt_both0.bin
+fastboot flash partition:1 gpt_both1.bin
+fastboot flash partition:2 gpt_both2.bin
+fastboot flash partition:3 gpt_both3.bin
+fastboot flash partition:4 gpt_both4.bin
+fastboot flash partition:5 gpt_both5.bin
+
+fastboot flash ImageFv_a imagefv.elf
+fastboot flash aop_a aop.mbn
+fastboot flash bluetooth_a BTFM.bin
+fastboot flash cmnlib64_a cmnlib64.mbn
+fastboot flash cmnlib_a cmnlib.mbn
+fastboot erase ddr
+fastboot flash devcfg_a devcfg.mbn
+fastboot flash dsp_a dspso.bin
+fastboot flash hyp_a hyp.mbn
+fastboot flash keymaster_a keymaster64.mbn
+#fastboot flash logfs logfs_ufs_8mb.bin
+#fastboot flash modem_a NON-HLOS.bin
+fastboot flash qupfw_a qupv3fw.elf
+fastboot flash storsec_a storsec.mbn
+fastboot flash tz_a tz.mbn
+fastboot flash xbl_a xbl.elf
+fastboot flash xbl_config_a xbl_config.elf
+fastboot flash abl_a abl.elf
diff --git a/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/gpt_backup0.bin b/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/gpt_backup0.bin
new file mode 100644
index 0000000..63cf73f
--- /dev/null
+++ b/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/gpt_backup0.bin
Binary files differ
diff --git a/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/gpt_backup1.bin b/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/gpt_backup1.bin
new file mode 100644
index 0000000..6ecd5ed
--- /dev/null
+++ b/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/gpt_backup1.bin
Binary files differ
diff --git a/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/gpt_backup2.bin b/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/gpt_backup2.bin
new file mode 100644
index 0000000..3bf1983
--- /dev/null
+++ b/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/gpt_backup2.bin
Binary files differ
diff --git a/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/gpt_backup3.bin b/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/gpt_backup3.bin
new file mode 100644
index 0000000..2fc8c03
--- /dev/null
+++ b/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/gpt_backup3.bin
Binary files differ
diff --git a/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/gpt_backup4.bin b/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/gpt_backup4.bin
new file mode 100644
index 0000000..89dcf13
--- /dev/null
+++ b/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/gpt_backup4.bin
Binary files differ
diff --git a/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/gpt_backup5.bin b/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/gpt_backup5.bin
new file mode 100644
index 0000000..6bed800
--- /dev/null
+++ b/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/gpt_backup5.bin
Binary files differ
diff --git a/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/gpt_both0.bin b/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/gpt_both0.bin
new file mode 100644
index 0000000..6fd3db4
--- /dev/null
+++ b/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/gpt_both0.bin
Binary files differ
diff --git a/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/gpt_both1.bin b/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/gpt_both1.bin
new file mode 100644
index 0000000..b3a2bae
--- /dev/null
+++ b/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/gpt_both1.bin
Binary files differ
diff --git a/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/gpt_both2.bin b/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/gpt_both2.bin
new file mode 100644
index 0000000..e9158a1
--- /dev/null
+++ b/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/gpt_both2.bin
Binary files differ
diff --git a/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/gpt_both3.bin b/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/gpt_both3.bin
new file mode 100644
index 0000000..141bee8
--- /dev/null
+++ b/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/gpt_both3.bin
Binary files differ
diff --git a/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/gpt_both4.bin b/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/gpt_both4.bin
new file mode 100644
index 0000000..89ef1c2
--- /dev/null
+++ b/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/gpt_both4.bin
Binary files differ
diff --git a/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/gpt_both5.bin b/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/gpt_both5.bin
new file mode 100644
index 0000000..7a67840
--- /dev/null
+++ b/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/gpt_both5.bin
Binary files differ
diff --git a/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/gpt_main0.bin b/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/gpt_main0.bin
new file mode 100644
index 0000000..025a846
--- /dev/null
+++ b/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/gpt_main0.bin
Binary files differ
diff --git a/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/gpt_main1.bin b/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/gpt_main1.bin
new file mode 100644
index 0000000..83c40e3
--- /dev/null
+++ b/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/gpt_main1.bin
Binary files differ
diff --git a/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/gpt_main2.bin b/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/gpt_main2.bin
new file mode 100644
index 0000000..9f02bbf
--- /dev/null
+++ b/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/gpt_main2.bin
Binary files differ
diff --git a/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/gpt_main3.bin b/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/gpt_main3.bin
new file mode 100644
index 0000000..9501602
--- /dev/null
+++ b/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/gpt_main3.bin
Binary files differ
diff --git a/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/gpt_main4.bin b/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/gpt_main4.bin
new file mode 100644
index 0000000..da6fc07
--- /dev/null
+++ b/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/gpt_main4.bin
Binary files differ
diff --git a/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/gpt_main5.bin b/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/gpt_main5.bin
new file mode 100644
index 0000000..c5eb503
--- /dev/null
+++ b/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/gpt_main5.bin
Binary files differ
diff --git a/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/hyp.mbn b/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/hyp.mbn
new file mode 100644
index 0000000..538dcc6
--- /dev/null
+++ b/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/hyp.mbn
Binary files differ
diff --git a/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/imagefv.elf b/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/imagefv.elf
new file mode 100644
index 0000000..42107de
--- /dev/null
+++ b/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/imagefv.elf
Binary files differ
diff --git a/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/keymaster64.mbn b/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/keymaster64.mbn
new file mode 100644
index 0000000..5bdd1a9
--- /dev/null
+++ b/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/keymaster64.mbn
Binary files differ
diff --git a/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/patch0.xml b/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/patch0.xml
new file mode 100644
index 0000000..28f4a18
--- /dev/null
+++ b/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/patch0.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" ?>
+<patches>
+ <!--NOTE: This is an ** Autogenerated file **-->
+ <!--NOTE: Patching is in little endian format, i.e. 0xAABBCCDD will look like DD CC BB AA in the file or on disk-->
+ <!--NOTE: This file is used by Trace32 - So make sure to add decimals, i.e. 0x10-10=0, *but* 0x10-10.=6.-->
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="1192" filename="gpt_main0.bin" physical_partition_number="0" size_in_bytes="8" start_sector="2" value="NUM_DISK_SECTORS-6." what="Update last partition 10 'userdata' with actual size in Primary Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="1192" filename="DISK" physical_partition_number="0" size_in_bytes="8" start_sector="2" value="NUM_DISK_SECTORS-6." what="Update last partition 10 'userdata' with actual size in Primary Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="1192" filename="gpt_backup0.bin" physical_partition_number="0" size_in_bytes="8" start_sector="0" value="NUM_DISK_SECTORS-6." what="Update last partition 10 'userdata' with actual size in Backup Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="1192" filename="DISK" physical_partition_number="0" size_in_bytes="8" start_sector="NUM_DISK_SECTORS-5." value="NUM_DISK_SECTORS-6." what="Update last partition 10 'userdata' with actual size in Backup Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="48" filename="gpt_main0.bin" physical_partition_number="0" size_in_bytes="8" start_sector="1" value="NUM_DISK_SECTORS-6." what="Update Primary Header with LastUseableLBA."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="48" filename="DISK" physical_partition_number="0" size_in_bytes="8" start_sector="1" value="NUM_DISK_SECTORS-6." what="Update Primary Header with LastUseableLBA."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="48" filename="gpt_backup0.bin" physical_partition_number="0" size_in_bytes="8" start_sector="4" value="NUM_DISK_SECTORS-6." what="Update Backup Header with LastUseableLBA."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="48" filename="DISK" physical_partition_number="0" size_in_bytes="8" start_sector="NUM_DISK_SECTORS-1." value="NUM_DISK_SECTORS-6." what="Update Backup Header with LastUseableLBA."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="32" filename="gpt_main0.bin" physical_partition_number="0" size_in_bytes="8" start_sector="1" value="NUM_DISK_SECTORS-1." what="Update Primary Header with BackupGPT Header Location."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="32" filename="DISK" physical_partition_number="0" size_in_bytes="8" start_sector="1" value="NUM_DISK_SECTORS-1." what="Update Primary Header with BackupGPT Header Location."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="24" filename="gpt_backup0.bin" physical_partition_number="0" size_in_bytes="8" start_sector="4" value="NUM_DISK_SECTORS-1." what="Update Backup Header with CurrentLBA."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="24" filename="DISK" physical_partition_number="0" size_in_bytes="8" start_sector="NUM_DISK_SECTORS-1." value="NUM_DISK_SECTORS-1." what="Update Backup Header with CurrentLBA."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="72" filename="gpt_backup0.bin" physical_partition_number="0" size_in_bytes="8" start_sector="4" value="NUM_DISK_SECTORS-5." what="Update Backup Header with Partition Array Location."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="72" filename="DISK" physical_partition_number="0" size_in_bytes="8" start_sector="NUM_DISK_SECTORS-1" value="NUM_DISK_SECTORS-5." what="Update Backup Header with Partition Array Location."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="88" filename="gpt_main0.bin" physical_partition_number="0" size_in_bytes="4" start_sector="1" value="CRC32(2,4096)" what="Update Primary Header with CRC of Partition Array."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="88" filename="DISK" physical_partition_number="0" size_in_bytes="4" start_sector="1" value="CRC32(2,4096)" what="Update Primary Header with CRC of Partition Array."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="88" filename="gpt_backup0.bin" physical_partition_number="0" size_in_bytes="4" start_sector="4" value="CRC32(0,4096)" what="Update Backup Header with CRC of Partition Array."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="88" filename="DISK" physical_partition_number="0" size_in_bytes="4" start_sector="NUM_DISK_SECTORS-1." value="CRC32(NUM_DISK_SECTORS-5.,4096)" what="Update Backup Header with CRC of Partition Array."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="16" filename="gpt_main0.bin" physical_partition_number="0" size_in_bytes="4" start_sector="1" value="0" what="Zero Out Header CRC in Primary Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="16" filename="gpt_main0.bin" physical_partition_number="0" size_in_bytes="4" start_sector="1" value="CRC32(1,92)" what="Update Primary Header with CRC of Primary Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="16" filename="DISK" physical_partition_number="0" size_in_bytes="4" start_sector="1" value="0" what="Zero Out Header CRC in Primary Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="16" filename="DISK" physical_partition_number="0" size_in_bytes="4" start_sector="1" value="CRC32(1,92)" what="Update Primary Header with CRC of Primary Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="16" filename="gpt_backup0.bin" physical_partition_number="0" size_in_bytes="4" start_sector="4" value="0" what="Zero Out Header CRC in Backup Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="16" filename="gpt_backup0.bin" physical_partition_number="0" size_in_bytes="4" start_sector="4" value="CRC32(4,92)" what="Update Backup Header with CRC of Backup Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="16" filename="DISK" physical_partition_number="0" size_in_bytes="4" start_sector="NUM_DISK_SECTORS-1." value="0" what="Zero Out Header CRC in Backup Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="16" filename="DISK" physical_partition_number="0" size_in_bytes="4" start_sector="NUM_DISK_SECTORS-1." value="CRC32(NUM_DISK_SECTORS-1.,92)" what="Update Backup Header with CRC of Backup Header."/>
+</patches>
diff --git a/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/patch1.xml b/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/patch1.xml
new file mode 100644
index 0000000..f22f118
--- /dev/null
+++ b/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/patch1.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" ?>
+<patches>
+ <!--NOTE: This is an ** Autogenerated file **-->
+ <!--NOTE: Patching is in little endian format, i.e. 0xAABBCCDD will look like DD CC BB AA in the file or on disk-->
+ <!--NOTE: This file is used by Trace32 - So make sure to add decimals, i.e. 0x10-10=0, *but* 0x10-10.=6.-->
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="296" filename="gpt_main1.bin" physical_partition_number="1" size_in_bytes="8" start_sector="2" value="NUM_DISK_SECTORS-6." what="Update last partition 3 'last_parti' with actual size in Primary Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="296" filename="DISK" physical_partition_number="1" size_in_bytes="8" start_sector="2" value="NUM_DISK_SECTORS-6." what="Update last partition 3 'last_parti' with actual size in Primary Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="296" filename="gpt_backup1.bin" physical_partition_number="1" size_in_bytes="8" start_sector="0" value="NUM_DISK_SECTORS-6." what="Update last partition 3 'last_parti' with actual size in Backup Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="296" filename="DISK" physical_partition_number="1" size_in_bytes="8" start_sector="NUM_DISK_SECTORS-5." value="NUM_DISK_SECTORS-6." what="Update last partition 3 'last_parti' with actual size in Backup Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="48" filename="gpt_main1.bin" physical_partition_number="1" size_in_bytes="8" start_sector="1" value="NUM_DISK_SECTORS-6." what="Update Primary Header with LastUseableLBA."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="48" filename="DISK" physical_partition_number="1" size_in_bytes="8" start_sector="1" value="NUM_DISK_SECTORS-6." what="Update Primary Header with LastUseableLBA."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="48" filename="gpt_backup1.bin" physical_partition_number="1" size_in_bytes="8" start_sector="4" value="NUM_DISK_SECTORS-6." what="Update Backup Header with LastUseableLBA."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="48" filename="DISK" physical_partition_number="1" size_in_bytes="8" start_sector="NUM_DISK_SECTORS-1." value="NUM_DISK_SECTORS-6." what="Update Backup Header with LastUseableLBA."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="32" filename="gpt_main1.bin" physical_partition_number="1" size_in_bytes="8" start_sector="1" value="NUM_DISK_SECTORS-1." what="Update Primary Header with BackupGPT Header Location."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="32" filename="DISK" physical_partition_number="1" size_in_bytes="8" start_sector="1" value="NUM_DISK_SECTORS-1." what="Update Primary Header with BackupGPT Header Location."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="24" filename="gpt_backup1.bin" physical_partition_number="1" size_in_bytes="8" start_sector="4" value="NUM_DISK_SECTORS-1." what="Update Backup Header with CurrentLBA."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="24" filename="DISK" physical_partition_number="1" size_in_bytes="8" start_sector="NUM_DISK_SECTORS-1." value="NUM_DISK_SECTORS-1." what="Update Backup Header with CurrentLBA."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="72" filename="gpt_backup1.bin" physical_partition_number="1" size_in_bytes="8" start_sector="4" value="NUM_DISK_SECTORS-5." what="Update Backup Header with Partition Array Location."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="72" filename="DISK" physical_partition_number="1" size_in_bytes="8" start_sector="NUM_DISK_SECTORS-1" value="NUM_DISK_SECTORS-5." what="Update Backup Header with Partition Array Location."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="88" filename="gpt_main1.bin" physical_partition_number="1" size_in_bytes="4" start_sector="1" value="CRC32(2,4096)" what="Update Primary Header with CRC of Partition Array."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="88" filename="DISK" physical_partition_number="1" size_in_bytes="4" start_sector="1" value="CRC32(2,4096)" what="Update Primary Header with CRC of Partition Array."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="88" filename="gpt_backup1.bin" physical_partition_number="1" size_in_bytes="4" start_sector="4" value="CRC32(0,4096)" what="Update Backup Header with CRC of Partition Array."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="88" filename="DISK" physical_partition_number="1" size_in_bytes="4" start_sector="NUM_DISK_SECTORS-1." value="CRC32(NUM_DISK_SECTORS-5.,4096)" what="Update Backup Header with CRC of Partition Array."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="16" filename="gpt_main1.bin" physical_partition_number="1" size_in_bytes="4" start_sector="1" value="0" what="Zero Out Header CRC in Primary Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="16" filename="gpt_main1.bin" physical_partition_number="1" size_in_bytes="4" start_sector="1" value="CRC32(1,92)" what="Update Primary Header with CRC of Primary Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="16" filename="DISK" physical_partition_number="1" size_in_bytes="4" start_sector="1" value="0" what="Zero Out Header CRC in Primary Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="16" filename="DISK" physical_partition_number="1" size_in_bytes="4" start_sector="1" value="CRC32(1,92)" what="Update Primary Header with CRC of Primary Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="16" filename="gpt_backup1.bin" physical_partition_number="1" size_in_bytes="4" start_sector="4" value="0" what="Zero Out Header CRC in Backup Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="16" filename="gpt_backup1.bin" physical_partition_number="1" size_in_bytes="4" start_sector="4" value="CRC32(4,92)" what="Update Backup Header with CRC of Backup Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="16" filename="DISK" physical_partition_number="1" size_in_bytes="4" start_sector="NUM_DISK_SECTORS-1." value="0" what="Zero Out Header CRC in Backup Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="16" filename="DISK" physical_partition_number="1" size_in_bytes="4" start_sector="NUM_DISK_SECTORS-1." value="CRC32(NUM_DISK_SECTORS-1.,92)" what="Update Backup Header with CRC of Backup Header."/>
+</patches>
diff --git a/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/patch2.xml b/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/patch2.xml
new file mode 100644
index 0000000..3a21339
--- /dev/null
+++ b/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/patch2.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" ?>
+<patches>
+ <!--NOTE: This is an ** Autogenerated file **-->
+ <!--NOTE: Patching is in little endian format, i.e. 0xAABBCCDD will look like DD CC BB AA in the file or on disk-->
+ <!--NOTE: This file is used by Trace32 - So make sure to add decimals, i.e. 0x10-10=0, *but* 0x10-10.=6.-->
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="296" filename="gpt_main2.bin" physical_partition_number="2" size_in_bytes="8" start_sector="2" value="NUM_DISK_SECTORS-6." what="Update last partition 3 'last_parti' with actual size in Primary Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="296" filename="DISK" physical_partition_number="2" size_in_bytes="8" start_sector="2" value="NUM_DISK_SECTORS-6." what="Update last partition 3 'last_parti' with actual size in Primary Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="296" filename="gpt_backup2.bin" physical_partition_number="2" size_in_bytes="8" start_sector="0" value="NUM_DISK_SECTORS-6." what="Update last partition 3 'last_parti' with actual size in Backup Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="296" filename="DISK" physical_partition_number="2" size_in_bytes="8" start_sector="NUM_DISK_SECTORS-5." value="NUM_DISK_SECTORS-6." what="Update last partition 3 'last_parti' with actual size in Backup Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="48" filename="gpt_main2.bin" physical_partition_number="2" size_in_bytes="8" start_sector="1" value="NUM_DISK_SECTORS-6." what="Update Primary Header with LastUseableLBA."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="48" filename="DISK" physical_partition_number="2" size_in_bytes="8" start_sector="1" value="NUM_DISK_SECTORS-6." what="Update Primary Header with LastUseableLBA."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="48" filename="gpt_backup2.bin" physical_partition_number="2" size_in_bytes="8" start_sector="4" value="NUM_DISK_SECTORS-6." what="Update Backup Header with LastUseableLBA."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="48" filename="DISK" physical_partition_number="2" size_in_bytes="8" start_sector="NUM_DISK_SECTORS-1." value="NUM_DISK_SECTORS-6." what="Update Backup Header with LastUseableLBA."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="32" filename="gpt_main2.bin" physical_partition_number="2" size_in_bytes="8" start_sector="1" value="NUM_DISK_SECTORS-1." what="Update Primary Header with BackupGPT Header Location."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="32" filename="DISK" physical_partition_number="2" size_in_bytes="8" start_sector="1" value="NUM_DISK_SECTORS-1." what="Update Primary Header with BackupGPT Header Location."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="24" filename="gpt_backup2.bin" physical_partition_number="2" size_in_bytes="8" start_sector="4" value="NUM_DISK_SECTORS-1." what="Update Backup Header with CurrentLBA."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="24" filename="DISK" physical_partition_number="2" size_in_bytes="8" start_sector="NUM_DISK_SECTORS-1." value="NUM_DISK_SECTORS-1." what="Update Backup Header with CurrentLBA."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="72" filename="gpt_backup2.bin" physical_partition_number="2" size_in_bytes="8" start_sector="4" value="NUM_DISK_SECTORS-5." what="Update Backup Header with Partition Array Location."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="72" filename="DISK" physical_partition_number="2" size_in_bytes="8" start_sector="NUM_DISK_SECTORS-1" value="NUM_DISK_SECTORS-5." what="Update Backup Header with Partition Array Location."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="88" filename="gpt_main2.bin" physical_partition_number="2" size_in_bytes="4" start_sector="1" value="CRC32(2,4096)" what="Update Primary Header with CRC of Partition Array."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="88" filename="DISK" physical_partition_number="2" size_in_bytes="4" start_sector="1" value="CRC32(2,4096)" what="Update Primary Header with CRC of Partition Array."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="88" filename="gpt_backup2.bin" physical_partition_number="2" size_in_bytes="4" start_sector="4" value="CRC32(0,4096)" what="Update Backup Header with CRC of Partition Array."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="88" filename="DISK" physical_partition_number="2" size_in_bytes="4" start_sector="NUM_DISK_SECTORS-1." value="CRC32(NUM_DISK_SECTORS-5.,4096)" what="Update Backup Header with CRC of Partition Array."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="16" filename="gpt_main2.bin" physical_partition_number="2" size_in_bytes="4" start_sector="1" value="0" what="Zero Out Header CRC in Primary Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="16" filename="gpt_main2.bin" physical_partition_number="2" size_in_bytes="4" start_sector="1" value="CRC32(1,92)" what="Update Primary Header with CRC of Primary Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="16" filename="DISK" physical_partition_number="2" size_in_bytes="4" start_sector="1" value="0" what="Zero Out Header CRC in Primary Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="16" filename="DISK" physical_partition_number="2" size_in_bytes="4" start_sector="1" value="CRC32(1,92)" what="Update Primary Header with CRC of Primary Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="16" filename="gpt_backup2.bin" physical_partition_number="2" size_in_bytes="4" start_sector="4" value="0" what="Zero Out Header CRC in Backup Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="16" filename="gpt_backup2.bin" physical_partition_number="2" size_in_bytes="4" start_sector="4" value="CRC32(4,92)" what="Update Backup Header with CRC of Backup Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="16" filename="DISK" physical_partition_number="2" size_in_bytes="4" start_sector="NUM_DISK_SECTORS-1." value="0" what="Zero Out Header CRC in Backup Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="16" filename="DISK" physical_partition_number="2" size_in_bytes="4" start_sector="NUM_DISK_SECTORS-1." value="CRC32(NUM_DISK_SECTORS-1.,92)" what="Update Backup Header with CRC of Backup Header."/>
+</patches>
diff --git a/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/patch3.xml b/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/patch3.xml
new file mode 100644
index 0000000..e818f40
--- /dev/null
+++ b/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/patch3.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" ?>
+<patches>
+ <!--NOTE: This is an ** Autogenerated file **-->
+ <!--NOTE: Patching is in little endian format, i.e. 0xAABBCCDD will look like DD CC BB AA in the file or on disk-->
+ <!--NOTE: This file is used by Trace32 - So make sure to add decimals, i.e. 0x10-10=0, *but* 0x10-10.=6.-->
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="424" filename="gpt_main3.bin" physical_partition_number="3" size_in_bytes="8" start_sector="2" value="NUM_DISK_SECTORS-6." what="Update last partition 4 'last_parti' with actual size in Primary Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="424" filename="DISK" physical_partition_number="3" size_in_bytes="8" start_sector="2" value="NUM_DISK_SECTORS-6." what="Update last partition 4 'last_parti' with actual size in Primary Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="424" filename="gpt_backup3.bin" physical_partition_number="3" size_in_bytes="8" start_sector="0" value="NUM_DISK_SECTORS-6." what="Update last partition 4 'last_parti' with actual size in Backup Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="424" filename="DISK" physical_partition_number="3" size_in_bytes="8" start_sector="NUM_DISK_SECTORS-5." value="NUM_DISK_SECTORS-6." what="Update last partition 4 'last_parti' with actual size in Backup Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="48" filename="gpt_main3.bin" physical_partition_number="3" size_in_bytes="8" start_sector="1" value="NUM_DISK_SECTORS-6." what="Update Primary Header with LastUseableLBA."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="48" filename="DISK" physical_partition_number="3" size_in_bytes="8" start_sector="1" value="NUM_DISK_SECTORS-6." what="Update Primary Header with LastUseableLBA."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="48" filename="gpt_backup3.bin" physical_partition_number="3" size_in_bytes="8" start_sector="4" value="NUM_DISK_SECTORS-6." what="Update Backup Header with LastUseableLBA."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="48" filename="DISK" physical_partition_number="3" size_in_bytes="8" start_sector="NUM_DISK_SECTORS-1." value="NUM_DISK_SECTORS-6." what="Update Backup Header with LastUseableLBA."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="32" filename="gpt_main3.bin" physical_partition_number="3" size_in_bytes="8" start_sector="1" value="NUM_DISK_SECTORS-1." what="Update Primary Header with BackupGPT Header Location."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="32" filename="DISK" physical_partition_number="3" size_in_bytes="8" start_sector="1" value="NUM_DISK_SECTORS-1." what="Update Primary Header with BackupGPT Header Location."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="24" filename="gpt_backup3.bin" physical_partition_number="3" size_in_bytes="8" start_sector="4" value="NUM_DISK_SECTORS-1." what="Update Backup Header with CurrentLBA."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="24" filename="DISK" physical_partition_number="3" size_in_bytes="8" start_sector="NUM_DISK_SECTORS-1." value="NUM_DISK_SECTORS-1." what="Update Backup Header with CurrentLBA."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="72" filename="gpt_backup3.bin" physical_partition_number="3" size_in_bytes="8" start_sector="4" value="NUM_DISK_SECTORS-5." what="Update Backup Header with Partition Array Location."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="72" filename="DISK" physical_partition_number="3" size_in_bytes="8" start_sector="NUM_DISK_SECTORS-1" value="NUM_DISK_SECTORS-5." what="Update Backup Header with Partition Array Location."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="88" filename="gpt_main3.bin" physical_partition_number="3" size_in_bytes="4" start_sector="1" value="CRC32(2,4096)" what="Update Primary Header with CRC of Partition Array."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="88" filename="DISK" physical_partition_number="3" size_in_bytes="4" start_sector="1" value="CRC32(2,4096)" what="Update Primary Header with CRC of Partition Array."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="88" filename="gpt_backup3.bin" physical_partition_number="3" size_in_bytes="4" start_sector="4" value="CRC32(0,4096)" what="Update Backup Header with CRC of Partition Array."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="88" filename="DISK" physical_partition_number="3" size_in_bytes="4" start_sector="NUM_DISK_SECTORS-1." value="CRC32(NUM_DISK_SECTORS-5.,4096)" what="Update Backup Header with CRC of Partition Array."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="16" filename="gpt_main3.bin" physical_partition_number="3" size_in_bytes="4" start_sector="1" value="0" what="Zero Out Header CRC in Primary Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="16" filename="gpt_main3.bin" physical_partition_number="3" size_in_bytes="4" start_sector="1" value="CRC32(1,92)" what="Update Primary Header with CRC of Primary Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="16" filename="DISK" physical_partition_number="3" size_in_bytes="4" start_sector="1" value="0" what="Zero Out Header CRC in Primary Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="16" filename="DISK" physical_partition_number="3" size_in_bytes="4" start_sector="1" value="CRC32(1,92)" what="Update Primary Header with CRC of Primary Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="16" filename="gpt_backup3.bin" physical_partition_number="3" size_in_bytes="4" start_sector="4" value="0" what="Zero Out Header CRC in Backup Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="16" filename="gpt_backup3.bin" physical_partition_number="3" size_in_bytes="4" start_sector="4" value="CRC32(4,92)" what="Update Backup Header with CRC of Backup Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="16" filename="DISK" physical_partition_number="3" size_in_bytes="4" start_sector="NUM_DISK_SECTORS-1." value="0" what="Zero Out Header CRC in Backup Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="16" filename="DISK" physical_partition_number="3" size_in_bytes="4" start_sector="NUM_DISK_SECTORS-1." value="CRC32(NUM_DISK_SECTORS-1.,92)" what="Update Backup Header with CRC of Backup Header."/>
+</patches>
diff --git a/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/patch4.xml b/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/patch4.xml
new file mode 100644
index 0000000..b808e50
--- /dev/null
+++ b/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/patch4.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" ?>
+<patches>
+ <!--NOTE: This is an ** Autogenerated file **-->
+ <!--NOTE: Patching is in little endian format, i.e. 0xAABBCCDD will look like DD CC BB AA in the file or on disk-->
+ <!--NOTE: This file is used by Trace32 - So make sure to add decimals, i.e. 0x10-10=0, *but* 0x10-10.=6.-->
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="2088" filename="gpt_main4.bin" physical_partition_number="4" size_in_bytes="8" start_sector="3" value="NUM_DISK_SECTORS-6." what="Update last partition 49 'last_parti' with actual size in Primary Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="2088" filename="DISK" physical_partition_number="4" size_in_bytes="8" start_sector="3" value="NUM_DISK_SECTORS-6." what="Update last partition 49 'last_parti' with actual size in Primary Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="2088" filename="gpt_backup4.bin" physical_partition_number="4" size_in_bytes="8" start_sector="1" value="NUM_DISK_SECTORS-6." what="Update last partition 49 'last_parti' with actual size in Backup Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="2088" filename="DISK" physical_partition_number="4" size_in_bytes="8" start_sector="NUM_DISK_SECTORS-4." value="NUM_DISK_SECTORS-6." what="Update last partition 49 'last_parti' with actual size in Backup Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="48" filename="gpt_main4.bin" physical_partition_number="4" size_in_bytes="8" start_sector="1" value="NUM_DISK_SECTORS-6." what="Update Primary Header with LastUseableLBA."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="48" filename="DISK" physical_partition_number="4" size_in_bytes="8" start_sector="1" value="NUM_DISK_SECTORS-6." what="Update Primary Header with LastUseableLBA."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="48" filename="gpt_backup4.bin" physical_partition_number="4" size_in_bytes="8" start_sector="4" value="NUM_DISK_SECTORS-6." what="Update Backup Header with LastUseableLBA."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="48" filename="DISK" physical_partition_number="4" size_in_bytes="8" start_sector="NUM_DISK_SECTORS-1." value="NUM_DISK_SECTORS-6." what="Update Backup Header with LastUseableLBA."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="32" filename="gpt_main4.bin" physical_partition_number="4" size_in_bytes="8" start_sector="1" value="NUM_DISK_SECTORS-1." what="Update Primary Header with BackupGPT Header Location."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="32" filename="DISK" physical_partition_number="4" size_in_bytes="8" start_sector="1" value="NUM_DISK_SECTORS-1." what="Update Primary Header with BackupGPT Header Location."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="24" filename="gpt_backup4.bin" physical_partition_number="4" size_in_bytes="8" start_sector="4" value="NUM_DISK_SECTORS-1." what="Update Backup Header with CurrentLBA."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="24" filename="DISK" physical_partition_number="4" size_in_bytes="8" start_sector="NUM_DISK_SECTORS-1." value="NUM_DISK_SECTORS-1." what="Update Backup Header with CurrentLBA."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="72" filename="gpt_backup4.bin" physical_partition_number="4" size_in_bytes="8" start_sector="4" value="NUM_DISK_SECTORS-5." what="Update Backup Header with Partition Array Location."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="72" filename="DISK" physical_partition_number="4" size_in_bytes="8" start_sector="NUM_DISK_SECTORS-1" value="NUM_DISK_SECTORS-5." what="Update Backup Header with Partition Array Location."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="88" filename="gpt_main4.bin" physical_partition_number="4" size_in_bytes="4" start_sector="1" value="CRC32(2,8192)" what="Update Primary Header with CRC of Partition Array."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="88" filename="DISK" physical_partition_number="4" size_in_bytes="4" start_sector="1" value="CRC32(2,8192)" what="Update Primary Header with CRC of Partition Array."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="88" filename="gpt_backup4.bin" physical_partition_number="4" size_in_bytes="4" start_sector="4" value="CRC32(0,8192)" what="Update Backup Header with CRC of Partition Array."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="88" filename="DISK" physical_partition_number="4" size_in_bytes="4" start_sector="NUM_DISK_SECTORS-1." value="CRC32(NUM_DISK_SECTORS-5.,8192)" what="Update Backup Header with CRC of Partition Array."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="16" filename="gpt_main4.bin" physical_partition_number="4" size_in_bytes="4" start_sector="1" value="0" what="Zero Out Header CRC in Primary Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="16" filename="gpt_main4.bin" physical_partition_number="4" size_in_bytes="4" start_sector="1" value="CRC32(1,92)" what="Update Primary Header with CRC of Primary Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="16" filename="DISK" physical_partition_number="4" size_in_bytes="4" start_sector="1" value="0" what="Zero Out Header CRC in Primary Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="16" filename="DISK" physical_partition_number="4" size_in_bytes="4" start_sector="1" value="CRC32(1,92)" what="Update Primary Header with CRC of Primary Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="16" filename="gpt_backup4.bin" physical_partition_number="4" size_in_bytes="4" start_sector="4" value="0" what="Zero Out Header CRC in Backup Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="16" filename="gpt_backup4.bin" physical_partition_number="4" size_in_bytes="4" start_sector="4" value="CRC32(4,92)" what="Update Backup Header with CRC of Backup Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="16" filename="DISK" physical_partition_number="4" size_in_bytes="4" start_sector="NUM_DISK_SECTORS-1." value="0" what="Zero Out Header CRC in Backup Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="16" filename="DISK" physical_partition_number="4" size_in_bytes="4" start_sector="NUM_DISK_SECTORS-1." value="CRC32(NUM_DISK_SECTORS-1.,92)" what="Update Backup Header with CRC of Backup Header."/>
+</patches>
diff --git a/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/patch5.xml b/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/patch5.xml
new file mode 100644
index 0000000..b9ff1fd
--- /dev/null
+++ b/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/patch5.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" ?>
+<patches>
+ <!--NOTE: This is an ** Autogenerated file **-->
+ <!--NOTE: Patching is in little endian format, i.e. 0xAABBCCDD will look like DD CC BB AA in the file or on disk-->
+ <!--NOTE: This file is used by Trace32 - So make sure to add decimals, i.e. 0x10-10=0, *but* 0x10-10.=6.-->
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="1192" filename="gpt_main5.bin" physical_partition_number="5" size_in_bytes="8" start_sector="2" value="NUM_DISK_SECTORS-6." what="Update last partition 10 'last_parti' with actual size in Primary Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="1192" filename="DISK" physical_partition_number="5" size_in_bytes="8" start_sector="2" value="NUM_DISK_SECTORS-6." what="Update last partition 10 'last_parti' with actual size in Primary Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="1192" filename="gpt_backup5.bin" physical_partition_number="5" size_in_bytes="8" start_sector="0" value="NUM_DISK_SECTORS-6." what="Update last partition 10 'last_parti' with actual size in Backup Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="1192" filename="DISK" physical_partition_number="5" size_in_bytes="8" start_sector="NUM_DISK_SECTORS-5." value="NUM_DISK_SECTORS-6." what="Update last partition 10 'last_parti' with actual size in Backup Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="48" filename="gpt_main5.bin" physical_partition_number="5" size_in_bytes="8" start_sector="1" value="NUM_DISK_SECTORS-6." what="Update Primary Header with LastUseableLBA."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="48" filename="DISK" physical_partition_number="5" size_in_bytes="8" start_sector="1" value="NUM_DISK_SECTORS-6." what="Update Primary Header with LastUseableLBA."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="48" filename="gpt_backup5.bin" physical_partition_number="5" size_in_bytes="8" start_sector="4" value="NUM_DISK_SECTORS-6." what="Update Backup Header with LastUseableLBA."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="48" filename="DISK" physical_partition_number="5" size_in_bytes="8" start_sector="NUM_DISK_SECTORS-1." value="NUM_DISK_SECTORS-6." what="Update Backup Header with LastUseableLBA."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="32" filename="gpt_main5.bin" physical_partition_number="5" size_in_bytes="8" start_sector="1" value="NUM_DISK_SECTORS-1." what="Update Primary Header with BackupGPT Header Location."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="32" filename="DISK" physical_partition_number="5" size_in_bytes="8" start_sector="1" value="NUM_DISK_SECTORS-1." what="Update Primary Header with BackupGPT Header Location."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="24" filename="gpt_backup5.bin" physical_partition_number="5" size_in_bytes="8" start_sector="4" value="NUM_DISK_SECTORS-1." what="Update Backup Header with CurrentLBA."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="24" filename="DISK" physical_partition_number="5" size_in_bytes="8" start_sector="NUM_DISK_SECTORS-1." value="NUM_DISK_SECTORS-1." what="Update Backup Header with CurrentLBA."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="72" filename="gpt_backup5.bin" physical_partition_number="5" size_in_bytes="8" start_sector="4" value="NUM_DISK_SECTORS-5." what="Update Backup Header with Partition Array Location."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="72" filename="DISK" physical_partition_number="5" size_in_bytes="8" start_sector="NUM_DISK_SECTORS-1" value="NUM_DISK_SECTORS-5." what="Update Backup Header with Partition Array Location."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="88" filename="gpt_main5.bin" physical_partition_number="5" size_in_bytes="4" start_sector="1" value="CRC32(2,4096)" what="Update Primary Header with CRC of Partition Array."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="88" filename="DISK" physical_partition_number="5" size_in_bytes="4" start_sector="1" value="CRC32(2,4096)" what="Update Primary Header with CRC of Partition Array."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="88" filename="gpt_backup5.bin" physical_partition_number="5" size_in_bytes="4" start_sector="4" value="CRC32(0,4096)" what="Update Backup Header with CRC of Partition Array."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="88" filename="DISK" physical_partition_number="5" size_in_bytes="4" start_sector="NUM_DISK_SECTORS-1." value="CRC32(NUM_DISK_SECTORS-5.,4096)" what="Update Backup Header with CRC of Partition Array."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="16" filename="gpt_main5.bin" physical_partition_number="5" size_in_bytes="4" start_sector="1" value="0" what="Zero Out Header CRC in Primary Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="16" filename="gpt_main5.bin" physical_partition_number="5" size_in_bytes="4" start_sector="1" value="CRC32(1,92)" what="Update Primary Header with CRC of Primary Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="16" filename="DISK" physical_partition_number="5" size_in_bytes="4" start_sector="1" value="0" what="Zero Out Header CRC in Primary Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="16" filename="DISK" physical_partition_number="5" size_in_bytes="4" start_sector="1" value="CRC32(1,92)" what="Update Primary Header with CRC of Primary Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="16" filename="gpt_backup5.bin" physical_partition_number="5" size_in_bytes="4" start_sector="4" value="0" what="Zero Out Header CRC in Backup Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="16" filename="gpt_backup5.bin" physical_partition_number="5" size_in_bytes="4" start_sector="4" value="CRC32(4,92)" what="Update Backup Header with CRC of Backup Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="16" filename="DISK" physical_partition_number="5" size_in_bytes="4" start_sector="NUM_DISK_SECTORS-1." value="0" what="Zero Out Header CRC in Backup Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="16" filename="DISK" physical_partition_number="5" size_in_bytes="4" start_sector="NUM_DISK_SECTORS-1." value="CRC32(NUM_DISK_SECTORS-1.,92)" what="Update Backup Header with CRC of Backup Header."/>
+</patches>
diff --git a/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/prog_firehose_ddr.elf b/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/prog_firehose_ddr.elf
new file mode 100644
index 0000000..15e2d4c
--- /dev/null
+++ b/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/prog_firehose_ddr.elf
Binary files differ
diff --git a/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/qupv3fw.elf b/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/qupv3fw.elf
new file mode 100644
index 0000000..6236ec4
--- /dev/null
+++ b/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/qupv3fw.elf
Binary files differ
diff --git a/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/rawprogram0.xml b/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/rawprogram0.xml
new file mode 100644
index 0000000..44202c6
--- /dev/null
+++ b/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/rawprogram0.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" ?>
+<data>
+ <!--NOTE: This is an ** Autogenerated file **-->
+ <!--NOTE: Sector size is 4096bytes-->
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="" label="persist" num_partition_sectors="8192" partofsingleimage="false" physical_partition_number="0" readbackverify="false" size_in_KB="32768.0" sparse="false" start_byte_hex="0x6000" start_sector="6"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="" label="system_a" num_partition_sectors="1485448" partofsingleimage="false" physical_partition_number="0" readbackverify="false" size_in_KB="5941792.0" sparse="false" start_byte_hex="0x2006000" start_sector="8198"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="" label="system_b" num_partition_sectors="1485448" partofsingleimage="false" physical_partition_number="0" readbackverify="false" size_in_KB="5941792.0" sparse="false" start_byte_hex="0x16ca8e000" start_sector="1493646"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="" label="vendor_boot_a" num_partition_sectors="32768" partofsingleimage="false" physical_partition_number="0" readbackverify="false" size_in_KB="131072.0" sparse="false" start_byte_hex="0x2d7516000" start_sector="2979094"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="" label="vendor_boot_b" num_partition_sectors="32768" partofsingleimage="false" physical_partition_number="0" readbackverify="false" size_in_KB="131072.0" sparse="false" start_byte_hex="0x2df516000" start_sector="3011862"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="" label="super" num_partition_sectors="3036432" partofsingleimage="false" physical_partition_number="0" readbackverify="false" size_in_KB="12145728.0" sparse="false" start_byte_hex="0x2e7516000" start_sector="3044630"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="" label="systemrw" num_partition_sectors="4096" partofsingleimage="false" physical_partition_number="0" readbackverify="false" size_in_KB="16384.0" sparse="false" start_byte_hex="0x5cca26000" start_sector="6081062"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="" label="cache" num_partition_sectors="16384" partofsingleimage="false" physical_partition_number="0" readbackverify="false" size_in_KB="65536.0" sparse="false" start_byte_hex="0x5cda26000" start_sector="6085158"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="" label="metadata" num_partition_sectors="16384" partofsingleimage="false" physical_partition_number="0" readbackverify="false" size_in_KB="65536.0" sparse="false" start_byte_hex="0x5d1a26000" start_sector="6101542"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="" label="userdata" num_partition_sectors="0" partofsingleimage="false" physical_partition_number="0" readbackverify="false" size_in_KB="0" sparse="false" start_byte_hex="0x5d5a26000" start_sector="6117926"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="gpt_main0.bin" label="PrimaryGPT" num_partition_sectors="6" partofsingleimage="true" physical_partition_number="0" readbackverify="false" size_in_KB="24.0" sparse="false" start_byte_hex="0x0" start_sector="0"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="gpt_backup0.bin" label="BackupGPT" num_partition_sectors="5" partofsingleimage="true" physical_partition_number="0" readbackverify="false" size_in_KB="20.0" sparse="false" start_byte_hex="(4096*NUM_DISK_SECTORS)-20480." start_sector="NUM_DISK_SECTORS-5."/>
+</data>
diff --git a/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/rawprogram1.xml b/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/rawprogram1.xml
new file mode 100644
index 0000000..1793287
--- /dev/null
+++ b/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/rawprogram1.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" ?>
+<data>
+ <!--NOTE: This is an ** Autogenerated file **-->
+ <!--NOTE: Sector size is 4096bytes-->
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="xbl.elf" label="xbl_a" num_partition_sectors="896" partofsingleimage="false" physical_partition_number="1" readbackverify="false" size_in_KB="3584.0" sparse="false" start_byte_hex="0x6000" start_sector="6"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="xbl_config.elf" label="xbl_config_a" num_partition_sectors="32" partofsingleimage="false" physical_partition_number="1" readbackverify="false" size_in_KB="128.0" sparse="false" start_byte_hex="0x386000" start_sector="902"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="" label="last_parti" num_partition_sectors="0" partofsingleimage="false" physical_partition_number="1" readbackverify="false" size_in_KB="0" sparse="false" start_byte_hex="0x3a6000" start_sector="934"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="gpt_main1.bin" label="PrimaryGPT" num_partition_sectors="6" partofsingleimage="true" physical_partition_number="1" readbackverify="false" size_in_KB="24.0" sparse="false" start_byte_hex="0x0" start_sector="0"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="gpt_backup1.bin" label="BackupGPT" num_partition_sectors="5" partofsingleimage="true" physical_partition_number="1" readbackverify="false" size_in_KB="20.0" sparse="false" start_byte_hex="(4096*NUM_DISK_SECTORS)-20480." start_sector="NUM_DISK_SECTORS-5."/>
+</data>
diff --git a/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/rawprogram2.xml b/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/rawprogram2.xml
new file mode 100644
index 0000000..e8aa1b8
--- /dev/null
+++ b/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/rawprogram2.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" ?>
+<data>
+ <!--NOTE: This is an ** Autogenerated file **-->
+ <!--NOTE: Sector size is 4096bytes-->
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="xbl.elf" label="xbl_b" num_partition_sectors="896" partofsingleimage="false" physical_partition_number="2" readbackverify="false" size_in_KB="3584.0" sparse="false" start_byte_hex="0x6000" start_sector="6"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="xbl_config.elf" label="xbl_config_b" num_partition_sectors="32" partofsingleimage="false" physical_partition_number="2" readbackverify="false" size_in_KB="128.0" sparse="false" start_byte_hex="0x386000" start_sector="902"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="" label="last_parti" num_partition_sectors="0" partofsingleimage="false" physical_partition_number="2" readbackverify="false" size_in_KB="0" sparse="false" start_byte_hex="0x3a6000" start_sector="934"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="gpt_main2.bin" label="PrimaryGPT" num_partition_sectors="6" partofsingleimage="true" physical_partition_number="2" readbackverify="false" size_in_KB="24.0" sparse="false" start_byte_hex="0x0" start_sector="0"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="gpt_backup2.bin" label="BackupGPT" num_partition_sectors="5" partofsingleimage="true" physical_partition_number="2" readbackverify="false" size_in_KB="20.0" sparse="false" start_byte_hex="(4096*NUM_DISK_SECTORS)-20480." start_sector="NUM_DISK_SECTORS-5."/>
+</data>
diff --git a/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/rawprogram3.xml b/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/rawprogram3.xml
new file mode 100644
index 0000000..a37a8b4
--- /dev/null
+++ b/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/rawprogram3.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" ?>
+<data>
+ <!--NOTE: This is an ** Autogenerated file **-->
+ <!--NOTE: Sector size is 4096bytes-->
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="" label="ALIGN_TO_128K_1" num_partition_sectors="26" partofsingleimage="false" physical_partition_number="3" readbackverify="false" size_in_KB="104.0" sparse="false" start_byte_hex="0x6000" start_sector="6"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="" label="cdt" num_partition_sectors="32" partofsingleimage="false" physical_partition_number="3" readbackverify="false" size_in_KB="128.0" sparse="false" start_byte_hex="0x20000" start_sector="32"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="" label="ddr" num_partition_sectors="256" partofsingleimage="false" physical_partition_number="3" readbackverify="false" size_in_KB="1024.0" sparse="false" start_byte_hex="0x40000" start_sector="64"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="" label="last_parti" num_partition_sectors="0" partofsingleimage="false" physical_partition_number="3" readbackverify="false" size_in_KB="0" sparse="false" start_byte_hex="0x140000" start_sector="320"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="gpt_main3.bin" label="PrimaryGPT" num_partition_sectors="6" partofsingleimage="true" physical_partition_number="3" readbackverify="false" size_in_KB="24.0" sparse="false" start_byte_hex="0x0" start_sector="0"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="gpt_backup3.bin" label="BackupGPT" num_partition_sectors="5" partofsingleimage="true" physical_partition_number="3" readbackverify="false" size_in_KB="20.0" sparse="false" start_byte_hex="(4096*NUM_DISK_SECTORS)-20480." start_sector="NUM_DISK_SECTORS-5."/>
+</data>
diff --git a/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/rawprogram4.xml b/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/rawprogram4.xml
new file mode 100644
index 0000000..948dd04
--- /dev/null
+++ b/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/rawprogram4.xml
@@ -0,0 +1,56 @@
+<?xml version="1.0" ?>
+<data>
+ <!--NOTE: This is an ** Autogenerated file **-->
+ <!--NOTE: Sector size is 4096bytes-->
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="aop.mbn" label="aop_a" num_partition_sectors="128" partofsingleimage="false" physical_partition_number="4" readbackverify="false" size_in_KB="512.0" sparse="false" start_byte_hex="0x6000" start_sector="6"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="tz.mbn" label="tz_a" num_partition_sectors="512" partofsingleimage="false" physical_partition_number="4" readbackverify="false" size_in_KB="2048.0" sparse="false" start_byte_hex="0x86000" start_sector="134"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="hyp.mbn" label="hyp_a" num_partition_sectors="128" partofsingleimage="false" physical_partition_number="4" readbackverify="false" size_in_KB="512.0" sparse="false" start_byte_hex="0x286000" start_sector="646"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="" label="modem_a" num_partition_sectors="26624" partofsingleimage="false" physical_partition_number="4" readbackverify="false" size_in_KB="106496.0" sparse="false" start_byte_hex="0x306000" start_sector="774"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="BTFM.bin" label="bluetooth_a" num_partition_sectors="256" partofsingleimage="false" physical_partition_number="4" readbackverify="false" size_in_KB="1024.0" sparse="false" start_byte_hex="0x6b06000" start_sector="27398"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="" label="mdtpsecapp_a" num_partition_sectors="1024" partofsingleimage="false" physical_partition_number="4" readbackverify="false" size_in_KB="4096.0" sparse="false" start_byte_hex="0x6c06000" start_sector="27654"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="" label="mdtp_a" num_partition_sectors="4096" partofsingleimage="false" physical_partition_number="4" readbackverify="false" size_in_KB="16384.0" sparse="false" start_byte_hex="0x7006000" start_sector="28678"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="abl.elf" label="abl_a" num_partition_sectors="256" partofsingleimage="false" physical_partition_number="4" readbackverify="false" size_in_KB="1024.0" sparse="false" start_byte_hex="0x8006000" start_sector="32774"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="dspso.bin" label="dsp_a" num_partition_sectors="8192" partofsingleimage="false" physical_partition_number="4" readbackverify="false" size_in_KB="32768.0" sparse="false" start_byte_hex="0x8106000" start_sector="33030"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="keymaster64.mbn" label="keymaster_a" num_partition_sectors="128" partofsingleimage="false" physical_partition_number="4" readbackverify="false" size_in_KB="512.0" sparse="false" start_byte_hex="0xa106000" start_sector="41222"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="boot-erase.img" label="boot_a" num_partition_sectors="24576" partofsingleimage="false" physical_partition_number="4" readbackverify="false" size_in_KB="98304.0" sparse="false" start_byte_hex="0xa186000" start_sector="41350"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="cmnlib.mbn" label="cmnlib_a" num_partition_sectors="128" partofsingleimage="false" physical_partition_number="4" readbackverify="false" size_in_KB="512.0" sparse="false" start_byte_hex="0x10186000" start_sector="65926"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="cmnlib64.mbn" label="cmnlib64_a" num_partition_sectors="128" partofsingleimage="false" physical_partition_number="4" readbackverify="false" size_in_KB="512.0" sparse="false" start_byte_hex="0x10206000" start_sector="66054"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="devcfg.mbn" label="devcfg_a" num_partition_sectors="32" partofsingleimage="false" physical_partition_number="4" readbackverify="false" size_in_KB="128.0" sparse="false" start_byte_hex="0x10286000" start_sector="66182"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="qupv3fw.elf" label="qupfw_a" num_partition_sectors="16" partofsingleimage="false" physical_partition_number="4" readbackverify="false" size_in_KB="64.0" sparse="false" start_byte_hex="0x102a6000" start_sector="66214"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="storsec.mbn" label="storsec_a" num_partition_sectors="32" partofsingleimage="false" physical_partition_number="4" readbackverify="false" size_in_KB="128.0" sparse="false" start_byte_hex="0x102b6000" start_sector="66230"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="imagefv.elf" label="ImageFv_a" num_partition_sectors="256" partofsingleimage="false" physical_partition_number="4" readbackverify="false" size_in_KB="1024.0" sparse="false" start_byte_hex="0x102d6000" start_sector="66262"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="aop.mbn" label="aop_b" num_partition_sectors="128" partofsingleimage="false" physical_partition_number="4" readbackverify="false" size_in_KB="512.0" sparse="false" start_byte_hex="0x103d6000" start_sector="66518"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="tz.mbn" label="tz_b" num_partition_sectors="512" partofsingleimage="false" physical_partition_number="4" readbackverify="false" size_in_KB="2048.0" sparse="false" start_byte_hex="0x10456000" start_sector="66646"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="hyp.mbn" label="hyp_b" num_partition_sectors="128" partofsingleimage="false" physical_partition_number="4" readbackverify="false" size_in_KB="512.0" sparse="false" start_byte_hex="0x10656000" start_sector="67158"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="" label="modem_b" num_partition_sectors="26624" partofsingleimage="false" physical_partition_number="4" readbackverify="false" size_in_KB="106496.0" sparse="false" start_byte_hex="0x106d6000" start_sector="67286"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="BTFM.bin" label="bluetooth_b" num_partition_sectors="256" partofsingleimage="false" physical_partition_number="4" readbackverify="false" size_in_KB="1024.0" sparse="false" start_byte_hex="0x16ed6000" start_sector="93910"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="" label="mdtpsecapp_b" num_partition_sectors="1024" partofsingleimage="false" physical_partition_number="4" readbackverify="false" size_in_KB="4096.0" sparse="false" start_byte_hex="0x16fd6000" start_sector="94166"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="" label="mdtp_b" num_partition_sectors="4096" partofsingleimage="false" physical_partition_number="4" readbackverify="false" size_in_KB="16384.0" sparse="false" start_byte_hex="0x173d6000" start_sector="95190"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="abl.elf" label="abl_b" num_partition_sectors="256" partofsingleimage="false" physical_partition_number="4" readbackverify="false" size_in_KB="1024.0" sparse="false" start_byte_hex="0x183d6000" start_sector="99286"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="dspso.bin" label="dsp_b" num_partition_sectors="8192" partofsingleimage="false" physical_partition_number="4" readbackverify="false" size_in_KB="32768.0" sparse="false" start_byte_hex="0x184d6000" start_sector="99542"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="keymaster64.mbn" label="keymaster_b" num_partition_sectors="128" partofsingleimage="false" physical_partition_number="4" readbackverify="false" size_in_KB="512.0" sparse="false" start_byte_hex="0x1a4d6000" start_sector="107734"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="boot-erase.img" label="boot_b" num_partition_sectors="24576" partofsingleimage="false" physical_partition_number="4" readbackverify="false" size_in_KB="98304.0" sparse="false" start_byte_hex="0x1a556000" start_sector="107862"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="cmnlib.mbn" label="cmnlib_b" num_partition_sectors="128" partofsingleimage="false" physical_partition_number="4" readbackverify="false" size_in_KB="512.0" sparse="false" start_byte_hex="0x20556000" start_sector="132438"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="cmnlib64.mbn" label="cmnlib64_b" num_partition_sectors="128" partofsingleimage="false" physical_partition_number="4" readbackverify="false" size_in_KB="512.0" sparse="false" start_byte_hex="0x205d6000" start_sector="132566"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="devcfg.mbn" label="devcfg_b" num_partition_sectors="32" partofsingleimage="false" physical_partition_number="4" readbackverify="false" size_in_KB="128.0" sparse="false" start_byte_hex="0x20656000" start_sector="132694"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="qupv3fw.elf" label="qupfw_b" num_partition_sectors="16" partofsingleimage="false" physical_partition_number="4" readbackverify="false" size_in_KB="64.0" sparse="false" start_byte_hex="0x20676000" start_sector="132726"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="storsec.mbn" label="storsec_b" num_partition_sectors="32" partofsingleimage="false" physical_partition_number="4" readbackverify="false" size_in_KB="128.0" sparse="false" start_byte_hex="0x20686000" start_sector="132742"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="imagefv.elf" label="ImageFv_b" num_partition_sectors="256" partofsingleimage="false" physical_partition_number="4" readbackverify="false" size_in_KB="1024.0" sparse="false" start_byte_hex="0x206a6000" start_sector="132774"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="sec.dat" label="sec" num_partition_sectors="4" partofsingleimage="false" physical_partition_number="4" readbackverify="false" size_in_KB="16.0" sparse="false" start_byte_hex="0x207a6000" start_sector="133030"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="" label="devinfo" num_partition_sectors="1" partofsingleimage="false" physical_partition_number="4" readbackverify="false" size_in_KB="4.0" sparse="false" start_byte_hex="0x207aa000" start_sector="133034"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="" label="dip" num_partition_sectors="256" partofsingleimage="false" physical_partition_number="4" readbackverify="false" size_in_KB="1024.0" sparse="false" start_byte_hex="0x207ab000" start_sector="133035"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="" label="fdemeta" num_partition_sectors="128" partofsingleimage="false" physical_partition_number="4" readbackverify="false" size_in_KB="512.0" sparse="false" start_byte_hex="0x208ab000" start_sector="133291"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="" label="apdp" num_partition_sectors="64" partofsingleimage="false" physical_partition_number="4" readbackverify="false" size_in_KB="256.0" sparse="false" start_byte_hex="0x2092b000" start_sector="133419"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="" label="msadp" num_partition_sectors="64" partofsingleimage="false" physical_partition_number="4" readbackverify="false" size_in_KB="256.0" sparse="false" start_byte_hex="0x2096b000" start_sector="133483"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="" label="spunvm" num_partition_sectors="2048" partofsingleimage="false" physical_partition_number="4" readbackverify="false" size_in_KB="8192.0" sparse="false" start_byte_hex="0x209ab000" start_sector="133547"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="" label="splash" num_partition_sectors="8356" partofsingleimage="false" physical_partition_number="4" readbackverify="false" size_in_KB="33424.0" sparse="false" start_byte_hex="0x211ab000" start_sector="135595"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="" label="limits" num_partition_sectors="1" partofsingleimage="false" physical_partition_number="4" readbackverify="false" size_in_KB="4.0" sparse="false" start_byte_hex="0x2324f000" start_sector="143951"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="" label="toolsfv" num_partition_sectors="256" partofsingleimage="false" physical_partition_number="4" readbackverify="false" size_in_KB="1024.0" sparse="false" start_byte_hex="0x23250000" start_sector="143952"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="logfs_ufs_8mb.bin" label="logfs" num_partition_sectors="2048" partofsingleimage="false" physical_partition_number="4" readbackverify="false" size_in_KB="8192.0" sparse="false" start_byte_hex="0x23350000" start_sector="144208"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="" label="sti" num_partition_sectors="512" partofsingleimage="false" physical_partition_number="4" readbackverify="false" size_in_KB="2048.0" sparse="false" start_byte_hex="0x23b50000" start_sector="146256"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="" label="rawdump" num_partition_sectors="32768" partofsingleimage="false" physical_partition_number="4" readbackverify="false" size_in_KB="131072.0" sparse="false" start_byte_hex="0x23d50000" start_sector="146768"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="" label="logdump" num_partition_sectors="16384" partofsingleimage="false" physical_partition_number="4" readbackverify="false" size_in_KB="65536.0" sparse="false" start_byte_hex="0x2bd50000" start_sector="179536"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="" label="last_parti" num_partition_sectors="0" partofsingleimage="false" physical_partition_number="4" readbackverify="false" size_in_KB="0" sparse="false" start_byte_hex="0x2fd50000" start_sector="195920"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="gpt_main4.bin" label="PrimaryGPT" num_partition_sectors="6" partofsingleimage="true" physical_partition_number="4" readbackverify="false" size_in_KB="24.0" sparse="false" start_byte_hex="0x0" start_sector="0"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="gpt_backup4.bin" label="BackupGPT" num_partition_sectors="5" partofsingleimage="true" physical_partition_number="4" readbackverify="false" size_in_KB="20.0" sparse="false" start_byte_hex="(4096*NUM_DISK_SECTORS)-20480." start_sector="NUM_DISK_SECTORS-5."/>
+</data>
diff --git a/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/rawprogram5.xml b/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/rawprogram5.xml
new file mode 100644
index 0000000..ea653dd
--- /dev/null
+++ b/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/rawprogram5.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" ?>
+<data>
+ <!--NOTE: This is an ** Autogenerated file **-->
+ <!--NOTE: Sector size is 4096bytes-->
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="" label="ALIGN_TO_128K_2" num_partition_sectors="26" partofsingleimage="false" physical_partition_number="5" readbackverify="false" size_in_KB="104.0" sparse="false" start_byte_hex="0x6000" start_sector="6"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="" label="modemst1" num_partition_sectors="512" partofsingleimage="false" physical_partition_number="5" readbackverify="false" size_in_KB="2048.0" sparse="false" start_byte_hex="0x20000" start_sector="32"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="" label="modemst2" num_partition_sectors="512" partofsingleimage="false" physical_partition_number="5" readbackverify="false" size_in_KB="2048.0" sparse="false" start_byte_hex="0x220000" start_sector="544"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="" label="fsg" num_partition_sectors="512" partofsingleimage="false" physical_partition_number="5" readbackverify="false" size_in_KB="2048.0" sparse="false" start_byte_hex="0x420000" start_sector="1056"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="" label="fsc" num_partition_sectors="32" partofsingleimage="false" physical_partition_number="5" readbackverify="false" size_in_KB="128.0" sparse="false" start_byte_hex="0x620000" start_sector="1568"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="" label="ssd" num_partition_sectors="2" partofsingleimage="false" physical_partition_number="5" readbackverify="false" size_in_KB="8.0" sparse="false" start_byte_hex="0x640000" start_sector="1600"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="" label="misc" num_partition_sectors="256" partofsingleimage="false" physical_partition_number="5" readbackverify="false" size_in_KB="1024.0" sparse="false" start_byte_hex="0x642000" start_sector="1602"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="" label="keystore" num_partition_sectors="128" partofsingleimage="false" physical_partition_number="5" readbackverify="false" size_in_KB="512.0" sparse="false" start_byte_hex="0x742000" start_sector="1858"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="" label="frp" num_partition_sectors="128" partofsingleimage="false" physical_partition_number="5" readbackverify="false" size_in_KB="512.0" sparse="false" start_byte_hex="0x7c2000" start_sector="1986"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="" label="last_parti" num_partition_sectors="0" partofsingleimage="false" physical_partition_number="5" readbackverify="false" size_in_KB="0" sparse="false" start_byte_hex="0x842000" start_sector="2114"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="gpt_main5.bin" label="PrimaryGPT" num_partition_sectors="6" partofsingleimage="true" physical_partition_number="5" readbackverify="false" size_in_KB="24.0" sparse="false" start_byte_hex="0x0" start_sector="0"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="gpt_backup5.bin" label="BackupGPT" num_partition_sectors="5" partofsingleimage="true" physical_partition_number="5" readbackverify="false" size_in_KB="20.0" sparse="false" start_byte_hex="(4096*NUM_DISK_SECTORS)-20480." start_sector="NUM_DISK_SECTORS-5."/>
+</data>
diff --git a/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/sec.dat b/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/sec.dat
new file mode 100644
index 0000000..2fdcb45
--- /dev/null
+++ b/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/sec.dat
Binary files differ
diff --git a/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/storsec.mbn b/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/storsec.mbn
new file mode 100644
index 0000000..768f20c
--- /dev/null
+++ b/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/storsec.mbn
Binary files differ
diff --git a/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/tz.mbn b/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/tz.mbn
new file mode 100644
index 0000000..55cdf8f
--- /dev/null
+++ b/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/tz.mbn
Binary files differ
diff --git a/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/xbl.elf b/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/xbl.elf
new file mode 100644
index 0000000..edcad9a
--- /dev/null
+++ b/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/xbl.elf
Binary files differ
diff --git a/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/xbl_config.elf b/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/xbl_config.elf
new file mode 100644
index 0000000..c9e7408
--- /dev/null
+++ b/linaro_devices/qcom/db845c/dragonboard-845c-bootloader-ufs-aosp-88/xbl_config.elf
Binary files differ
diff --git a/linaro_devices/qcom/db845c/qdl/LICENSE.qdl b/linaro_devices/qcom/db845c/qdl/LICENSE.qdl
new file mode 100644
index 0000000..4004f3d
--- /dev/null
+++ b/linaro_devices/qcom/db845c/qdl/LICENSE.qdl
@@ -0,0 +1,31 @@
+/*
+ * Copyright (c) 2016-2017, Linaro Ltd.
+ * Copyright (c) 2016, Bjorn Andersson <bjorn@kryo.se>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ *
+ * 3. Neither the name of the copyright holder nor the names of its contributors
+ * may be used to endorse or promote products derived from this software without
+ * specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
diff --git a/linaro_devices/qcom/db845c/qdl/qdl b/linaro_devices/qcom/db845c/qdl/qdl
new file mode 100755
index 0000000..3eedf67
--- /dev/null
+++ b/linaro_devices/qcom/db845c/qdl/qdl
Binary files differ
diff --git a/linaro_devices/qcom/rb5/Android.mk b/linaro_devices/qcom/rb5/Android.mk
new file mode 100644
index 0000000..6f725c0
--- /dev/null
+++ b/linaro_devices/qcom/rb5/Android.mk
@@ -0,0 +1,6 @@
+LOCAL_PATH := $(call my-dir)
+
+# If some modules are built directly from this directory (not subdirectories),
+# their rules should be written here.
+
+include $(call all-makefiles-under,$(LOCAL_PATH))
diff --git a/linaro_devices/qcom/rb5/RB5_firmware_20210331-v4/38-bdwlan_split/Android.mk b/linaro_devices/qcom/rb5/RB5_firmware_20210331-v4/38-bdwlan_split/Android.mk
new file mode 100644
index 0000000..c8337ba
--- /dev/null
+++ b/linaro_devices/qcom/rb5/RB5_firmware_20210331-v4/38-bdwlan_split/Android.mk
@@ -0,0 +1,5 @@
+LOCAL_PATH := $(call my-dir)
+
+include vendor/linaro_devices/common/CommonBuildMacros.mk
+
+$(call add-qcom-firmware, board.bin, bdwlan.e04, $(TARGET_OUT_VENDOR)/firmware/ath11k/QCA6390/hw2.0/, vendor/linaro_devices/qcom/rb5/RB5_firmware_20210331-v4/LICENSE.qcom.txt)
diff --git a/linaro_devices/qcom/rb5/RB5_firmware_20210331-v4/38-bdwlan_split/bdwlan.e04 b/linaro_devices/qcom/rb5/RB5_firmware_20210331-v4/38-bdwlan_split/bdwlan.e04
new file mode 100644
index 0000000..fac5963
--- /dev/null
+++ b/linaro_devices/qcom/rb5/RB5_firmware_20210331-v4/38-bdwlan_split/bdwlan.e04
Binary files differ
diff --git a/linaro_devices/qcom/rb5/RB5_firmware_20210331-v4/Android.mk b/linaro_devices/qcom/rb5/RB5_firmware_20210331-v4/Android.mk
new file mode 100644
index 0000000..6f725c0
--- /dev/null
+++ b/linaro_devices/qcom/rb5/RB5_firmware_20210331-v4/Android.mk
@@ -0,0 +1,6 @@
+LOCAL_PATH := $(call my-dir)
+
+# If some modules are built directly from this directory (not subdirectories),
+# their rules should be written here.
+
+include $(call all-makefiles-under,$(LOCAL_PATH))
diff --git a/linaro_devices/qcom/rb5/RB5_firmware_20210331-v4/LICENSE.qcom.txt b/linaro_devices/qcom/rb5/RB5_firmware_20210331-v4/LICENSE.qcom.txt
new file mode 100644
index 0000000..6b9a0a2
--- /dev/null
+++ b/linaro_devices/qcom/rb5/RB5_firmware_20210331-v4/LICENSE.qcom.txt
@@ -0,0 +1,206 @@
+PLEASE READ THIS LICENSE AGREEMENT ("AGREEMENT") CAREFULLY. THIS AGREEMENT IS
+A BINDING LEGAL AGREEMENT ENTERED INTO BY AND BETWEEN YOU (OR IF YOU ARE
+ENTERING INTO THIS AGREEMENT ON BEHALF OF AN ENTITY, THEN THE ENTITY THAT YOU
+REPRESENT) AND QUALCOMM TECHNOLOGIES, INC. ("QTI" "WE" "OUR" OR "US"). THIS IS
+THE AGREEMENT THAT APPLIES TO YOUR USE OF THE DESIGNATED AND/OR LINKED
+APPLICATIONS, THE ENCLOSED QUALCOMM TECHNOLOGIES' MATERIALS, INCLUDING RELATED
+DOCUMENTATION AND ANY UPDATES OR IMPROVEMENTS THEREOF
+(COLLECTIVELY, "MATERIALS"). BY USING OR COMPLETING THE INSTALLATION OF THE
+MATERIALS, YOU ARE ACCEPTING THIS AGREEMENT AND YOU AGREE TO BE BOUND BY ITS
+TERMS AND CONDITIONS. IF YOU DO NOT AGREE TO THESE TERMS, QTI IS UNWILLING TO
+AND DOES NOT LICENSE THE MATERIALS TO YOU. IF YOU DO NOT AGREE TO THESE TERMS
+YOU MUST DISCONTINUE THE INSTALLATION PROCESS AND YOU MAY NOT USE THE MATERIALS
+OR RETAIN ANY COPIES OF THE MATERIALS. ANY USE OR POSSESSION OF THE MATERIALS
+BY YOU IS SUBJECT TO THE TERMS AND CONDITIONS SET FORTH IN THIS AGREEMENT.
+
+1. RIGHT TO USE DELIVERABLES; RESTRICTIONS.
+
+ 1.1 License. Subject to the terms and conditions of this Agreement,
+ including, without limitation, the restrictions, conditions, limitations and
+ exclusions set forth in this Agreement, QTI hereby grants to you a
+ nonexclusive, limited license under QTI's copyrights to: (i) install and use
+ the Materials; and (ii) to reproduce and redistribute the binary code portions
+ of the Materials (the "Redistributable Binary Code"). You may make and use a
+ reasonable number of copies of any documentation.
+
+ 1.2 Redistribution Restrictions. Distribution of the Redistributable Binary
+ Code is subject to the following restrictions: (i) Redistributable Binary Code
+ may only be distributed in binary format and may not be distributed in source
+ code format:; (ii) the Redistributable Binary Code may only operate in
+ conjunction with platforms incorporating Qualcomm Technologies, Inc. chipsets;
+ (iii) redistribution of the Redistributable Binary Code must include the .txt
+ file setting forth the terms and condition of this Agreement; (iv) you may not
+ use Qualcomm Technologies' or its affiliates or subsidiaries name, logo or
+ trademarks; and (v) copyright, trademark, patent and any other notices that
+ appear on the Materials may not be removed or obscured.
+
+ 1.3 Additional Restrictions. Except as expressly permitted by this Agreement,
+ you shall have no right to sublicense, transfer or otherwise disclose the
+ Materials to any third party. You shall not reverse engineer, reverse
+ assemble, reverse translate, decompile or reduce to source code form any
+ portion of the Materials provided in object code form or executable form.
+ Except for the purposes expressly permitted in this Agreement, You shall not
+ use the Materials for any other purpose. QTI (or its licensors) shall retain
+ title and all ownership rights in and to the Materials and any alterations,
+ modifications (including all derivative works), translations or adaptations
+ made of the Materials, and all copies thereof, and nothing herein shall be
+ deemed to grant any right to You under any of QTI's or its affiliates'
+ patents. You shall not subject the Materials to any third party license
+ terms (e.g., open source license terms). You shall not use the Materials for
+ the purpose of identifying or providing evidence to support any potential
+ patent infringement claim against QTI, its affiliates, or any of QTI's or
+ QTI's affiliates' suppliers and/or direct or indirect customers. QTI hereby
+ reserves all rights not expressly granted herein.
+
+ 1.4 Third Party Software and Materials. The Software may contain or link to
+ certain software and/or materials that are written or owned by third parties.
+ Such third party code and materials may be licensed under separate or
+ different terms and conditions and are not licensed to you under the terms of
+ this Agreement. You agree to comply with all terms and conditions imposed on
+ you in the applicable third party licenses. Such terms and conditions may
+ impose certain obligations on you as a condition to the permitted use of such
+ third party code and materials. QTI does not represent or warrant that such
+ third party licensors have or will continue to license or make available their
+ code and materials to you.
+
+ 1.5 Feedback. QTI may from time to time receive suggestions, feedback or
+ other information from You regarding the Materials. Any suggestions, feedback
+ or other disclosures received from You are and shall be entirely voluntary on
+ the part of You. Notwithstanding any other term in this Agreement, QTI shall
+ be free to use suggestions, feedback or other information received from You,
+ without obligation of any kind to You. The Parties agree that all inventions,
+ product improvements, and modifications conceived of or made by QTI that are
+ based, either in whole or in part, on ideas, feedback, suggestions, or
+ recommended improvements received from You are the exclusive property of QTI,
+ and all right, title and interest in and to any such inventions, product
+ improvements, and modifications will vest solely in QTI.
+
+ 1.6 No Technical Support. QTI is under no obligation to provide any form of
+ technical support for the Materials, and if QTI, in its sole discretion,
+ chooses to provide any form of support or information relating to the
+ Materials, such support and information shall be deemed confidential and
+ proprietary to QTI.
+
+2. WARRANTY DISCLAIMER. YOU EXPRESSLY ACKNOWLEDGE AND AGREE THAT THE USE OF
+THE MATERIALS IS AT YOUR SOLE RISK. THE MATERIALS AND TECHNICAL SUPPORT, IF
+ANY, ARE PROVIDED "AS IS" AND WITHOUT WARRANTY OF ANY KIND, WHETHER EXPRESS OR
+IMPLIED. QTI ITS LICENSORS AND AFFILIATES MAKE NO WARRANTIES, EXPRESS OR
+IMPLIED, WITH RESPECT TO THE MATERIALS OR ANY OTHER INFORMATION OR DOCUMENTATION
+PROVIDED UNDER THIS AGREEMENT, INCLUDING BUT NOT LIMITED TO ANY WARRANTY OF
+MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE OR AGAINST INFRINGEMENT, OR
+ANY EXPRESS OR IMPLIED WARRANTY ARISING OUT OF TRADE USAGE OR OUT OF A COURSE OF
+DEALING OR COURSE OF PERFORMANCE. NOTHING CONTAINED IN THIS AGREEMENT SHALL BE
+CONSTRUED AS (I) A WARRANTY OR REPRESENTATION BY QTI, ITS LICENSORS OR
+AFFILIATES AS TO THE VALIDITY OR SCOPE OF ANY PATENT, COPYRIGHT OR OTHER
+INTELLECTUAL PROPERTY RIGHT OR (II) A WARRANTY OR REPRESENTATION BY QTI THAT ANY
+MANUFACTURE OR USE WILL BE FREE FROM INFRINGEMENT OF PATENTS, COPYRIGHTS OR
+OTHER INTELLECTUAL PROPERTY RIGHTS OF OTHERS, AND IT SHALL BE THE SOLE
+RESPONSIBILITY OF YOU TO MAKE SUCH DETERMINATION AS IS NECESSARY WITH RESPECT TO
+THE ACQUISITION OF LICENSES UNDER PATENTS AND OTHER INTELLECTUAL PROPERTY OF
+THIRD PARTIES.
+
+3. NO OTHER LICENSES OR INTELLECTUAL PROPERTY RIGHTS. Neither this Agreement,
+nor any act by QTI or any of its affiliates pursuant to this Agreement or
+relating to the Materials (including, without limitation, the provision by QTI
+or its affiliates of the Materials), shall provide to You any license or any
+other rights whatsoever under any patents, trademarks, trade secrets, copyrights
+or any other intellectual property of QTI or any of its affiliates, except for
+the copyright rights expressly licensed under this Agreement. You understand and
+agree that:
+
+ (i) Neither this Agreement, nor delivery of the Materials, grants any right to
+ practice, or any other right at all with respect to, any patent of QTI or any
+ of its affiliates; and
+
+ (ii) A separate license agreement from QUALCOMM Incorporated is needed to use
+ or practice any patent of QUALCOMM Incorporated. You agree not to contend in
+ any context that, as a result of the provision or use of the Materials, either
+ QTI or any of its affiliates has any obligation to extend, or You or any other
+ party has obtained any right to, any license, whether express or implied, with
+ respect to any patent of QTI or any of its affiliates for any purpose.
+
+4. TERMINATION. This Agreement shall be effective upon acceptance, or access or
+use of the Materials (whichever occurs first) by You and shall continue until
+terminated. You may terminate the Agreement at any time by deleting and
+destroying all copies of the Materials and all related information in Your
+possession or control. This Agreement terminates immediately and automatically,
+with or without notice, if You fail to comply with any provision hereof.
+Additionally, QTI may at any time terminate this Agreement, without cause, upon
+notice to You. Upon termination You must, to the extent possible, delete or
+destroy all copies of the Materials in Your possession and the license granted
+to You in this Agreement shall terminate. Sections 1.2 through 10 shall survive
+the termination of this Agreement. In the event that any restrictions,
+conditions, limitations are found to be either invalid or unenforceable, the
+rights granted to You in Section 1 (License) shall be null, void and ineffective
+from the Effective Date, and QTI shall also have the right to terminate this
+Agreement immediately, and with retroactive effect to the effective date.
+
+5. LIMITATION OF LIABILITY. IN NO EVENT SHALL QTI, QTI's AFFILIATES OR ITS
+LICENSORS BE LIABLE TO YOU FOR ANY INCIDENTAL, CONSEQUENTIAL OR SPECIAL DAMAGES,
+INCLUDING BUT NOT LIMITED TO ANY LOST PROFITS, LOST SAVINGS, OR OTHER INCIDENTAL
+DAMAGES, ARISING OUT OF THE USE OR INABILITY TO USE, OR THE DELIVERY OR FAILURE
+TO DELIVER, ANY OF THE DELIVERABLES, OR ANY BREACH OF ANY OBLIGATION UNDER THIS
+AGREEMENT, EVEN IF QTI HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+THE FOREGOING LIMITATION OF LIABILITY SHALL REMAIN IN FULL FORCE AND EFFECT
+REGARDLESS OF WHETHER YOUR REMEDIES HEREUNDER ARE DETERMINED TO HAVE FAILED OF
+THEIR ESSENTIAL PURPOSE. THE ENTIRE LIABILITY OF QTI, QTI's AFFILIATES AND ITS
+LICENSORS, AND THE SOLE AND EXCLUSIVE REMEDY OF YOU, FOR ANY CLAIM OR CAUSE OF
+ACTION ARISING HEREUNDER (WHETHER IN CONTRACT, TORT, OR OTHERWISE) SHALL NOT
+EXCEED US$50.
+
+6. INDEMNIFICATION. You agree to indemnify and hold harmless QTI and its
+officers, directors, employees and successors and assigns against any and all
+third party claims, demands, causes of action, losses, liabilities, damages,
+costs and expenses, incurred by QTI (including but not limited to costs of
+defense, investigation and reasonable attorney's fees) arising out of, resulting
+from or related to: (i) any breach of this Agreement by You; and (ii) your acts,
+omissions, products and services. If requested by QTI, You agree to defend QTI
+in connection with any third party claims, demands, or causes of action
+resulting from, arising out of or in connection with any of the foregoing.
+
+7. ASSIGNMENT. You shall not assign this Agreement or any right or interest
+under this Agreement, nor delegate any obligation to be performed under this
+Agreement, without QTI's prior written consent. For purposes of this Section 7,
+an "assignment" by You under this Section shall be deemed to include, without
+limitation, any merger, consolidation, sale of all or substantially all of its
+assets, or any substantial change in the management or control of You.
+Any attempted assignment in contravention of this Section 9 shall be void.
+QTI may freely assign this Agreement or delegate any or all of its rights and
+obligations hereunder to any third party.
+
+8. COMPLIANCE WITH LAWS; APPLICABLE LAW. You agree to comply with all
+applicable local, international and national laws and regulations and with U.S.
+Export Administration Regulations, as they apply to the subject matter of this
+Agreement. This Agreement is governed by the laws of the State of California,
+excluding California's choice of law rules.
+
+9. CONTRACTING PARTIES. If the Materials are downloaded on any computer owned
+by a corporation or other legal entity, then this Agreement is formed by and
+between QTI and such entity. The individual accepting the terms of this
+Agreement represents and warrants to QTI that they have the authority to bind
+such entity to the terms and conditions of this Agreement.
+
+10. MISCELLANEOUS PROVISIONS. This Agreement, together with all exhibits
+attached hereto, which are incorporated herein by this reference, constitutes
+the entire agreement between QTI and You and supersedes all prior negotiations,
+representations and agreements between the parties with respect to the subject
+matter hereof. No addition or modification of this Agreement shall be effective
+unless made in writing and signed by the respective representatives of QTI and
+You. The restrictions, limitations, exclusions and conditions set forth in this
+Agreement shall apply even if QTI or any of its affiliates becomes aware of or
+fails to act in a manner to address any violation or failure to comply
+therewith. You hereby acknowledge and agree that the restrictions, limitations,
+conditions and exclusions imposed in this Agreement on the rights granted in
+this Agreement are not a derogation of the benefits of such rights. You further
+acknowledges that, in the absence of such restrictions, limitations, conditions
+and exclusions, QTI would not have entered into this Agreement with You. Each
+party shall be responsible for and shall bear its own expenses in connection
+with this Agreement. If any of the provisions of this Agreement are determined
+to be invalid, illegal, or otherwise unenforceable, the remaining provisions
+shall remain in full force and effect. This Agreement is entered into solely
+in the English language, and if for any reason any other language version is
+prepared by any party, it shall be solely for convenience and the English
+version shall govern and control all aspects. If You are located in the
+province of Quebec, Canada, the following applies: The Parties hereby confirm
+they have requested this Agreement and all related documents be prepared
+in English..
\ No newline at end of file
diff --git a/linaro_devices/qcom/rb5/device.mk b/linaro_devices/qcom/rb5/device.mk
new file mode 100644
index 0000000..dbf7d97
--- /dev/null
+++ b/linaro_devices/qcom/rb5/device.mk
@@ -0,0 +1,63 @@
+# Lontium lt9611uxc
+PRODUCT_PACKAGES := \
+ lt9611uxc_fw.bin
+
+# WLAN
+PRODUCT_PACKAGES += \
+ amss.bin \
+ board.bin \
+ m3.bin
+
+# Bluetooth
+PRODUCT_PACKAGES += \
+ htbtfw20.tlv \
+ htnv20.bin
+
+# Adreno
+PRODUCT_PACKAGES += \
+ a650_gmu.bin \
+ a650_sqe.fw \
+ a650_zap.mbn
+
+# Venus and ADSP/CDSP firmware files have same STEM name
+# so PRODUCT_COPY_FILES then instead
+PRODUCT_COPY_FILES += \
+ vendor/linaro_devices/common/linux-firmware/qcom/sm8250/adsp.mbn:$(TARGET_COPY_OUT_VENDOR)/firmware/qcom/sm8250/adsp.mbn \
+ vendor/linaro_devices/common/linux-firmware/qcom/sm8250/adspr.jsn:$(TARGET_COPY_OUT_VENDOR)/firmware/qcom/sm8250/adspr.jsn \
+ vendor/linaro_devices/common/linux-firmware/qcom/sm8250/adspua.jsn:$(TARGET_COPY_OUT_VENDOR)/firmware/qcom/sm8250/adspua.jsn \
+ vendor/linaro_devices/common/linux-firmware/qcom/sm8250/cdsp.mbn:$(TARGET_COPY_OUT_VENDOR)/firmware/qcom/sm8250/cdsp.mbn \
+ vendor/linaro_devices/common/linux-firmware/qcom/sm8250/cdspr.jsn:$(TARGET_COPY_OUT_VENDOR)/firmware/qcom/sm8250/cdspr.jsn \
+ vendor/linaro_devices/common/linux-firmware/qcom/vpu-1.0/venus.b00:$(TARGET_COPY_OUT_VENDOR)/firmware/qcom/vpu-1.0/venus.b00 \
+ vendor/linaro_devices/common/linux-firmware/qcom/vpu-1.0/venus.b01:$(TARGET_COPY_OUT_VENDOR)/firmware/qcom/vpu-1.0/venus.b01 \
+ vendor/linaro_devices/common/linux-firmware/qcom/vpu-1.0/venus.b02:$(TARGET_COPY_OUT_VENDOR)/firmware/qcom/vpu-1.0/venus.b02 \
+ vendor/linaro_devices/common/linux-firmware/qcom/vpu-1.0/venus.b03:$(TARGET_COPY_OUT_VENDOR)/firmware/qcom/vpu-1.0/venus.b03 \
+ vendor/linaro_devices/common/linux-firmware/qcom/vpu-1.0/venus.b04:$(TARGET_COPY_OUT_VENDOR)/firmware/qcom/vpu-1.0/venus.b04 \
+ vendor/linaro_devices/common/linux-firmware/qcom/vpu-1.0/venus.b05:$(TARGET_COPY_OUT_VENDOR)/firmware/qcom/vpu-1.0/venus.b05 \
+ vendor/linaro_devices/common/linux-firmware/qcom/vpu-1.0/venus.b06:$(TARGET_COPY_OUT_VENDOR)/firmware/qcom/vpu-1.0/venus.b06 \
+ vendor/linaro_devices/common/linux-firmware/qcom/vpu-1.0/venus.b07:$(TARGET_COPY_OUT_VENDOR)/firmware/qcom/vpu-1.0/venus.b07 \
+ vendor/linaro_devices/common/linux-firmware/qcom/vpu-1.0/venus.b08:$(TARGET_COPY_OUT_VENDOR)/firmware/qcom/vpu-1.0/venus.b08 \
+ vendor/linaro_devices/common/linux-firmware/qcom/vpu-1.0/venus.b09:$(TARGET_COPY_OUT_VENDOR)/firmware/qcom/vpu-1.0/venus.b09 \
+ vendor/linaro_devices/common/linux-firmware/qcom/vpu-1.0/venus.b10:$(TARGET_COPY_OUT_VENDOR)/firmware/qcom/vpu-1.0/venus.b10 \
+ vendor/linaro_devices/common/linux-firmware/qcom/vpu-1.0/venus.b19:$(TARGET_COPY_OUT_VENDOR)/firmware/qcom/vpu-1.0/venus.b19 \
+ vendor/linaro_devices/common/linux-firmware/qcom/vpu-1.0/venus.mbn:$(TARGET_COPY_OUT_VENDOR)/firmware/qcom/vpu-1.0/venus.mbn \
+ vendor/linaro_devices/common/linux-firmware/qcom/vpu-1.0/venus.mdt:$(TARGET_COPY_OUT_VENDOR)/firmware/qcom/vpu-1.0/venus.mdt
+
+# Also copy a set of Venus and ADSP/CDSP firmware files to ramdisk to drop the
+# dependency on user sysfs fw loader helper (FW_LOADER_USER_HELPER_FALLBACK)
+PRODUCT_COPY_FILES += \
+ vendor/linaro_devices/common/linux-firmware/qcom/sm8250/adsp.mbn:$(TARGET_COPY_OUT_VENDOR_RAMDISK)/vendor/firmware/qcom/sm8250/adsp.mbn \
+ vendor/linaro_devices/common/linux-firmware/qcom/sm8250/cdsp.mbn:$(TARGET_COPY_OUT_VENDOR_RAMDISK)/vendor/firmware/qcom/sm8250/cdsp.mbn \
+ vendor/linaro_devices/common/linux-firmware/qcom/vpu-1.0/venus.b00:$(TARGET_COPY_OUT_VENDOR_RAMDISK)/vendor/firmware/qcom/vpu-1.0/venus.b00 \
+ vendor/linaro_devices/common/linux-firmware/qcom/vpu-1.0/venus.b01:$(TARGET_COPY_OUT_VENDOR_RAMDISK)/vendor/firmware/qcom/vpu-1.0/venus.b01 \
+ vendor/linaro_devices/common/linux-firmware/qcom/vpu-1.0/venus.b02:$(TARGET_COPY_OUT_VENDOR_RAMDISK)/vendor/firmware/qcom/vpu-1.0/venus.b02 \
+ vendor/linaro_devices/common/linux-firmware/qcom/vpu-1.0/venus.b03:$(TARGET_COPY_OUT_VENDOR_RAMDISK)/vendor/firmware/qcom/vpu-1.0/venus.b03 \
+ vendor/linaro_devices/common/linux-firmware/qcom/vpu-1.0/venus.b04:$(TARGET_COPY_OUT_VENDOR_RAMDISK)/vendor/firmware/qcom/vpu-1.0/venus.b04 \
+ vendor/linaro_devices/common/linux-firmware/qcom/vpu-1.0/venus.b05:$(TARGET_COPY_OUT_VENDOR_RAMDISK)/vendor/firmware/qcom/vpu-1.0/venus.b05 \
+ vendor/linaro_devices/common/linux-firmware/qcom/vpu-1.0/venus.b06:$(TARGET_COPY_OUT_VENDOR_RAMDISK)/vendor/firmware/qcom/vpu-1.0/venus.b06 \
+ vendor/linaro_devices/common/linux-firmware/qcom/vpu-1.0/venus.b07:$(TARGET_COPY_OUT_VENDOR_RAMDISK)/vendor/firmware/qcom/vpu-1.0/venus.b07 \
+ vendor/linaro_devices/common/linux-firmware/qcom/vpu-1.0/venus.b08:$(TARGET_COPY_OUT_VENDOR_RAMDISK)/vendor/firmware/qcom/vpu-1.0/venus.b08 \
+ vendor/linaro_devices/common/linux-firmware/qcom/vpu-1.0/venus.b09:$(TARGET_COPY_OUT_VENDOR_RAMDISK)/vendor/firmware/qcom/vpu-1.0/venus.b09 \
+ vendor/linaro_devices/common/linux-firmware/qcom/vpu-1.0/venus.b10:$(TARGET_COPY_OUT_VENDOR_RAMDISK)/vendor/firmware/qcom/vpu-1.0/venus.b10 \
+ vendor/linaro_devices/common/linux-firmware/qcom/vpu-1.0/venus.b19:$(TARGET_COPY_OUT_VENDOR_RAMDISK)/vendor/firmware/qcom/vpu-1.0/venus.b19 \
+ vendor/linaro_devices/common/linux-firmware/qcom/vpu-1.0/venus.mbn:$(TARGET_COPY_OUT_VENDOR_RAMDISK)/vendor/firmware/qcom/vpu-1.0/venus.mbn \
+ vendor/linaro_devices/common/linux-firmware/qcom/vpu-1.0/venus.mdt:$(TARGET_COPY_OUT_VENDOR_RAMDISK)/vendor/firmware/qcom/vpu-1.0/venus.mdt
diff --git a/linaro_devices/qcom/rb5/qdl/LICENSE.qdl b/linaro_devices/qcom/rb5/qdl/LICENSE.qdl
new file mode 100644
index 0000000..4004f3d
--- /dev/null
+++ b/linaro_devices/qcom/rb5/qdl/LICENSE.qdl
@@ -0,0 +1,31 @@
+/*
+ * Copyright (c) 2016-2017, Linaro Ltd.
+ * Copyright (c) 2016, Bjorn Andersson <bjorn@kryo.se>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ *
+ * 3. Neither the name of the copyright holder nor the names of its contributors
+ * may be used to endorse or promote products derived from this software without
+ * specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
diff --git a/linaro_devices/qcom/rb5/qdl/qdl b/linaro_devices/qcom/rb5/qdl/qdl
new file mode 100755
index 0000000..fc45c0a
--- /dev/null
+++ b/linaro_devices/qcom/rb5/qdl/qdl
Binary files differ
diff --git a/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/LICENSE b/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/LICENSE
new file mode 100644
index 0000000..6b9a0a2
--- /dev/null
+++ b/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/LICENSE
@@ -0,0 +1,206 @@
+PLEASE READ THIS LICENSE AGREEMENT ("AGREEMENT") CAREFULLY. THIS AGREEMENT IS
+A BINDING LEGAL AGREEMENT ENTERED INTO BY AND BETWEEN YOU (OR IF YOU ARE
+ENTERING INTO THIS AGREEMENT ON BEHALF OF AN ENTITY, THEN THE ENTITY THAT YOU
+REPRESENT) AND QUALCOMM TECHNOLOGIES, INC. ("QTI" "WE" "OUR" OR "US"). THIS IS
+THE AGREEMENT THAT APPLIES TO YOUR USE OF THE DESIGNATED AND/OR LINKED
+APPLICATIONS, THE ENCLOSED QUALCOMM TECHNOLOGIES' MATERIALS, INCLUDING RELATED
+DOCUMENTATION AND ANY UPDATES OR IMPROVEMENTS THEREOF
+(COLLECTIVELY, "MATERIALS"). BY USING OR COMPLETING THE INSTALLATION OF THE
+MATERIALS, YOU ARE ACCEPTING THIS AGREEMENT AND YOU AGREE TO BE BOUND BY ITS
+TERMS AND CONDITIONS. IF YOU DO NOT AGREE TO THESE TERMS, QTI IS UNWILLING TO
+AND DOES NOT LICENSE THE MATERIALS TO YOU. IF YOU DO NOT AGREE TO THESE TERMS
+YOU MUST DISCONTINUE THE INSTALLATION PROCESS AND YOU MAY NOT USE THE MATERIALS
+OR RETAIN ANY COPIES OF THE MATERIALS. ANY USE OR POSSESSION OF THE MATERIALS
+BY YOU IS SUBJECT TO THE TERMS AND CONDITIONS SET FORTH IN THIS AGREEMENT.
+
+1. RIGHT TO USE DELIVERABLES; RESTRICTIONS.
+
+ 1.1 License. Subject to the terms and conditions of this Agreement,
+ including, without limitation, the restrictions, conditions, limitations and
+ exclusions set forth in this Agreement, QTI hereby grants to you a
+ nonexclusive, limited license under QTI's copyrights to: (i) install and use
+ the Materials; and (ii) to reproduce and redistribute the binary code portions
+ of the Materials (the "Redistributable Binary Code"). You may make and use a
+ reasonable number of copies of any documentation.
+
+ 1.2 Redistribution Restrictions. Distribution of the Redistributable Binary
+ Code is subject to the following restrictions: (i) Redistributable Binary Code
+ may only be distributed in binary format and may not be distributed in source
+ code format:; (ii) the Redistributable Binary Code may only operate in
+ conjunction with platforms incorporating Qualcomm Technologies, Inc. chipsets;
+ (iii) redistribution of the Redistributable Binary Code must include the .txt
+ file setting forth the terms and condition of this Agreement; (iv) you may not
+ use Qualcomm Technologies' or its affiliates or subsidiaries name, logo or
+ trademarks; and (v) copyright, trademark, patent and any other notices that
+ appear on the Materials may not be removed or obscured.
+
+ 1.3 Additional Restrictions. Except as expressly permitted by this Agreement,
+ you shall have no right to sublicense, transfer or otherwise disclose the
+ Materials to any third party. You shall not reverse engineer, reverse
+ assemble, reverse translate, decompile or reduce to source code form any
+ portion of the Materials provided in object code form or executable form.
+ Except for the purposes expressly permitted in this Agreement, You shall not
+ use the Materials for any other purpose. QTI (or its licensors) shall retain
+ title and all ownership rights in and to the Materials and any alterations,
+ modifications (including all derivative works), translations or adaptations
+ made of the Materials, and all copies thereof, and nothing herein shall be
+ deemed to grant any right to You under any of QTI's or its affiliates'
+ patents. You shall not subject the Materials to any third party license
+ terms (e.g., open source license terms). You shall not use the Materials for
+ the purpose of identifying or providing evidence to support any potential
+ patent infringement claim against QTI, its affiliates, or any of QTI's or
+ QTI's affiliates' suppliers and/or direct or indirect customers. QTI hereby
+ reserves all rights not expressly granted herein.
+
+ 1.4 Third Party Software and Materials. The Software may contain or link to
+ certain software and/or materials that are written or owned by third parties.
+ Such third party code and materials may be licensed under separate or
+ different terms and conditions and are not licensed to you under the terms of
+ this Agreement. You agree to comply with all terms and conditions imposed on
+ you in the applicable third party licenses. Such terms and conditions may
+ impose certain obligations on you as a condition to the permitted use of such
+ third party code and materials. QTI does not represent or warrant that such
+ third party licensors have or will continue to license or make available their
+ code and materials to you.
+
+ 1.5 Feedback. QTI may from time to time receive suggestions, feedback or
+ other information from You regarding the Materials. Any suggestions, feedback
+ or other disclosures received from You are and shall be entirely voluntary on
+ the part of You. Notwithstanding any other term in this Agreement, QTI shall
+ be free to use suggestions, feedback or other information received from You,
+ without obligation of any kind to You. The Parties agree that all inventions,
+ product improvements, and modifications conceived of or made by QTI that are
+ based, either in whole or in part, on ideas, feedback, suggestions, or
+ recommended improvements received from You are the exclusive property of QTI,
+ and all right, title and interest in and to any such inventions, product
+ improvements, and modifications will vest solely in QTI.
+
+ 1.6 No Technical Support. QTI is under no obligation to provide any form of
+ technical support for the Materials, and if QTI, in its sole discretion,
+ chooses to provide any form of support or information relating to the
+ Materials, such support and information shall be deemed confidential and
+ proprietary to QTI.
+
+2. WARRANTY DISCLAIMER. YOU EXPRESSLY ACKNOWLEDGE AND AGREE THAT THE USE OF
+THE MATERIALS IS AT YOUR SOLE RISK. THE MATERIALS AND TECHNICAL SUPPORT, IF
+ANY, ARE PROVIDED "AS IS" AND WITHOUT WARRANTY OF ANY KIND, WHETHER EXPRESS OR
+IMPLIED. QTI ITS LICENSORS AND AFFILIATES MAKE NO WARRANTIES, EXPRESS OR
+IMPLIED, WITH RESPECT TO THE MATERIALS OR ANY OTHER INFORMATION OR DOCUMENTATION
+PROVIDED UNDER THIS AGREEMENT, INCLUDING BUT NOT LIMITED TO ANY WARRANTY OF
+MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE OR AGAINST INFRINGEMENT, OR
+ANY EXPRESS OR IMPLIED WARRANTY ARISING OUT OF TRADE USAGE OR OUT OF A COURSE OF
+DEALING OR COURSE OF PERFORMANCE. NOTHING CONTAINED IN THIS AGREEMENT SHALL BE
+CONSTRUED AS (I) A WARRANTY OR REPRESENTATION BY QTI, ITS LICENSORS OR
+AFFILIATES AS TO THE VALIDITY OR SCOPE OF ANY PATENT, COPYRIGHT OR OTHER
+INTELLECTUAL PROPERTY RIGHT OR (II) A WARRANTY OR REPRESENTATION BY QTI THAT ANY
+MANUFACTURE OR USE WILL BE FREE FROM INFRINGEMENT OF PATENTS, COPYRIGHTS OR
+OTHER INTELLECTUAL PROPERTY RIGHTS OF OTHERS, AND IT SHALL BE THE SOLE
+RESPONSIBILITY OF YOU TO MAKE SUCH DETERMINATION AS IS NECESSARY WITH RESPECT TO
+THE ACQUISITION OF LICENSES UNDER PATENTS AND OTHER INTELLECTUAL PROPERTY OF
+THIRD PARTIES.
+
+3. NO OTHER LICENSES OR INTELLECTUAL PROPERTY RIGHTS. Neither this Agreement,
+nor any act by QTI or any of its affiliates pursuant to this Agreement or
+relating to the Materials (including, without limitation, the provision by QTI
+or its affiliates of the Materials), shall provide to You any license or any
+other rights whatsoever under any patents, trademarks, trade secrets, copyrights
+or any other intellectual property of QTI or any of its affiliates, except for
+the copyright rights expressly licensed under this Agreement. You understand and
+agree that:
+
+ (i) Neither this Agreement, nor delivery of the Materials, grants any right to
+ practice, or any other right at all with respect to, any patent of QTI or any
+ of its affiliates; and
+
+ (ii) A separate license agreement from QUALCOMM Incorporated is needed to use
+ or practice any patent of QUALCOMM Incorporated. You agree not to contend in
+ any context that, as a result of the provision or use of the Materials, either
+ QTI or any of its affiliates has any obligation to extend, or You or any other
+ party has obtained any right to, any license, whether express or implied, with
+ respect to any patent of QTI or any of its affiliates for any purpose.
+
+4. TERMINATION. This Agreement shall be effective upon acceptance, or access or
+use of the Materials (whichever occurs first) by You and shall continue until
+terminated. You may terminate the Agreement at any time by deleting and
+destroying all copies of the Materials and all related information in Your
+possession or control. This Agreement terminates immediately and automatically,
+with or without notice, if You fail to comply with any provision hereof.
+Additionally, QTI may at any time terminate this Agreement, without cause, upon
+notice to You. Upon termination You must, to the extent possible, delete or
+destroy all copies of the Materials in Your possession and the license granted
+to You in this Agreement shall terminate. Sections 1.2 through 10 shall survive
+the termination of this Agreement. In the event that any restrictions,
+conditions, limitations are found to be either invalid or unenforceable, the
+rights granted to You in Section 1 (License) shall be null, void and ineffective
+from the Effective Date, and QTI shall also have the right to terminate this
+Agreement immediately, and with retroactive effect to the effective date.
+
+5. LIMITATION OF LIABILITY. IN NO EVENT SHALL QTI, QTI's AFFILIATES OR ITS
+LICENSORS BE LIABLE TO YOU FOR ANY INCIDENTAL, CONSEQUENTIAL OR SPECIAL DAMAGES,
+INCLUDING BUT NOT LIMITED TO ANY LOST PROFITS, LOST SAVINGS, OR OTHER INCIDENTAL
+DAMAGES, ARISING OUT OF THE USE OR INABILITY TO USE, OR THE DELIVERY OR FAILURE
+TO DELIVER, ANY OF THE DELIVERABLES, OR ANY BREACH OF ANY OBLIGATION UNDER THIS
+AGREEMENT, EVEN IF QTI HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+THE FOREGOING LIMITATION OF LIABILITY SHALL REMAIN IN FULL FORCE AND EFFECT
+REGARDLESS OF WHETHER YOUR REMEDIES HEREUNDER ARE DETERMINED TO HAVE FAILED OF
+THEIR ESSENTIAL PURPOSE. THE ENTIRE LIABILITY OF QTI, QTI's AFFILIATES AND ITS
+LICENSORS, AND THE SOLE AND EXCLUSIVE REMEDY OF YOU, FOR ANY CLAIM OR CAUSE OF
+ACTION ARISING HEREUNDER (WHETHER IN CONTRACT, TORT, OR OTHERWISE) SHALL NOT
+EXCEED US$50.
+
+6. INDEMNIFICATION. You agree to indemnify and hold harmless QTI and its
+officers, directors, employees and successors and assigns against any and all
+third party claims, demands, causes of action, losses, liabilities, damages,
+costs and expenses, incurred by QTI (including but not limited to costs of
+defense, investigation and reasonable attorney's fees) arising out of, resulting
+from or related to: (i) any breach of this Agreement by You; and (ii) your acts,
+omissions, products and services. If requested by QTI, You agree to defend QTI
+in connection with any third party claims, demands, or causes of action
+resulting from, arising out of or in connection with any of the foregoing.
+
+7. ASSIGNMENT. You shall not assign this Agreement or any right or interest
+under this Agreement, nor delegate any obligation to be performed under this
+Agreement, without QTI's prior written consent. For purposes of this Section 7,
+an "assignment" by You under this Section shall be deemed to include, without
+limitation, any merger, consolidation, sale of all or substantially all of its
+assets, or any substantial change in the management or control of You.
+Any attempted assignment in contravention of this Section 9 shall be void.
+QTI may freely assign this Agreement or delegate any or all of its rights and
+obligations hereunder to any third party.
+
+8. COMPLIANCE WITH LAWS; APPLICABLE LAW. You agree to comply with all
+applicable local, international and national laws and regulations and with U.S.
+Export Administration Regulations, as they apply to the subject matter of this
+Agreement. This Agreement is governed by the laws of the State of California,
+excluding California's choice of law rules.
+
+9. CONTRACTING PARTIES. If the Materials are downloaded on any computer owned
+by a corporation or other legal entity, then this Agreement is formed by and
+between QTI and such entity. The individual accepting the terms of this
+Agreement represents and warrants to QTI that they have the authority to bind
+such entity to the terms and conditions of this Agreement.
+
+10. MISCELLANEOUS PROVISIONS. This Agreement, together with all exhibits
+attached hereto, which are incorporated herein by this reference, constitutes
+the entire agreement between QTI and You and supersedes all prior negotiations,
+representations and agreements between the parties with respect to the subject
+matter hereof. No addition or modification of this Agreement shall be effective
+unless made in writing and signed by the respective representatives of QTI and
+You. The restrictions, limitations, exclusions and conditions set forth in this
+Agreement shall apply even if QTI or any of its affiliates becomes aware of or
+fails to act in a manner to address any violation or failure to comply
+therewith. You hereby acknowledge and agree that the restrictions, limitations,
+conditions and exclusions imposed in this Agreement on the rights granted in
+this Agreement are not a derogation of the benefits of such rights. You further
+acknowledges that, in the absence of such restrictions, limitations, conditions
+and exclusions, QTI would not have entered into this Agreement with You. Each
+party shall be responsible for and shall bear its own expenses in connection
+with this Agreement. If any of the provisions of this Agreement are determined
+to be invalid, illegal, or otherwise unenforceable, the remaining provisions
+shall remain in full force and effect. This Agreement is entered into solely
+in the English language, and if for any reason any other language version is
+prepared by any party, it shall be solely for convenience and the English
+version shall govern and control all aspects. If You are located in the
+province of Quebec, Canada, the following applies: The Parties hereby confirm
+they have requested this Agreement and all related documents be prepared
+in English..
\ No newline at end of file
diff --git a/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/MD5SUMS.txt b/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/MD5SUMS.txt
new file mode 100644
index 0000000..b8044ad
--- /dev/null
+++ b/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/MD5SUMS.txt
@@ -0,0 +1,52 @@
+7ede1b0692abd48e0468615e5afaa981 abl.elf
+269902643091ab740bab845c09db6a40 aop.mbn
+21fe4f0eb68aa45c57ab85930dda1fa6 apdp.mbn
+b6d81b360a5672d80c27430f39153e2c boot-erase.img
+123c63fdb9f5f70671c49ccae8bbe9e7 cdt.bin
+bdd8e32ccfac703d18747ba277ce47ac cmnlib64.mbn
+d95347ba2a5e7373e44d708c8c85c87e cmnlib.mbn
+cde2a2dd4b83eecab92f9c9f3786b58e devcfg.mbn
+45cb353504ae1176d478b0fa22666965 dspso.bin
+8aff5a3fae2919ca4c0bcf20f5b68910 featenabler.mbn
+1404205e5a27b992d274924220fc7390 flashall
+dc7940b4824fe6db9be762396f4946c5 gpt_backup0.bin
+bc47055308ff748bab0d26c47b2a58b4 gpt_backup1.bin
+eaf5074b7c18f87da5d0607c4b97ade6 gpt_backup2.bin
+7cdb8725b34b4879d5d3107142a69e51 gpt_backup3.bin
+798f5243d9e024ce028d5ff472077c9d gpt_backup4.bin
+4b42d4b05134a2b5e05ad84e33b259c5 gpt_backup5.bin
+dc9bc82489cb97f3456ff9dec301dad2 gpt_both0.bin
+8a1630cee00c76a9b88cc6370670e704 gpt_both1.bin
+325046512057494cf8bb17e8aa4cf892 gpt_both2.bin
+94668691c13d7b84d82eda5b2055ed19 gpt_both3.bin
+c09e87564b79ff5fd7211b993a1795ef gpt_both4.bin
+667f4bc80babacd619fe86467de06d4d gpt_both5.bin
+fb5f3ec959762ce01f7c7e18da5c86d0 gpt_main0.bin
+242d88bf4d7d859f421d995263c64c6c gpt_main1.bin
+7c357db99919f1cf468ef286bf0f5c81 gpt_main2.bin
+a3304d0fd51be0fc287c3830f17a9aff gpt_main3.bin
+9a4cc5b1265d3eb0c06cf72314032a7c gpt_main4.bin
+ffde070b5ec0b7fe470e5292abf77b07 gpt_main5.bin
+6bcbfe1866a7fde271785744ac832796 hyp.mbn
+3c84eaaffd53577b9aaeedd10e8abb62 km4.mbn
+cbbe399f2c983ad51768f4561587f000 LICENSE
+4a9c85ffbb610f1e6b728e9919e23ff9 multi_image.mbn
+075cb8e1975d5a6380686a90e15da7fb patch0.xml
+0780990ee59934bdcaffc918cac99aed patch1.xml
+81036277fd056a16c0e418a756a5a835 patch2.xml
+491532d01cc4be1604e3d6784d6f4a13 patch3.xml
+353c75b108136948c60aed81024affa8 patch4.xml
+7b2a5b25f6c88f776422f65692607d95 patch5.xml
+4ea6f2187bce07cd3d1e02a70e3f83c3 prog_firehose_ddr.elf
+ce8ace958f7f5c0479a69c0dd331f30e qupv3fw.elf
+72c93f0eb7685f710262cc1a3aa85391 rawprogram0.xml
+078978d92fc3c2a0ad0744e5e905e806 rawprogram1.xml
+e829b09f11eeed7f44caca1b592c91bf rawprogram2.xml
+e6bc33009e6df9a3d3f0edd968dc742b rawprogram3.xml
+968badca129dbc54e197a49bbcc2fbca rawprogram4.xml
+4c872e64d5c1c0642e04075342883e5c rawprogram5.xml
+da53d17a35d3f0bbb2e6ec2ee7cc20e1 spunvm.bin
+dfb500dc0b15b035694dc1f664cd3968 tz.mbn
+363aeec966c040a50bb8f918de88c3f9 uefi_sec.mbn
+9fc1b09f5efb86f5c87a98860223c416 xbl_config.elf
+803e1f9fd99c91fd68935f398b5aed29 xbl.elf
diff --git a/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/abl.elf b/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/abl.elf
new file mode 100644
index 0000000..be47edd
--- /dev/null
+++ b/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/abl.elf
Binary files differ
diff --git a/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/aop.mbn b/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/aop.mbn
new file mode 100644
index 0000000..f6fc5a3
--- /dev/null
+++ b/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/aop.mbn
Binary files differ
diff --git a/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/apdp.mbn b/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/apdp.mbn
new file mode 100644
index 0000000..9042418
--- /dev/null
+++ b/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/apdp.mbn
Binary files differ
diff --git a/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/boot-erase.img b/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/boot-erase.img
new file mode 100644
index 0000000..9e0f96a
--- /dev/null
+++ b/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/boot-erase.img
Binary files differ
diff --git a/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/cdt.bin b/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/cdt.bin
new file mode 100644
index 0000000..a98a6a0
--- /dev/null
+++ b/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/cdt.bin
Binary files differ
diff --git a/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/cmnlib.mbn b/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/cmnlib.mbn
new file mode 100644
index 0000000..3b395f9
--- /dev/null
+++ b/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/cmnlib.mbn
Binary files differ
diff --git a/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/cmnlib64.mbn b/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/cmnlib64.mbn
new file mode 100644
index 0000000..c582d2e
--- /dev/null
+++ b/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/cmnlib64.mbn
Binary files differ
diff --git a/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/devcfg.mbn b/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/devcfg.mbn
new file mode 100644
index 0000000..c172a76
--- /dev/null
+++ b/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/devcfg.mbn
Binary files differ
diff --git a/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/dspso.bin b/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/dspso.bin
new file mode 100644
index 0000000..b63ece9
--- /dev/null
+++ b/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/dspso.bin
Binary files differ
diff --git a/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/featenabler.mbn b/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/featenabler.mbn
new file mode 100644
index 0000000..886afe7
--- /dev/null
+++ b/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/featenabler.mbn
Binary files differ
diff --git a/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/flashall b/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/flashall
new file mode 100755
index 0000000..966d670
--- /dev/null
+++ b/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/flashall
@@ -0,0 +1,33 @@
+#!/bin/sh
+
+fastboot flash partition:0 gpt_both0.bin
+fastboot flash partition:1 gpt_both1.bin
+fastboot flash partition:2 gpt_both2.bin
+fastboot flash partition:3 gpt_both3.bin
+fastboot flash partition:4 gpt_both4.bin
+fastboot flash partition:5 gpt_both5.bin
+
+#fastboot flash ImageFv_a imagefv.elf
+fastboot flash aop_a aop.mbn
+fastboot flash apdp apdp.mbn
+#fastboot flash bluetooth_a BTFM.bin
+fastboot flash cmnlib64_a cmnlib64.mbn
+fastboot flash cmnlib_a cmnlib.mbn
+fastboot flash cdt cdt.bin
+fastboot erase ddr
+fastboot flash devcfg_a devcfg.mbn
+fastboot flash dsp_a dspso.bin
+fastboot flash featenabler_a featenabler.mbn
+fastboot flash hyp_a hyp.mbn
+fastboot flash keymaster_a km4.mbn
+#fastboot flash logfs logfs_ufs_8mb.bin
+#fastboot flash modem_a NON-HLOS.bin
+fastboot flash multiimgoem_a multi_image.mbn
+fastboot flash qupfw_a qupv3fw.elf
+fastboot flash spunvm spunvm.bin
+fastboot flash tz_a tz.mbn
+fastboot flash uefisecapp_a uefi_sec.mbn
+fastboot flash xbl_a xbl.elf
+fastboot flash xbl_config_a xbl_config.elf
+
+fastboot flash abl_a abl.elf
diff --git a/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/gpt_backup0.bin b/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/gpt_backup0.bin
new file mode 100644
index 0000000..662b237
--- /dev/null
+++ b/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/gpt_backup0.bin
Binary files differ
diff --git a/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/gpt_backup1.bin b/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/gpt_backup1.bin
new file mode 100644
index 0000000..d87f52c
--- /dev/null
+++ b/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/gpt_backup1.bin
Binary files differ
diff --git a/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/gpt_backup2.bin b/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/gpt_backup2.bin
new file mode 100644
index 0000000..9dd3e05
--- /dev/null
+++ b/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/gpt_backup2.bin
Binary files differ
diff --git a/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/gpt_backup3.bin b/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/gpt_backup3.bin
new file mode 100644
index 0000000..bc892c0
--- /dev/null
+++ b/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/gpt_backup3.bin
Binary files differ
diff --git a/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/gpt_backup4.bin b/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/gpt_backup4.bin
new file mode 100644
index 0000000..200fd16
--- /dev/null
+++ b/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/gpt_backup4.bin
Binary files differ
diff --git a/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/gpt_backup5.bin b/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/gpt_backup5.bin
new file mode 100644
index 0000000..427e0a3
--- /dev/null
+++ b/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/gpt_backup5.bin
Binary files differ
diff --git a/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/gpt_both0.bin b/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/gpt_both0.bin
new file mode 100644
index 0000000..f2377a2
--- /dev/null
+++ b/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/gpt_both0.bin
Binary files differ
diff --git a/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/gpt_both1.bin b/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/gpt_both1.bin
new file mode 100644
index 0000000..dc5479e
--- /dev/null
+++ b/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/gpt_both1.bin
Binary files differ
diff --git a/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/gpt_both2.bin b/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/gpt_both2.bin
new file mode 100644
index 0000000..f767d6a
--- /dev/null
+++ b/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/gpt_both2.bin
Binary files differ
diff --git a/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/gpt_both3.bin b/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/gpt_both3.bin
new file mode 100644
index 0000000..0731f80
--- /dev/null
+++ b/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/gpt_both3.bin
Binary files differ
diff --git a/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/gpt_both4.bin b/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/gpt_both4.bin
new file mode 100644
index 0000000..c3de65e
--- /dev/null
+++ b/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/gpt_both4.bin
Binary files differ
diff --git a/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/gpt_both5.bin b/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/gpt_both5.bin
new file mode 100644
index 0000000..72c1d2c
--- /dev/null
+++ b/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/gpt_both5.bin
Binary files differ
diff --git a/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/gpt_main0.bin b/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/gpt_main0.bin
new file mode 100644
index 0000000..3813917
--- /dev/null
+++ b/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/gpt_main0.bin
Binary files differ
diff --git a/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/gpt_main1.bin b/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/gpt_main1.bin
new file mode 100644
index 0000000..cd02fc4
--- /dev/null
+++ b/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/gpt_main1.bin
Binary files differ
diff --git a/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/gpt_main2.bin b/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/gpt_main2.bin
new file mode 100644
index 0000000..ea6b01f
--- /dev/null
+++ b/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/gpt_main2.bin
Binary files differ
diff --git a/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/gpt_main3.bin b/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/gpt_main3.bin
new file mode 100644
index 0000000..2848c11
--- /dev/null
+++ b/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/gpt_main3.bin
Binary files differ
diff --git a/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/gpt_main4.bin b/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/gpt_main4.bin
new file mode 100644
index 0000000..ec75aa8
--- /dev/null
+++ b/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/gpt_main4.bin
Binary files differ
diff --git a/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/gpt_main5.bin b/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/gpt_main5.bin
new file mode 100644
index 0000000..08572d4
--- /dev/null
+++ b/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/gpt_main5.bin
Binary files differ
diff --git a/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/hyp.mbn b/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/hyp.mbn
new file mode 100644
index 0000000..8c9854c
--- /dev/null
+++ b/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/hyp.mbn
Binary files differ
diff --git a/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/km4.mbn b/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/km4.mbn
new file mode 100644
index 0000000..23e5153
--- /dev/null
+++ b/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/km4.mbn
Binary files differ
diff --git a/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/multi_image.mbn b/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/multi_image.mbn
new file mode 100644
index 0000000..1ab0654
--- /dev/null
+++ b/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/multi_image.mbn
Binary files differ
diff --git a/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/patch0.xml b/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/patch0.xml
new file mode 100644
index 0000000..20e4537
--- /dev/null
+++ b/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/patch0.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" ?>
+<patches>
+ <!--NOTE: This is an ** Autogenerated file **-->
+ <!--NOTE: Patching is in little endian format, i.e. 0xAABBCCDD will look like DD CC BB AA in the file or on disk-->
+ <!--NOTE: This file is used by Trace32 - So make sure to add decimals, i.e. 0x10-10=0, *but* 0x10-10.=6.-->
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="1448" filename="gpt_main0.bin" physical_partition_number="0" size_in_bytes="8" start_sector="2" value="NUM_DISK_SECTORS-6." what="Update last partition 12 'userdata' with actual size in Primary Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="1448" filename="DISK" physical_partition_number="0" size_in_bytes="8" start_sector="2" value="NUM_DISK_SECTORS-6." what="Update last partition 12 'userdata' with actual size in Primary Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="1448" filename="gpt_backup0.bin" physical_partition_number="0" size_in_bytes="8" start_sector="0" value="NUM_DISK_SECTORS-6." what="Update last partition 12 'userdata' with actual size in Backup Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="1448" filename="DISK" physical_partition_number="0" size_in_bytes="8" start_sector="NUM_DISK_SECTORS-5." value="NUM_DISK_SECTORS-6." what="Update last partition 12 'userdata' with actual size in Backup Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="48" filename="gpt_main0.bin" physical_partition_number="0" size_in_bytes="8" start_sector="1" value="NUM_DISK_SECTORS-6." what="Update Primary Header with LastUseableLBA."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="48" filename="DISK" physical_partition_number="0" size_in_bytes="8" start_sector="1" value="NUM_DISK_SECTORS-6." what="Update Primary Header with LastUseableLBA."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="48" filename="gpt_backup0.bin" physical_partition_number="0" size_in_bytes="8" start_sector="4" value="NUM_DISK_SECTORS-6." what="Update Backup Header with LastUseableLBA."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="48" filename="DISK" physical_partition_number="0" size_in_bytes="8" start_sector="NUM_DISK_SECTORS-1." value="NUM_DISK_SECTORS-6." what="Update Backup Header with LastUseableLBA."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="32" filename="gpt_main0.bin" physical_partition_number="0" size_in_bytes="8" start_sector="1" value="NUM_DISK_SECTORS-1." what="Update Primary Header with BackupGPT Header Location."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="32" filename="DISK" physical_partition_number="0" size_in_bytes="8" start_sector="1" value="NUM_DISK_SECTORS-1." what="Update Primary Header with BackupGPT Header Location."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="24" filename="gpt_backup0.bin" physical_partition_number="0" size_in_bytes="8" start_sector="4" value="NUM_DISK_SECTORS-1." what="Update Backup Header with CurrentLBA."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="24" filename="DISK" physical_partition_number="0" size_in_bytes="8" start_sector="NUM_DISK_SECTORS-1." value="NUM_DISK_SECTORS-1." what="Update Backup Header with CurrentLBA."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="72" filename="gpt_backup0.bin" physical_partition_number="0" size_in_bytes="8" start_sector="4" value="NUM_DISK_SECTORS-5." what="Update Backup Header with Partition Array Location."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="72" filename="DISK" physical_partition_number="0" size_in_bytes="8" start_sector="NUM_DISK_SECTORS-1" value="NUM_DISK_SECTORS-5." what="Update Backup Header with Partition Array Location."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="88" filename="gpt_main0.bin" physical_partition_number="0" size_in_bytes="4" start_sector="1" value="CRC32(2,4096)" what="Update Primary Header with CRC of Partition Array."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="88" filename="DISK" physical_partition_number="0" size_in_bytes="4" start_sector="1" value="CRC32(2,4096)" what="Update Primary Header with CRC of Partition Array."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="88" filename="gpt_backup0.bin" physical_partition_number="0" size_in_bytes="4" start_sector="4" value="CRC32(0,4096)" what="Update Backup Header with CRC of Partition Array."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="88" filename="DISK" physical_partition_number="0" size_in_bytes="4" start_sector="NUM_DISK_SECTORS-1." value="CRC32(NUM_DISK_SECTORS-5.,4096)" what="Update Backup Header with CRC of Partition Array."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="16" filename="gpt_main0.bin" physical_partition_number="0" size_in_bytes="4" start_sector="1" value="0" what="Zero Out Header CRC in Primary Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="16" filename="gpt_main0.bin" physical_partition_number="0" size_in_bytes="4" start_sector="1" value="CRC32(1,92)" what="Update Primary Header with CRC of Primary Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="16" filename="DISK" physical_partition_number="0" size_in_bytes="4" start_sector="1" value="0" what="Zero Out Header CRC in Primary Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="16" filename="DISK" physical_partition_number="0" size_in_bytes="4" start_sector="1" value="CRC32(1,92)" what="Update Primary Header with CRC of Primary Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="16" filename="gpt_backup0.bin" physical_partition_number="0" size_in_bytes="4" start_sector="4" value="0" what="Zero Out Header CRC in Backup Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="16" filename="gpt_backup0.bin" physical_partition_number="0" size_in_bytes="4" start_sector="4" value="CRC32(4,92)" what="Update Backup Header with CRC of Backup Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="16" filename="DISK" physical_partition_number="0" size_in_bytes="4" start_sector="NUM_DISK_SECTORS-1." value="0" what="Zero Out Header CRC in Backup Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="16" filename="DISK" physical_partition_number="0" size_in_bytes="4" start_sector="NUM_DISK_SECTORS-1." value="CRC32(NUM_DISK_SECTORS-1.,92)" what="Update Backup Header with CRC of Backup Header."/>
+</patches>
diff --git a/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/patch1.xml b/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/patch1.xml
new file mode 100644
index 0000000..f22f118
--- /dev/null
+++ b/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/patch1.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" ?>
+<patches>
+ <!--NOTE: This is an ** Autogenerated file **-->
+ <!--NOTE: Patching is in little endian format, i.e. 0xAABBCCDD will look like DD CC BB AA in the file or on disk-->
+ <!--NOTE: This file is used by Trace32 - So make sure to add decimals, i.e. 0x10-10=0, *but* 0x10-10.=6.-->
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="296" filename="gpt_main1.bin" physical_partition_number="1" size_in_bytes="8" start_sector="2" value="NUM_DISK_SECTORS-6." what="Update last partition 3 'last_parti' with actual size in Primary Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="296" filename="DISK" physical_partition_number="1" size_in_bytes="8" start_sector="2" value="NUM_DISK_SECTORS-6." what="Update last partition 3 'last_parti' with actual size in Primary Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="296" filename="gpt_backup1.bin" physical_partition_number="1" size_in_bytes="8" start_sector="0" value="NUM_DISK_SECTORS-6." what="Update last partition 3 'last_parti' with actual size in Backup Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="296" filename="DISK" physical_partition_number="1" size_in_bytes="8" start_sector="NUM_DISK_SECTORS-5." value="NUM_DISK_SECTORS-6." what="Update last partition 3 'last_parti' with actual size in Backup Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="48" filename="gpt_main1.bin" physical_partition_number="1" size_in_bytes="8" start_sector="1" value="NUM_DISK_SECTORS-6." what="Update Primary Header with LastUseableLBA."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="48" filename="DISK" physical_partition_number="1" size_in_bytes="8" start_sector="1" value="NUM_DISK_SECTORS-6." what="Update Primary Header with LastUseableLBA."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="48" filename="gpt_backup1.bin" physical_partition_number="1" size_in_bytes="8" start_sector="4" value="NUM_DISK_SECTORS-6." what="Update Backup Header with LastUseableLBA."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="48" filename="DISK" physical_partition_number="1" size_in_bytes="8" start_sector="NUM_DISK_SECTORS-1." value="NUM_DISK_SECTORS-6." what="Update Backup Header with LastUseableLBA."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="32" filename="gpt_main1.bin" physical_partition_number="1" size_in_bytes="8" start_sector="1" value="NUM_DISK_SECTORS-1." what="Update Primary Header with BackupGPT Header Location."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="32" filename="DISK" physical_partition_number="1" size_in_bytes="8" start_sector="1" value="NUM_DISK_SECTORS-1." what="Update Primary Header with BackupGPT Header Location."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="24" filename="gpt_backup1.bin" physical_partition_number="1" size_in_bytes="8" start_sector="4" value="NUM_DISK_SECTORS-1." what="Update Backup Header with CurrentLBA."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="24" filename="DISK" physical_partition_number="1" size_in_bytes="8" start_sector="NUM_DISK_SECTORS-1." value="NUM_DISK_SECTORS-1." what="Update Backup Header with CurrentLBA."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="72" filename="gpt_backup1.bin" physical_partition_number="1" size_in_bytes="8" start_sector="4" value="NUM_DISK_SECTORS-5." what="Update Backup Header with Partition Array Location."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="72" filename="DISK" physical_partition_number="1" size_in_bytes="8" start_sector="NUM_DISK_SECTORS-1" value="NUM_DISK_SECTORS-5." what="Update Backup Header with Partition Array Location."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="88" filename="gpt_main1.bin" physical_partition_number="1" size_in_bytes="4" start_sector="1" value="CRC32(2,4096)" what="Update Primary Header with CRC of Partition Array."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="88" filename="DISK" physical_partition_number="1" size_in_bytes="4" start_sector="1" value="CRC32(2,4096)" what="Update Primary Header with CRC of Partition Array."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="88" filename="gpt_backup1.bin" physical_partition_number="1" size_in_bytes="4" start_sector="4" value="CRC32(0,4096)" what="Update Backup Header with CRC of Partition Array."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="88" filename="DISK" physical_partition_number="1" size_in_bytes="4" start_sector="NUM_DISK_SECTORS-1." value="CRC32(NUM_DISK_SECTORS-5.,4096)" what="Update Backup Header with CRC of Partition Array."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="16" filename="gpt_main1.bin" physical_partition_number="1" size_in_bytes="4" start_sector="1" value="0" what="Zero Out Header CRC in Primary Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="16" filename="gpt_main1.bin" physical_partition_number="1" size_in_bytes="4" start_sector="1" value="CRC32(1,92)" what="Update Primary Header with CRC of Primary Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="16" filename="DISK" physical_partition_number="1" size_in_bytes="4" start_sector="1" value="0" what="Zero Out Header CRC in Primary Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="16" filename="DISK" physical_partition_number="1" size_in_bytes="4" start_sector="1" value="CRC32(1,92)" what="Update Primary Header with CRC of Primary Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="16" filename="gpt_backup1.bin" physical_partition_number="1" size_in_bytes="4" start_sector="4" value="0" what="Zero Out Header CRC in Backup Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="16" filename="gpt_backup1.bin" physical_partition_number="1" size_in_bytes="4" start_sector="4" value="CRC32(4,92)" what="Update Backup Header with CRC of Backup Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="16" filename="DISK" physical_partition_number="1" size_in_bytes="4" start_sector="NUM_DISK_SECTORS-1." value="0" what="Zero Out Header CRC in Backup Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="16" filename="DISK" physical_partition_number="1" size_in_bytes="4" start_sector="NUM_DISK_SECTORS-1." value="CRC32(NUM_DISK_SECTORS-1.,92)" what="Update Backup Header with CRC of Backup Header."/>
+</patches>
diff --git a/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/patch2.xml b/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/patch2.xml
new file mode 100644
index 0000000..3a21339
--- /dev/null
+++ b/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/patch2.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" ?>
+<patches>
+ <!--NOTE: This is an ** Autogenerated file **-->
+ <!--NOTE: Patching is in little endian format, i.e. 0xAABBCCDD will look like DD CC BB AA in the file or on disk-->
+ <!--NOTE: This file is used by Trace32 - So make sure to add decimals, i.e. 0x10-10=0, *but* 0x10-10.=6.-->
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="296" filename="gpt_main2.bin" physical_partition_number="2" size_in_bytes="8" start_sector="2" value="NUM_DISK_SECTORS-6." what="Update last partition 3 'last_parti' with actual size in Primary Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="296" filename="DISK" physical_partition_number="2" size_in_bytes="8" start_sector="2" value="NUM_DISK_SECTORS-6." what="Update last partition 3 'last_parti' with actual size in Primary Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="296" filename="gpt_backup2.bin" physical_partition_number="2" size_in_bytes="8" start_sector="0" value="NUM_DISK_SECTORS-6." what="Update last partition 3 'last_parti' with actual size in Backup Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="296" filename="DISK" physical_partition_number="2" size_in_bytes="8" start_sector="NUM_DISK_SECTORS-5." value="NUM_DISK_SECTORS-6." what="Update last partition 3 'last_parti' with actual size in Backup Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="48" filename="gpt_main2.bin" physical_partition_number="2" size_in_bytes="8" start_sector="1" value="NUM_DISK_SECTORS-6." what="Update Primary Header with LastUseableLBA."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="48" filename="DISK" physical_partition_number="2" size_in_bytes="8" start_sector="1" value="NUM_DISK_SECTORS-6." what="Update Primary Header with LastUseableLBA."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="48" filename="gpt_backup2.bin" physical_partition_number="2" size_in_bytes="8" start_sector="4" value="NUM_DISK_SECTORS-6." what="Update Backup Header with LastUseableLBA."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="48" filename="DISK" physical_partition_number="2" size_in_bytes="8" start_sector="NUM_DISK_SECTORS-1." value="NUM_DISK_SECTORS-6." what="Update Backup Header with LastUseableLBA."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="32" filename="gpt_main2.bin" physical_partition_number="2" size_in_bytes="8" start_sector="1" value="NUM_DISK_SECTORS-1." what="Update Primary Header with BackupGPT Header Location."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="32" filename="DISK" physical_partition_number="2" size_in_bytes="8" start_sector="1" value="NUM_DISK_SECTORS-1." what="Update Primary Header with BackupGPT Header Location."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="24" filename="gpt_backup2.bin" physical_partition_number="2" size_in_bytes="8" start_sector="4" value="NUM_DISK_SECTORS-1." what="Update Backup Header with CurrentLBA."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="24" filename="DISK" physical_partition_number="2" size_in_bytes="8" start_sector="NUM_DISK_SECTORS-1." value="NUM_DISK_SECTORS-1." what="Update Backup Header with CurrentLBA."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="72" filename="gpt_backup2.bin" physical_partition_number="2" size_in_bytes="8" start_sector="4" value="NUM_DISK_SECTORS-5." what="Update Backup Header with Partition Array Location."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="72" filename="DISK" physical_partition_number="2" size_in_bytes="8" start_sector="NUM_DISK_SECTORS-1" value="NUM_DISK_SECTORS-5." what="Update Backup Header with Partition Array Location."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="88" filename="gpt_main2.bin" physical_partition_number="2" size_in_bytes="4" start_sector="1" value="CRC32(2,4096)" what="Update Primary Header with CRC of Partition Array."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="88" filename="DISK" physical_partition_number="2" size_in_bytes="4" start_sector="1" value="CRC32(2,4096)" what="Update Primary Header with CRC of Partition Array."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="88" filename="gpt_backup2.bin" physical_partition_number="2" size_in_bytes="4" start_sector="4" value="CRC32(0,4096)" what="Update Backup Header with CRC of Partition Array."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="88" filename="DISK" physical_partition_number="2" size_in_bytes="4" start_sector="NUM_DISK_SECTORS-1." value="CRC32(NUM_DISK_SECTORS-5.,4096)" what="Update Backup Header with CRC of Partition Array."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="16" filename="gpt_main2.bin" physical_partition_number="2" size_in_bytes="4" start_sector="1" value="0" what="Zero Out Header CRC in Primary Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="16" filename="gpt_main2.bin" physical_partition_number="2" size_in_bytes="4" start_sector="1" value="CRC32(1,92)" what="Update Primary Header with CRC of Primary Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="16" filename="DISK" physical_partition_number="2" size_in_bytes="4" start_sector="1" value="0" what="Zero Out Header CRC in Primary Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="16" filename="DISK" physical_partition_number="2" size_in_bytes="4" start_sector="1" value="CRC32(1,92)" what="Update Primary Header with CRC of Primary Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="16" filename="gpt_backup2.bin" physical_partition_number="2" size_in_bytes="4" start_sector="4" value="0" what="Zero Out Header CRC in Backup Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="16" filename="gpt_backup2.bin" physical_partition_number="2" size_in_bytes="4" start_sector="4" value="CRC32(4,92)" what="Update Backup Header with CRC of Backup Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="16" filename="DISK" physical_partition_number="2" size_in_bytes="4" start_sector="NUM_DISK_SECTORS-1." value="0" what="Zero Out Header CRC in Backup Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="16" filename="DISK" physical_partition_number="2" size_in_bytes="4" start_sector="NUM_DISK_SECTORS-1." value="CRC32(NUM_DISK_SECTORS-1.,92)" what="Update Backup Header with CRC of Backup Header."/>
+</patches>
diff --git a/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/patch3.xml b/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/patch3.xml
new file mode 100644
index 0000000..432fa22
--- /dev/null
+++ b/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/patch3.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" ?>
+<patches>
+ <!--NOTE: This is an ** Autogenerated file **-->
+ <!--NOTE: Patching is in little endian format, i.e. 0xAABBCCDD will look like DD CC BB AA in the file or on disk-->
+ <!--NOTE: This file is used by Trace32 - So make sure to add decimals, i.e. 0x10-10=0, *but* 0x10-10.=6.-->
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="552" filename="gpt_main3.bin" physical_partition_number="3" size_in_bytes="8" start_sector="2" value="NUM_DISK_SECTORS-6." what="Update last partition 5 'last_parti' with actual size in Primary Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="552" filename="DISK" physical_partition_number="3" size_in_bytes="8" start_sector="2" value="NUM_DISK_SECTORS-6." what="Update last partition 5 'last_parti' with actual size in Primary Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="552" filename="gpt_backup3.bin" physical_partition_number="3" size_in_bytes="8" start_sector="0" value="NUM_DISK_SECTORS-6." what="Update last partition 5 'last_parti' with actual size in Backup Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="552" filename="DISK" physical_partition_number="3" size_in_bytes="8" start_sector="NUM_DISK_SECTORS-5." value="NUM_DISK_SECTORS-6." what="Update last partition 5 'last_parti' with actual size in Backup Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="48" filename="gpt_main3.bin" physical_partition_number="3" size_in_bytes="8" start_sector="1" value="NUM_DISK_SECTORS-6." what="Update Primary Header with LastUseableLBA."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="48" filename="DISK" physical_partition_number="3" size_in_bytes="8" start_sector="1" value="NUM_DISK_SECTORS-6." what="Update Primary Header with LastUseableLBA."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="48" filename="gpt_backup3.bin" physical_partition_number="3" size_in_bytes="8" start_sector="4" value="NUM_DISK_SECTORS-6." what="Update Backup Header with LastUseableLBA."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="48" filename="DISK" physical_partition_number="3" size_in_bytes="8" start_sector="NUM_DISK_SECTORS-1." value="NUM_DISK_SECTORS-6." what="Update Backup Header with LastUseableLBA."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="32" filename="gpt_main3.bin" physical_partition_number="3" size_in_bytes="8" start_sector="1" value="NUM_DISK_SECTORS-1." what="Update Primary Header with BackupGPT Header Location."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="32" filename="DISK" physical_partition_number="3" size_in_bytes="8" start_sector="1" value="NUM_DISK_SECTORS-1." what="Update Primary Header with BackupGPT Header Location."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="24" filename="gpt_backup3.bin" physical_partition_number="3" size_in_bytes="8" start_sector="4" value="NUM_DISK_SECTORS-1." what="Update Backup Header with CurrentLBA."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="24" filename="DISK" physical_partition_number="3" size_in_bytes="8" start_sector="NUM_DISK_SECTORS-1." value="NUM_DISK_SECTORS-1." what="Update Backup Header with CurrentLBA."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="72" filename="gpt_backup3.bin" physical_partition_number="3" size_in_bytes="8" start_sector="4" value="NUM_DISK_SECTORS-5." what="Update Backup Header with Partition Array Location."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="72" filename="DISK" physical_partition_number="3" size_in_bytes="8" start_sector="NUM_DISK_SECTORS-1" value="NUM_DISK_SECTORS-5." what="Update Backup Header with Partition Array Location."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="88" filename="gpt_main3.bin" physical_partition_number="3" size_in_bytes="4" start_sector="1" value="CRC32(2,4096)" what="Update Primary Header with CRC of Partition Array."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="88" filename="DISK" physical_partition_number="3" size_in_bytes="4" start_sector="1" value="CRC32(2,4096)" what="Update Primary Header with CRC of Partition Array."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="88" filename="gpt_backup3.bin" physical_partition_number="3" size_in_bytes="4" start_sector="4" value="CRC32(0,4096)" what="Update Backup Header with CRC of Partition Array."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="88" filename="DISK" physical_partition_number="3" size_in_bytes="4" start_sector="NUM_DISK_SECTORS-1." value="CRC32(NUM_DISK_SECTORS-5.,4096)" what="Update Backup Header with CRC of Partition Array."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="16" filename="gpt_main3.bin" physical_partition_number="3" size_in_bytes="4" start_sector="1" value="0" what="Zero Out Header CRC in Primary Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="16" filename="gpt_main3.bin" physical_partition_number="3" size_in_bytes="4" start_sector="1" value="CRC32(1,92)" what="Update Primary Header with CRC of Primary Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="16" filename="DISK" physical_partition_number="3" size_in_bytes="4" start_sector="1" value="0" what="Zero Out Header CRC in Primary Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="16" filename="DISK" physical_partition_number="3" size_in_bytes="4" start_sector="1" value="CRC32(1,92)" what="Update Primary Header with CRC of Primary Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="16" filename="gpt_backup3.bin" physical_partition_number="3" size_in_bytes="4" start_sector="4" value="0" what="Zero Out Header CRC in Backup Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="16" filename="gpt_backup3.bin" physical_partition_number="3" size_in_bytes="4" start_sector="4" value="CRC32(4,92)" what="Update Backup Header with CRC of Backup Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="16" filename="DISK" physical_partition_number="3" size_in_bytes="4" start_sector="NUM_DISK_SECTORS-1." value="0" what="Zero Out Header CRC in Backup Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="16" filename="DISK" physical_partition_number="3" size_in_bytes="4" start_sector="NUM_DISK_SECTORS-1." value="CRC32(NUM_DISK_SECTORS-1.,92)" what="Update Backup Header with CRC of Backup Header."/>
+</patches>
diff --git a/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/patch4.xml b/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/patch4.xml
new file mode 100644
index 0000000..8e55310
--- /dev/null
+++ b/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/patch4.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" ?>
+<patches>
+ <!--NOTE: This is an ** Autogenerated file **-->
+ <!--NOTE: Patching is in little endian format, i.e. 0xAABBCCDD will look like DD CC BB AA in the file or on disk-->
+ <!--NOTE: This file is used by Trace32 - So make sure to add decimals, i.e. 0x10-10=0, *but* 0x10-10.=6.-->
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="3624" filename="gpt_main4.bin" physical_partition_number="4" size_in_bytes="8" start_sector="3" value="NUM_DISK_SECTORS-6." what="Update last partition 61 'last_parti' with actual size in Primary Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="3624" filename="DISK" physical_partition_number="4" size_in_bytes="8" start_sector="3" value="NUM_DISK_SECTORS-6." what="Update last partition 61 'last_parti' with actual size in Primary Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="3624" filename="gpt_backup4.bin" physical_partition_number="4" size_in_bytes="8" start_sector="1" value="NUM_DISK_SECTORS-6." what="Update last partition 61 'last_parti' with actual size in Backup Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="3624" filename="DISK" physical_partition_number="4" size_in_bytes="8" start_sector="NUM_DISK_SECTORS-4." value="NUM_DISK_SECTORS-6." what="Update last partition 61 'last_parti' with actual size in Backup Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="48" filename="gpt_main4.bin" physical_partition_number="4" size_in_bytes="8" start_sector="1" value="NUM_DISK_SECTORS-6." what="Update Primary Header with LastUseableLBA."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="48" filename="DISK" physical_partition_number="4" size_in_bytes="8" start_sector="1" value="NUM_DISK_SECTORS-6." what="Update Primary Header with LastUseableLBA."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="48" filename="gpt_backup4.bin" physical_partition_number="4" size_in_bytes="8" start_sector="4" value="NUM_DISK_SECTORS-6." what="Update Backup Header with LastUseableLBA."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="48" filename="DISK" physical_partition_number="4" size_in_bytes="8" start_sector="NUM_DISK_SECTORS-1." value="NUM_DISK_SECTORS-6." what="Update Backup Header with LastUseableLBA."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="32" filename="gpt_main4.bin" physical_partition_number="4" size_in_bytes="8" start_sector="1" value="NUM_DISK_SECTORS-1." what="Update Primary Header with BackupGPT Header Location."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="32" filename="DISK" physical_partition_number="4" size_in_bytes="8" start_sector="1" value="NUM_DISK_SECTORS-1." what="Update Primary Header with BackupGPT Header Location."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="24" filename="gpt_backup4.bin" physical_partition_number="4" size_in_bytes="8" start_sector="4" value="NUM_DISK_SECTORS-1." what="Update Backup Header with CurrentLBA."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="24" filename="DISK" physical_partition_number="4" size_in_bytes="8" start_sector="NUM_DISK_SECTORS-1." value="NUM_DISK_SECTORS-1." what="Update Backup Header with CurrentLBA."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="72" filename="gpt_backup4.bin" physical_partition_number="4" size_in_bytes="8" start_sector="4" value="NUM_DISK_SECTORS-5." what="Update Backup Header with Partition Array Location."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="72" filename="DISK" physical_partition_number="4" size_in_bytes="8" start_sector="NUM_DISK_SECTORS-1" value="NUM_DISK_SECTORS-5." what="Update Backup Header with Partition Array Location."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="88" filename="gpt_main4.bin" physical_partition_number="4" size_in_bytes="4" start_sector="1" value="CRC32(2,8192)" what="Update Primary Header with CRC of Partition Array."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="88" filename="DISK" physical_partition_number="4" size_in_bytes="4" start_sector="1" value="CRC32(2,8192)" what="Update Primary Header with CRC of Partition Array."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="88" filename="gpt_backup4.bin" physical_partition_number="4" size_in_bytes="4" start_sector="4" value="CRC32(0,8192)" what="Update Backup Header with CRC of Partition Array."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="88" filename="DISK" physical_partition_number="4" size_in_bytes="4" start_sector="NUM_DISK_SECTORS-1." value="CRC32(NUM_DISK_SECTORS-5.,8192)" what="Update Backup Header with CRC of Partition Array."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="16" filename="gpt_main4.bin" physical_partition_number="4" size_in_bytes="4" start_sector="1" value="0" what="Zero Out Header CRC in Primary Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="16" filename="gpt_main4.bin" physical_partition_number="4" size_in_bytes="4" start_sector="1" value="CRC32(1,92)" what="Update Primary Header with CRC of Primary Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="16" filename="DISK" physical_partition_number="4" size_in_bytes="4" start_sector="1" value="0" what="Zero Out Header CRC in Primary Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="16" filename="DISK" physical_partition_number="4" size_in_bytes="4" start_sector="1" value="CRC32(1,92)" what="Update Primary Header with CRC of Primary Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="16" filename="gpt_backup4.bin" physical_partition_number="4" size_in_bytes="4" start_sector="4" value="0" what="Zero Out Header CRC in Backup Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="16" filename="gpt_backup4.bin" physical_partition_number="4" size_in_bytes="4" start_sector="4" value="CRC32(4,92)" what="Update Backup Header with CRC of Backup Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="16" filename="DISK" physical_partition_number="4" size_in_bytes="4" start_sector="NUM_DISK_SECTORS-1." value="0" what="Zero Out Header CRC in Backup Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="16" filename="DISK" physical_partition_number="4" size_in_bytes="4" start_sector="NUM_DISK_SECTORS-1." value="CRC32(NUM_DISK_SECTORS-1.,92)" what="Update Backup Header with CRC of Backup Header."/>
+</patches>
diff --git a/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/patch5.xml b/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/patch5.xml
new file mode 100644
index 0000000..cdd916f
--- /dev/null
+++ b/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/patch5.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" ?>
+<patches>
+ <!--NOTE: This is an ** Autogenerated file **-->
+ <!--NOTE: Patching is in little endian format, i.e. 0xAABBCCDD will look like DD CC BB AA in the file or on disk-->
+ <!--NOTE: This file is used by Trace32 - So make sure to add decimals, i.e. 0x10-10=0, *but* 0x10-10.=6.-->
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="1448" filename="gpt_main5.bin" physical_partition_number="5" size_in_bytes="8" start_sector="2" value="NUM_DISK_SECTORS-6." what="Update last partition 12 'last_parti' with actual size in Primary Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="1448" filename="DISK" physical_partition_number="5" size_in_bytes="8" start_sector="2" value="NUM_DISK_SECTORS-6." what="Update last partition 12 'last_parti' with actual size in Primary Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="1448" filename="gpt_backup5.bin" physical_partition_number="5" size_in_bytes="8" start_sector="0" value="NUM_DISK_SECTORS-6." what="Update last partition 12 'last_parti' with actual size in Backup Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="1448" filename="DISK" physical_partition_number="5" size_in_bytes="8" start_sector="NUM_DISK_SECTORS-5." value="NUM_DISK_SECTORS-6." what="Update last partition 12 'last_parti' with actual size in Backup Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="48" filename="gpt_main5.bin" physical_partition_number="5" size_in_bytes="8" start_sector="1" value="NUM_DISK_SECTORS-6." what="Update Primary Header with LastUseableLBA."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="48" filename="DISK" physical_partition_number="5" size_in_bytes="8" start_sector="1" value="NUM_DISK_SECTORS-6." what="Update Primary Header with LastUseableLBA."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="48" filename="gpt_backup5.bin" physical_partition_number="5" size_in_bytes="8" start_sector="4" value="NUM_DISK_SECTORS-6." what="Update Backup Header with LastUseableLBA."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="48" filename="DISK" physical_partition_number="5" size_in_bytes="8" start_sector="NUM_DISK_SECTORS-1." value="NUM_DISK_SECTORS-6." what="Update Backup Header with LastUseableLBA."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="32" filename="gpt_main5.bin" physical_partition_number="5" size_in_bytes="8" start_sector="1" value="NUM_DISK_SECTORS-1." what="Update Primary Header with BackupGPT Header Location."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="32" filename="DISK" physical_partition_number="5" size_in_bytes="8" start_sector="1" value="NUM_DISK_SECTORS-1." what="Update Primary Header with BackupGPT Header Location."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="24" filename="gpt_backup5.bin" physical_partition_number="5" size_in_bytes="8" start_sector="4" value="NUM_DISK_SECTORS-1." what="Update Backup Header with CurrentLBA."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="24" filename="DISK" physical_partition_number="5" size_in_bytes="8" start_sector="NUM_DISK_SECTORS-1." value="NUM_DISK_SECTORS-1." what="Update Backup Header with CurrentLBA."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="72" filename="gpt_backup5.bin" physical_partition_number="5" size_in_bytes="8" start_sector="4" value="NUM_DISK_SECTORS-5." what="Update Backup Header with Partition Array Location."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="72" filename="DISK" physical_partition_number="5" size_in_bytes="8" start_sector="NUM_DISK_SECTORS-1" value="NUM_DISK_SECTORS-5." what="Update Backup Header with Partition Array Location."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="88" filename="gpt_main5.bin" physical_partition_number="5" size_in_bytes="4" start_sector="1" value="CRC32(2,4096)" what="Update Primary Header with CRC of Partition Array."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="88" filename="DISK" physical_partition_number="5" size_in_bytes="4" start_sector="1" value="CRC32(2,4096)" what="Update Primary Header with CRC of Partition Array."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="88" filename="gpt_backup5.bin" physical_partition_number="5" size_in_bytes="4" start_sector="4" value="CRC32(0,4096)" what="Update Backup Header with CRC of Partition Array."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="88" filename="DISK" physical_partition_number="5" size_in_bytes="4" start_sector="NUM_DISK_SECTORS-1." value="CRC32(NUM_DISK_SECTORS-5.,4096)" what="Update Backup Header with CRC of Partition Array."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="16" filename="gpt_main5.bin" physical_partition_number="5" size_in_bytes="4" start_sector="1" value="0" what="Zero Out Header CRC in Primary Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="16" filename="gpt_main5.bin" physical_partition_number="5" size_in_bytes="4" start_sector="1" value="CRC32(1,92)" what="Update Primary Header with CRC of Primary Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="16" filename="DISK" physical_partition_number="5" size_in_bytes="4" start_sector="1" value="0" what="Zero Out Header CRC in Primary Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="16" filename="DISK" physical_partition_number="5" size_in_bytes="4" start_sector="1" value="CRC32(1,92)" what="Update Primary Header with CRC of Primary Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="16" filename="gpt_backup5.bin" physical_partition_number="5" size_in_bytes="4" start_sector="4" value="0" what="Zero Out Header CRC in Backup Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="16" filename="gpt_backup5.bin" physical_partition_number="5" size_in_bytes="4" start_sector="4" value="CRC32(4,92)" what="Update Backup Header with CRC of Backup Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="16" filename="DISK" physical_partition_number="5" size_in_bytes="4" start_sector="NUM_DISK_SECTORS-1." value="0" what="Zero Out Header CRC in Backup Header."/>
+ <patch SECTOR_SIZE_IN_BYTES="4096" byte_offset="16" filename="DISK" physical_partition_number="5" size_in_bytes="4" start_sector="NUM_DISK_SECTORS-1." value="CRC32(NUM_DISK_SECTORS-1.,92)" what="Update Backup Header with CRC of Backup Header."/>
+</patches>
diff --git a/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/prog_firehose_ddr.elf b/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/prog_firehose_ddr.elf
new file mode 100644
index 0000000..cfd509c
--- /dev/null
+++ b/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/prog_firehose_ddr.elf
Binary files differ
diff --git a/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/qupv3fw.elf b/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/qupv3fw.elf
new file mode 100644
index 0000000..b484124
--- /dev/null
+++ b/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/qupv3fw.elf
Binary files differ
diff --git a/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/rawprogram0.xml b/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/rawprogram0.xml
new file mode 100644
index 0000000..cfa46b1
--- /dev/null
+++ b/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/rawprogram0.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" ?>
+<data>
+ <!--NOTE: This is an ** Autogenerated file **-->
+ <!--NOTE: Sector size is 4096bytes-->
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="" label="persist" num_partition_sectors="8192" partofsingleimage="false" physical_partition_number="0" readbackverify="false" size_in_KB="32768.0" sparse="false" start_byte_hex="0x6000" start_sector="6"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="" label="misc" num_partition_sectors="256" partofsingleimage="false" physical_partition_number="0" readbackverify="false" size_in_KB="1024.0" sparse="false" start_byte_hex="0x2006000" start_sector="8198"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="" label="keystore" num_partition_sectors="128" partofsingleimage="false" physical_partition_number="0" readbackverify="false" size_in_KB="512.0" sparse="false" start_byte_hex="0x2106000" start_sector="8454"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="" label="system_a" num_partition_sectors="1485448" partofsingleimage="false" physical_partition_number="0" readbackverify="false" size_in_KB="5941792.0" sparse="false" start_byte_hex="0x2186000" start_sector="8582"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="" label="system_b" num_partition_sectors="1485448" partofsingleimage="false" physical_partition_number="0" readbackverify="false" size_in_KB="5941792.0" sparse="false" start_byte_hex="0x16cc0e000" start_sector="1494030"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="" label="vendor_boot_a" num_partition_sectors="32768" partofsingleimage="false" physical_partition_number="0" readbackverify="false" size_in_KB="131072.0" sparse="false" start_byte_hex="0x2d7696000" start_sector="2979478"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="" label="vendor_boot_b" num_partition_sectors="32768" partofsingleimage="false" physical_partition_number="0" readbackverify="false" size_in_KB="131072.0" sparse="false" start_byte_hex="0x2df696000" start_sector="3012246"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="" label="super" num_partition_sectors="3036432" partofsingleimage="false" physical_partition_number="0" readbackverify="false" size_in_KB="12145728.0" sparse="false" start_byte_hex="0x2e7696000" start_sector="3045014"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="" label="systemrw" num_partition_sectors="4096" partofsingleimage="false" physical_partition_number="0" readbackverify="false" size_in_KB="16384.0" sparse="false" start_byte_hex="0x5ccba6000" start_sector="6081446"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="" label="cache" num_partition_sectors="16384" partofsingleimage="false" physical_partition_number="0" readbackverify="false" size_in_KB="65536.0" sparse="false" start_byte_hex="0x5cdba6000" start_sector="6085542"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="" label="metadata" num_partition_sectors="16384" partofsingleimage="false" physical_partition_number="0" readbackverify="false" size_in_KB="65536.0" sparse="false" start_byte_hex="0x5d1ba6000" start_sector="6101926"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="" label="userdata" num_partition_sectors="0" partofsingleimage="false" physical_partition_number="0" readbackverify="false" size_in_KB="0" sparse="false" start_byte_hex="0x5d5ba6000" start_sector="6118310"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="gpt_main0.bin" label="PrimaryGPT" num_partition_sectors="6" partofsingleimage="true" physical_partition_number="0" readbackverify="false" size_in_KB="24.0" sparse="false" start_byte_hex="0x0" start_sector="0"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="gpt_backup0.bin" label="BackupGPT" num_partition_sectors="5" partofsingleimage="true" physical_partition_number="0" readbackverify="false" size_in_KB="20.0" sparse="false" start_byte_hex="(4096*NUM_DISK_SECTORS)-20480." start_sector="NUM_DISK_SECTORS-5."/>
+</data>
diff --git a/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/rawprogram1.xml b/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/rawprogram1.xml
new file mode 100644
index 0000000..1793287
--- /dev/null
+++ b/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/rawprogram1.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" ?>
+<data>
+ <!--NOTE: This is an ** Autogenerated file **-->
+ <!--NOTE: Sector size is 4096bytes-->
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="xbl.elf" label="xbl_a" num_partition_sectors="896" partofsingleimage="false" physical_partition_number="1" readbackverify="false" size_in_KB="3584.0" sparse="false" start_byte_hex="0x6000" start_sector="6"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="xbl_config.elf" label="xbl_config_a" num_partition_sectors="32" partofsingleimage="false" physical_partition_number="1" readbackverify="false" size_in_KB="128.0" sparse="false" start_byte_hex="0x386000" start_sector="902"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="" label="last_parti" num_partition_sectors="0" partofsingleimage="false" physical_partition_number="1" readbackverify="false" size_in_KB="0" sparse="false" start_byte_hex="0x3a6000" start_sector="934"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="gpt_main1.bin" label="PrimaryGPT" num_partition_sectors="6" partofsingleimage="true" physical_partition_number="1" readbackverify="false" size_in_KB="24.0" sparse="false" start_byte_hex="0x0" start_sector="0"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="gpt_backup1.bin" label="BackupGPT" num_partition_sectors="5" partofsingleimage="true" physical_partition_number="1" readbackverify="false" size_in_KB="20.0" sparse="false" start_byte_hex="(4096*NUM_DISK_SECTORS)-20480." start_sector="NUM_DISK_SECTORS-5."/>
+</data>
diff --git a/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/rawprogram2.xml b/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/rawprogram2.xml
new file mode 100644
index 0000000..e8aa1b8
--- /dev/null
+++ b/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/rawprogram2.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" ?>
+<data>
+ <!--NOTE: This is an ** Autogenerated file **-->
+ <!--NOTE: Sector size is 4096bytes-->
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="xbl.elf" label="xbl_b" num_partition_sectors="896" partofsingleimage="false" physical_partition_number="2" readbackverify="false" size_in_KB="3584.0" sparse="false" start_byte_hex="0x6000" start_sector="6"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="xbl_config.elf" label="xbl_config_b" num_partition_sectors="32" partofsingleimage="false" physical_partition_number="2" readbackverify="false" size_in_KB="128.0" sparse="false" start_byte_hex="0x386000" start_sector="902"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="" label="last_parti" num_partition_sectors="0" partofsingleimage="false" physical_partition_number="2" readbackverify="false" size_in_KB="0" sparse="false" start_byte_hex="0x3a6000" start_sector="934"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="gpt_main2.bin" label="PrimaryGPT" num_partition_sectors="6" partofsingleimage="true" physical_partition_number="2" readbackverify="false" size_in_KB="24.0" sparse="false" start_byte_hex="0x0" start_sector="0"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="gpt_backup2.bin" label="BackupGPT" num_partition_sectors="5" partofsingleimage="true" physical_partition_number="2" readbackverify="false" size_in_KB="20.0" sparse="false" start_byte_hex="(4096*NUM_DISK_SECTORS)-20480." start_sector="NUM_DISK_SECTORS-5."/>
+</data>
diff --git a/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/rawprogram3.xml b/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/rawprogram3.xml
new file mode 100644
index 0000000..75a1d39
--- /dev/null
+++ b/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/rawprogram3.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" ?>
+<data>
+ <!--NOTE: This is an ** Autogenerated file **-->
+ <!--NOTE: Sector size is 4096bytes-->
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="" label="ALIGN_TO_128K_1" num_partition_sectors="26" partofsingleimage="false" physical_partition_number="3" readbackverify="false" size_in_KB="104.0" sparse="false" start_byte_hex="0x6000" start_sector="6"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="cdt.bin" label="cdt" num_partition_sectors="32" partofsingleimage="false" physical_partition_number="3" readbackverify="false" size_in_KB="128.0" sparse="false" start_byte_hex="0x20000" start_sector="32"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="" label="ddr" num_partition_sectors="512" partofsingleimage="false" physical_partition_number="3" readbackverify="false" size_in_KB="2048.0" sparse="false" start_byte_hex="0x40000" start_sector="64"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="" label="mdmddr" num_partition_sectors="256" partofsingleimage="false" physical_partition_number="3" readbackverify="false" size_in_KB="1024.0" sparse="false" start_byte_hex="0x240000" start_sector="576"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="" label="last_parti" num_partition_sectors="0" partofsingleimage="false" physical_partition_number="3" readbackverify="false" size_in_KB="0" sparse="false" start_byte_hex="0x340000" start_sector="832"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="gpt_main3.bin" label="PrimaryGPT" num_partition_sectors="6" partofsingleimage="true" physical_partition_number="3" readbackverify="false" size_in_KB="24.0" sparse="false" start_byte_hex="0x0" start_sector="0"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="gpt_backup3.bin" label="BackupGPT" num_partition_sectors="5" partofsingleimage="true" physical_partition_number="3" readbackverify="false" size_in_KB="20.0" sparse="false" start_byte_hex="(4096*NUM_DISK_SECTORS)-20480." start_sector="NUM_DISK_SECTORS-5."/>
+</data>
diff --git a/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/rawprogram4.xml b/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/rawprogram4.xml
new file mode 100644
index 0000000..474113f
--- /dev/null
+++ b/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/rawprogram4.xml
@@ -0,0 +1,68 @@
+<?xml version="1.0" ?>
+<data>
+ <!--NOTE: This is an ** Autogenerated file **-->
+ <!--NOTE: Sector size is 4096bytes-->
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="aop.mbn" label="aop_a" num_partition_sectors="128" partofsingleimage="false" physical_partition_number="4" readbackverify="false" size_in_KB="512.0" sparse="false" start_byte_hex="0x6000" start_sector="6"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="tz.mbn" label="tz_a" num_partition_sectors="1024" partofsingleimage="false" physical_partition_number="4" readbackverify="false" size_in_KB="4096.0" sparse="false" start_byte_hex="0x86000" start_sector="134"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="hyp.mbn" label="hyp_a" num_partition_sectors="2048" partofsingleimage="false" physical_partition_number="4" readbackverify="false" size_in_KB="8192.0" sparse="false" start_byte_hex="0x486000" start_sector="1158"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="" label="modem_a" num_partition_sectors="101120" partofsingleimage="false" physical_partition_number="4" readbackverify="false" size_in_KB="404480.0" sparse="false" start_byte_hex="0xc86000" start_sector="3206"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="BTFM.bin" label="bluetooth_a" num_partition_sectors="256" partofsingleimage="false" physical_partition_number="4" readbackverify="false" size_in_KB="1024.0" sparse="false" start_byte_hex="0x19786000" start_sector="104326"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="" label="mdtpsecapp_a" num_partition_sectors="1024" partofsingleimage="false" physical_partition_number="4" readbackverify="false" size_in_KB="4096.0" sparse="false" start_byte_hex="0x19886000" start_sector="104582"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="" label="mdtp_a" num_partition_sectors="8192" partofsingleimage="false" physical_partition_number="4" readbackverify="false" size_in_KB="32768.0" sparse="false" start_byte_hex="0x19c86000" start_sector="105606"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="abl.elf" label="abl_a" num_partition_sectors="256" partofsingleimage="false" physical_partition_number="4" readbackverify="false" size_in_KB="1024.0" sparse="false" start_byte_hex="0x1bc86000" start_sector="113798"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="dspso.bin" label="dsp_a" num_partition_sectors="16384" partofsingleimage="false" physical_partition_number="4" readbackverify="false" size_in_KB="65536.0" sparse="false" start_byte_hex="0x1bd86000" start_sector="114054"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="km4.mbn" label="keymaster_a" num_partition_sectors="128" partofsingleimage="false" physical_partition_number="4" readbackverify="false" size_in_KB="512.0" sparse="false" start_byte_hex="0x1fd86000" start_sector="130438"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="" label="boot_a" num_partition_sectors="24576" partofsingleimage="false" physical_partition_number="4" readbackverify="false" size_in_KB="98304.0" sparse="false" start_byte_hex="0x1fe06000" start_sector="130566"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="cmnlib.mbn" label="cmnlib_a" num_partition_sectors="128" partofsingleimage="false" physical_partition_number="4" readbackverify="false" size_in_KB="512.0" sparse="false" start_byte_hex="0x25e06000" start_sector="155142"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="cmnlib64.mbn" label="cmnlib64_a" num_partition_sectors="128" partofsingleimage="false" physical_partition_number="4" readbackverify="false" size_in_KB="512.0" sparse="false" start_byte_hex="0x25e86000" start_sector="155270"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="devcfg.mbn" label="devcfg_a" num_partition_sectors="32" partofsingleimage="false" physical_partition_number="4" readbackverify="false" size_in_KB="128.0" sparse="false" start_byte_hex="0x25f06000" start_sector="155398"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="qupv3fw.elf" label="qupfw_a" num_partition_sectors="20" partofsingleimage="false" physical_partition_number="4" readbackverify="false" size_in_KB="80.0" sparse="false" start_byte_hex="0x25f26000" start_sector="155430"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="" label="vbmeta_a" num_partition_sectors="16" partofsingleimage="false" physical_partition_number="4" readbackverify="false" size_in_KB="64.0" sparse="false" start_byte_hex="0x25f3a000" start_sector="155450"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="" label="dtbo_a" num_partition_sectors="6144" partofsingleimage="false" physical_partition_number="4" readbackverify="false" size_in_KB="24576.0" sparse="false" start_byte_hex="0x25f4a000" start_sector="155466"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="uefi_sec.mbn" label="uefisecapp_a" num_partition_sectors="512" partofsingleimage="false" physical_partition_number="4" readbackverify="false" size_in_KB="2048.0" sparse="false" start_byte_hex="0x2774a000" start_sector="161610"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="multi_image.mbn" label="multiimgoem_a" num_partition_sectors="8" partofsingleimage="false" physical_partition_number="4" readbackverify="false" size_in_KB="32.0" sparse="false" start_byte_hex="0x2794a000" start_sector="162122"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="" label="multiimgqti_a" num_partition_sectors="8" partofsingleimage="false" physical_partition_number="4" readbackverify="false" size_in_KB="32.0" sparse="false" start_byte_hex="0x27952000" start_sector="162130"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="" label="vm-linux_a" num_partition_sectors="8192" partofsingleimage="false" physical_partition_number="4" readbackverify="false" size_in_KB="32768.0" sparse="false" start_byte_hex="0x2795a000" start_sector="162138"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="featenabler.mbn" label="featenabler_a" num_partition_sectors="32" partofsingleimage="false" physical_partition_number="4" readbackverify="false" size_in_KB="128.0" sparse="false" start_byte_hex="0x2995a000" start_sector="170330"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="imagefv.elf" label="imagefv_a" num_partition_sectors="512" partofsingleimage="false" physical_partition_number="4" readbackverify="false" size_in_KB="2048.0" sparse="false" start_byte_hex="0x2997a000" start_sector="170362"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="aop.mbn" label="aop_b" num_partition_sectors="128" partofsingleimage="false" physical_partition_number="4" readbackverify="false" size_in_KB="512.0" sparse="false" start_byte_hex="0x29b7a000" start_sector="170874"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="tz.mbn" label="tz_b" num_partition_sectors="1024" partofsingleimage="false" physical_partition_number="4" readbackverify="false" size_in_KB="4096.0" sparse="false" start_byte_hex="0x29bfa000" start_sector="171002"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="hyp.mbn" label="hyp_b" num_partition_sectors="2048" partofsingleimage="false" physical_partition_number="4" readbackverify="false" size_in_KB="8192.0" sparse="false" start_byte_hex="0x29ffa000" start_sector="172026"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="" label="modem_b" num_partition_sectors="101120" partofsingleimage="false" physical_partition_number="4" readbackverify="false" size_in_KB="404480.0" sparse="false" start_byte_hex="0x2a7fa000" start_sector="174074"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="BTFM.bin" label="bluetooth_b" num_partition_sectors="256" partofsingleimage="false" physical_partition_number="4" readbackverify="false" size_in_KB="1024.0" sparse="false" start_byte_hex="0x432fa000" start_sector="275194"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="" label="mdtpsecapp_b" num_partition_sectors="1024" partofsingleimage="false" physical_partition_number="4" readbackverify="false" size_in_KB="4096.0" sparse="false" start_byte_hex="0x433fa000" start_sector="275450"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="" label="mdtp_b" num_partition_sectors="8192" partofsingleimage="false" physical_partition_number="4" readbackverify="false" size_in_KB="32768.0" sparse="false" start_byte_hex="0x437fa000" start_sector="276474"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="abl.elf" label="abl_b" num_partition_sectors="256" partofsingleimage="false" physical_partition_number="4" readbackverify="false" size_in_KB="1024.0" sparse="false" start_byte_hex="0x457fa000" start_sector="284666"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="dspso.bin" label="dsp_b" num_partition_sectors="16384" partofsingleimage="false" physical_partition_number="4" readbackverify="false" size_in_KB="65536.0" sparse="false" start_byte_hex="0x458fa000" start_sector="284922"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="km4.mbn" label="keymaster_b" num_partition_sectors="128" partofsingleimage="false" physical_partition_number="4" readbackverify="false" size_in_KB="512.0" sparse="false" start_byte_hex="0x498fa000" start_sector="301306"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="boot-erase.img" label="boot_b" num_partition_sectors="24576" partofsingleimage="false" physical_partition_number="4" readbackverify="false" size_in_KB="98304.0" sparse="false" start_byte_hex="0x4997a000" start_sector="301434"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="cmnlib.mbn" label="cmnlib_b" num_partition_sectors="128" partofsingleimage="false" physical_partition_number="4" readbackverify="false" size_in_KB="512.0" sparse="false" start_byte_hex="0x4f97a000" start_sector="326010"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="cmnlib64.mbn" label="cmnlib64_b" num_partition_sectors="128" partofsingleimage="false" physical_partition_number="4" readbackverify="false" size_in_KB="512.0" sparse="false" start_byte_hex="0x4f9fa000" start_sector="326138"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="devcfg.mbn" label="devcfg_b" num_partition_sectors="32" partofsingleimage="false" physical_partition_number="4" readbackverify="false" size_in_KB="128.0" sparse="false" start_byte_hex="0x4fa7a000" start_sector="326266"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="qupv3fw.elf" label="qupfw_b" num_partition_sectors="20" partofsingleimage="false" physical_partition_number="4" readbackverify="false" size_in_KB="80.0" sparse="false" start_byte_hex="0x4fa9a000" start_sector="326298"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="" label="vbmeta_b" num_partition_sectors="16" partofsingleimage="false" physical_partition_number="4" readbackverify="false" size_in_KB="64.0" sparse="false" start_byte_hex="0x4faae000" start_sector="326318"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="" label="dtbo_b" num_partition_sectors="6144" partofsingleimage="false" physical_partition_number="4" readbackverify="false" size_in_KB="24576.0" sparse="false" start_byte_hex="0x4fabe000" start_sector="326334"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="uefi_sec.mbn" label="uefisecapp_b" num_partition_sectors="512" partofsingleimage="false" physical_partition_number="4" readbackverify="false" size_in_KB="2048.0" sparse="false" start_byte_hex="0x512be000" start_sector="332478"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="multi_image.mbn" label="multiimgoem_b" num_partition_sectors="8" partofsingleimage="false" physical_partition_number="4" readbackverify="false" size_in_KB="32.0" sparse="false" start_byte_hex="0x514be000" start_sector="332990"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="" label="multiimgqti_b" num_partition_sectors="8" partofsingleimage="false" physical_partition_number="4" readbackverify="false" size_in_KB="32.0" sparse="false" start_byte_hex="0x514c6000" start_sector="332998"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="" label="vm-linux_b" num_partition_sectors="8192" partofsingleimage="false" physical_partition_number="4" readbackverify="false" size_in_KB="32768.0" sparse="false" start_byte_hex="0x514ce000" start_sector="333006"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="featenabler.mbn" label="featenabler_b" num_partition_sectors="32" partofsingleimage="false" physical_partition_number="4" readbackverify="false" size_in_KB="128.0" sparse="false" start_byte_hex="0x534ce000" start_sector="341198"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="imagefv.elf" label="imagefv_b" num_partition_sectors="512" partofsingleimage="false" physical_partition_number="4" readbackverify="false" size_in_KB="2048.0" sparse="false" start_byte_hex="0x534ee000" start_sector="341230"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="" label="devinfo" num_partition_sectors="1" partofsingleimage="false" physical_partition_number="4" readbackverify="false" size_in_KB="4.0" sparse="false" start_byte_hex="0x536ee000" start_sector="341742"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="" label="dip" num_partition_sectors="256" partofsingleimage="false" physical_partition_number="4" readbackverify="false" size_in_KB="1024.0" sparse="false" start_byte_hex="0x536ef000" start_sector="341743"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="apdp.mbn" label="apdp" num_partition_sectors="64" partofsingleimage="false" physical_partition_number="4" readbackverify="false" size_in_KB="256.0" sparse="false" start_byte_hex="0x537ef000" start_sector="341999"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="" label="msadp" num_partition_sectors="64" partofsingleimage="false" physical_partition_number="4" readbackverify="false" size_in_KB="256.0" sparse="false" start_byte_hex="0x5382f000" start_sector="342063"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="spunvm.bin" label="spunvm" num_partition_sectors="8192" partofsingleimage="false" physical_partition_number="4" readbackverify="false" size_in_KB="32768.0" sparse="false" start_byte_hex="0x5386f000" start_sector="342127"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="" label="limits" num_partition_sectors="1" partofsingleimage="false" physical_partition_number="4" readbackverify="false" size_in_KB="4.0" sparse="false" start_byte_hex="0x5586f000" start_sector="350319"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="" label="limits-cdsp" num_partition_sectors="1" partofsingleimage="false" physical_partition_number="4" readbackverify="false" size_in_KB="4.0" sparse="false" start_byte_hex="0x55870000" start_sector="350320"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="logfs_ufs_8mb.bin" label="logfs" num_partition_sectors="2048" partofsingleimage="false" physical_partition_number="4" readbackverify="false" size_in_KB="8192.0" sparse="false" start_byte_hex="0x55871000" start_sector="350321"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="" label="logdump" num_partition_sectors="16384" partofsingleimage="false" physical_partition_number="4" readbackverify="false" size_in_KB="65536.0" sparse="false" start_byte_hex="0x56071000" start_sector="352369"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="" label="storsec" num_partition_sectors="32" partofsingleimage="false" physical_partition_number="4" readbackverify="false" size_in_KB="128.0" sparse="false" start_byte_hex="0x5a071000" start_sector="368753"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="" label="uefivarstore" num_partition_sectors="128" partofsingleimage="false" physical_partition_number="4" readbackverify="false" size_in_KB="512.0" sparse="false" start_byte_hex="0x5a091000" start_sector="368785"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="" label="secdata" num_partition_sectors="7" partofsingleimage="false" physical_partition_number="4" readbackverify="false" size_in_KB="28.0" sparse="false" start_byte_hex="0x5a111000" start_sector="368913"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="" label="vm-keystore" num_partition_sectors="32" partofsingleimage="false" physical_partition_number="4" readbackverify="false" size_in_KB="128.0" sparse="false" start_byte_hex="0x5a118000" start_sector="368920"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="" label="vm-data" num_partition_sectors="1024" partofsingleimage="false" physical_partition_number="4" readbackverify="false" size_in_KB="4096.0" sparse="false" start_byte_hex="0x5a138000" start_sector="368952"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="" label="last_parti" num_partition_sectors="0" partofsingleimage="false" physical_partition_number="4" readbackverify="false" size_in_KB="0" sparse="false" start_byte_hex="0x5a538000" start_sector="369976"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="gpt_main4.bin" label="PrimaryGPT" num_partition_sectors="6" partofsingleimage="true" physical_partition_number="4" readbackverify="false" size_in_KB="24.0" sparse="false" start_byte_hex="0x0" start_sector="0"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="gpt_backup4.bin" label="BackupGPT" num_partition_sectors="5" partofsingleimage="true" physical_partition_number="4" readbackverify="false" size_in_KB="20.0" sparse="false" start_byte_hex="(4096*NUM_DISK_SECTORS)-20480." start_sector="NUM_DISK_SECTORS-5."/>
+</data>
diff --git a/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/rawprogram5.xml b/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/rawprogram5.xml
new file mode 100644
index 0000000..d1dedcc
--- /dev/null
+++ b/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/rawprogram5.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" ?>
+<data>
+ <!--NOTE: This is an ** Autogenerated file **-->
+ <!--NOTE: Sector size is 4096bytes-->
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="" label="ALIGN_TO_128K_2" num_partition_sectors="26" partofsingleimage="false" physical_partition_number="5" readbackverify="false" size_in_KB="104.0" sparse="false" start_byte_hex="0x6000" start_sector="6"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="" label="modemst1" num_partition_sectors="512" partofsingleimage="false" physical_partition_number="5" readbackverify="false" size_in_KB="2048.0" sparse="false" start_byte_hex="0x20000" start_sector="32"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="" label="modemst2" num_partition_sectors="512" partofsingleimage="false" physical_partition_number="5" readbackverify="false" size_in_KB="2048.0" sparse="false" start_byte_hex="0x220000" start_sector="544"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="" label="fsg" num_partition_sectors="512" partofsingleimage="false" physical_partition_number="5" readbackverify="false" size_in_KB="2048.0" sparse="false" start_byte_hex="0x420000" start_sector="1056"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="" label="fsc" num_partition_sectors="32" partofsingleimage="false" physical_partition_number="5" readbackverify="false" size_in_KB="128.0" sparse="false" start_byte_hex="0x620000" start_sector="1568"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="" label="mdm1m9kefs3" num_partition_sectors="512" partofsingleimage="false" physical_partition_number="5" readbackverify="false" size_in_KB="2048.0" sparse="false" start_byte_hex="0x640000" start_sector="1600"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="" label="mdm1m9kefs1" num_partition_sectors="512" partofsingleimage="false" physical_partition_number="5" readbackverify="false" size_in_KB="2048.0" sparse="false" start_byte_hex="0x840000" start_sector="2112"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="" label="mdm1m9kefs2" num_partition_sectors="512" partofsingleimage="false" physical_partition_number="5" readbackverify="false" size_in_KB="2048.0" sparse="false" start_byte_hex="0xa40000" start_sector="2624"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="" label="mdm1m9kefsc" num_partition_sectors="1" partofsingleimage="false" physical_partition_number="5" readbackverify="false" size_in_KB="4.0" sparse="false" start_byte_hex="0xc40000" start_sector="3136"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="" label="ssd" num_partition_sectors="2" partofsingleimage="false" physical_partition_number="5" readbackverify="false" size_in_KB="8.0" sparse="false" start_byte_hex="0xc41000" start_sector="3137"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="" label="frp" num_partition_sectors="128" partofsingleimage="false" physical_partition_number="5" readbackverify="false" size_in_KB="512.0" sparse="false" start_byte_hex="0xc43000" start_sector="3139"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="" label="last_parti" num_partition_sectors="0" partofsingleimage="false" physical_partition_number="5" readbackverify="false" size_in_KB="0" sparse="false" start_byte_hex="0xcc3000" start_sector="3267"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="gpt_main5.bin" label="PrimaryGPT" num_partition_sectors="6" partofsingleimage="true" physical_partition_number="5" readbackverify="false" size_in_KB="24.0" sparse="false" start_byte_hex="0x0" start_sector="0"/>
+ <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="gpt_backup5.bin" label="BackupGPT" num_partition_sectors="5" partofsingleimage="true" physical_partition_number="5" readbackverify="false" size_in_KB="20.0" sparse="false" start_byte_hex="(4096*NUM_DISK_SECTORS)-20480." start_sector="NUM_DISK_SECTORS-5."/>
+</data>
diff --git a/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/spunvm.bin b/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/spunvm.bin
new file mode 100644
index 0000000..54b48b6
--- /dev/null
+++ b/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/spunvm.bin
Binary files differ
diff --git a/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/tz.mbn b/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/tz.mbn
new file mode 100644
index 0000000..1f97ae4
--- /dev/null
+++ b/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/tz.mbn
Binary files differ
diff --git a/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/uefi_sec.mbn b/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/uefi_sec.mbn
new file mode 100644
index 0000000..295dab4
--- /dev/null
+++ b/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/uefi_sec.mbn
Binary files differ
diff --git a/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/xbl.elf b/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/xbl.elf
new file mode 100644
index 0000000..8e4c277
--- /dev/null
+++ b/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/xbl.elf
Binary files differ
diff --git a/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/xbl_config.elf b/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/xbl_config.elf
new file mode 100644
index 0000000..90c2212
--- /dev/null
+++ b/linaro_devices/qcom/rb5/rb5-bootloader-ufs-aosp-19/xbl_config.elf
Binary files differ