[BPI-R3] M2 SLOT Devices

Let’s try to gather a list of working devices of BPI-R3 devices.

NVME storage devices. Network cards. WLAN cards. Actually in the boot log it shows gen3 strings, someone could explain more about is as the datasheet only shows claims Gen2.

Let us compile a list and some remarks.

ASUS MT7922 WLAN. Stock driver kinda works, you have to manually put firmware files to get it working. It shows up. No 6GHz mode present, scan works. How to even enable 6GHz AP? I’ve tried 6G in wireless config file, it ended up router unbootable.

Realtek R8125 2.5GB AE card. kmod r8169 often hangs, PCIE errors are often shown, sometimes freezes. It ain’t operational. I really need another 2.5GBe port, but this could be a tough cookie due to compatibility. Anyone tried something similar?

I have some spare time these days to log something, during work days as usually limited due to the thing called - JOB.

1 Like

I have the MT7922A22M module, but I’m still waiting for the m.2 adapter to arrive. Did you install kmod-mt7921e?

for storage-section:

currently i have an old sk hynix nvme in my first r3 and had not yet any issues

01:00.0 Non-Volatile memory controller: SK hynix BC501 NVMe Solid State Drive 51
2GB (prog-if 02 [NVM Express])                                                  
        Subsystem: SK hynix BC501 NVMe Solid State Drive 512GB                  
        Flags: bus master, fast devsel, latency 0, IRQ 130                      
        Memory at 20000000 (64-bit, non-prefetchable) [size=16K]                
        Capabilities: [80] Power Management version 3                           
        Capabilities: [90] MSI: Enable- Count=1/32 Maskable+ 64bit+             
        Capabilities: [b0] MSI-X: Enable+ Count=32 Masked-                      
        Capabilities: [c0] Express Endpoint, MSI 00                             
        Capabilities: [100] Advanced Error Reporting                            
        Capabilities: [150] Device Serial Number 00-00-00-00-00-00-00-00        
        Capabilities: [160] Power Budgeting <?>                                 
        Capabilities: [1b8] Latency Tolerance Reporting                         
        Capabilities: [300] Secondary PCI Express                               
        Capabilities: [400] Vendor Specific Information: ID=0001 Rev=1 Len=010 <
?>                                                                              
        Capabilities: [900] L1 PM Substates                                     
        Kernel driver in use: nvme

prepared my second r3 with a crucial p2, but not yet tested

edit: crucial nvme works too

details
01:00.0 Non-Volatile memory controller: Micron/Crucial Technology Device 540a (rev 01) (prog-if 02 [NVM Express])                    
        Subsystem: Micron/Crucial Technology Device 540a                                                                             
        Flags: bus master, fast devsel, latency 0, IRQ 130                                                                           
        Memory at 20000000 (64-bit, non-prefetchable) [size=16K]                                                                     
        Capabilities: [80] Express Endpoint, MSI 00                                                                                  
        Capabilities: [d0] MSI-X: Enable+ Count=9 Masked-                                                                            
        Capabilities: [e0] MSI: Enable- Count=1/8 Maskable+ 64bit+                                                                   
        Capabilities: [f8] Power Management version 3                                                                                
        Capabilities: [100] Latency Tolerance Reporting                                                                              
        Capabilities: [110] L1 PM Substates                                                                                          
        Capabilities: [200] Advanced Error Reporting                                                                                 
        Capabilities: [300] Secondary PCI Express                                                                                    
        Kernel driver in use: nvme  
