一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Banana Pi BPI-W3 RK3588平臺驅動調試篇 [ PCIE篇二 ] - PCIE的開發(fā)指南

bananapi開源硬件 ? 來源: bananapi開源硬件 ? 作者: bananapi開源硬件 ? 2023-11-02 09:24 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

Banana Pi BPI-W3 RK3588平臺驅動調試篇 [ PCIE篇 ] - PCIE的開發(fā)指南(二)

wKgaomVC-i-AZQiOAAJH8vK8vCE230.jpg

一、前言

上一篇已經(jīng)介紹過如何在3588上使用pcie的資源,這一篇介紹在Linux系統(tǒng)下如何應用pcie接上的設備

二、 PCI 配置空間

一個PCIe系統(tǒng)最多有256條Bus,每條Bus上最多掛32個Device,每個Device最多又能實現(xiàn)8個Function,每個Function對應著4KB的配置空間。PCI設備擁有256B的配置空間,PCIe還提供另外4KB的擴展,這256B的配置空間中前64B是規(guī)范了的,其他的字節(jié)是各個廠商自己定義的。

2.1 PCI 設備的地址組成

PCI設備的地址是由三個部分組成的,通常以"域(Domain):總線(Bus):設備(Device).功能(Function)"的形式表示:

域(Domain): 域是PCI設備的最高級別的地址組成部分。它用于標識不同的PCI總線。通常,大多數(shù)系統(tǒng)只有一個域,因此它的值為0。但在某些情況下,多個PCI域可以用于連接不同的PCI總線,每個域都有唯一的編號。

總線(Bus): 總線標識PCI設備連接到計算機主板上的不同PCI總線。每個總線可以連接多個PCI設備。總線號通常是一個介于0和255之間的整數(shù)。

設備(Device): 設備標識特定總線上的不同PCI設備。每個PCI總線可以連接多個設備,每個設備都有唯一的設備號,通常是0到31之間的整數(shù)。

功能(Function): 功能標識PCI設備中的不同功能單元。有些PCI設備具有多個功能,每個功能都有唯一的功能號,通常是0到7之間的整數(shù)。大多數(shù)PCI設備只有一個功能。

這個地址組成使得系統(tǒng)能夠唯一地標識和管理各種PCI設備,以便它們可以有效地與計算機系統(tǒng)進行通信。在使用工具如lspci時,這些地址通常用于顯示和識別PCI設備。 將上一篇介紹的ArmSom-W3開發(fā)板的M.2插槽接好對應模組,上電后使用lspci命令查看:

root@linaro-alip:/home/linaro# lspci 0000:00:00.0 PCI bridge: Fuzhou Rockchip Electronics Co., Ltd Device 3588 (rev 01) 0000:01:00.0 Non-Volatile memory controller: Intel Corporation NVMe Optane Memory Series 0002:20:00.0 PCI bridge: Fuzhou Rockchip Electronics Co., Ltd Device 3588 (rev 01) 0002:21:00.0 Network controller: Realtek Semiconductor Co., Ltd. Device b852 0004:40:00.0 PCI bridge: Fuzhou Rockchip Electronics Co., Ltd Device 3588 (rev 01) 0004:41:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8125 2.5GbE Controller (rev 05)

2.2 設備地址分析

lspci命令的輸出會列出所有PCI設備的信息,包括設備的制造商、型號、PCI地址等。輸出通常以文本形式提供,并按總線地址(BDF:Bus, Device, Function)的順序排列。

上述命令使用結果分析:

0000:00:00.0 PCI bridge: Fuzhou Rockchip Electronics Co., Ltd Device 3588 (rev 01)

設備地址:0000:00:00.0 設備類型:PCI橋接器(PCI Bridge) 制造商:Fuzhou Rockchip Electronics Co., Ltd 設備型號:Device 3588 設備版本:rev 01 此設備是一種PCI橋接器,通常用于將其他PCI設備連接到計算機主板上。

0000:01:00.0 Non-Volatile memory controller: Intel Corporation NVMe Optane Memory Series

設備地址:0000:01:00.0 設備類型:非易失性內存控制器(Non-Volatile Memory Controller) 制造商:Intel Corporation 設備型號:NVMe Optane Memory Series 此設備是Intel Corporation生產(chǎn)的非易失性內存(NVMe)控制器,通常用于管理NVMe存儲設備,如高速固態(tài)硬盤(SSD)。

0002:21:00.0 Network controller: Realtek Semiconductor Co., Ltd. Device b852

