Adding additional Wifi and WWAN Card

Hi,

Just purchased this device and enjoy it so far. One thing I wanted to get help with to add a Sierra Wireless EM9191 card to the list of drivers within the custom OpenWRT OS and are there instructions to do that? I tried following some instructions using Google to make sure that a few packages were installed and I was unable to get the following installed “opkg install usb-modeswitch”. Any ideas on how to get this package installed and the EM9191 card working? Thanks!!

Hello,

The Sierra EM919x come in PCIe (MHI) mode by default, which OpenWrt does not have drivers for yet.

USB mode should work but the EM919x cards require a special (proprietary - no other vendor does this!) pin on the board (PCIE_DIS) to enter USB mode. The current Ten64 board revision does not have this pin.

For now I would recommend swapping for a Quectel (RM500 or RM502) card if you can get one. The Telit FN980m also works but because of it’s non-standard size it isn’t the best choice.

Ahhh…Thank you for that info!! So is it possible that there are adapter card/ m.2 to mpcie cards that could enable USB mode? or is that something that needs to be enabled by the Ten64?

For the 5G cards, I will look into the RM502Q-GL or the RM502Q-AE, Will either one work?

Last question, does the Compex WLE1216VX work or is the WLE1216V5-20 (Wave2) fine? looking for a Wave 3 card to use in the Ten64.

Cheers!!

The Sierra requires a very specific pin to be wired up for USB mode so unless a miniPCIe adaptor does the same it won’t fix the problem.

I have actually been doing a lot of testing of the PCIe/MHI drivers recently so it’s likely I will do an OpenWrt port for them. There are some issues though such as there being no ‘AT port’ driver in Linux yet.

Either RM502Q is ok, -AE has more extensive RF band support for 5G but removes the second SIM card interface.

Yes, the WLE1216VX and WLE1216V5 will work.

Thank you!!! Will open another post on the Wifi card.

@mcbridematt I am employing 3 additional cards at the current moment.

  1. your supplied M.2 4-port SATA controller (in the smaller M.2 slot)
  2. AsiaRF AW7915-NP1 802.11ax WiFi card (left mPCIe slot)
  3. JMB585 5-port SATA controller (in the larger M.2 slot)

With the latest firmware v0.8.7, I see the following devices with lspci:

0000:01:00.0 SATA controller: Marvell Technology Group Ltd. 88SE9215 PCIe 2.0 x1 4-port SATA 6 Gb/s Controller (rev 11)
0001:00:00.0 PCI bridge: Freescale Semiconductor Inc Device 80c0 (rev 10)
0001:01:00.0 PCI bridge: Pericom Semiconductor Device b304 (rev 01)
0001:02:01.0 PCI bridge: Pericom Semiconductor Device b304 (rev 01)
0001:02:02.0 PCI bridge: Pericom Semiconductor Device b304 (rev 01)
0001:03:00.0 Unclassified device [0002]: MEDIATEK Corp. Device 7915
0002:00:00.0 PCI bridge: Freescale Semiconductor Inc Device 80c0 (rev 10)

What can be detected:

  1. the first SATA controller was detected
  2. Would it be possible to enable CONFIG_MT7915E as a module in kernel-config · torvalds · traversetech / traverse-kernel-patches · GitLab so that it can be used?
  3. The JMicron JMB585 seems to be missing. Any idea?

EDIT:

0000:00:00.0 PCI bridge: Freescale Semiconductor Inc Device 80c0 (rev 10)
0000:01:00.0 SATA controller: JMicron Technology Corp. JMB58x AHCI SATA controller
0001:00:00.0 PCI bridge: Freescale Semiconductor Inc Device 80c0 (rev 10)
0001:01:00.0 PCI bridge: Pericom Semiconductor Device b304 (rev 01)
0001:02:01.0 PCI bridge: Pericom Semiconductor Device b304 (rev 01)
0001:02:02.0 PCI bridge: Pericom Semiconductor Device b304 (rev 01)
0001:04:00.0 Unclassified device [0002]: MEDIATEK Corp. Device 7915
0002:00:00.0 PCI bridge: Freescale Semiconductor Inc Device 80c0 (rev 10)

