[嵌入式linux] RK3399/RK3568 PCIE介面的M2固態硬碟調式

tt7643066發表於2022-06-11

一、硬體平臺
RK3399+NVME固態硬碟
[嵌入式linux] RK3399/RK3568 PCIE介面的M2固態硬碟調式

二、軟體調式過程
1、 在dev/block下有識別到nvme
[嵌入式linux] RK3399/RK3568 PCIE介面的M2固態硬碟調式
2、格式化 掛載之後 下df-h 看到已經識別到硬碟容量
格式化命令:mkdosfs /dev/block/nvme0n1p1
掛載命令:busybox mount /dev/block/nvme0n1p1 /data/nvme
[嵌入式linux] RK3399/RK3568 PCIE介面的M2固態硬碟調式

加log分析

void VolumeManager::handleBlockEvent(NetlinkEvent *evt) {
std::lock_guard<std::mutex> lock(mLock);

if (mDebug) {
        LOG(VERBOSE) << "----------------";
        LOG(VERBOSE) << "handleBlockEvent with action " << (int) evt->getAction();
        evt->dump();
    }std::string eventPath(evt->findParam("DEVPATH")?evt->findParam("DEVPATH"):"");
    std::string devType(evt->findParam("DEVTYPE")?evt->findParam("DEVTYPE"):"");

+ LOG << "handleBlockEvent with eventPath " << eventPath;

if (devType != "disk") return;
加入補丁

1. if (isVirtioBlkDevice(majorId)) {
LOG << "Recognized experimental block major ID " << majorId
<< " as virtio-blk (emulator's virtual SD card device)";
mLabel = "Virtual";
break;
}
if(majorId==259) {
LOG << "majorID==259 major11 type " << majorId;
mLabel = "Pcie";
break;
}
LOG << "Unsupported block major11 type " << majorId;
return -ENOTSUP;
2: if (isVirtioBlkDevice(majorId)) {
// drivers/block/virtio_blk.c has "#define PART_BITS 4", so max is
// 2^4 - 1 = 15
return 15;
}
if(majorId==259) {
LOG << "majorID==259 major22 type " << majorId;
return 15;
}


結果可以識別到了 識別成USB移動裝置
[嵌入式linux] RK3399/RK3568 PCIE介面的M2固態硬碟調式


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69948385/viewspace-2900032/,如需轉載,請註明出處,否則將追究法律責任。

相關文章