M.2 NVMe Intel 1TB 660P Not reconized on Ubuntu Server

Tried the Armbian nightly image and I also built an Armbian dev image. Different logs but same results with no /dev/nvme* device being populated. A line from the dmesg from the Armbian images:

rockchip-pcie: probe of f8000000.pcie failed with error -22

I also put this nvme drive into a PC, no issues. After initializing the drive w/ a GPT partition and some testing, I tried reloading rockpi4b-ubuntu-bionic-minimal-20190104_2101-gpt.img and firing up the nvme directly attached and via the extension board. Still doesn’t initialize the drive. This is a quality SSD with a native nvme SMI controller (SM2263). These QLC drives would be a good combination with these devices. Some what of a shame… Seems from the messages I find on other Rockchip boards with PCI-E support, they are flaky as well. Poor PCI-e implementation?

Hi, diginet

I am sorry for your bad experience. What’s your board’s serial number? The label on the plastic board. Also, are you using the m.2 extend board or directly to the m.2 connector on rock pi 4?

Hi Jack,

Not all is bad. I had good luck setting up Rancher’s new k3s, though these 1TB NVMe drives was a large part of my project for these boards. I’ve only tried the NVMe drive in two of my three boards I purchased. The serial numbers of these boards are RADXA1903-B0668 and RAXDA1903-B0658. I tried the m.2 extend board as well as directly connecting to the m.2 connector on both boards I previously mentioned. I’m really interested in getting this NVMe model going on these boards. I’m open to helping your support diagnose the issue by providing any logs, trying new images, etc…

Thanks,

diginet

Hi,

The board should be pretty new and it should be no problem. We haven’t actually tested this model 660P but it should also fine since it’s tested on other rk3399 platform. Do you have any other NVMe SSD to test?

I don’t have any clue why it’s not working. Do you have multimeter? If you have, you can measure if the NVMe power is on by measuring the following pad 1 or pad 2. What’s the voltage here?

@jack

Voltage measured where highlighted:

Pad 1 to GND = 3.29v
Pad 2 to GND = 3.29v

I have a Samsung 500G 970 EVO Plus coming tomorrow to test. I’ll let you know how that goes.

-diginet

The voltage is okay. Please test the 970 evo, we have tested 960 evo, it’s working very well. The speed is the fastest on ROCK Pi 4 among all the NVMe we tested.

@jack

Received the Samsung 970 EVO Plus 500G Today. Works just fine directly attached or in the m.2 Extension board. So I guess the board just doesn’t like the Intel 660P for whatever reason. I did notice that the Samsung had a tighter connection in the m.2 socket than the Intel 660P for what it’s worth.

-diginet

1 Like

I got this M2 NVME drive working.
It won’t detect same as in original post. But after few minutes and restart its detected.
I even got gen2 working gaining speeds over 600MB/s in hdparm. (using modfied script: KingSpec 128GB M.2 NVMe not found Debian+Ubuntu )
NVME not detected

2 Likes

That’s interesting, I’m guessing something wrong with the initial link training/handshake process. There have been quite a few updates around this in newer kernels. I tried Armbian’s latest build but didn’t realize until I got those Samsungs I referenced above, NVME isn’t working in their beta images for the RockPi4.

Posting here because I’m in the same situation… Intel 660p not being detected. If anyone figures out a reliable method, please do post it!

Ah - you got the 970 EVO Plus 500GB working - my 250GB seems to not work!

Hi,
i get the same trobble with the 512GB Version of the Intel 660P SSD, but i can´t get it to work.
I test it with my NB and it is working well. I send it back and ordered an Sabrent 256 GB Rocket NVMe PCIe for only 49€ and it works realy good.

Rock Pi 4b 4GB with O635789´s custom Debian image.

hdparm -Tt /dev/nvme0n1

/dev/nvme0n1:
Timing cached reads: 2490 MB in 2.00 seconds = 1245.58 MB/sec
Timing buffered disk reads: 1788 MB in 3.00 seconds = 595.40 MB/sec

/dev/nvme0n1:
Timing cached reads: 2464 MB in 2.00 seconds = 1232.29 MB/sec
Timing buffered disk reads: 1834 MB in 3.00 seconds = 611.12 MB/sec

1 Like

Hi,

I’m also in the same position. Got the 512GB Intel 660P SSD.