設備地址:0002:21:00.0 設備類型:網(wǎng)絡控制器(Network Controller) 制造商:Realtek Semiconductor Co., Ltd. 設備型號:Device b852 此設備是一塊Realtek Semiconductor Co., Ltd生產(chǎn)的網(wǎng)絡控制器,通常用于連接計算機到網(wǎng)絡。

0004:41:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8125 2.5GbE Controller (rev 05)

設備地址:0004:41:00.0 設備類型:以太網(wǎng)控制器(Ethernet Controller) 制造商:Realtek Semiconductor Co., Ltd. 設備型號:RTL8125 2.5GbE Controller 設備版本:rev 05 此設備是一塊Realtek Semiconductor Co., Ltd生產(chǎn)的以太網(wǎng)控制器,支持2.5千兆比特每秒(2.5GbE)的網(wǎng)絡連接速度,用于連接計算機到網(wǎng)絡。

設備地址"0000:01:00.0"表示了一個PCI設備在系統(tǒng)中的唯一標識。這個地址可以被分解為以下部分來進行分析:

域(Domain): 在這種情況下,域的值為"0000",通常情況下,大多數(shù)系統(tǒng)只有一個域,所以它的值通常是"0000"。

總線(Bus): 總線的值為"01",表示這個PCI設備連接到系統(tǒng)的第1個PCI總線。每個總線可以連接多個PCI設備。

設備(Device): 設備的值為"00",表示在該總線上的第1個PCI設備。每個總線可以連接多個設備,它們分別具有唯一的設備號。

功能(Function): 功能的值為"0",表示這個PCI設備只有一個功能單元。一些PCI設備具有多個功能單元,每個功能單元都有唯一的功能號。

這個地址用于唯一標識PCI設備,以便系統(tǒng)可以識別和管理它們。您可以使用這個地址來查詢或配置PCI設備,以及了解它們在系統(tǒng)中的物理位置和特征。

三、PCI設備使用

pcie接口接高速固態(tài)硬盤(SSD)的情景較多,這里使用由Intel Corporation生產(chǎn)的非易失性內存(NVMe)控制器,ArmSom-W3開發(fā)板使用的內核已經(jīng)確保系統(tǒng)上已經(jīng)加載了相應的NVMe驅動程序,并且操作系統(tǒng)能夠正確識別和管理NVMe設備。

3.1 NVMe控制器使用

這里介紹一下使用NVMe控制器的基本步驟:

檢查NVMe設備是否被識別: 運行以下命令,查看系統(tǒng)是否正確識別了NVMe設備

root@linaro-alip:/home/linaro# lspci | grep NVMe 0000:01:00.0 Non-Volatile memory controller: Intel Corporation NVMe Optane Memory Series

如果您看到與Intel Corporation相關的NVMe設備信息,則表示設備已經(jīng)被識別。

檢查NVMe驅動程序是否加載 使用以下命令檢查系統(tǒng)是否已加載了NVMe驅動程序:

lsmod | grep nvme

如果輸出中顯示了與NVMe驅動程序相關的模塊(例如nvme),則表示驅動程序已加載。

查看NVMe設備信息: 使用以下命令查看NVMe設備的詳細信息,包括設備的名稱、容量等:

root@linaro-alip:/home/linaro# nvme list Node SN Model Namespace Usage Format FW Rev ---------------- -------------------- ---------------------------------------- --------- -------------------------- ---------------- -------- /dev/nvme0n1 PHBT8506028Z016N INTEL MEMPEK1J016GAL 1 14.40 GB / 14.40 GB 512 B + 0 B K4110420

或者使用以下命令查看設備的分區(qū)信息:

root@linaro-alip:/home/linaro# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT mmcblk0 179:0 0 29.1G 0 disk ├─mmcblk0p1 179:1 0 4M 0 part ├─mmcblk0p2 179:2 0 4M 0 part ├─mmcblk0p3 179:3 0 64M 0 part ├─mmcblk0p4 179:4 0 128M 0 part ├─mmcblk0p5 179:5 0 32M 0 part ├─mmcblk0p6 179:6 0 14G 0 part / ├─mmcblk0p7 179:7 0 128M 0 part /oem └─mmcblk0p8 179:8 0 14.8G 0 part /userdata mmcblk0boot0 179:32 0 4M 1 disk mmcblk0boot1 179:64 0 4M 1 disk nvme0n1 259:0 0 13.4G 0 disk

在輸出中,NVMe設備通常以/dev/nvmeXnY的形式表示,其中X是NVMe設備的編號,Y是分區(qū)編號。