I noticed that the JMB585 M.2 card even though it is too long does only get detected in the smaller M.2 slot. Any ideas why?

Can you see if a PCIe rescan allows the device to come up:

echo 1 > /sys/bus/pci/rescan

Sometimes devices do not get detected at boot though this issue is rare on newer kernels. I haven’t come across with it with the JMB585.

I’ll have a look at the MT7915E on Monday.


above setup leads to:

root@OpenWrt:/# lspci
0000:00:00.0 PCI bridge: Freescale Semiconductor Inc Device 80c0 (rev 10)
0000:01:00.0 SATA controller: JMicron Technology Corp. JMB58x AHCI SATA controller
0001:00:00.0 PCI bridge: Freescale Semiconductor Inc Device 80c0 (rev 10)
0001:01:00.0 PCI bridge: Pericom Semiconductor Device b304 (rev 01)
0001:02:01.0 PCI bridge: Pericom Semiconductor Device b304 (rev 01)
0001:02:02.0 PCI bridge: Pericom Semiconductor Device b304 (rev 01)
0001:04:00.0 Unclassified device [0002]: MEDIATEK Corp. Device 7915
0002:00:00.0 PCI bridge: Freescale Semiconductor Inc Device 80c0 (rev 10)
0002:01:00.0 SATA controller: Marvell Technology Group Ltd. 88SE9215 PCIe 2.0 x1 4-port SATA 6 Gb/s Controller (rev 11)

Below setup:


leads to:

root@OpenWrt:/# echo 1 > /sys/bus/pci/rescan 
root@OpenWrt:/# lspci
0000:00:00.0 PCI bridge: Freescale Semiconductor Inc Device 80c0 (rev 10)
0000:01:00.0 SATA controller: Marvell Technology Group Ltd. 88SE9215 PCIe 2.0 x1 4-port SATA 6 Gb/s Controller (rev 11)
0001:00:00.0 PCI bridge: Freescale Semiconductor Inc Device 80c0 (rev 10)
0001:01:00.0 PCI bridge: Pericom Semiconductor Device b304 (rev 01)
0001:02:01.0 PCI bridge: Pericom Semiconductor Device b304 (rev 01)
0001:02:02.0 PCI bridge: Pericom Semiconductor Device b304 (rev 01)
0001:04:00.0 Unclassified device [0002]: MEDIATEK Corp. Device 7915
0002:00:00.0 PCI bridge: Freescale Semiconductor Inc Device 80c0 (rev 10)

More information to the given openwrt:

root@OpenWrt:/etc# cat openwrt_release 
DISTRIB_ID='OpenWrt'
DISTRIB_RELEASE='SNAPSHOT'
DISTRIB_REVISION='r0-6efa060'
DISTRIB_TARGET='layerscape/armv8_64b'
DISTRIB_ARCH='aarch64_generic'
DISTRIB_DESCRIPTION='OpenWrt SNAPSHOT r0-6efa060'
DISTRIB_TAINTS='no-all busybox'
root@OpenWrt:/etc# cat openwrt_version 
r0-6efa060
root@OpenWrt:/etc# uname -a
Linux OpenWrt 5.4.61 #0 SMP PREEMPT Mon Dec 21 00:08:33 2020 aarch64 GNU/Linux

Do you see any PCIe link speed indications at bootup, for example this is my board with a JMB585 in the key M:

U-Boot 2020.07-rc1-00434-g488778dcaa-dirty (Jul 26 2021 - 07:40:13 +0000)

SoC:  LS1088AE Rev1.0 (0x87030010)
Clock Configuration:
       CPU0(A53):1600 MHz  CPU1(A53):1600 MHz  CPU2(A53):1600 MHz
       CPU3(A53):1600 MHz  CPU4(A53):1600 MHz  CPU5(A53):1600 MHz
       CPU6(A53):1600 MHz  CPU7(A53):1600 MHz
       Bus:      700  MHz  DDR:      2100 MT/s
[snip]
DRAM:  31.9 GiB
DDR    31.9 GiB (DDR4, 64-bit, CL=15, ECC on)
       DDR Chip-Select Interleaving Mode: CS0+CS1
        31.4 GiB available for userspace

