qualcomm导出分区之(UFS篇)

2024-03-25 01:28
文章标签 导出 分区 qualcomm ufs

本文主要是介绍qualcomm导出分区之(UFS篇),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.前言

这篇关于emmc存储dump flash的blog(高通QFIL 导出所有分区_blank_gpt-CSDN博客)的方法不知道大家是不是都没遇到过问题,前阵我个人在实践UFS 时就遇到UFS直接用QFIL读取不了总blocks数,导致回读flash的大小没办法确定,然后就去查了高通文档,最后实操成功,中间遇到了些小问题,记录下来供大家参考。

2.环境配置

1. 提下QPST的关键文件及目录 C:\Program Files (x86)\Qualcomm\QPST\bin

2. 在此路径下因为没有直接权限创建port_trace.txt文件,这个也是一个关键步骤,需要手动创建一个空文件之后copy到该路径下,此步骤即需要admin权限来copy.

3.获取总blocks数

admin权限下 cd C:\Program Files (x86)\Qualcomm\QPST\bin​, 按照高通文档的介绍,这叫Load device programmer to the IMEM of CPU​.

QSaharaServer.exe -u 3 -s 13:C:\your\prog_firehose_ddr.elf

-u 3 此处的3是9008对应的端口号,大家自行按照实际情况来配,

13 此处暂不确定是什么协议的代号,后面的路径直接就是firehose协议bin的实际路径

给一个执行成功的例子,便于参考
C:\Program Files (x86)\Qualcomm\QPST\bin>QSaharaServer.exe -u 3 -s 13:C:C:\Users\admin\Downloads\test\prog_firehose_ddr.elf
Binary build date: Jun 25 2019 @ 03:16:15
QSAHARASERVER CALLED LIKE THIS: 'QSaharaServer.ex'Current working dir: C:\Program Files (x86)\Qualcomm\QPST\bin
Sahara mappings:
2: amss.mbn
6: apps.mbn
8: dsp1.mbn
10: dbl.mbn
11: osbl.mbn
12: dsp2.mbn
16: efs1.mbn
17: efs2.mbn
20: efs3.mbn
21: sbl1.mbn
22: sbl2.mbn
23: rpm.mbn
25: tz.mbn
28: dsp3.mbn
29: acdb.mbn
30: wdt.mbn
31: mba.mbn
13: C:\Users\admin\Downloads\test\prog_firehose_ddr.elf19:33:43: Requested ID 13, file: "C:\Users\admin\Downloads\test\prog_firehose_ddr.elf"19:33:43: 683028 bytes transferred in 0.156000 seconds (4.1756MBps)19:33:43: File transferred successfully19:33:43: Sahara protocol completed

关键的读取storageinfo的命令​,当然,大家执行这条命令能获取很多UFS flash的信息,这边就不一一放上来占用篇幅了

fh_loader.exe --port=\\.\COM3 --getstorageinfo=0 --memoryname=UFS --noprompt

由此,我们在log中就拿到了 total_blocks":14024704

{"storage_info": {"total_blocks":14024704, "block_size":4096, "page_size":4096, "num_physical":6, "manufacturer_id":462, "serial_num":1297306958, "fw_version":"100","mem_type":"UFS","prod_name":"KM5P9001DM-B424"}}'

4.UFS导出实例

拿到上面的storageInfo,那我们最重要的一步也算是完成了,那么接下来就是回读xml配置的制作了,这里我们也没有用之前的方式读取,而是用高通文档直接调用fh_load来读

注意的细节

  • UFS的sector是按4096KB作为一个sector,所以

num_partition_sectors 是14024704, size_in_KB= 14024704 x 4K = 56098816

<?xml version="1.0" ?>
<data>
<read SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="partition.bin" label="entire_partition" num_partition_sectors="14024704" partofsingleimage="true" physical_partition_number="0" readbackverify="false" size_in_KB="56098816" sparse="false" start_byte_hex="0." start_sector="0"/>
</data>
  • 最关键的回读命令
fh_loader.exe --port=\\.\COM5 --sendxml=lun0.xml --search_path=C:\your\xml\path --convertprogram2read ----memoryname=UFS --noprompt --showpercentagecomplete

接着就是静静的等待在C:\Program Files (x86)\Qualcomm\QPST\bin下生成的partitions.bin.

5. 潜在已知问题

