Pcie_aspm=off removed from Kernel Arguments in JetPack 4.4

Dear NVidia Team

We added in the p2972-0000.conf.common file the argument pcie_aspm=off to CMDLINE_ADD. In older JetPack Versions (4.3, 4.22), this seems to work just fine. But in JetPack 4.4, the argument seems to get removed. When we check the Kernel Arguments with dmesg, pcie_aspm=off is missing. How is this possible? Did something changed for JetPack 4.4? We added this argument to the Kernel as we saw some issues with PCIe switches, when pcie aspm was activated.
Thank you.

the argument seems to get removed

Sorry that I don’t quite understand. What argument has been removed?
In previous sentences you said β€œWe added in the p2972-0000.conf.common file the argument” for previous release. Then you should need to add that again for jetpack4.4.

Do you mean this argument is gone even after you set it in CMDLINE_ADD?

Hi WayneWWW

We set the argument pcie_aspm=off also in the config file p2972-0000.conf.common in JetPack 4.4, but as you mentioned it is gone after, we can not see it in the dmesg. Does something overwrites this?

I haven’t tried to add kernel parameters in p2972-0000.conf.common for long time. Maybe there is an issue/bug.

Could you try to remove or add arbitrary string to CMDLINE_ADD and see if is it is shown in kernel cmdline? I guess they would not take effect.

Also, please share us the full uart log. The parameters should be passed to cboot and cboot will pass it to kernel.

Hi WayneWWW

You are right, it does not seem to take effect when we add anything to the CMDLINE_ADD.
Here the uart log:
bootlog.txt (27.4 KB)

Ok. Let me dig into what is going on.
Please add your kernel cmdline to extlinux.conf. This would take effect.

Btw, if there is no FDT entry in β€œ/boot/extlinux/extlinux.conf”, then the content is probably only from the device tree in the partition, and not the one in β€œ/boot”. If you have the FDT entry, then the content likely comes from just the file. It may be that you are updating content which is not being used. Verify if the extlinux.conf has an FDT entry. Also, verify if changes actually made it in to the device tree by browsing in β€œ/proc/device-tree”.

Normally it is possible earlier boot stages read the device tree β€œchosen->bootargs”, and this can be inherited by later parts of boot. Then, in addition to one of those device tree entries being an initial command line argument list, so too the extlinux.conf APPEND key/value pair. In the APPEND key/value pair, note the environment variable β€œ${cbootargs}”. Compare the output of β€œ/proc/cmdline” to the actual β€œAPPEND” and you will seen the command line end with the APPEND, but begin with what is essentially device tree (and you may need to verify which device tree: Partition or file).

Adding kernel command line options in /boot/extlinux/extlinux.conf should also work. Please try that.

1 Like

Hi sevm89,

May I know which flash command you are using when you found CMDLINE_ADD was not working?

Hi WayneWWW

We use β€œ./flash.sh -r brla3 mmcblk0p1”, where brla3 is the board configuration we defined (depends on p2972-0000.conf.common) and the image is already created.

I just checked. You cannot use β€œ-r” here because the CMDLINE_ADD will be added to /boot/extlinux/extlinux.conf.

β€œ-r” will skip this part so change cannot take effect.

Hi WayneWWW
Thank you for this information. This is only like that since JetPack 4.4?

In a normal flash the content of β€œrootfs/” is used to generate an image. That directory content is almost an exact match to the final image. However, arguments passed to flash.sh during the flash will result in making some adjustments in β€œrootfs/boot/”, including extlinux.conf. When you use the β€œ-r” option it says to not generate an image, and to instead use whatever image you already have. For that content to be added you would have to loopback mount your clone and edit extlinux.conf directly, then umount it and use it and it will then do what you want (assumes you have a raw image and not a sparse image).

Yes, after jetpack 4.4, some kernel cmdline has been moved to extlinux.conf. Since β€œ-r” will reuse the old system.img and not update extlinux.conf, your change will not take effect.

The fastest way to update kernel cmdline now is direclty update /boot/extlinux/extlinux.conf.

2 Likes