PCIe0: pcie@3400000 Root Complex: x1 gen3
PCIe1: pcie@3500000 Root Complex: x1 gen2
PCIe2: pcie@3600000 Root Complex: x2 gen3

(PCIe0 = M.2 Key B, PCIe1 = PCIe Switch/MiniPCIe, PCIe2 = M.2 Key M)

With setup 2, where the JMB585 is in the M.2 long slot (see above), I get:

U-Boot 2020.07-rc1-gb47b96d4 (Jul 07 2021 - 00:43:32 +0000)

SoC:  LS1088AE Rev1.0 (0x87030010)
Clock Configuration:
       CPU0(A53):1600 MHz  CPU1(A53):1600 MHz  CPU2(A53):1600 MHz  
       CPU3(A53):1600 MHz  CPU4(A53):1600 MHz  CPU5(A53):1600 MHz  
       CPU6(A53):1600 MHz  CPU7(A53):1600 MHz  
       Bus:      700  MHz  DDR:      2100 MT/s
Reset Configuration Word (RCW):
       00000000: 4000541c 00000040 00000000 00000000
       00000010: 00000000 000a0000 00300000 00000000
       00000020: 010011a0 00002580 00000000 00000000
       00000030: 013fe60b 00000000 00002c03 00000000
       00000040: 00000000 00000000 00000000 00000000
       00000050: 00000000 00000000 00000000 00000000
       00000060: 00000000 00000000 00000089 000009e7
       00000070: 44110000 0d007755
DRAM:  31.9 GiB
DDR    31.9 GiB (DDR4, 64-bit, CL=15, ECC on)
       DDR Chip-Select Interleaving Mode: CS0+CS1
        31.4 GiB available for userspace

Using SERDES1 Protocol: 29 (0x1d)
Using SERDES2 Protocol: 20 (0x14)
PCIe0: pcie@3400000 Root Complex: x1 gen2
PCIe1: pcie@3500000 Root Complex: x1 gen2
PCIe2: pcie@3600000 Root Complex: no link

Could it be that one can not populate all the mPCIe and M.2 slots at the same time?

Tried to figure out which JMB585 card I bought. It is the following one: https://www.amazon.de/gp/product/B078875K5Q?psc=1 (seems to be exactly the same as the IO Crest)

I unplugged all of the other cards and kept the JMB585 just in the long M.2 slot:

quite interesting, the U-Boot before I it comes to Hit any key to stop autoboot: 0 I see:

U-Boot 2020.07-rc1-gb47b96d4 (Jul 07 2021 - 00:43:32 +0000)

SoC:  LS1088AE Rev1.0 (0x87030010)
Clock Configuration:
       CPU0(A53):1600 MHz  CPU1(A53):1600 MHz  CPU2(A53):1600 MHz  
       CPU3(A53):1600 MHz  CPU4(A53):1600 MHz  CPU5(A53):1600 MHz  
       CPU6(A53):1600 MHz  CPU7(A53):1600 MHz  
       Bus:      700  MHz  DDR:      2100 MT/s
Reset Configuration Word (RCW):
       00000000: 4000541c 00000040 00000000 00000000
       00000010: 00000000 000a0000 00300000 00000000
       00000020: 010011a0 00002580 00000000 00000000
       00000030: 013fe60b 00000000 00002c03 00000000
       00000040: 00000000 00000000 00000000 00000000
       00000050: 00000000 00000000 00000000 00000000
       00000060: 00000000 00000000 00000089 000009e7
       00000070: 44110000 0d007755
DRAM:  31.9 GiB
DDR    31.9 GiB (DDR4, 64-bit, CL=15, ECC on)
       DDR Chip-Select Interleaving Mode: CS0+CS1
        31.4 GiB available for userspace

Using SERDES1 Protocol: 29 (0x1d)
Using SERDES2 Protocol: 20 (0x14)
PCIe0: pcie@3400000 Root Complex: no link
PCIe1: pcie@3500000 Root Complex: x1 gen2
PCIe2: pcie@3600000 Root Complex: no link
Retimer: (retimer on, resetting...) DS110DF410 found
OK
USB Hub:    No PCI card found in Key B
OK
Fan controller: OK

