一. 前言

我们拿到一款手机,怎么去知道手机UFS相关的信息呢,接下来我们一起来看下吧!

二 . UFS相关信息

预置环境:最好有root权限的手机版本,可以连接adb

1. 查看UFS分区

sgdisk --print /dev/block/sdx(块设备节点,对应UFS的一个Lun)

:/# sgdisk --print /dev/block/sda
Disk /dev/block/sda: 124655616 sectors, 475.5GIB
Sector size(logical/physical): 4096/4096 bytes
Disk identifier(GUID): 562F2C51-9999-0000-7777-1111-2345678901234
Partition table holds up to 64 entries
Main partition table begins at sector 2 and ends at sector 3
First usable sector is 6, last usable sector is 124655610
Partition will be alihned on 2-sector boundaries
Total free space space is 0 sectors(0 bytes)
Number  Start(sector) End(sector)  Size         Code   Name1             6           7      8.0 KiB      FFFF   switch2             8          15      32.0 KiB     A02C   ssd3            16          23      32.0 KiB     FFFF   dbg4            24          31      32.0 KiB     FFFF   bk015            32          63     128.0 KiB     FFFF   bk026            64         127     256.0 KiB     FFFF   bk037           128         255     512.0 KiB     FFFF   bk048           256         383     512.0 KiB     A02D   keystore9           384         511     512.0 KiB     FFFF   frp10           512        1023     2.0 MiB       FFFF   bk0511           1024       2047     4.0 MiB       A01F   misc12           2048       4095     8.0 MiB       FFFF   blk613           4096       6143     8.0 MiB       FFFF   logfs14           6144       8191     8.0 MiB       FFFF   bk0715           8192      12287     16.0 MiB      FFFF   oops16          12288      16383     16.0 MiB      A021   devinfo17          16384      16639     1024.0 KiB    FFFF   oem_misc118          16640      20735     16.0 MiB      FFFF   metadata19          20736      24575     15.0 MiB      FFFF   bk0820          24576      32767     32.0 MiB      FFFF   splash21          32768      40959     32.0 MiB      FFFF   bk0922          40960      57343     64.0 MiB      A026   persist23          57344      73727     64.0 MiB      A026   persistbak24          73728      90111     64.0 MiB      FFFF   logdump25          90112      122879    128.0 MiB     A01C   rawdump26         122880      147455    96.0 MiB      FFFF   minidump27         147456      155647    32.0 MiB      FFFF   mtdblk28         155648      188415    128.0 MiB     A025   recovery29         188416      286719    384.0 MiB     A039   cache30         286720      385023    384.0 MiB     FFFF   exaid31         385024      647167    1024.0 MiB    FFFF   cust32         647168     2875391    8.5 GiB       A038   super33        2855392     2883583    32.0 MiB      FFFF   bk01034        2883584   124655610    464.5 GiB     A03A   userdata

更多关于sgdisk可以执行sgdisk命令查看帮助信息

查看sgdisk帮助信息
:/# sgdisk

2. 查看UFS的Power Mode信息

umi:/ # cat /sys/kernel/debug/1d84000.ufshc/power_modeUFS current power mode [RX, TX]=[4,4], lane=[2,2], pwr=[FASR MODE,FAST MODE], rate=ATo change power mode write 'GGLLMM' where:
G - selected gear
L - number of lanes
M - power mode1 = fastboot mode2 = fastboot-auto mode
fisrt letter is for RX, second letter is for TX.

此外sys/kernel/debug/1d84000.ufshc目录下还有一些ufs的接口:

umi: /sys/kernel/debug/1d84000.ufshc # ls crash_on_err
dbg_print_en
dme_local_read
dme_peer_read
dump_device_desc: dump ufs device descriptor information
err_state
host_regs: ufs host controller regs
power_mode: ufs device power mode
qcom: ufs qcom self debug interface
show_hba: ufs host controller adapter structure
state在新的内核版本,
umi: /d/1d84000.ufshc # 目录和umi: /sys/kernel/debug/1d84000.ufshc内容是一样的
因为/d目录直接软链接到了/sys/kernel/debugumi:/ # ls -al /d
lrw-r--r-- 1 root root 17 2010-01-02 /d -> /sys/kernel/debug

3. df -h 查看文件系统空间大小信息

umi: /# df -h
FileSystem                 Size     Used  Avail  Use%  Mounted on
tmpfs                      3.8G     1.2M   3.8G   1%    /dev
/dev/block/sda29           330M     920K   329M   1%    /cache
/dev/block/dm-4            119M     1M     118M   1%    /odm
/data/media                467G     13G    454G   3%    /mnt/runtime/default/emulated

4 . 使用mount可以查看文件系统挂载信息