Linux linaro-alip 4.4.154 #13 SMP Mon Nov 5 18:25:35 CST 2018 aarch64 GNU/Linux

root@linaro-alip:~# dmesg | grep pci
[ 0.258104] of_get_named_gpiod_flags: parsed ‘gpio’ property of node ‘/vcc3v3-pcie-regulator[0]’ - status (0)
[ 0.258151] reg-fixed-voltage vcc3v3-pcie-regulator: Looking up vin-supply from device tree
[ 0.258185] vcc3v3_pcie: supplied by vcc3v3_sys
[ 0.258618] vcc3v3_pcie: at 3300 mV
[ 0.258785] reg-fixed-voltage vcc3v3-pcie-regulator: vcc3v3_pcie supplying 0uV
[ 0.365425] phy phy-pcie-phy.9: Looking up phy-supply from device tree
[ 0.365435] phy phy-pcie-phy.9: Looking up phy-supply property in node /pcie-phy failed
[ 0.366876] rockchip-pcie f8000000.pcie: GPIO lookup for consumer ep
[ 0.366886] rockchip-pcie f8000000.pcie: using device tree for GPIO lookup
[ 0.366914] of_get_named_gpiod_flags: parsed ‘ep-gpios’ property of node ‘/pcie@f8000000[0]’ - status (0)
[ 0.367153] rockchip-pcie f8000000.pcie: Looking up vpcie3v3-supply from device tree
[ 0.367164] rockchip-pcie f8000000.pcie: Looking up vpcie3v3-supply property in node /pcie@f8000000 failed
[ 0.367177] rockchip-pcie f8000000.pcie: no vpcie3v3 regulator found
[ 0.367751] rockchip-pcie f8000000.pcie: Looking up vpcie1v8-supply from device tree
[ 0.367761] rockchip-pcie f8000000.pcie: Looking up vpcie1v8-supply property in node /pcie@f8000000 failed
[ 0.367772] rockchip-pcie f8000000.pcie: no vpcie1v8 regulator found
[ 0.368333] rockchip-pcie f8000000.pcie: Looking up vpcie0v9-supply from device tree
[ 0.368342] rockchip-pcie f8000000.pcie: Looking up vpcie0v9-supply property in node /pcie@f8000000 failed
[ 0.368352] rockchip-pcie f8000000.pcie: no vpcie0v9 regulator found
[ 0.910711] rockchip-pcie f8000000.pcie: PCIe link training gen1 timeout!
[ 0.911433] rockchip-pcie: probe of f8000000.pcie failed with error -110
[ 1.447810] ehci-pci: EHCI PCI platform driver

I think we have solved this issue. Please update the latest u-boot.

sudo apt-get install rockpi4b-rk-u-boot-latest
sudo /usr/local/sbin/rockpi4b_upgrade_bootloader.sh

and type YES.

1 Like

Its probably answered somewhere else, cant find it.
How do i add package?

                _          _ _  _   _
 _ __ ___   ___| | ___ __ (_) || | | |__
| '__/ _ \ / __| |/ / '_ \| | || |_| '_ \
| | | (_) | (__|   <| |_) | |__   _| |_) |
|_|  \___/ \___|_|\_\ .__/|_|  |_| |_.__/
                    |_|

Welcome to ARMBIAN 5.67 user-built Debian GNU/Linux 9 (stretch) 4.4.154-rk3399rockpi4b
System load:   0.39 0.28 0.27   Up time:       20:19 hours
Memory usage:  19 % of 3811MB   IP:            192.168.1.208
CPU temp:      39°C
Usage of /:    55% of 3.4G

[ General system configuration (beta): armbian-config ]

Last login: Thu May 30 09:44:56 2019 from 192.168.1.25

rockpi@rockpi4a:~$ sudo apt-get update
[sudo] password for rockpi:
Get:2 http://security.debian.org stretch/updates InRelease [94.3 kB]
Ign:3 http://cdn-fastly.deb.debian.org/debian stretch InRelease
Get:4 http://cdn-fastly.deb.debian.org/debian stretch-updates InRelease [91.0 kB]
Get:5 http://cdn-fastly.deb.debian.org/debian stretch-backports InRelease [91.8 kB]
Hit:6 http://cdn-fastly.deb.debian.org/debian stretch Release
Hit:1 https://apt.armbian.com stretch InRelease
Get:7 http://security.debian.org stretch/updates/main arm64 Packages [472 kB]
Get:8 http://security.debian.org stretch/updates/main armhf Packages [477 kB]
Fetched 1,227 kB in 3s (370 kB/s)
Reading package lists... Done
rockpi@rockpi4a:~$ sudo apt-get install rockpi4b-rk-u-boot-latest
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package rockpi4b-rk-u-boot-latest
rockpi@rockpi4a:~$