After I select Normal boot:

Device 0: unknown device
Card did not respond to voltage select!
mmc_init: -95, time 17
starting USB...
Bus usb3@3100000: Register 200017f NbrPorts 2
Starting the controller
USB XHCI 1.00
Bus usb3@3110000: Register 200017f NbrPorts 2
Starting the controller
USB XHCI 1.00
scanning bus usb3@3100000 for devices... 1 USB Device(s) found
scanning bus usb3@3110000 for devices... 3 USB Device(s) found
       scanning usb for storage devices... 0 Storage Device(s) found

Device 0: unknown device

and

root@OpenWrt:/# lspci
0000:00:00.0 PCI bridge: Freescale Semiconductor Inc Device 80c0 (rev 10)
0001:00:00.0 PCI bridge: Freescale Semiconductor Inc Device 80c0 (rev 10)
0001:01:00.0 PCI bridge: Pericom Semiconductor Device b304 (rev 01)
0001:02:01.0 PCI bridge: Pericom Semiconductor Device b304 (rev 01)
0001:02:02.0 PCI bridge: Pericom Semiconductor Device b304 (rev 01)
0002:00:00.0 PCI bridge: Freescale Semiconductor Inc Device 80c0 (rev 10)

Interesting line: Card did not respond to voltage select!
Does it mean, that I should have a proper ATX power supply attached? Currently, as you can see I am directly attaching it to the DC12V power supply.

So my board is behaving oddly. I now unplugged all the cards:

What can be seen: D6 LED is lighting up. Is this the one for a card attached?

At the same time, U-Boot tells me that there is a x1 gen2 card attached:

U-Boot 2020.07-rc1-gb47b96d4 (Jul 07 2021 - 00:43:32 +0000)

SoC:  LS1088AE Rev1.0 (0x87030010)
Clock Configuration:
       CPU0(A53):1600 MHz  CPU1(A53):1600 MHz  CPU2(A53):1600 MHz  
       CPU3(A53):1600 MHz  CPU4(A53):1600 MHz  CPU5(A53):1600 MHz  
       CPU6(A53):1600 MHz  CPU7(A53):1600 MHz  
       Bus:      700  MHz  DDR:      2100 MT/s
Reset Configuration Word (RCW):
       00000000: 4000541c 00000040 00000000 00000000
       00000010: 00000000 000a0000 00300000 00000000
       00000020: 010011a0 00002580 00000000 00000000
       00000030: 013fe60b 00000000 00002c03 00000000
       00000040: 00000000 00000000 00000000 00000000
       00000050: 00000000 00000000 00000000 00000000
       00000060: 00000000 00000000 00000089 000009e7
       00000070: 44110000 0d007755
DRAM:  31.9 GiB
DDR    31.9 GiB (DDR4, 64-bit, CL=15, ECC on)
       DDR Chip-Select Interleaving Mode: CS0+CS1
        31.4 GiB available for userspace