umi:/ # mount
/dev/block/dm-5 on /data type f2fs (rw,, lazytime, seclabel,nosuid,nodev,noatime,background_gc=on,nodiscard,no_heap,user_xattr, inline_xattr,acl,incline_data,incline_dentry,flush_merge,extent_cache,mode=adaptive,active_logs=6,reserve_root=32768,resuid=0,resgid=1065,inlinecrypt,alloc_mode=default,checkpoint_merge,fsync_mode=nobarrier,discard_unit=block);
/dev/block/dm-1 on /system_ext type ext4(ro,seclabel,relatime,discard)
tmpfs on /system/bin type tmpfs (rw,seclabel,relatime,size=3893300k, nr_inodes=973325)

5. 查看UFS LUN配置和LUN的分区配置

UFS是根据LUN的数量创建/dev/block/sd* 的节点的,从sda开始,依次为sda,sdb,sdc.sdd......
得出当前UFS有6个LUN
umi: /dev/block/ # ls
sda sdb sdc sdd sde sdf每个LUN里面会划分出分区(partition),根据LUN大小划分的分区数量和大小也不同
得出sdb(LUN1)的分区数量为4个
umi: /dev/block # ls sdb*
sdb sdb1 sdb2 sdb3 sdb4查看sdb(LUN1)分区名称, 在/dev/block/by-name目录查询,
注释: by-name这个是安卓层建立的目录,目录下的文件(xbl_4)软链接到真正的块设备文件(/dev/block/sdb1)
umi:/dev/block/by-name # ls -al | grep sdb
lrwxrwxxrwx 1 root root 14 1970-03-01 09:41  sdb -> /dev/block/sdb
lrwxrwxxrwx 1 root root 14 1970-03-01 09:41  xbl_4 -> /dev/block/sdb1
lrwxrwxxrwx 1 root root 14 1970-03-01 09:41  xbl_5 -> /dev/block/sdb1
lrwxrwxxrwx 1 root root 14 1970-03-01 09:41  xbl_config_4 -> /dev/block/sdb3
lrwxrwxxrwx 1 root root 14 1970-03-01 09:41  xbl_config_5 -> /dev/block/sdb4

6. 查看UFS存储块设备的IO调度方式

查看sda块设备【LUN0】的IO调度方式为CFQ,
分区(userdata)的调度方式和所在的LUN 的IO调度方式保持一致
umi:/ # cat /sys/block/sda/queue/schedule
noop deadline [cfq]

7. 查看UFS Host Controller Platform Device配置

其中1d84000是SOC上的ufs host controller base address.
1d84000.ufshc是ufs host controller platform device(也称为ufs_hba)
umi: /sys/devices/platform/soc/1d84000.ufshc # ls
attribute: ufs device attribute(通过query attr)
auto_hibern8: ufs auto hibernate feature(ufs idle自动进入hibernate状态,是通过ufs host controller硬件层面操作的,只能通过PA抓取下发的dme_hibernate_enter命令,event trace抓不到对应的dme_hibernate_enter命令)
clkgate_delay_ms_perf: ufs idle后间隔时间关掉ufs clk(性能模式下)
clkgate_delay_ms_pwr_save:ufs idle后间隔时间关掉ufs clk(省电模式下)
clkgate_enable:UFS关闭时钟功能使能
clkscale_enable:UFS调频功能使能
devfreq: ufs动态调频调压策略
device_descriptor:ufs device descripor information
driver: bind of driver
driver_override
flags:ufs device flag(通过query flag)
geometry_descriptor: ufs geometry descriptor information
health_descriptor: ufs health descriptor information
host0:
interconnect_descriptor
max_bus_bw
modalias
of_node
power
power_descriptor: ufs power relate descriptor
qcom
rpm_lvl
rpm_target_dev_state
spm_lvl
spm_target_dev_state
string_descriptor
uvent
ufshpb_lu0
ufstw

8. 获取UFS Event Trace Log ,可以协助分析UFS系统侧的行为(UFS Host Controller Driver层面的UFS 相关信息,包括UFS suspend/resume相关,ufs clkgate相关,ufs command相关,ufs hiberante相关,ufs upiu相关)

抓取UFS Event Trace Log
参考脚本:
#! /bin/bashadb shell "su -c 'echo ufs > /sys/kernel/debug/tracing/set_event'" (配置trace event)
adb shell "su -c 'echo 0 > /sys/kernel/debug/tracing/tracing_on'" (关闭trace log record)
adb shell "su -c 'echo   > /sys/kernel/debug/tracing/trace'" (清空trace buffer data)
adb shell "su -c 'echo 1 > /sys/kernel/debug/tracing/tracing_on'"(开启trace log record)
adb shell "su -c 'cat /sys/kernel/debug/tracing/tracing_pipe'" > $(date --iso-8601='m').log