注意: ArmSom-W3固件里NVMe驅動程序相關的模塊已經(jīng)加載至內核里面 Linux系統(tǒng)通常使用nvme-cli工具執(zhí)行各種操作,如查看設備信息、執(zhí)行固件更新、執(zhí)行健康檢查等

3.2 掛載設備

NVMe設備是/dev/nvme0n1,總容量為14.40 GB,當前使用了14.40 GB

使用以下命令掛載它:

root@linaro-alip:/dev# mount /dev/nvme0n1 /mnt [ 4399.143769] EXT4-fs (nvme0n1): recovery complete [ 4399.145058] EXT4-fs (nvme0n1): mounted filesystem with ordered data mode. Opts: (null)

recovery complete:這是文件系統(tǒng)(EXT4)的恢復消息,它表明文件系統(tǒng)在掛載前進行了一次恢復操作,以確保文件系統(tǒng)的一致性。

mounted filesystem with ordered data mode. Opts: (null):這是文件系統(tǒng)掛載成功的消息,表明文件系統(tǒng)已經(jīng)成功掛載,并且使用了"ordered data mode"模式。括號中的"(null)"表示沒有指定特定的掛載選項。

使用以下命令卸載設備:

umount /mnt

對于存儲設備,還可以進行分區(qū)和格式化操作,這個看個人需要,可以使用工具如fdisk或parted來創(chuàng)建分區(qū),并使用mkfs命令格式化分區(qū)

3.3 讀寫測試

對NVMe設備進行讀寫測試,可以使用一些專門的基準測試工具,例如fio或dd命令。 下面是一些基本的操作步驟:

使用fio進行讀寫測試:

安裝fio工具

apt-get install fio

創(chuàng)建一個fio測試配置文件,創(chuàng)建一個名為test.fio的文件,內容如下:

[sequential-read] filename=/dev/nvme0n1 rw=read bs=4k size=1G

這個配置文件將對NVMe設備執(zhí)行4KB塊大小的1GB順序讀取測試??梢愿鶕?jù)需要調整參數(shù)。

使用dd命令進行讀寫測試:

運行以下寫測試命令:

sudo dd if=/dev/zero of=/dev/nvme0n1 bs=1M count=1000

其中if參數(shù)是輸入文件(通常是/dev/zero,用于寫入測試),of參數(shù)是輸出文件(通常是您的NVMe設備),bs參數(shù)是塊大小,count參數(shù)是要執(zhí)行的塊數(shù)

運行以下讀測試命令:

sudo dd if=/dev/nvme0n1 of=/dev/null bs=1M count=1000

讀寫性能可能會受到多種因素的影響,包括設備型號、硬件配置和測試條件等

wKgaomVC-jWAY2F3ABfg2nCqESE422.jpg



