基于SS528V100 PCIEx2调试总结
1227
基于SS528V100 PCIEx2调试总结 百纳第一禽 2023-08-25 18:00:22

概览

情形总结

  1. 无PCIE相关的任何信息
  2. 未检测到PCIE设备信息

措施总结

  1. 确保PCIE硬件走线无误,dts中PCIE设备打开
  2. 于内核配置中打开 NVME block device驱动

1.情形1

1.1 操作及现象

1.1.1 操作

按照海思官方操作文档《外围设备驱动操作指南》,打开内核PCIE控制器驱动

1.1.2 现象

使用PCIE NVME SSD进行验证,发现无任何PCIE相关信息。

~ # dmesg | grep "pci"
~ # lspci

1.2 分析及措施

1.2.1 分析

PCIE、SATA、USB等外设多与硬件配置有关,此处以PCIE x2举例,进行分析,下图给出M.2 PCIE M key线序图,以及PCIE x2硬件走线图


从硬件上:

  1. M.2座子中的线序与主控中的管脚一一对应,可排除Lane不对应情况
  2. Rx/Tx中的差分对正负也并未反接,且其与主控也并未交叉相连,可排除正负反接情况

从软件上:

  1. 内核打印信息中未包含PCI和PCIE相关信息,则应查看dts中是否打开PCIE设备

1.2.2 措施

dts中对应打开PCIE0设备

&pcie0 {
    status = "okay";
};

2.情形2

2.1 操作及现象

2.1.1 操作

确保上述”情形1”中的硬件走线无误、dts中PCIE设备开启。其中PCIE的供电、时钟REFCLK、复位PERST、唤醒CLKREQ等自行检测,此处不做赘述。

2.1.2 现象

使用PCIE NVME SSD进行验证,可识别出PCIE的速度和Lane数,以及SSD支持的最大Lane数,并且可查看PCIE的PID和VID

~ # dmesg | grep "pci"
bsp-pcie 0.pcie0: host bridge /soc/pcie0@0x103d0000 ranges:
bsp-pcie 0.pcie0:   MEM 0x28000000..0x2fffffff -> 0x28000000
bsp-pcie 0.pcie0: PCI host bridge to bus 0000:00
pci_bus 0000:00: root bus resource [bus 00-ff]
pci_bus 0000:00: root bus resource [mem 0x28000000-0x2fffffff]
pci 0000:00:00.0: [21b4:1079] type 01 class 0x060400
pci 0000:00:00.0: reg 0x10: [mem 0x00000000-0x007fffff]
pci 0000:00:00.0: reg 0x14: [mem 0x00000000-0x0000ffff]
pci 0000:00:00.0: supports D1 D2
pci 0000:00:00.0: PME# supported from D0 D1 D3hot
pci 0000:00:00.0: bridge configuration invalid ([bus 00-00]), reconfiguring
pci 0000:01:00.0: [144d:a809] type 00 class 0x010802
pci 0000:01:00.0: reg 0x10: [mem 0x00000000-0x00003fff 64bit]
pci 0000:01:00.0: 8.000 Gb/s available PCIe bandwidth, limited by 5 GT/s x2 link at 0000:00:00.0 (capable of 31.504 Gb/s with 8 GT/s x4 link)
pci_bus 0000:01: busn_res: [bus 01-ff] end is updated to 01
pci 0000:00:00.0: BAR 0: assigned [mem 0x28000000-0x287fffff]
pci 0000:00:00.0: BAR 8: assigned [mem 0x28800000-0x288fffff]
pci 0000:00:00.0: BAR 1: assigned [mem 0x28900000-0x2890ffff]
pci 0000:01:00.0: BAR 0: assigned [mem 0x28800000-0x28803fff 64bit]
pci 0000:00:00.0: PCI bridge to [bus 01]
pci 0000:00:00.0:   bridge window [mem 0x28800000-0x288fffff]
pcie_pme: probe of 0000:00:00.0:pcie001 failed with error -22
~ # lspci 
01:00.0 Class 0108: 144d:a809
00:00.0 Class 0604: 21b4:1079

2.2 分析及措施

2.2.1 分析

我们熟悉的是,走STAT通道的SSD会被系统识别为sda字样的设备,USB也同样如此,即是说我们固态思维中默认了正确识别出PCIE SSD,也会在/dev下生成类似sda字样的设备。如果你也这么认为,那么恭喜你,成功入坑,因为PCIE SSD正确识别后的设备名为nvme*

2.2.2 措施

于内核配置中,打开NVME驱动

/dev下查看识别设备信息


