# ELF load details during QCC730 boot
Source: [https://docs.qualcomm.com/doc/80-Y8730-2/topic/qcc730_boot_elf_load.html](https://docs.qualcomm.com/doc/80-Y8730-2/topic/qcc730_boot_elf_load.html)
ELF loading is the main process of loading an image. As described in [QCC730 boot flow](https://docs.qualcomm.com/doc/80-Y8730-2/topic/qcc730_boot_flow.html), SBL and APP images are loaded
during bootup. For commercial products, both images can only be loaded in ELF format.
## ELF load software architecture
Source: [https://docs.qualcomm.com/doc/80-Y8730-2/topic/qcc730_boot_elf_load.html](https://docs.qualcomm.com/doc/80-Y8730-2/topic/qcc730_boot_elf_load.html)
The ELF loading is designed to support loading ELF images from different types of memory. For example, SBL images stored on RRAM and APP images stored on flash. It's realized through a virtual layer between memory driver and ELF loader, as shown in the following figure.
Figure : ELF load software architecture
## ELF load type
Source: [https://docs.qualcomm.com/doc/80-Y8730-2/topic/qcc730_boot_elf_load.html](https://docs.qualcomm.com/doc/80-Y8730-2/topic/qcc730_boot_elf_load.html)
The following three types of loading are supported for ELF images:
- FULL\_LOAD
Load all PT\_LOAD type segments to the virtual DDR specified in the program header, RAM segments to RAM, and RRAM segments to RRAM.
- RAM\_LOAD
Only load virtual addresses in RAM (0x0 ~ 0xA0000) of PT\_LOAD type segments. This type reduces the number of RRAM loading times since the code running on RRAM only need be loaded once.
After a FULL\_LOAD, you only need to run RAM\_LOAD after bootup.
- COPY\_LOAD
Copy the PT\_LOAD type segment to the physical address (PADDR) specified in the program header. This type of loading is similar to burning a BIN file, except that there is no padding between segments.
## SBL ELF load
Source: [https://docs.qualcomm.com/doc/80-Y8730-2/topic/qcc730_boot_elf_load.html](https://docs.qualcomm.com/doc/80-Y8730-2/topic/qcc730_boot_elf_load.html)
An SBL image has code/data segments and PBL patch segment, as described in [SBL image](https://docs.qualcomm.com/doc/80-Y8730-2/topic/program_images.html#sbl). The code/data segments run in the RAM, while the PBL patch segment is loaded to the PBL\_PATCH region of RRAM. As described in [ELF load type](https://docs.qualcomm.com/doc/80-Y8730-2/topic/qcc730_boot_elf_load.html#elf_load_type), code/data segments only need be loaded with RAM\_LOAD, while PBL\_PATCH need be loaded with FULL\_LOAD but only once. Therefore, a new OTA image requires a FULL\_LOAD to load both RAM segments (code/data) and RRAM segment (PBL\_PATCH). After that, only RAM\_LOAD is needed during SBL loading.
Figure : SBL ELF load
## APP ELF load
Source: [https://docs.qualcomm.com/doc/80-Y8730-2/topic/qcc730_boot_elf_load.html](https://docs.qualcomm.com/doc/80-Y8730-2/topic/qcc730_boot_elf_load.html)
The following diagram illustrates the APP ELF load process.
Figure : APP ELF load
Last Published: Jun 03, 2026
[Previous Topic
QCC730 boot flow](https://docs.qualcomm.com/bundle/publicresource/80-Y8730-2/topics/qcc730_boot_flow.md) [Next Topic
QCC730 OTA upgrade](https://docs.qualcomm.com/bundle/publicresource/80-Y8730-2/topics/firmware_upgrade.md)