Jetson Nano don't working normally after OTA update

I add led_support_ctrl node to tegra210-porg-p3448-common.dtsi as below:
led_support_ctrl {
label = “led_support_ctrl”;
pwm_gpio = <&gpio TEGRA_GPIO(E, 6) GPIO_ACTIVE_HIGH>;
default-state = “off”;
pwm_period = <2000000>;
pwms = <&tegra_pwm 2 2000000>; // 50kHz
pwm_polarity = <PWM_POLARITY_NORMAL>;
active_pwm = <0 10 20 30 40 50 60 70 80 90 100>;
default-brightness = <100>;
max-brightness = <255>;
};
I add print default-brightness to leds-pwm.c driver → rebuild kernel and dtb image → build kernel and dtb debian package → install to device → add FDT field to extlinux.conf → reboot → check log

Then what you are doing has nothing to do with pinmux or cboot dtb…

This is just pure kernel work. Maybe you didn’t put the correct dtb to the correct path.

sorry, above method is for dtb working normally. It is way to i know that kernel dtb loaded

I changed tegra210-porg-pinmux-p3448-0002-b00.dtsi and tegra210-porg-gpio-p3448-0002-b00.dtsi that config LED gpio to rsvd2 (old is pwm2) and out-high(old is not config). With this change, when i flash with (3), then led is off but when i flash with (1) and (2) then nothing change compare with FW official.

My question is how did you know something is “not changed compared with FW official”.

What is your method to know “my pinmux gets loaded/not loaded”?

My question is how did you know something is “not changed compared with FW official”.
What is your method to know “my pinmux gets loaded/not loaded”?

LED status prove that not changed compared with FW official. FW official, LED is on. I don’t have log or other nothing but nvidia document said that “The pinmux settings in device tree files are only applied by CBoot, and not reapplied by the Linux kernel.” And (1) and (3) is only difference about cboot dtb. So, i want to update cboot dtb without recovery mode for confirm.

Please check /proc/device-tree for the pinmux setting first. Use that node to prove that your dtb is really same in (1) and (3).

Also, if changing the FDT in extlinux has effect, then it means your debian package didn’t write the correct file to it. That’s all.

Don’t go to find something else to confuse yourself.
There is no need to dig into cboot dtb.

Could you please guide me for check pinmux setting from /proc/device-tree?

/proc/device-tree is just the whole device tree that is in use on your board.

It is called device “tree” because it is a tree structure so each folder inside /proc/device-tree is the node name you write in your dts.

So search the keyword that you changed in dts file here and see if the value is as your expectation.

/proc/devicce-tree have not any change because i don’t add node or change value. I only change gpio config for LED. And it is easy for check gpio status between 2 case (1) and (3) as below:
(1)
ac@vsm:/$ cat /sys/class/gpio/gpio38/value
0
(3)
ac@vsm:~$ cat /sys/class/gpio/gpio38/value
1

…Yes, but that gpio setting you put is inside the dts, right…

Do you really know what I was trying to ask you to check?

yes, if gpio setting don’t put is inside the dts, then (3) can not change gpio status value from 0 to 1

What you need to do is just check the /proc/device-tree in (1) and (3) and see if your change has the correct value.

If (1) has it while (3) does not, it means the kernel dtb is not getting loaded correctly. Is there any problem to understand this procedure?

I don’t see the difference on /proc/device-tree between (1) and (3)

Do you ever check the content inside each node by using “xxd” or “cat”?

Also, just back to the original topic, will changing “FDT” in “extlinux.conf” work on your side?

If so, then just stick to checking why debian package’s change does not take effect in extlinux.conf. Do not spending your time investigating why (1) and (3) cases are different. They are not related to Debian package or FDT here. You are just making yourself more confused.

I don’t think so, it relate to gpio, pinmux config and flash method. If problem is relate to cboot dtb, then (1) and (2) is same because (1) and (2) is only update kernel dtb, not cboot dtb,
Do you try to change gpio config and only flash dtb to device and check gpio status?

Just reply my question first.

Will changing “FDT” in “extlinux.conf” work on your side?

Will changing “FDT” in “extlinux.conf” work on your side?
yes, i confirm that changing “FDT” in “extlinux.conf” work but it is not relate to gpio config, i change other dtsi, not gpio device tree and it working normally

Ok, so the answer is no.

Can you just tell me what is exact your “gpio change” here? We have a tool “jetson-io” which is to change the pinmux setting. And this jetson-io tool is just using the FDT in extlinux.conf.

Thus, your comment here sounds conflict with how jetson-io tool is doing.

gpio_patch.txt (691 Bytes)
pinmux_patch.txt (730 Bytes)
I would like share to you my patch