Edit:
Sorry, I didt use google, only forum search :slight_smile:
https://wiki.radxa.com/Rockpi4/radxa-apt

And I believe I bricked Armbian bootloader
I will investigate today when I get physical access to RockPi

rockpi@rockpi4a:~$ sudo apt-get install rockpi4b-rk-u-boot-latest
Reading package lists... Done
Building dependency tree
Reading state information... Done
rockpi4b-rk-u-boot-latest is already the newest version (2017.09-00011-g0568348).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
1 not fully installed or removed.
After this operation, 0 B of additional disk space will be used.
Do you want to continue? [Y/n] Y
Setting up rockchip-fstab (0.1) ...
sed: -e expression #1, char 0: no previous regular expression
mount all partitions
mount: /etc/fstab: parse error at line 3 -- ignored
mount: mount point vfat does not exist
mount: mount point vfat does not exist
mount: mount point vfat does not exist
dpkg: error processing package rockchip-fstab (--configure):
 subprocess installed post-installation script returned error exit status 32
Errors were encountered while processing:
 rockchip-fstab
E: Sub-process /usr/bin/dpkg returned an error code (1)
rockpi@rockpi4a:~$ /usr/local/sbin/rockpi4b_upgrade_bootloader.sh
This script requires root.
rockpi@rockpi4a:~$ sudo /usr/local/sbin/rockpi4b_upgrade_bootloader.sh
Doing this will overwrite bootloader stored on your boot device. it might break your system.
If this happens you will have to manually fix that outside of your ROCK Pi 4.

You are currently running on different board:
ROCK PI 4B
It may brick your device or the system unless
you know what are you doing.

Type YES to continue or Ctrl-C to abort.
YES

Thanks! Confirming Intel SSD6 is working!