Using SERDES1 Protocol: 29 (0x1d)
Using SERDES2 Protocol: 20 (0x14)
PCIe0: pcie@3400000 Root Complex: no link
PCIe1: pcie@3500000 Root Complex: x1 gen2
PCIe2: pcie@3600000 Root Complex: no link
Retimer: (retimer on, resetting...) DS110DF410 found
OK
USB Hub:    No PCI card found in Key B
OK
Fan controller: OK
MMC:   FSL_SDHC: 0
Loading Environment from SPI Flash... SF: Detected en25s64 with page size 256 Bytes, erase size 64 KiB, total 8 MiB
OK
uC:    MACADDR: 00:0A:FA:24:2E:49
DPMAC7: 00:0A:FA:24:2E:49
DPMAC8: 00:0A:FA:24:2E:4A
DPMAC9: 00:0A:FA:24:2E:4B
DPMAC10: 00:0A:FA:24:2E:4C
DPMAC3: 00:0A:FA:24:2E:4D
DPMAC4: 00:0A:FA:24:2E:4E
DPMAC5: 00:0A:FA:24:2E:4F
DPMAC6: 00:0A:FA:24:2E:50
DPMAC1: 00:0A:FA:24:2E:51
DPMAC2: 00:0A:FA:24:2E:52
In:    serial
Out:   serial
Err:   serial
Model: Traverse Ten64
Board: 1064-0201C, boot from QSPI
Net:   eth0: DPMAC1@xgmii, eth1: DPMAC2@xgmii, eth2: DPMAC3@qsgmii, eth3: DPMAC4@qsgmii, eth4: DPMAC5@qsgmii, eth5: DPMAC6@qsgmii, eth6: DPMAC7@qsgmii [PRIME], eth7: DPMAC8@qsgmii, eth8: DPMAC9@qsgmii, eth9: DPMAC10@qsgmii
SF: Detected en25s64 with page size 256 Bytes, erase size 64 KiB, total 8 MiB
device 0 offset 0x300000, size 0x200000
SF: 2097152 bytes @ 0x300000 Read: OK
device 0 offset 0x5c0000, size 0x40000
SF: 262144 bytes @ 0x5c0000 Read: OK
crc32+ 
fsl-mc: Booting Management Complex ... SUCCESS
fsl-mc: Management Complex booted (version: 10.20.4, boot status: 0x1)
Hit any key to stop autoboot:  0

Even though above picture shows, there is nothing attached.
After I hit Normal boot, I see:

Device 0: unknown device
Card did not respond to voltage select!
mmc_init: -95, time 19
starting USB...
Bus usb3@3100000: Register 200017f NbrPorts 2
Starting the controller
USB XHCI 1.00
Bus usb3@3110000: Register 200017f NbrPorts 2
Starting the controller
USB XHCI 1.00
scanning bus usb3@3100000 for devices... 1 USB Device(s) found
scanning bus usb3@3110000 for devices... 3 USB Device(s) found
       scanning usb for storage devices... 0 Storage Device(s) found

Device 0: unknown device

Again the voltage issue, even though there is no card attached.

EDIT: ok above does not seem to be related. If I plug in the following setup:


I see

U-Boot 2020.07-rc1-gb47b96d4 (Jul 07 2021 - 00:43:32 +0000)

SoC:  LS1088AE Rev1.0 (0x87030010)
Clock Configuration:
       CPU0(A53):1600 MHz  CPU1(A53):1600 MHz  CPU2(A53):1600 MHz  
       CPU3(A53):1600 MHz  CPU4(A53):1600 MHz  CPU5(A53):1600 MHz  
       CPU6(A53):1600 MHz  CPU7(A53):1600 MHz  
       Bus:      700  MHz  DDR:      2100 MT/s
Reset Configuration Word (RCW):
       00000000: 4000541c 00000040 00000000 00000000
       00000010: 00000000 000a0000 00300000 00000000
       00000020: 010011a0 00002580 00000000 00000000
       00000030: 013fe60b 00000000 00002c03 00000000
       00000040: 00000000 00000000 00000000 00000000
       00000050: 00000000 00000000 00000000 00000000
       00000060: 00000000 00000000 00000089 000009e7
       00000070: 44110000 0d007755
DRAM:  31.9 GiB
DDR    31.9 GiB (DDR4, 64-bit, CL=15, ECC on)
       DDR Chip-Select Interleaving Mode: CS0+CS1
        31.4 GiB available for userspace

Using SERDES1 Protocol: 29 (0x1d)
Using SERDES2 Protocol: 20 (0x14)
PCIe0: pcie@3400000 Root Complex: no link
PCIe1: pcie@3500000 Root Complex: x1 gen2
PCIe2: pcie@3600000 Root Complex: x1 gen2
Retimer: (retimer on, resetting...) DS110DF410 found
OK
USB Hub:    No PCI card found in Key B
OK

and I also see:

Device 0: unknown device
Card did not respond to voltage select!
mmc_init: -95, time 18
starting USB...
Bus usb3@3100000: Register 200017f NbrPorts 2
Starting the controller
USB XHCI 1.00
Bus usb3@3110000: Register 200017f NbrPorts 2
Starting the controller
USB XHCI 1.00
scanning bus usb3@3100000 for devices... 1 USB Device(s) found
scanning bus usb3@3110000 for devices... 3 USB Device(s) found
       scanning usb for storage devices... 0 Storage Device(s) found

