基于SS528V100 PCIEx2调试总结

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

概览

情形总结

  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成功被识别且处于可用状态

声明:本文内容由易百纳平台入驻作者撰写,文章观点仅代表作者本人,不代表易百纳立场。如有内容侵权或者其他问题,请联系本站进行删除。
红包 10 2 评论 打赏
评论
13个
内容存在敏感词
手气红包
  • dmmonstr 2024-09-12 14:13:05
    回复
    牛的
  • david 2023-10-13 09:09:42
    回复
    名字你逼~
  • 张清 2023-09-12 18:44:51
    回复
    GOOD
  • 347467181 2023-09-05 15:47:28
    回复
    专业
  • 勿忘初心 2023-09-05 15:46:33
    回复
  • 紫川宁520 2023-09-05 15:44:15
    回复
    牛逼就完事了
  • Develop 2023-09-05 15:43:32
    回复
    666
  • 易百纳技术社区 2023-09-05 15:36:48
    10.00元
    回复
    努力做优秀的自己
  • 广东小6 2023-08-26 14:53:17
    回复
    U秀
  • Techlife 2023-08-26 12:02:40
    回复
    Nice
  • hale 2023-08-25 18:06:06
    回复
    verygood!
  • Stranger 2023-08-25 18:04:28
    回复
    漂亮
  • 赤木 2023-08-25 18:03:55
    回复
    Good
相关专栏
置顶时间设置
结束时间
删除原因
  • 广告/SPAM
  • 恶意灌水
  • 违规内容
  • 文不对题
  • 重复发帖
打赏作者
易百纳技术社区
百纳第一禽
您的支持将鼓励我继续创作!
打赏金额:
¥1易百纳技术社区
¥5易百纳技术社区
¥10易百纳技术社区
¥50易百纳技术社区
¥100易百纳技术社区
支付方式:
微信支付
支付宝支付
易百纳技术社区微信支付
易百纳技术社区
打赏成功!

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

举报反馈

举报类型

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

详细说明

审核成功

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

审核失败

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

小包子的红包

恭喜发财,大吉大利

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

    易百纳技术社区