少于 1 分钟阅读 次阅读

概要:本文介绍如何在系统刷入后,通过查看设备树中的相关节点,判断 PCIE 卡槽配置的是 PCIE 资源还是 SATA 资源。通过命令行方式查看设备节点的 status 值,并结合源码设备树进一步确认资源配置情况。

1. 背景说明

系统刷入后,可能不确定 PCIE 卡槽具体配置了哪种资源(PCIE 或 SATA)。为此,可以通过查看设备树中相关节点的状态来进行判断。


2. 查看设备树节点

2.1 进入设备树目录

cd /sys/firmware/devicetree/base

2.2 可查看的节点

使用 ls 命令可查看以下节点:

  • pcie@fe260000
  • pcie@fe270000
  • pcie@fe280000
  • sata@fc000000
  • sata@fc400000
  • sata@fc800000

2.3 合并命令查看 status 值

cd /sys/firmware/devicetree/base && \
for dir in pcie@fe260000 pcie@fe270000 pcie@fe280000 sata@fc000000 sata@fc400000 sata@fc800000; do
    if [ -d "$dir" ]; then
        echo "=== Status of $dir ==="
        cat "$dir/status" 2>/dev/null || echo "status not found"
        echo
    else
        echo "=== Directory $dir does not exist ==="
        echo
    fi
done

2.4 输出示例

=== Status of pcie@fe260000 ===
disabled

=== Status of pcie@fe270000 ===
disabled

=== Status of pcie@fe280000 ===
disabled

=== Status of sata@fc000000 ===
disabled

=== Status of sata@fc400000 ===
disabled

=== Status of sata@fc800000 ===
okay

从示例中可以看到,只有 sata@fc800000statusokay,表明该节点被启用。


3. 查看源码设备树

(上面的例子sata是使能的,下面的源码是pcie使能,两者是冲突的,不是同一份源码,只是示例)

3.1 搜索关键字

在源码中搜索以下关键字可定位设备树配置信息:

  • pcie@
  • sata@

3.2 查找别名与引用

在设备树中,经常可以看到如 pcie2x1 这样的别名,代表某个具体的节点。

例如:

alt text

随后可以继续搜索对该节点的引用,例如:

  • &pcie2x1

示例:

alt text

通过这些别名与引用,进一步确认节点在设备树中的实际使用情况。


留下评论