root@linaro-alip:~# dmesg | grep pci
[ 0.259687] of_get_named_gpiod_flags: parsed ‘gpio’ property of node ‘/vcc3v3-pcie-regulator[0]’ - status (0)
[ 0.259734] reg-fixed-voltage vcc3v3-pcie-regulator: Looking up vin-supply from device tree
[ 0.259768] vcc3v3_pcie: supplied by vcc3v3_sys
[ 0.260202] vcc3v3_pcie: at 3300 mV
[ 0.260368] reg-fixed-voltage vcc3v3-pcie-regulator: vcc3v3_pcie supplying 0uV
[ 0.366594] phy phy-pcie-phy.9: Looking up phy-supply from device tree
[ 0.366604] phy phy-pcie-phy.9: Looking up phy-supply property in node /pcie-phy failed
[ 0.368018] rockchip-pcie f8000000.pcie: GPIO lookup for consumer ep
[ 0.368028] rockchip-pcie f8000000.pcie: using device tree for GPIO lookup
[ 0.368056] of_get_named_gpiod_flags: parsed ‘ep-gpios’ property of node ‘/pcie@f8000000[0]’ - status (0)
[ 0.368310] rockchip-pcie f8000000.pcie: Looking up vpcie3v3-supply from device tree
[ 0.368322] rockchip-pcie f8000000.pcie: Looking up vpcie3v3-supply property in node /pcie@f8000000 failed
[ 0.368335] rockchip-pcie f8000000.pcie: no vpcie3v3 regulator found
[ 0.368897] rockchip-pcie f8000000.pcie: Looking up vpcie1v8-supply from device tree
[ 0.368907] rockchip-pcie f8000000.pcie: Looking up vpcie1v8-supply property in node /pcie@f8000000 failed
[ 0.368917] rockchip-pcie f8000000.pcie: no vpcie1v8 regulator found
[ 0.369488] rockchip-pcie f8000000.pcie: Looking up vpcie0v9-supply from device tree
[ 0.369497] rockchip-pcie f8000000.pcie: Looking up vpcie0v9-supply property in node /pcie@f8000000 failed
[ 0.369508] rockchip-pcie f8000000.pcie: no vpcie0v9 regulator found
[ 0.425603] PCI host bridge /pcie@f8000000 ranges:
[ 0.427272] rockchip-pcie f8000000.pcie: PCI host bridge to bus 0000:00
[ 0.427860] pci_bus 0000:00: root bus resource [bus 00-1f]
[ 0.428365] pci_bus 0000:00: root bus resource [mem 0xfa000000-0xfbdfffff]
[ 0.428976] pci_bus 0000:00: root bus resource [io 0x0000-0xfffff] (bus address [0xfbe00000-0xfbefffff])
[ 0.429849] pci 0000:00:00.0: [1d87:0100] type 01 class 0x060400
[ 0.429948] pci 0000:00:00.0: supports D1
[ 0.429956] pci 0000:00:00.0: PME# supported from D0 D1 D3hot
[ 0.430197] pci 0000:00:00.0: bridge configuration invalid ([bus 00-00]), reconfiguring
[ 0.431021] pci_bus 0000:01: busn_res: can not insert [bus 01-ff] under [bus 00-1f] (conflicts with (null) [bus 00-1f])
[ 0.431063] pci 0000:01:00.0: [8086:f1a8] type 00 class 0x010802
[ 0.431143] pci 0000:01:00.0: reg 0x10: [mem 0x00000000-0x00003fff 64bit]
[ 0.433266] pci_bus 0000:01: busn_res: [bus 01-ff] end is updated to 01
[ 0.433300] pci 0000:00:00.0: BAR 8: assigned [mem 0xfa000000-0xfa0fffff]
[ 0.433901] pci 0000:01:00.0: BAR 0: assigned [mem 0xfa000000-0xfa003fff 64bit]
[ 0.434575] pci 0000:00:00.0: PCI bridge to [bus 01]
[ 0.435025] pci 0000:00:00.0: bridge window [mem 0xfa000000-0xfa0fffff]
[ 0.435680] pcieport 0000:00:00.0: enabling device (0000 -> 0002)
[ 0.436451] pcieport 0000:00:00.0: Signaling PME through PCIe PME interrupt
[ 0.437070] pci 0000:01:00.0: Signaling PME through PCIe PME interrupt
[ 0.437659] pcie_pme 0000:00:00.0:pcie01: service driver pcie_pme loaded
[ 0.437764] aer 0000:00:00.0:pcie02: service driver aer loaded
[ 0.615863] ehci-pci: EHCI PCI platform driver

1 Like

This makes me happy :slight_smile: though at the same time I’m sad as I returned my Intel 660p SSDs.

1 Like

“Good news everyone” Intel 1TB 660P is Working on cold boot!
But I was switching OSes till I found Ubuntu Server from radxa download.
I hope I’m on way to get it running on armbian ideally with OMV.

And I’m missing sweet speeds of gen2. I hope it be easy to switch to gen2.
Because now i’m on direct read speed like USB3 SSD:

rock@linaro-alip:~$ sudo hdparm -tT --direct /dev/nvme0n1

/dev/nvme0n1:
 Timing O_DIRECT cached reads:   584 MB in  2.00 seconds = 291.36 MB/sec
 Timing O_DIRECT disk reads: 1148 MB in  3.00 seconds = 382.23 MB/sec
1 Like

Tap into Radxa’s apt and install rockchip-overlay. Then you can upgrade to Gen 2 speed by enabling the pcie-gen2 overlay in /boot/ hw_intfc.conf.

HTH

I have installed OMV on the Radxa Debian Stretch Arm64 base build.
Have a 4 port sata card running so expecting nvme to work.
So here is an updated omv-4.4-arm64.img.xz image
https://1drv.ms/u/s!AocmAh35i26QiR-EAvY_MCIaT_eV

Definitely edit /boot/hw_intfc.conf as gen 2.0 makes a big difference in performance and then just reboot

But just have a glance at
https://wiki.radxa.com/Rockpi4/Linux_system_runs_on_M.2_NVME_SSD

sudo apt-get install iozone3
cd to the mounted drive
iozone -e -I -a -s 100M -r 4k -r 16k -r 512k -r 1024k -r 16384k -i 0 -i 1 -i 2

The small 4k random read/writes are very important the big packet burst transfers will return the big numbers but often its the small packets that will give the ‘feel’ of user performance.