Device 0: unknown device

while later:

root@OpenWrt:/# lspci
0000:00:00.0 PCI bridge: Freescale Semiconductor Inc Device 80c0 (rev 10)
0001:00:00.0 PCI bridge: Freescale Semiconductor Inc Device 80c0 (rev 10)
0001:01:00.0 PCI bridge: Pericom Semiconductor Device b304 (rev 01)
0001:02:01.0 PCI bridge: Pericom Semiconductor Device b304 (rev 01)
0001:02:02.0 PCI bridge: Pericom Semiconductor Device b304 (rev 01)
0002:00:00.0 PCI bridge: Freescale Semiconductor Inc Device 80c0 (rev 10)
0002:01:00.0 SATA controller: Marvell Technology Group Ltd. 88SE9215 PCIe 2.0 x1 4-port SATA 6 Gb/s Controller (rev 11)

Now I am bit puzzled, not sure why the JMB585 in my case does not show up.

So does the middle x1 gen2 pcie slot represent a device already? I would assume a multiplexer for the mPCIe slots?

Yes it is, it is the PCIe switch that feeds the two miniPCIe slots. The U-Boot boot sequence only displays the link status for devices directly attached to the CPU.

My guess is that there is an issue with the second PCIe lane on your JMB545 card and that is why it won’t link up in the M.2 Key M slot.
The smaller SATA controller card is only a single lane, and the M.2 Key B slot is also only a single lane.

Do you have any other M.2 Key M devices that you could use to check if the Key M slot is working correctly? An NVMe SSD would be the best one to test as they always have two or more lanes.

I tried it with a very new M.2 Key M card (PCIe v4):

And it does look good:

U-Boot 2020.07-rc1-gb47b96d4 (Jul 07 2021 - 00:43:32 +0000)

 
SoC:  LS1088AE Rev1.0 (0x87030010)
Clock Configuration:
       CPU0(A53):1600 MHz  CPU1(A53):1600 MHz  CPU2(A53):1600 MHz
       CPU3(A53):1600 MHz  CPU4(A53):1600 MHz  CPU5(A53):1600 MHz
       CPU6(A53):1600 MHz  CPU7(A53):1600 MHz
       Bus:      700  MHz  DDR:      2100 MT/s
Reset Configuration Word (RCW):
       00000000: 4000541c 00000040 00000000 00000000
       00000010: 00000000 000a0000 00300000 00000000
       00000020: 010011a0 00002580 00000000 00000000
       00000030: 013fe60b 00000000 00002c03 00000000
       00000040: 00000000 00000000 00000000 00000000
       00000050: 00000000 00000000 00000000 00000000
       00000060: 00000000 00000000 00000089 000009e7
       00000070: 44110000 0d007755
DRAM:  31.9 GiB
DDR    31.9 GiB (DDR4, 64-bit, CL=15, ECC on)
       DDR Chip-Select Interleaving Mode: CS0+CS1
        31.4 GiB available for userspace
 
Using SERDES1 Protocol: 29 (0x1d)
Using SERDES2 Protocol: 20 (0x14)
PCIe0: pcie@3400000 Root Complex: no link
PCIe1: pcie@3500000 Root Complex: x1 gen2
PCIe2: pcie@3600000 Root Complex: x2 gen3
Retimer: DS110DF410 found
OK
USB Hub:    No PCI card found in Key B

and

BusyBox v1.31.1 () built-in shell (ash)
 
  _______                     ________        __
 |       |.-----.-----.-----.|  |  |  |.----.|  |_
 |   -   ||  _  |  -__|     ||  |  |  ||   _||   _|
 |_______||   __|_____|__|__||________||__|  |____|
          |__| W I R E L E S S   F R E E D O M
 -----------------------------------------------------
 OpenWrt SNAPSHOT, r0-6efa060
 -----------------------------------------------------
