[Bug 274484] NVMe drive not working on RK3566 Rock 3C Model

From: <bugzilla-noreply_at_freebsd.org>
Date: Sun, 15 Oct 2023 10:26:13 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=274484

            Bug ID: 274484
           Summary: NVMe drive not working on RK3566 Rock 3C Model
           Product: Base System
           Version: 15.0-CURRENT
          Hardware: arm64
                OS: Any
            Status: New
          Severity: Affects Only Me
          Priority: ---
         Component: arm
          Assignee: freebsd-arm@FreeBSD.org
          Reporter: szczepan@szczepan.net

Hi.
I'm trying to get NVMe driver working under this board. From the specs it's
very similar to Quartz64-B, which should have some support already in kernel
and also in DTS (PCIe is enabled in there).

I'm using FreeBSD 15.0-CURRENT #0 main-n265904-bb679b0c4909.
DTS used is the one from
https://github.com/warpme/minimyth2/blob/master/script/kernel/linux-6.5/files/0845-arm64-dts-rockchip-add-dts-for-rock3c.patch
(I've compared it with Quartz64-b and only some USB diffs are in there).

The effect is the same with this DTS and Quart64-b one.

Ethernet works, 2 USB works. Here are some logs from boot (if needed I can
provide full dmesg, I think this part is related to pcie):

pcib0: <RockChip RK3568 PCI-express controller> mem
0x3c0000000-0x3c03fffff,0xfe260000-0xfe26ffff,0xf4000000-0xf40fffff irq
34,35,36,37,38 on ofwbus0
rk3568_combphy1: configuring for PCIe ref_clk=25000000
pcib0: Bus is not cache-coherent
pcib0: Using iATU unroll mode
pcib0: Detected outbound iATU regions: 8
pci0: <OFW PCI bus> on pcib0
pci0: domain=0, physical bus=0
found-> vendor=0x1d87, dev=0x3566, revid=0x01
        domain=0, bus=0, slot=0, func=0
        class=06-04-00, hdrtype=0x01, mfdev=0
        cmdreg=0x0107, statreg=0x0010, cachelnsz=0 (dwords)
        lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
        intpin=a, irq=255
        powerspec 3  supports D0 D1 D2 D3  current D0
        MSI supports 32 messages, 64 bit
        MSI-X supports 1 message in map 0x10
        secbus=1, subbus=255
pcib1: <PCI-PCI bridge> at device 0.0 on pci0
pcib0: failed to reserve resource for pcib1
pcib1: failed to allocate initial I/O port window: 0-0xfff
pcib0: failed to reserve resource for pcib1
pcib1: failed to allocate initial memory window: 0-0xfffff
pcib0: failed to reserve resource for pcib1
pcib1: failed to allocate initial prefetch window: 0-0xfffff
pcib1:   domain            0
pcib1:   secondary bus     1
pcib1:   subordinate bus   255
pci1: <PCI bus> on pcib1
pcib1: allocated bus range (1-1) for rid 0 of pci1
pci1: domain=0, physical bus=1
found-> vendor=0x1217, dev=0x8760, revid=0x01
        domain=0, bus=1, slot=0, func=0
        class=01-08-02, hdrtype=0x00, mfdev=0
        cmdreg=0x0000, statreg=0x0010, cachelnsz=0 (dwords)
        lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
        intpin=a, irq=255
        powerspec 3  supports D0 D3  current D0
        MSI supports 16 messages, 64 bit, vector masks
        MSI-X supports 16 messages in map 0x10
        map[10]: type Memory, range 64, base 0, size 14, memory disabled
nvme0: <Generic NVMe Device> at device 0.0 on pci1
pcib1: allocated initial memory window of 0x40000000-0x400fffff
pcib1: allocated memory range (0x40000000-0x40003fff) for rid 10 of nvme0
nvme0: Lazy allocation of 0x4000 bytes rid 0x10 type 3 at 0x40000000
ofw_pci mapdev: start 300000000, len 16384
nvme0: attempting to allocate 5 MSI-X vectors (16 supported)
nvme0: using IRQs 82-86 for MSI-X
nvme0: CapLo: 0xffffffff: MQES 65535, CQR, AMS WRRwUPC VS, TO 255
nvme0: CapHi: 0xffffffff: DSTRD 15, NSSRS, CSS ff, BPS, MPSMIN 15, MPSMAX 15,
PMRS, CMBS
nvme0: Version: 0xffffffff: 65535.255
nvme0: PMRCap: 0xffffffff: BIR 7, RDS, WDS, PMRTU 3, PMRWBM f, PMRTO 255, CMSS

Then:

root@freebsd:~ # nvmecontrol devlist
nvme0: pt->len (4096) exceeds max_xfer_size (0)


I've checked the NVMe under Linux on the same board and it's working fine, the
specs are:

root@rock-3c:~# nvme list
Node                  SN                   Model                               
    Namespace Usage                      Format           FW Rev
--------------------- --------------------
---------------------------------------- --------- --------------------------
---------------- --------
/dev/nvme0n1          MCF433D00C30E        E2M2 64GB                           
    1          61.87  GB /  61.87  GB    512   B +  0 B   10100080

The drive is FORESEE FE2H0M064G-B5X10 64GB M.2 PCIe

-- 
You are receiving this mail because:
You are the assignee for the bug.