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/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>