[注]:其中,nvme0为PCIE NVME SSD的主控芯片;nvme0n1为PCIE NVME SSD的主存储器;nvme0n1p1为PCIE NVME SSD的具体分区

查看能否分区挂载以及读写

~ # fdisk -l
Disk /dev/nvme0n1: 466 GB, 500107862016 bytes, 976773168 sectors
60563 cylinders, 256 heads, 63 sectors/track
Units: sectors of 1 * 512 = 512 bytes

Device       Boot StartCHS    EndCHS        StartLBA     EndLBA    Sectors  Size Id Type
/dev/nvme0n1p1    0,1,1       1023,255,63         63  976773167  976773105  465G 83 Linux
Disk /dev/mmcblk0: 7456 MB, 7818182656 bytes, 15269888 sectors
238592 cylinders, 4 heads, 16 sectors/track
Units: sectors of 1 * 512 = 512 bytes

Disk /dev/mmcblk0 doesn't contain a valid partition table
Disk /dev/mmcblk0p1: 1 MB, 1048576 bytes, 2048 sectors
32 cylinders, 4 heads, 16 sectors/track
Units: sectors of 1 * 512 = 512 bytes

Disk /dev/mmcblk0p1 doesn't contain a valid partition table
~ # mount /dev/nvme0n1p1 /mnt
~ # df -h
Filesystem                Size      Used Available Use% Mounted on
/dev/root               120.0M    117.4M         0 100% /
devtmpfs                495.2M         0    495.2M   0% /dev
tmpfs                   497.4M         0    497.4M   0% /run
/dev/nvme0n1p1          465.5G   1000.0M    464.6G   0% /mnt
~ # sync;echo 3 > /proc/sys/vm/drop_caches;
sh (1401): drop_caches: 3
~ # sync; time dd if=/dev/zero of=/mnt/largefile bs=10k count=10240;time sync
10240+0 records in
10240+0 records out
104857600 bytes (100.0MB) copied, 0.429658 seconds, 232.7MB/s
real    0m 0.43s
user    0m 0.00s
sys    0m 0.39s
real    0m 0.09s
user    0m 0.00s
sys    0m 0.00s

[注]:此处使用SAMAUNG的980 NVME M.2 SSD,容量为500GB;自行查看所使用的SSD容量是否对应,是否可以制作分区并挂载于板端,是否能进行读写测试,确保PCIE NVME SSD成功被识别且处于可用状态

声明:本文内容由易百纳平台入驻作者撰写,文章观点仅代表作者本人,不代表易百纳立场。如有内容侵权或者其他问题,请联系本站进行删除。
红包 8 1 评论 打赏
评论
12个
时间排序
内容存在敏感词
手气红包
    0 条记录 第 0 /
    相关专栏
    置顶时间设置
    结束时间
    删除原因
    • 广告/SPAM
    • 恶意灌水
    • 违规内容
    • 文不对题
    • 重复发帖
    打赏作者
    易百纳技术社区
    百纳第一禽
    您的支持将鼓励我继续创作!
    打赏金额:
    ¥1 易百纳技术社区
    ¥5 易百纳技术社区
    ¥10 易百纳技术社区
    ¥50 易百纳技术社区
    ¥100 易百纳技术社区
    支付方式:
    微信支付
    支付宝支付
    易百纳技术社区 微信支付
    易百纳技术社区
    打赏成功!

    感谢您的打赏,如若您也想被打赏,可前往 发表专栏 哦~

    举报反馈

    举报类型

    • 内容涉黄/赌/毒
    • 内容侵权/抄袭
    • 政治相关
    • 涉嫌广告
    • 侮辱谩骂
    • 其他

    详细说明

    审核成功

    发布时间设置
    发布时间:
    是否关联周任务-专栏模块

    审核失败

    失败原因
    备注
    Loading...
    易百纳技术社区
    确定要删除此文章、专栏、评论吗?
    确定
    取消
    易百纳技术社区
    每周任务
      去完成
      活动规则
      易百纳技术社区
      升级提醒
      升级

      恭喜您的社区称号由 升级为 “社区游民”

      同时为了感谢您对社区的支持,我们将送出xxx礼品一份, 记得领取哦~

      升级提醒
      易百纳技术社区

      惊喜礼包

      拼手气红包 红包规则
      祝福语
      恭喜发财,大吉大利!
      红包金额
      红包最小金额不能低于5元
      红包数量
      红包数量范围10~50个
      余额支付
      当前余额:
      可前往问答、专栏板块获取收益 去获取
      取 消 确 定

      小包子的红包

      恭喜发财,大吉大利

      已领取20/40,共1.6元 红包规则

        avatar