UFS 手机相关调试接口相关推荐

  1. 手机型号云服务器,手机型号查询接口

    手机型号查询接口 内容精选 换一换 通过调用云手机服务提供的接口,您可以完整地使用云手机的所有功能.例如查询云手机列表.重启云手机.为云手机推送文件. 华为云帮助中心,为用户提供产品简介.价格说明.购 ...

  2. pyaudio usb playback_苹果安卓手机充电器USB接口PSD源文件psd素材

    分类:详情页 类目:数码家电 格式:psd 体积: 尺寸:790*12168 编号:13182638 软件: Photoshop CS6(.psd) 颜色模式 : RGB 图像类型:位图 版权:独家版 ...

  3. Xilinx AXI Crossbar相关调试记录

    Xilinx AXI Crossbar相关调试记录 本文记录在使用Xilinx AXI Crossbar IPcore现象 ** AXI Crossbar IPcore设置如下** 使用AXI Cro ...

  4. bcmsh交换芯片调试接口

    bcmsh交换芯片调试接口 相关命令 相关命令 sudo su bcmsh //bcmshell命令,切换到BCMShell模式 ps //PortStat命令,显示交换芯片上对应端口的状态 l3 d ...

  5. 浅论各种调试接口(SWD、JTAG、Jlink、Ulink、STlink)的区别

    搞嵌入式开发和ARM开发搞了半辈子了,调试程序是不可避免的.接触了那么多的调试规范.调试工具.调试手段,彼此之间的关系却也不是特别清楚,今天就来捋一捋: JTAG协议 JTAG(Joint Test ...

  6. ARM调试原理【调试接口框图】【SWD时序】【SWD主机】

    调试接口框图 ARM-M0<ARM Cortex-M0.pdf>手册上提到的调试框图如下: <debug_interface_v6_0_architecture_specificat ...

  7. android手机怎样开启usb调试模式,Android手机USB调试在哪?安卓手机如何打开USB调试模式?...

    Android手机USB调试在哪?安卓手机如何打开USB调试模式?如果我们要将安卓手机连接到电脑上,从而传输文件.下载应用或ROOT等,都需要打开手机的USB调试模式.安卓系统的版本有很多,它们的打开 ...

  8. 浅论各种调试接口(JTAG、SWD、RDI、Jlink、Ulink、STlink)的区别

    关注.星标公众号,直达精彩内容 来源:技术让梦想更伟大 整理:李肖遥 一.JTAG协议 JTAG(Joint Test Action Group,联合测试行动小组)是一种国际标准测试协议(IEEE 1 ...

  9. 三网手机实名制认证接口是怎么验证身份的?如何选择?

    现如今,随着互联网产业的多元化,需要进行实名认证的应用场景越来越多,尤其是互联网金融,在线交易等商业模式的兴起,越来越多的企业需要用到实名认证接口,聚合数据等服务商提供的身份证实名认证API如三网手机 ...

  10. SWD下载调试接口原理深度剖析

    由于我们公司自己需要开发烧录工具,本人通过google搜相关文档和看ARM公司的技术文档,终于实现了这个功能.该篇幅敢很自信的说把SWD理论讲的最浅显易懂的. 作为ARM嵌入式工程师,下载调试器都应该 ...

最新文章

  1. 47种常见的浏览器兼容性问题大汇总
  2. 世界经济增速统一放缓,网络拓扑发现统一增速
  3. 使用 cout 输出数据之控制输出格式(一)
  4. java实现语法分析器_语法分析 | 语法分析的任务
  5. updatechecker.java_解决ehcache的UpdateChecker问题
  6. mysql 操作指令详解_Mysql常用命令详解
  7. dvwa如何打开_DVWA详细 安装
  8. LeetCode 226. 翻转二叉树(DFS BFS)
  9. 系统架构设计师 - 第三方认证服务
  10. 实现动态验证码的思路
  11. 周鸿祎:希望将互联网基因与汽车制造企业基因进行重组
  12. 【Vegas改编】发布infopath模板到sharepoint2007站点
  13. java制作游戏开始界面,太香了
  14. keil 之Vscode编辑器插件、格式化代码插件和最新注册机分享
  15. Nature拟推出机器智能在线期刊Nature Machine Intelligence
  16. 平面方程、两平面夹角、点到平面距离
  17. CVE-2019-0708高危漏洞,各家安全厂商的扫描修复方案
  18. 服务器inetpub是什么文件夹,处理inetpub文件夹在win10中的问题
  19. 解读京东“拉黑门”:被拐弯的真相
  20. 拼一个自己的操作系统(SnailOS 0.03的实现)

热门文章

  1. 如何进行EMC Symmetrix (DMX或者VMAX)的系统健康检查
  2. MSF的辅助扫描模块(信息搜集)
  3. 拜耳新一代犬体内驱虫药拜宠清登陆中国市场
  4. 小米9开发版自带root吗_小米9root权限获取教程
  5. 小米android6.01 root,小米6 root教程_小米6获取root权限的方法
  6. Excel表格进行10进制/16进制换算
  7. 【学习笔记】seckill-秒杀项目--(9)接口优化
  8. 最新正则表达式验证手机号和邮箱
  9. 74HC595芯片工作原理细致分析(以及级联拓展应用),以及芯片控制继电器原理 / 代码
  10. pytorch 介绍