# Flash Access Service

- [API reference](https://docs.qualcomm.com/doc/80-41102-2/topic/_doxygen_rst_file__doxygen_sources_taf_flash_interface_h.html#file-taf-flash-interface-h)

The Flash Access service provides APIs for reading and writing MTD partitions and UBI volumes during FOTA operations.

## IPC interfaces binding

All the functions of this API are provided by the **tafUpdateSvc** service.

bindings:
    {
        clientExe.clientComponent.taf_flash -> tafUpdateSvc.taf_flash
    }
    Copy to clipboard

## Flash access initialization

Call [taf\_flash\_Init()](https://docs.qualcomm.com/doc/80-41102-2/topic/function_a00473_1aaa69bc2c63c415ed798672b70f6e3722.html#Documentationa00473_1aaa69bc2c63c415ed798672b70f6e3722) once before any other flash operation.

## MTD partition flash access

- [taf\_flash\_MtdOpen()](https://docs.qualcomm.com/doc/80-41102-2/topic/function_a00473_1a2cc2a25361081ff2ee9d846370ecdc14.html#Documentationa00473_1a2cc2a25361081ff2ee9d846370ecdc14) / [taf\_flash\_MtdClose()](https://docs.qualcomm.com/doc/80-41102-2/topic/function_a00473_1a99c3688f312b682f4010859bfb37e3d8.html#Documentationa00473_1a99c3688f312b682f4010859bfb37e3d8) — Opens/Closes an MTD partition.
- [taf\_flash\_MtdInformation()](https://docs.qualcomm.com/doc/80-41102-2/topic/function_a00473_1a1cca1157416508f7d3f18d7fec83c1d0.html#Documentationa00473_1a1cca1157416508f7d3f18d7fec83c1d0) — Gets partition geometry and bad block count.
- [taf\_flash\_MtdIsBlockGood()](https://docs.qualcomm.com/doc/80-41102-2/topic/function_a00473_1af451a32c309adc0064cb85cc1a516519.html#Documentationa00473_1af451a32c309adc0064cb85cc1a516519) — Checks if a block is usable.
- [taf\_flash\_MtdEraseBlock()](https://docs.qualcomm.com/doc/80-41102-2/topic/function_a00473_1ac9f7483a36840add9ba7832202874c56.html#Documentationa00473_1ac9f7483a36840add9ba7832202874c56) / [taf\_flash\_MtdErase()](https://docs.qualcomm.com/doc/80-41102-2/topic/function_a00473_1a5eba93b934c2d7d71375771a9960ac89.html#Documentationa00473_1a5eba93b934c2d7d71375771a9960ac89) — Erases a block or the whole partition.
- [taf\_flash\_MtdReadPage()](https://docs.qualcomm.com/doc/80-41102-2/topic/function_a00473_1a928ae0df7faf3f38a83a9e7a934d4768.html#Documentationa00473_1a928ae0df7faf3f38a83a9e7a934d4768) / [taf\_flash\_MtdRead()](https://docs.qualcomm.com/doc/80-41102-2/topic/function_a00473_1a475cadf31284306e5e0c9a2cad9bdccc.html#Documentationa00473_1a475cadf31284306e5e0c9a2cad9bdccc) — Reads a page or byte range.
- [taf\_flash\_MtdWritePage()](https://docs.qualcomm.com/doc/80-41102-2/topic/function_a00473_1ad4de6905b590f92677609a818f6af665.html#Documentationa00473_1ad4de6905b590f92677609a818f6af665) / [taf\_flash\_MtdWrite()](https://docs.qualcomm.com/doc/80-41102-2/topic/function_a00473_1aa721ca49ebbbf8254dc93cc1a67420e1.html#Documentationa00473_1aa721ca49ebbbf8254dc93cc1a67420e1) — Writes a page or byte range.

taf_flash_MtdOpen(partitionName, TAF_FLASH_READ_WRITE, &partitionRef);
    taf_flash_MtdReadBlock(partitionRef, blockIndex, data, &dataSize);
    taf_flash_MtdClose(partitionRef);
    Copy to clipboard

## UBI volume flash access

- [taf\_flash\_UbiOpen()](https://docs.qualcomm.com/doc/80-41102-2/topic/function_a00473_1a085437cf3c89edfe5a42fa7ae6f73fa9.html#Documentationa00473_1a085437cf3c89edfe5a42fa7ae6f73fa9) / [taf\_flash\_UbiClose()](https://docs.qualcomm.com/doc/80-41102-2/topic/function_a00473_1ab7688a1c3d80f90bc976b842728605cf.html#Documentationa00473_1ab7688a1c3d80f90bc976b842728605cf) — Opens/Closes a UBI volume.
- [taf\_flash\_UbiInformation()](https://docs.qualcomm.com/doc/80-41102-2/topic/function_a00473_1a852962edacddccdf19a681c9794abb22.html#Documentationa00473_1a852962edacddccdf19a681c9794abb22) — Gets volume size and free block count.
- [taf\_flash\_UbiRead()](https://docs.qualcomm.com/doc/80-41102-2/topic/function_a00473_1a0280bda8b3b0bccff20ca40e1c69f03c.html#Documentationa00473_1a0280bda8b3b0bccff20ca40e1c69f03c) — Reads data from a byte offset.
- [taf\_flash\_UbiInitWrite()](https://docs.qualcomm.com/doc/80-41102-2/topic/function_a00473_1aa28c71196bc8990b10067f36ec9bc593.html#Documentationa00473_1aa28c71196bc8990b10067f36ec9bc593) — Declares total write size before writing.
- [taf\_flash\_UbiWrite()](https://docs.qualcomm.com/doc/80-41102-2/topic/function_a00473_1a98f3d8c6f510ed2925e9b0135e8dce5d.html#Documentationa00473_1a98f3d8c6f510ed2925e9b0135e8dce5d) — Appends data to the volume.
- [taf\_flash\_UbiErase()](https://docs.qualcomm.com/doc/80-41102-2/topic/function_a00473_1afb4d872b7cd600a9ce1a80ed0a19bc4b.html#Documentationa00473_1afb4d872b7cd600a9ce1a80ed0a19bc4b) — Erases the volume.

taf_flash_UbiOpen(volumeName, TAF_FLASH_READ_WRITE, &volumeRef);
    taf_flash_UbiInitWrite(volumeRef, volumeSize);
    taf_flash_UbiWrite(volumeRef, data, dataSize);
    taf_flash_UbiClose(volumeRef);
    Copy to clipboard

Last Published: Jun 09, 2026

[Previous Topic
Firmware Update Service](https://docs.qualcomm.com/bundle/publicresource/80-41102-2/topics/page_c_tafFwUpdate.md) [Next Topic
Power Management Service](https://docs.qualcomm.com/bundle/publicresource/80-41102-2/topics/page_c_tafpm.md)