審核編輯 黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • PCIe
    +關注

    關注

    16

    文章

    1342

    瀏覽量

    85154
  • banana pi
    +關注

    關注

    1

    文章

    124

    瀏覽量

    3497
  • RK3588
    +關注

    關注

    7

    文章

    421

    瀏覽量

    5917
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    Banana Pi BPI-RV2開發(fā)板試用體驗】開箱上電

    ?、板載 512MB DDR3 內存 、128 MiB NAND、16 MiB NOR、M.2接?,MINI PCIE和USB 2.0接?等。 Banana Pi
    發(fā)表于 06-26 19:51

    Banana Pi BPI-RV2開發(fā)板試用體驗】開發(fā)板介紹視頻

    .參考資源https://docs.banana-pi.org/en/BPI-RV2/BananaPi_BPI-RV2 https://docs.banana-pi.org/zh/
    發(fā)表于 06-24 23:51

    北京迅為RK3588平臺成功適配“望獲”國產(chǎn)OS

    北京迅為RK3588平臺成功適配“望獲”國產(chǎn)OS
    的頭像 發(fā)表于 04-09 15:35 ?438次閱讀
    北京迅為<b class='flag-5'>RK3588</b><b class='flag-5'>平臺</b>成功適配“望獲”國產(chǎn)OS

    RK3588 EVB開發(fā)板原理圖講解【八】 RK3588 power Tree

    本帖最后由 瑞芯微方案開發(fā)老王 于 2025-3-1 11:41 編輯 一、RK3588電源架構核心特點 ?多電源域設計? 芯片通常劃分為多個獨立電源域(Power Domain),例如
    發(fā)表于 03-01 11:38

    快速上手RK3588:攝像頭調試

    前言:在上一文章中,我們已經(jīng)配置好了Ubuntu虛擬機。本期將重點介紹如何Ubuntu虛擬機中使用RK3588的SDK。具體內容包括SDK的下載與安裝、環(huán)境變量的配置、以及編譯調試的步驟和注意事項
    的頭像 發(fā)表于 02-27 08:31 ?1968次閱讀
    快速上手<b class='flag-5'>RK3588</b>:攝像頭<b class='flag-5'>調試</b>

    RK3588 EVB開發(fā)板原理圖講解【六】

    或M.2接口實現(xiàn)存儲擴容,平衡初期投入與長期需求。 實際上rk原廠有提供了rk3588平臺的emmc支持列表 附件分享了rk平臺的emm
    發(fā)表于 02-26 11:07

    RK3588 EVB開發(fā)板原理圖講解【五】

    板效果 RK3588 EVB開發(fā)板原理圖連載: RK3588 EVB開發(fā)板原理圖講解【一】RK3588原理圖設計- 整體框架設計
    發(fā)表于 02-20 16:04

    Banana Pi開源社區(qū)基于瑞芯微RK3588開發(fā)板,DeepSeek開發(fā)利器

    。 []() Banana Pi BPI-W3單板機是由Banana Pi團隊為專業(yè)和企業(yè)用戶設計和開發(fā)
    發(fā)表于 02-19 18:27

    Banana Pi開源社區(qū)基于瑞芯微RK3588開發(fā)板,DeepSeek開發(fā)利器

    Banana Pi開源社區(qū)基于瑞芯微RK3588開發(fā)板,DeepSeek開發(fā)利器
    的頭像 發(fā)表于 02-19 18:25 ?1826次閱讀
    <b class='flag-5'>Banana</b> <b class='flag-5'>Pi</b>開源社區(qū)基于瑞芯微<b class='flag-5'>RK3588</b><b class='flag-5'>開發(fā)</b>板,DeepSeek<b class='flag-5'>開發(fā)</b>利器

    RK3588 EVB開發(fā)板原理圖講解【四】

    (Endpoint,端點設備)使用;另外一個 2Lane 和 3 個 1Lane 控制器均只能作為 RC(Root Complex,根復合體)使用。 RK3588PCIe PHY(物理層) 有兩種
    發(fā)表于 02-18 08:04

    瑞芯微技術信息簡報之rk3588 PK rk3588s

    瑞芯微技術信息簡報(2025.1.13-2025.1.17) [/td]RK3588RK3588S備注 封裝23*23 mm,0.65pitch17*17 mm,0.4pitch DDR支持
    發(fā)表于 02-11 11:53

    RK3588 SDK入門之編譯使用

    前言:在上一文章中,我們已經(jīng)配置好了Ubuntu虛擬機。本期將重點介紹如何Ubuntu虛擬機中使用RK3588的SDK。具體內容包括SDK的下載與安裝、環(huán)境變量的配置、以及編譯調試的步驟和注意事項
    的頭像 發(fā)表于 11-22 01:07 ?4355次閱讀
    <b class='flag-5'>RK3588</b> SDK入門之編譯使用<b class='flag-5'>篇</b>

    Banana Pi BPI-R3路由器開發(fā)板運行 OrayOS物聯(lián)網(wǎng)系統(tǒng)

    近日,Banana PI開發(fā)板宣布與貝銳達成戰(zhàn)略合作,貝銳OrayOS現(xiàn)已成功適配Banana PIB
    的頭像 發(fā)表于 10-23 15:49 ?1319次閱讀
    <b class='flag-5'>Banana</b> <b class='flag-5'>Pi</b> <b class='flag-5'>BPI-R3</b>路由器<b class='flag-5'>開發(fā)</b>板運行 OrayOS物聯(lián)網(wǎng)系統(tǒng)

    用戶手冊 | 國產(chǎn)最強SOC——RK3588調試登錄

    基于眺望EVM-RK3588V1.0評估板與Core-RK3588核心板詳細介紹如何進行RK3588調試登錄與環(huán)境搭建,幫助開發(fā)者快速上手
    的頭像 發(fā)表于 10-18 08:06 ?7513次閱讀
    用戶手冊 | 國產(chǎn)最強SOC——<b class='flag-5'>RK3588</b>之<b class='flag-5'>調試</b>登錄<b class='flag-5'>篇</b>

    RK3588!黑神話悟空,啟動?-迅為電子RK3588開發(fā)

    RK3588!黑神話悟空,啟動?-迅為電子RK3588開發(fā)
    的頭像 發(fā)表于 08-30 14:13 ?1369次閱讀
    <b class='flag-5'>RK3588</b>!黑神話悟空,啟動?-迅為電子<b class='flag-5'>RK3588</b><b class='flag-5'>開發(fā)</b>板