root@OpenWrt:/# lspci
0000:00:00.0 PCI bridge: Freescale Semiconductor Inc Device 80c0 (rev 10)
0001:00:00.0 PCI bridge: Freescale Semiconductor Inc Device 80c0 (rev 10)
0001:01:00.0 PCI bridge: Pericom Semiconductor Device b304 (rev 01)
0001:02:01.0 PCI bridge: Pericom Semiconductor Device b304 (rev 01)
0001:02:02.0 PCI bridge: Pericom Semiconductor Device b304 (rev 01)
0002:00:00.0 PCI bridge: Freescale Semiconductor Inc Device 80c0 (rev 10)
0002:01:00.0 Non-Volatile memory controller: Sandisk Corp Device 5011 (rev 01)
root@OpenWrt:/# dmesg | grep -i nvme
[    1.324994] nvme 0002:01:00.0: Adding to iommu group 0
[    1.330283] nvme nvme0: pci function 0002:01:00.0
[    1.550700] nvme nvme0: 8/0/0 default/read/poll queues
[    1.561274]  nvme0n1: p1 p2
root@OpenWrt:/# dmesg | grep -i pcie
[    0.816918] layerscape-pcie 3400000.pcie: host bridge /soc/pcie@3400000 ranges:
[    0.824291] layerscape-pcie 3400000.pcie:    IO 0x2000010000..0x200001ffff -> 0x00000000
[    0.832440] layerscape-pcie 3400000.pcie:   MEM 0x2040000000..0x207fffffff -> 0x40000000
[    0.840682] layerscape-pcie 3400000.pcie: PCI host bridge to bus 0000:00
[    0.893552] layerscape-pcie 3500000.pcie: host bridge /soc/pcie@3500000 ranges:
[    0.900916] layerscape-pcie 3500000.pcie:    IO 0x2800010000..0x280001ffff -> 0x00000000
[    0.909061] layerscape-pcie 3500000.pcie:   MEM 0x2840000000..0x287fffffff -> 0x40000000
[    0.917301] layerscape-pcie 3500000.pcie: PCI host bridge to bus 0001:00
[    0.984218] pci 0001:01:00.0: 4.000 Gb/s available PCIe bandwidth, limited by 5 GT/s x1 link at 0001:00:00.0 (capable of 8.000 Gb/s with 5 GT/s x2 link)
[    1.067789] layerscape-pcie 3600000.pcie: host bridge /soc/pcie@3600000 ranges:
[    1.075154] layerscape-pcie 3600000.pcie:    IO 0x3000010000..0x300001ffff -> 0x00000000
[    1.083303] layerscape-pcie 3600000.pcie:   MEM 0x3040000000..0x307fffffff -> 0x40000000
[    1.091529] layerscape-pcie 3600000.pcie: PCI host bridge to bus 0002:00
[    1.154630] pci 0002:01:00.0: 15.752 Gb/s available PCIe bandwidth, limited by 8 GT/s x2 link at 0002:00:00.0 (capable of 63.012 Gb/s with 16 GT/s x4 link)
[    3.270955] pcieport 0000:00:00.0: Adding to iommu group 2
[    3.276574] pcieport 0000:00:00.0: PME: Signaling with IRQ 364
[    3.282519] pcieport 0000:00:00.0: AER: enabled with IRQ 17
[    3.288206] pcieport 0001:00:00.0: Adding to iommu group 3
[    3.293795] pcieport 0001:00:00.0: PME: Signaling with IRQ 365
[    3.299768] pcieport 0001:00:00.0: AER: enabled with IRQ 18
[    3.305437] pcieport 0001:01:00.0: Adding to iommu group 3
[    3.311567] pcieport 0001:02:01.0: Adding to iommu group 3
[    3.317770] pcieport 0001:02:02.0: Adding to iommu group 3
[    3.323993] pcieport 0002:00:00.0: Adding to iommu group 4
[    3.329563] pcieport 0002:00:00.0: PME: Signaling with IRQ 97
[    3.335430] pcieport 0002:00:00.0: AER: enabled with IRQ 19

So it looks as if the M.2 Key M slot is ok for a SSD, and also for the SATA controller supplied. But somehow the JMB585 seems to be not playing nicely with it?

