No PCIe on linux 5.5

I’m trying to get my eMMC SSD to work well. I have an Intel 660p, and I get lots of write errors and kernel panics with Linux 4.9. Therefore, I’m trying to use Linux 5.5.

I’ve copied VIM3_Ubuntu-server-bionic_Linux-5.5-rc2_arm64_SD-USB_V0.8.2-20200103 onto an SD card and booted from it.

It boots up, and my NVMe drive works great, but there are a few problems:

  • The background of the terminal on HDMI is blue-green.
  • eth0 never gets an IP address.

Per some other threads on here, I cleared the eMMC with store init 3. This gets rid of the green screen, and eth0 gets an IP address, but PCI stops working:

khadas@Khadas:~$ uname -a
Linux Khadas 5.5.0-rc2 #0.8.2 SMP PREEMPT Fri Jan 3 09:48:06 CST 2020 aarch64 aarch64 aarch64 GNU/Linux
khadas@Khadas:~$ lspci
khadas@Khadas:~$ cat /sys/class/mcu/usb_pcie_switch_mode
1

One thing that makes me suspicious is that with the mainline u-boot that comes with the 5.5 image, kbi portmode w 1 fails until I i2c dev 0:

=> kbi portmode r
port mode is pcie
=> kbi portmode w 1
set port mode to :pcie
No I2C bus selected
Error writing the chip: -19
=> i2c bus
Bus 0:	i2c@5000  (active 0)
   18: generic_18, offset len 1, flags 0
=> i2c dev 0
Setting bus to 0
=> kbi portmode w 1
set port mode to :pcie

Yes, for image VIM3_Ubuntu-server-bionic_Linux-5.5-rc2_arm64_SD-USB_V0.8.2-20200103 I disable PCIe for VIM3 due to a bug.

Is there a kernel version in between 4.9 and 5.5 that I can use?

It looks like you un-disabled it recently. I guess I will try building my own mainline image with Fenix.

To follow up: after building the mainline kernel (5.6.0) with Fenix, both PCIe/NVMe and networking work.

1 Like