I recently faced an issue where the NVMe 1.4 SSD is not working properly on the NVIDIA Jetson platform. In the Linux kernel boot log, I get the following error message:
After some research, people suggested turning off CONFIG_PCIEASPM in the Linux kernel configuration.
However, after I turned this configuration off, the pcie-tegra194.c file had a compiling error. It appears that the failure is due to the tegra_pcie_prepare_host function in pcie-tegra194.c calling the functions disable_aspm_l0s and disable_aspm_l10. These functions are defined only if CONFIG_PCIEASPM is enabled. (For details, see line #1181 and line #1305 in the same pcie-tegra194.c file.)
I added the following two function signatures at line #1305 and the kernel build passed:
I am not 100% sure, but it seems like CONFIG_PCIEASPM does not need to be turned on, and source code in pcie-tegra194.c does use the #if defined to handle the situation when it is off. I think these two function definitions were simply omitted at line #1305.
I think you're right. NVIDIA doesn't do much, if any, build testing with kernel configurations they don't use in their BSP, so it was probably just an oversight.
Hi all,
I recently faced an issue where the NVMe 1.4 SSD is not working properly on the NVIDIA Jetson platform. In the Linux kernel boot log, I get the following error message:
CONFIG_PCIEASPM
in the Linux kernel configuration.pcie-tegra194.c
file had a compiling error. It appears that the failure is due to thetegra_pcie_prepare_host
function in pcie-tegra194.c calling the functionsdisable_aspm_l0s
anddisable_aspm_l10
. These functions are defined only ifCONFIG_PCIEASPM
is enabled. (For details, see line #1181 and line #1305 in the samepcie-tegra194.c
file.)CONFIG_PCIEASPM
does not need to be turned on, and source code inpcie-tegra194.c
does use the#if defined
to handle the situation when it is off. I think these two function definitions were simply omitted at line #1305.