System reboot when SD CARD insert

Hi Wayne,

We would like to list our status and experiment as following:

  1. We removed “nvidia,min-tap-delay ;” and “nvidia,max-tap-delay  fail symptom is the same.
  2. We removed “nvidia,vqmmc-always-on” from dts, and limit speed in SDR50 or SDR104.
     fail symptom is the same.
  3. We removed “nvidia,vqmmc-always-on” from dts, and limit speed in SDR12 & SDR25 &DDR50.
    read/write data is ok, and DAT0 and DAT3 1.8V waveform as below show.
    PS: If SW doesn’t remove “nvidia,vqmmc-always-on” from dts, the symptom is still existed.
    The below figure that we measured is under SDR 25 mode.

  1. We checked SD_CLK frequency in SDR25, the frequency should be 50MHz.
    However, we got waveform is around 45Mhz and voltage level is 1.6V only(should be 1.8V voltage level).
    Not sure, can the higher tolerant be accepted?

Thanks,
Allison

Hi,

No one is asking you to remove “nvidia,min-tap-delay ;” and “nvidia,max-tap-delay”. Please just remove those two “always-on” and then share me the dmesg.

Dear Wayne,

Sorry to reply lately, there is the log and dts file which I remove the vmmc and vqmmc always-on for SD3(sdhci@3440000).

  1. log file with dmesg
    Xavier_NX_SDMMC3_20220408_1603.log (174.9 KB)
  2. DTS which convert from the final DTB
    tegra194-p3668-all-p3509-0000_20220408_1603_remove_vmmc_vqmmc_always.dts (229.1 KB)
  3. Remove/Mark nvidia,vmmc-always-on;
    tegra194-p3668-common_20220408_1603__remove_vmmc_vqmmc_always.dtsi (12.0 KB)
  4. Remove/Mark nvidia,vqmmc-always-on in sdhci@3440000
    p.s.the ‘uhs-mask = <0x08>’ is the default value, I 've been adjust to 0x0 for validated DDR50 mode.
    tegra194-soc-sdhci_20220408_1603_remove_vmmc_vqmmc_always.dtsi (4.7 KB)

Best Regards,
MOMO Chen

Hi,

Did you ever change the configuration of p3668_vdd_sdmmc1_sw to match your hardware?

Dear Wayne,

Yes, we have adjust the gpio setting for power control.
tegra194-fixed-regulator-p3668.dtsi (1.6 KB)

p.s. BTW, we have been validated with the
sd-uhs-sdr104,
sd-uhs-sdr50,
sd-uhs-sdr25,
sd-uhs-sdr12,
sd-uhs-ddr50,
one by one with remove vqmmc-always-on.

The SD Card only work well with sd-uhs-sdr25, sd-uhs-sdr12, sd-uhs-ddr50.
The sd-uhs-sdr104 and sd-uhs-sdr50 will cause kernel panic then reboot.

Best Regards,
MOMo Chen

Hi,

Just wonder, is it possible to change power rail to a always-on 3v3 power instead of controlling by gpio ?

Just want to do a test whether this will make the kernel panic gone or not.

Hi Wayne,

We try to direct connect SD power and syetem power rail 3V3 instead of controlling by gpio.
It still casue kernel panic.

Thanks,
Allison

Did you remember to add nvidia,vmmc-always-on back to your dts for such case?

Dear Wayne,

Apologize for that; I guess we might not add it when we validated with power rail 3.3V…
I will arrange to validated it with our Hardware Engineer - Allison ASAP.

  1. Just in case, Would you mind to suggest us further which one need to mark or keep with power rail 3.3V?
    Is that should mark the ‘vmmc-supply’ then keep vmmc(vqmmc)-always-on?
vmmc-supply = <&p3668_vdd_sdmmc1_sw>;
nvidia,vmmc-always-on;

nvidia,vqmmc-always-on;
  1. I forgot to sync with you about the vqmmc, I’ve check the eMMC(sdhci@3460000)'s setting
    There seems no ‘nvidia,vqmmc-always-on’ to sdhci@3460000.
    but there is the ‘vqmmc-supply = <&p3668_spmic_sd2>’.
    (at tegra194-power-tree-p3668.dtsi)
    Should I add a ‘vqmmc-supply’ to sdhci@3440000 when we marked the vqmmc-always-on?
    If it is need, which node we could use? p3668_spmic_sd2 or others?

Best Regards,
MOMO Chen

Hi,

  1. If your hardware is changing to always-on power rail, then your vmmc-supply needs to use one that is also a always-on one. You cannot assign a regulator that has gpio field anymore.

  2. I don’t think you need to add vqmmc properties. Just vmmc properties should be sufficient. If the sdhci driver has no response after you hotplug the card, then try to add nvidia,vqmmc-always-on back. But AFAIK, this one should be optional.

Dear Wayne,

Sorry, please correct me if my understand is wrong.
Do you meaning the vmmc-supply should be specific a regulator but the gpio field must be mark, then add the vmmc-always-on as below?

sdhci@3440000 {
     ...
     vmmc-supply = <&p3668_vdd_sdmmc1_sw>;
     nvidia,vmmc-always-on;
     ...
};
p3668_vdd_sdmmc1_sw: regulator@106 {
        compatible = "regulator-fixed";
        reg = <106>;
        regulator-name = "vdd-sdmmc1-sw";
        regulator-min-microvolt = <3300000>;
        regulator-max-microvolt = <3300000>;
//      gpio = <&tegra_main_gpio TEGRA194_MAIN_GPIO(R, 0) 1>;
//      enable-active-low;
};

Best Regards,
MOMO Chen

You can refer to other regulators in the device tree. There should be something like “regulator-always-on”.

Dear Wayne,

Would you mind to help me check the dts if we want to validate the rail 3.3V?

sdhci@3440000 {
...
//              vmmc-supply = <&p3668_vdd_sdmmc1_sw>;
                vmmc-supply = <&p3668_vdd_sdmmc3_fixed>;
                nvidia,vmmc-always-on;
...
};

I’ve add a new regulator field in tegra194-fixed-regulator-p3668.dtsi as below

                p3668_vdd_sdmmc3_fixed: regulator@105 {
                        compatible = "regulator-fixed";
                        reg = <105>;
                        regulator-name = "vdd-3v3-cvb";
                        regulator-min-microvolt = <3300000>;
                        regulator-max-microvolt = <3300000>;
                        regulator-always-on;
                };

tegra194-p3668-common_20220414.dtsi (12.0 KB)
tegra194-fixed-regulator-p3668_20220414.dtsi (1.8 KB)

Best Regards,
MOMO Chen

Hi Wayne,

Our system can read/write SDR50/104, but it still has kernel panic problem after hot plug SD card serveral times.
We test power control pin is always on, but it still failed.
Do you have any suggestion for us ?

Thanks,
Allison

Are you doing some kind of hotplug stress test that may frequently hotplug the sdcard?

Hi Wayne,

Do you mean hot-plug function on SD card?
If yes, I don’t test it.
But I test different SD Card, all of them have kernel panic issue

Thanks,
Allison

What kind of kernel panic did you hit? Please share the full log.

Hi Wayne,

This is fail log when system happen kernel panic, and system will reboot
fail.txt (2.2 KB)

This is pass log
pass.txt (204 Bytes)

Thanks,
Allison

Please always share the full log. Such log does not help.

Hi Wayne,

this is log from dmesg:

Thanks,
Allison