I’ve tried a couple of JMB585 M2 cards (we have quite a few of the IOCrest version in inventory) in different boards and still haven’t been able to reproduce this issue.

0000:00:00.0 PCI bridge: Freescale Semiconductor Inc Device 80c0 (rev 10)
0000:01:00.0 SATA controller: Marvell Technology Group Ltd. Device 9215 (rev 11)
0001:00:00.0 PCI bridge: Freescale Semiconductor Inc Device 80c0 (rev 10)
0001:01:00.0 PCI bridge: Pericom Semiconductor Device b304 (rev 01)
0001:02:01.0 PCI bridge: Pericom Semiconductor Device b304 (rev 01)
0001:02:02.0 PCI bridge: Pericom Semiconductor Device b304 (rev 01)
0002:00:00.0 PCI bridge: Freescale Semiconductor Inc Device 80c0 (rev 10)
0002:01:00.0 SATA controller: JMicron Technology Corp. Device 0585

If an SSD successfully links up with both lanes then it sounds more likely there is an issue with the JMB545 card, is it possible for you to obtain another one to test with?

Had to buy another one, waiting until it arrives.

Today, digi-key supplied the new JMB585 controller. This one contains a M.2 M-key instead of the previous M.2 M&B-key.


With the new one I had quite some success in the M-key slot:

U-Boot 2020.07-rc1-gb47b96d4 (Jul 07 2021 - 00:43:32 +0000)

SoC:  LS1088AE Rev1.0 (0x87030010)
Clock Configuration:
       CPU0(A53):1600 MHz  CPU1(A53):1600 MHz  CPU2(A53):1600 MHz  
       CPU3(A53):1600 MHz  CPU4(A53):1600 MHz  CPU5(A53):1600 MHz  
       CPU6(A53):1600 MHz  CPU7(A53):1600 MHz  
       Bus:      700  MHz  DDR:      2100 MT/s
Reset Configuration Word (RCW):
       00000000: 4000541c 00000040 00000000 00000000
       00000010: 00000000 000a0000 00300000 00000000
       00000020: 010011a0 00002580 00000000 00000000
       00000030: 013fe60b 00000000 00002c03 00000000
       00000040: 00000000 00000000 00000000 00000000
       00000050: 00000000 00000000 00000000 00000000
       00000060: 00000000 00000000 00000089 000009e7
       00000070: 44110000 0d007755
DRAM:  31.9 GiB
DDR    31.9 GiB (DDR4, 64-bit, CL=15, ECC on)
       DDR Chip-Select Interleaving Mode: CS0+CS1
        31.4 GiB available for userspace

Using SERDES1 Protocol: 29 (0x1d)
Using SERDES2 Protocol: 20 (0x14)
PCIe0: pcie@3400000 Root Complex: no link
PCIe1: pcie@3500000 Root Complex: x1 gen2
PCIe2: pcie@3600000 Root Complex: x2 gen1
Retimer: (retimer on, resetting...) DS110DF410 found
OK

and

root@OpenWrt:/# lspci
0000:00:00.0 PCI bridge: Freescale Semiconductor Inc Device 80c0 (rev 10)
0001:00:00.0 PCI bridge: Freescale Semiconductor Inc Device 80c0 (rev 10)
0001:01:00.0 PCI bridge: Pericom Semiconductor Device b304 (rev 01)
0001:02:01.0 PCI bridge: Pericom Semiconductor Device b304 (rev 01)
0001:02:02.0 PCI bridge: Pericom Semiconductor Device b304 (rev 01)
0002:00:00.0 PCI bridge: Freescale Semiconductor Inc Device 80c0 (rev 10)
0002:01:00.0 SATA controller: JMicron Technology Corp. JMB58x AHCI SATA controller
1 Like

@mcbridematt is there any chance to get an update on the issue with

lspci
0001:04:00.0 Unclassified device [0002]: MEDIATEK Corp. MT7915E 802.11ax PCI Express Wireless Network Adapter

I see the wifi controller, but as soon as I type:

iw list

nothing is showing up. I am trying this out on the latest muvirt.