root@bpi-r3:~# dmesg | grep 'pci\|nvme'                                                                                              
[    1.395082] mtk-pcie-gen3 11280000.pcie: host bridge /soc/pcie@11280000 ranges:                                                   
[    1.402529] mtk-pcie-gen3 11280000.pcie: Parsing ranges property...                                                               
[    1.408785] mtk-pcie-gen3 11280000.pcie:      MEM 0x0020000000..0x002fffffff -> 0x0020000000                                      
[    1.580195] mtk-pcie-gen3 11280000.pcie: set MEM trans window[0]: cpu_addr = 0x20000000, pci_addr = 0x20000000, size = 0x10000000 
[    1.592184] mtk-pcie-gen3 11280000.pcie: PCI host bridge to bus 0000:00                                                           
[    1.598795] pci_bus 0000:00: root bus resource [bus 00-ff]                                                                        
[    1.604278] pci_bus 0000:00: root bus resource [mem 0x20000000-0x2fffffff]                                                        
[    1.611136] pci_bus 0000:00: scanning bus                                                                                         
[    1.615163] pci 0000:00:00.0: [14c3:1f32] type 01 class 0x060400                                                                  
[    1.621171] pci 0000:00:00.0: reg 0x10: [mem 0x00000000-0x00007fff 64bit]                                                         
[    1.628020] pci 0000:00:00.0: PME# supported from D0 D3hot D3cold                                                                 
[    1.634106] pci 0000:00:00.0: PME# disabled                                                                                       
[    1.638403] pci 0000:00:00.0: vgaarb: pci_notify                                                                                  
[    1.643796] pci_bus 0000:00: fixups for bus                                                                                       
[    1.647972] pci 0000:00:00.0: scanning [bus 00-00] behind bridge, pass 0                                                          
[    1.654665] pci 0000:00:00.0: bridge configuration invalid ([bus 00-00]), reconfiguring                                           
[    1.662662] pci 0000:00:00.0: scanning [bus 00-00] behind bridge, pass 1                                                          
[    1.669413] pci_bus 0000:01: scanning bus                                                                                         
[    1.673447] pci 0000:01:00.0: [c0a9:540a] type 00 class 0x010802                                                                  
[    1.679466] pci 0000:01:00.0: reg 0x10: [mem 0x00000000-0x00003fff 64bit]                                                         
[    1.686442] pci 0000:01:00.0: 8.000 Gb/s available PCIe bandwidth, limited by 5.0 GT/s PCIe x2 link at 0000:00:00.0 (capable of 3)
[    1.701496] pci 0000:01:00.0: vgaarb: pci_notify                                                                                  
[    1.731681] pci_bus 0000:01: fixups for bus                                                                                       
[    1.735854] pci_bus 0000:01: bus scan returning with max=01                                                                       
[    1.741411] pci_bus 0000:01: busn_res: [bus 01-ff] end is updated to 01                                                           
[    1.748022] pci_bus 0000:00: bus scan returning with max=01                                                                       
[    1.753597] pci 0000:00:00.0: BAR 8: assigned [mem 0x20000000-0x200fffff]                                                         
[    1.760370] pci 0000:00:00.0: BAR 0: assigned [mem 0x20100000-0x20107fff 64bit]                                                   
[    1.767674] pci 0000:01:00.0: BAR 0: assigned [mem 0x20000000-0x20003fff 64bit]                                                   
[    1.774984] pci 0000:00:00.0: PCI bridge to [bus 01]                                                                              
[    1.779936] pci 0000:00:00.0:   bridge window [mem 0x20000000-0x200fffff]                                                         
[    1.786776] pcieport 0000:00:00.0: vgaarb: pci_notify                                                                             
[    1.791863] pcieport 0000:00:00.0: assign IRQ: got 130                                                                            
[    1.796994] pcieport 0000:00:00.0: enabling device (0000 -> 0002)                                                                 
[    1.803086] pcieport 0000:00:00.0: enabling bus mastering                                                                         
[    1.808850] mtk-pcie-gen3 11280000.pcie: msi#0x0 address_hi 0x0 address_lo 0x11280c00 data 0                                      
[    1.817283] mtk-pcie-gen3 11280000.pcie: msi#0x1 address_hi 0x0 address_lo 0x11280c00 data 1                                      
[    1.825707] mtk-pcie-gen3 11280000.pcie: msi#0x2 address_hi 0x0 address_lo 0x11280c00 data 2                                      
[    1.834130] mtk-pcie-gen3 11280000.pcie: msi#0x3 address_hi 0x0 address_lo 0x11280c00 data 3                                      
[    1.842556] mtk-pcie-gen3 11280000.pcie: msi#0x4 address_hi 0x0 address_lo 0x11280c00 data 4                                      
[    1.850975] mtk-pcie-gen3 11280000.pcie: msi#0x5 address_hi 0x0 address_lo 0x11280c00 data 5                                      
[    1.859402] mtk-pcie-gen3 11280000.pcie: msi#0x6 address_hi 0x0 address_lo 0x11280c00 data 6                                      
[    1.867826] mtk-pcie-gen3 11280000.pcie: msi#0x7 address_hi 0x0 address_lo 0x11280c00 data 7                                      
[    1.876249] mtk-pcie-gen3 11280000.pcie: msi#0x8 address_hi 0x0 address_lo 0x11280c00 data 8                                      
[    1.884672] mtk-pcie-gen3 11280000.pcie: msi#0x9 address_hi 0x0 address_lo 0x11280c00 data 9                                      
[    1.893095] mtk-pcie-gen3 11280000.pcie: msi#0xa address_hi 0x0 address_lo 0x11280c00 data 10                                     
[    1.901601] mtk-pcie-gen3 11280000.pcie: msi#0xb address_hi 0x0 address_lo 0x11280c00 data 11                                     
[    1.910111] mtk-pcie-gen3 11280000.pcie: msi#0xc address_hi 0x0 address_lo 0x11280c00 data 12                                     
[    1.918622] mtk-pcie-gen3 11280000.pcie: msi#0xd address_hi 0x0 address_lo 0x11280c00 data 13                                     
[    1.927132] mtk-pcie-gen3 11280000.pcie: msi#0xe address_hi 0x0 address_lo 0x11280c00 data 14                                     
[    1.935643] mtk-pcie-gen3 11280000.pcie: msi#0xf address_hi 0x0 address_lo 0x11280c00 data 15                                     
[    1.944153] mtk-pcie-gen3 11280000.pcie: msi#0x10 address_hi 0x0 address_lo 0x11280c00 data 16                                    
[    1.952752] mtk-pcie-gen3 11280000.pcie: msi#0x11 address_hi 0x0 address_lo 0x11280c00 data 17                                    
[    1.961344] mtk-pcie-gen3 11280000.pcie: msi#0x12 address_hi 0x0 address_lo 0x11280c00 data 18                                    
[    1.969942] mtk-pcie-gen3 11280000.pcie: msi#0x13 address_hi 0x0 address_lo 0x11280c00 data 19                                    
[    1.978542] mtk-pcie-gen3 11280000.pcie: msi#0x14 address_hi 0x0 address_lo 0x11280c00 data 20                                    
[    1.987139] mtk-pcie-gen3 11280000.pcie: msi#0x15 address_hi 0x0 address_lo 0x11280c00 data 21                                    
[    1.995736] mtk-pcie-gen3 11280000.pcie: msi#0x16 address_hi 0x0 address_lo 0x11280c00 data 22                                    
[    2.004333] mtk-pcie-gen3 11280000.pcie: msi#0x17 address_hi 0x0 address_lo 0x11280c00 data 23                                    
[    2.012930] mtk-pcie-gen3 11280000.pcie: msi#0x18 address_hi 0x0 address_lo 0x11280c00 data 24                                    
[    2.021522] mtk-pcie-gen3 11280000.pcie: msi#0x19 address_hi 0x0 address_lo 0x11280c00 data 25                                    
[    2.030119] mtk-pcie-gen3 11280000.pcie: msi#0x1a address_hi 0x0 address_lo 0x11280c00 data 26                                    
[    2.038716] mtk-pcie-gen3 11280000.pcie: msi#0x1b address_hi 0x0 address_lo 0x11280c00 data 27                                    
[    2.047313] mtk-pcie-gen3 11280000.pcie: msi#0x1c address_hi 0x0 address_lo 0x11280c00 data 28                                    
[    2.055910] mtk-pcie-gen3 11280000.pcie: msi#0x1d address_hi 0x0 address_lo 0x11280c00 data 29                                    
[    2.064508] mtk-pcie-gen3 11280000.pcie: msi#0x1e address_hi 0x0 address_lo 0x11280c00 data 30                                    
[    2.073105] mtk-pcie-gen3 11280000.pcie: msi#0x1f address_hi 0x0 address_lo 0x11280c00 data 31                                    
[    2.082069] mtk-pcie-gen3 11280000.pcie: msi#0x0 address_hi 0x0 address_lo 0x11280c00 data 0                                      
[    2.090598] pcieport 0000:00:00.0: PME: Signaling with IRQ 131                                                                    
[    2.096745] pcieport 0000:00:00.0: AER: enabled with IRQ 131                                                                      
[    2.102498] pcieport 0000:00:00.0: saving config space at offset 0x0 (reading 0x1f3214c3)                                         
[    2.110662] pcieport 0000:00:00.0: saving config space at offset 0x4 (reading 0x100406)                                           
[    2.118656] pcieport 0000:00:00.0: saving config space at offset 0x8 (reading 0x6040001)                                          
[    2.126734] pcieport 0000:00:00.0: saving config space at offset 0xc (reading 0x10000)                                            
[    2.134636] pcieport 0000:00:00.0: saving config space at offset 0x10 (reading 0x20100004)                                        
[    2.142887] pcieport 0000:00:00.0: saving config space at offset 0x14 (reading 0x0)                                               
[    2.150526] pcieport 0000:00:00.0: saving config space at offset 0x18 (reading 0x10100)                                           
[    2.158518] pcieport 0000:00:00.0: saving config space at offset 0x1c (reading 0x1f1)                                             
[    2.166335] pcieport 0000:00:00.0: saving config space at offset 0x20 (reading 0x20002000)                                        
[    2.174587] pcieport 0000:00:00.0: saving config space at offset 0x24 (reading 0x1fff1)                                           
[    2.182576] pcieport 0000:00:00.0: saving config space at offset 0x28 (reading 0x0)                                               
[    2.190215] pcieport 0000:00:00.0: saving config space at offset 0x2c (reading 0x0)                                               
[    2.197857] pcieport 0000:00:00.0: saving config space at offset 0x30 (reading 0x0)                                               
[    2.205499] pcieport 0000:00:00.0: saving config space at offset 0x34 (reading 0x80)                                              
[    2.213228] pcieport 0000:00:00.0: saving config space at offset 0x38 (reading 0x0)                                               
[    2.220867] pcieport 0000:00:00.0: saving config space at offset 0x3c (reading 0x20182)                                           
[    2.228893] pcieport 0000:00:00.0: vgaarb: pci_notify                                                                             
[    2.234037] nvme 0000:01:00.0: vgaarb: pci_notify                                                                                 
[    2.238753] nvme 0000:01:00.0: assign IRQ: got 130                                                                                
[    2.243715] nvme nvme0: pci function 0000:01:00.0                                                                                 
[    2.248415] nvme 0000:01:00.0: enabling device (0000 -> 0002)                                                                     
[    2.254166] nvme 0000:01:00.0: enabling bus mastering                                                                             
[    2.259274] mtk-pcie-gen3 11280000.pcie: msi#0x1 address_hi 0x0 address_lo 0x11280c00 data 1                                      
[    2.267786] nvme 0000:01:00.0: saving config space at offset 0x0 (reading 0x540ac0a9)                                             
[    2.275608] nvme 0000:01:00.0: saving config space at offset 0x4 (reading 0x100406)                                               
[    2.283257] nvme 0000:01:00.0: saving config space at offset 0x8 (reading 0x1080201)                                              
[    2.290984] nvme 0000:01:00.0: saving config space at offset 0xc (reading 0x0)                                                    
[    2.298193] nvme 0000:01:00.0: saving config space at offset 0x10 (reading 0x20000004)                                            
[    2.306096] nvme 0000:01:00.0: saving config space at offset 0x14 (reading 0x0)                                                   
[    2.313394] nvme 0000:01:00.0: saving config space at offset 0x18 (reading 0x0)                                                   
[    2.320686] nvme 0000:01:00.0: saving config space at offset 0x1c (reading 0x0)                                                   
[    2.327982] nvme 0000:01:00.0: saving config space at offset 0x20 (reading 0x0)                                                   
[    2.335283] nvme 0000:01:00.0: saving config space at offset 0x24 (reading 0x0)                                                   
[    2.342580] nvme 0000:01:00.0: saving config space at offset 0x28 (reading 0x0)                                                   
[    2.349872] nvme 0000:01:00.0: saving config space at offset 0x2c (reading 0x540ac0a9)                                            
[    2.357776] nvme 0000:01:00.0: saving config space at offset 0x30 (reading 0x0)                                                   
[    2.365072] nvme 0000:01:00.0: saving config space at offset 0x34 (reading 0x80)                                                  
[    2.372456] nvme 0000:01:00.0: saving config space at offset 0x38 (reading 0x0)                                                   
[    2.379749] nvme 0000:01:00.0: saving config space at offset 0x3c (reading 0x182)                                                 
[    2.414485] nvme nvme0: missing or invalid SUBNQN field.                                                                          
[    2.435706] nvme nvme0: allocated 128 MiB host memory buffer.                                                                     
[    2.468066] mtk-pcie-gen3 11280000.pcie: msi#0x1 address_hi 0x0 address_lo 0x11280c00 data 1                                      
[    2.476526] mtk-pcie-gen3 11280000.pcie: msi#0x2 address_hi 0x0 address_lo 0x11280c00 data 2                                      
[    2.484973] mtk-pcie-gen3 11280000.pcie: msi#0x3 address_hi 0x0 address_lo 0x11280c00 data 3                                      
[    2.493417] mtk-pcie-gen3 11280000.pcie: msi#0x4 address_hi 0x0 address_lo 0x11280c00 data 4                                      
[    2.501866] mtk-pcie-gen3 11280000.pcie: msi#0x5 address_hi 0x0 address_lo 0x11280c00 data 5                                      
[    2.708913] nvme nvme0: 4/0/0 default/read/poll queues                                                                            
[    2.715021] nvme 0000:01:00.0: vgaarb: pci_notify                                                                                 
[    2.745579] nvme nvme0: Ignoring bogus Namespace Identifiers
1 Like