大家如果在执行每一步命令的过程中,遇到什么问题,欢迎留言交流,按照上述步骤其实已经可以逃避一些坑了,比如以admin的权限运行和提前创建port_trace.txt之类的。

这篇关于qualcomm导出分区之(UFS篇)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/843436

相关文章

详解Vue如何使用xlsx库导出Excel文件

《详解Vue如何使用xlsx库导出Excel文件》第三方库xlsx提供了强大的功能来处理Excel文件,它可以简化导出Excel文件这个过程,本文将为大家详细介绍一下它的具体使用,需要的小伙伴可以了解... 目录1. 安装依赖2. 创建vue组件3. 解释代码在Vue.js项目中导出Excel文件,使用第三

mysql数据库分区的使用

《mysql数据库分区的使用》MySQL分区技术通过将大表分割成多个较小片段,提高查询性能、管理效率和数据存储效率,本文就来介绍一下mysql数据库分区的使用,感兴趣的可以了解一下... 目录【一】分区的基本概念【1】物理存储与逻辑分割【2】查询性能提升【3】数据管理与维护【4】扩展性与并行处理【二】分区的

Python实现将实体类列表数据导出到Excel文件

《Python实现将实体类列表数据导出到Excel文件》在数据处理和报告生成中,将实体类的列表数据导出到Excel文件是一项常见任务,Python提供了多种库来实现这一目标,下面就来跟随小编一起学习一... 目录一、环境准备二、定义实体类三、创建实体类列表四、将实体类列表转换为DataFrame五、导出Da

Python数据处理之导入导出Excel数据方式

《Python数据处理之导入导出Excel数据方式》Python是Excel数据处理的绝佳工具,通过Pandas和Openpyxl等库可以实现数据的导入、导出和自动化处理,从基础的数据读取和清洗到复杂... 目录python导入导出Excel数据开启数据之旅:为什么Python是Excel数据处理的最佳拍档

Oracle Expdp按条件导出指定表数据的方法实例

《OracleExpdp按条件导出指定表数据的方法实例》:本文主要介绍Oracle的expdp数据泵方式导出特定机构和时间范围的数据,并通过parfile文件进行条件限制和配置,文中通过代码介绍... 目录1.场景描述 2.方案分析3.实验验证 3.1 parfile文件3.2 expdp命令导出4.总结

java poi实现Excel多级表头导出方式(多级表头,复杂表头)

《javapoi实现Excel多级表头导出方式(多级表头,复杂表头)》文章介绍了使用javapoi库实现Excel多级表头导出的方法,通过主代码、合并单元格、设置表头单元格宽度、填充数据、web下载... 目录Java poi实现Excel多级表头导出(多级表头,复杂表头)上代码1.主代码2.合并单元格3.

MySQL使用mysqldump导出数据

mysql mysqldump只导出表结构或只导出数据的实现方法 备份数据库: #mysqldump 数据库名 >数据库备份名 #mysqldump -A -u用户名 -p密码 数据库名>数据库备份名 #mysqldump -d -A --add-drop-table -uroot -p >xxx.sql 1.导出结构不导出数据 mysqldump --opt -d 数据库名 -u

一步一步将PlantUML类图导出为自定义格式的XMI文件

一步一步将PlantUML类图导出为自定义格式的XMI文件 说明: 首次发表日期:2024-09-08PlantUML官网: https://plantuml.com/zh/PlantUML命令行文档: https://plantuml.com/zh/command-line#6a26f548831e6a8cPlantUML XMI文档: https://plantuml.com/zh/xmi

SpringBoot中利用EasyExcel+aop实现一个通用Excel导出功能

一、结果展示 主要功能:可以根据前端传递的参数,导出指定列、指定行 1.1 案例一 前端页面 传递参数 {"excelName": "导出用户信息1725738666946","sheetName": "导出用户信息","fieldList": [{"fieldName": "userId","fieldDesc": "用户id"},{"fieldName": "age","fieldDe

F12抓包06-4:导出metersphere脚本

metersphere是一站式的开源持续测试平台,我们可以将浏览器请求导出为HAR文件,导入到metersphere,生成接口测试。 metersphere有2种导入入口(方式),导入结果不同:         1.导入到“接口定义”:自动生成接口API和单接口case(接口自动去重;每个请求生成不同case,重复的请求生成重复的case,名称自动加数字后缀,自动与接口关联)。