Hikey 960: M.2/SATA?


Hi @doitright,
Yeah, you are right, that there might not be enough space, but thinking about making an embedded platform, where size is usually small or relatively small, why not make the board a few mm larger to fit properly the connector to point in, but in any case, what is the point of adding that connector if it seems it doesn’t work properly?


They added the connector for the same reason that they connected i2s lines between the CPU and the bluetooth chip, despite that this interface also doesn’t work right – because it can be MADE to work right (which I have accomplished for the i2s), the issue is software.

As to why they can’t make the board a few mm bigger, it is because if they did, it would no longer adhere to the 96boards consumer specifications. That connector is not a 96boards requirement, but the physical dimensions of the board are.

It could also be argued that it could be more practical in some instances to have the connected devices sticking out the side of the board than standing over the board. Consider for a moment, putting the board in an enclosure. To make it possible to snap a board onto the connector with it sticking out sideways doesn’t require as much of the board exposed (for fingers to touch) as it would if the connector pointed inward.


Hi @dotieno,
Well thank you for the clarification, but… Is there any timeline or date when NVME SSD’s are going to be supported ?, or the hardware video encoder? I think those are strong selling points of the board, but none are fulfilled, any info ???


Hey, I still have some trouble with an M.2 nvme device (Intel 600P SSDPEKKW512G7) and linux (debian and open embedded). I’ve enabled the nvme support and build an own kernel but nothing shows up at dmesg or journalctl. Are there any news? Maybe it has to be enabled and initialized in UEFI as well


Which version/branch ?

Did you try on android ? I’ve recently sent a patch [1] which fix a naming issue, maybe you could try it ? Please also provide dmesg output.

[1] https://patchwork.kernel.org/patch/10320855/


Hey Loic, thank you for your quick response. I haven’t tried Android yet. I am actually using Debian[1] with a custom kernel (4.14.0-rc7) with mali drivers [2] with the only difference that i additionally enabled the nvme support in the defconfig.
Therefore i have used Debian with a kernel extracted from an Image of version 142 [3] as suggested [1]
Three months ago i have also tried an openEmbedded rootfs-image (version 127).

It didn’t work in any of these configurations. Here is the filtered dmesg output:

[ 0.000000] PCI I/O : 0xffff7dfffee00000 - 0xffff7dffffe00000 ( 16 MB)
[ 0.312269] PCI: CLS 0 bytes, default 128
[ 0.420237] ehci-pci: EHCI PCI platform driver
[ 0.420507] ohci-pci: OHCI PCI platform driver
[ 0.898185] tcpci_timer_init : init OK
[ 1.619393] [E/hisi_pd] tcpci_disable_vbus_control: !!!++++++++

I am actually applying your patch

[1] https://wiki.debian.org/InstallingDebianOn/96Boards/HiKey960
[2] https://github.com/TallGuy74/linux/tree/feature/update-to-mali-r9p0-01rel0
[3] http://snapshots.linaro.org/reference-platform/embedded/morty/hikey960/142/rpb/


So, your patch seems to work. There is now a pci bridge, but the ssd is still not recognized. Here is my new dmesg output:

[ 0.000000] PCI I/O : 0xffff7dfffee00000 - 0xffff7dffffe00000 ( 16 MB)
[ 0.311847] PCI: CLS 0 bytes, default 128
[ 0.366277] OF: PCI: host bridge /soc/pcie@f4000000 ranges:
[ 0.366295] OF: PCI: MEM 0xf6000000…0xf7ffffff -> 0x00000000
[ 1.370384] kirin-pcie f4000000.pcie: Link Fail
[ 1.370514] kirin-pcie f4000000.pcie: PCI host bridge to bus 0000:00
[ 1.370519] pci_bus 0000:00: root bus resource [bus 00-01]
[ 1.370524] pci_bus 0000:00: root bus resource [mem 0xf6000000-0xf7ffffff] (bus address [0x00000000-0x01ffffff])
[ 1.370556] pci 0000:00:00.0: [19e5:3660] type 01 class 0x060400
[ 1.370601] pci 0000:00:00.0: reg 0x10: [mem 0xf6000000-0xf6ffffff 64bit]
[ 1.370697] pci 0000:00:00.0: supports D1 D2
[ 1.370701] pci 0000:00:00.0: PME# supported from D0 D1 D2 D3hot
[ 1.370943] pci 0000:00:00.0: BAR 0: assigned [mem 0xf6000000-0xf6ffffff 64bit]
[ 1.370959] pci 0000:00:00.0: PCI bridge to [bus 01]
[ 1.371246] pcieport 0000:00:00.0: Signaling PME with IRQ 66
[ 1.371329] pcieport 0000:00:00.0: AER enabled with IRQ 66
[ 1.463916] ehci-pci: EHCI PCI platform driver
[ 1.464204] ohci-pci: OHCI PCI platform driver
[ 1.942969] tcpci_timer_init : init OK
[ 2.665080] [E/hisi_pd] tcpci_disable_vbus_control: !!!++++++++