sata not working despite enable-sata-on-uphy-lane5


I work with a custom carrier-board able to accept either TX1 or TX2 jetson modules. With a TX1
module I can access a SSD module connected to the SATA bus. With a TX2 module, the SSD is not
discovered by the kernel.

Some background : in order to be able to simply replace my dtb by loading a file in /boot, instead of reflashing which would be impossible for remote unattended installations, I use the jetpack 3.0 installer although I use the l4t 28.2 rootfs and my 28.2-based kernel and dtb.

The method I use is the following :

cd ~/jetpack30/64_TX2/Linux_for_Tegra_tx2
 # Do not use the '-K' option; '-K' option replaces u-boot, not Image, by
 # '-K's argument !!!
 sudo DFLT_KERNEL_FS=${LINUX} SCEFILE=${RTCPUFW} SPEFILE=${SPEFW} ./ -d ${FDT} -R ${ROOTFS} jetson-tx2 mmcblk0p1

When logged into the TX2 board, I can see in /proc/device-tree a node called ‘enable-sata-on-uphy-lane5’ with value ‘1’, which does not come from my dtb, but despite of that, my SATA device is not discovered. I find no reference to that device-tree node ‘enable-sata-on-uphy-lane5’ in the kernel sources, but I can find this string in the binaries ‘nvtboot.bin’ and ‘cboot.bin’. Which part of the boot process is responsible to activate SATA on uphy lane 5 (which seems to be the default configuration) ? and why is that not done in the kernel like for the TX1 with ‘pinctrl-tegra21x-padctl-uphy.c’ ?

This node “enable-sata-on-uphy-lane5” is added by cboot if your “ODMDATA” has enabled sata on uphy5.
Please refer to TX2 adaptation guide for some detail about ODMDATA.

However, I am not sure if this is software issue. We seldom have user asking question about sata.
Why do you need to use Jetpack3.0 with rel28.2 rootfs/kernel/dtb? It may affect the test result.
Please just use full BSP from Jeptack 3.3 and share full dmesg with us.

This is not a hardware problem, as with a full Jetpack 3.3 installation I can access my sata device.

But I need to be able to replace the fdt file by simply placing it in /boot, and not by reflashing, even partially, the boards. That’s the reason why I use the Jetpack 3.0 installer.

I have checked with devmem2 that my lane5 is correctly configured for sata

root@tegra-ubuntu:~# devmem2 0x02570284 b
/dev/mem opened.
Memory mapped at address 0x7f90a6f000.
Value at address 0x2570284 (0x7f90a6f284): 0x2

What I see in my logfile is the absence of the message :

ata1: SATA link up 3.0 Gbps (SStatus 123 SControl 300)

I attach the boot messages, in two files : before linux and linux itself.

boot.log (9.73 KB)
dmesg.log (44.5 KB)

FYI: using the jetpack 3.3 installer but installing uboot from 3.0 solved my problem