[Bug 274484] NVMe drive not working on RK3566 Rock 3C Model
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.