Yes mt7921e, but you will have to manually put mediatek firmware that our default sources do not provide. Boot logs will have rude messages otherwise and nothing will work. MT7922 files, I didn’t hook up the bluetooth USB header, no need for that.

I took those from here and put manually, just wget them and copy.

https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/mediatek

Also here emerges our strange partition size limit issue, we lack storage to get git/make to compile our drivers, that I would try with my realtek NIC, that also enables multicore capability RSS, as the default ones for some strange reasons do not provide it applies also to intel igb. Resizing works, but that will break updating as an error will show as our driver amount will be larger than the default partition size and will error out. I am too lazy to compile my own build, also we don’t have any stable build yet to firmly anchor on and customize to our needs.

@frank-w Do not forget to install fstrim besides kmod-nvme, everyone forgets it.

i do not use openwrt but yes i know fstrim needs to be run from time to time (cronjob or discard option in fstab)

The adapter has finally arrived. Apparently I don’t have any 6ghz capable client, but the 6ghz AP is up and running. supposedly. Make sure you set a 6ghz allowing country code and for some reason wpa3 security. I’ll try to get a client to test it.

Samsung 990Pro 2TB is working. BR sacki

I’ve slapped an Intel i225 2.5GB nic in the M2 slot. It a native B+M key card.

https://www.aliexpress.com/item/1005003826500973.html?spm=a2g0o.order_list.order_list_main.111.624f1802zt4OWE

It it works fine. CPU load is acceptable. It is a B3 stepping. Not sure I need to hassle with the drivers that have RSS enabled.

image

This card will need a lot of mods to natively fit the case. Either you 3D print a new case or you have to resolder the card and change headers to more slim ones.

But yay, I have 3 2.5GB wired ports now.

The Realtek 2.5GB A+E sized cards do not work normally. Because it is Realtek.

Just to report that the super-cheap 2TB Lexar NM610 Pro also works smoothly.

Feedback regarding i225 as additional NIC.

You have to disable Rx Tx offload as after random time it becomes numb, it can be revived only doing power off, not reboot, basically it smells like complete desync making some of the internal accelerators cuckoo.

It is INTEL, what else to expect these days. Their latest NICs are as bad as Realtek, but the funny part INTEL is more HW flawed than driver wise.

After disabling it has worked since and works as good as the internal ones basically giving all I need. A input fiber and NAS and PC with dedicated 2.5Gb line.

The Western Digital WD SN740 512GB seems to work well on the R3 MINI.

At least it does on linux-stable (v6.5.12). On the newest v6.7-rc, there seems to be a bug that will prevent it from initializing.