Jetson TX2 NX Serror

Hello everyone,
I’ve been running into the following error for a decent amount of time now

[    1.015799] iommu: Adding device 3460000.sdhci to group 0
[    1.022142] iommu: Adding device 3440000.sdhci to group 1
[    1.037224] CPU0: SError detected, daif=1c0, spsr=0xc5, mpidr=80000100, esr=bf40c000
[    1.037227] CPU4: SError detected, daif=1c0, spsr=0xc5, mpidr=80000102, esr=bf40c000
[    1.037231] CPU3: SError detected, daif=1c0, spsr=0xc5, mpidr=80000101, esr=bf40c000
[    1.037234] CPU5: SError detected, daif=1c0, spsr=0xc5, mpidr=80000103, esr=bf40c000
[    1.179158] random: fast init done

I have no idea what exactly could be triggering this Serror but I do not that it consistently prevents the system from booting.

For the record, I am not using Jetpack and expect to be able to solve this without having to use it at all.
I also don’t have a devkit so it’s not like I could use it without modification.

What I do have is access to Nvidia’s source code (release 32.5.1) and everything available in readable form there.

I’ve attached our current linux.config and board.dts just in case you might spot something that could be really important.

Best Regards,
Juan Pablo.

linux.config (112.4 KB)
custom_board.dts (285.8 KB)

We don’t know either. The common way to debug such issue is check the usecase and configuration. There is no definitive answer to SError. I mean it is not possible to just use these few lines of log to find out where the cause comes from.

Can you just modify the dts only, flash the board and see if this issue is still? Checking what you have modified one by one and we may find the cause in the end.

Hi @WayneWWW
After loosing about two weeks checking things a hundred times and doing a lot of debug, I finally managed to catch the problem.

The error was trusting the Pinmux Generation Spreadsheet to do a decent job.
Not only has it failed to generate a dtsi that would compile properly but it has also failed to generate a dtsi that would run error free.

So, the system would completely freeze with the above mentioned message when doing a pxm_write to the following items: vcomp_alert_ps4, pwr_i2c_scl_ps0, pwr_i2c_sda_ps1 and batt_oc_ps2.
Regarding why this is happening or what the right configuration would be, I don’t know since those options look like something that is internal to the SoM and should not be modified.

Best Regards,
Juan Pablo

1 Like

Hi,

Could you share what setting you’ve done to these pins? Also, are you using dtsi for them instead of the mb1 cfg file?

For TX2 series and Xavier series, the general way to use pinmux spreadsheet are different from Nano/TX1 case. We use the cfg file instead of directly copying dtsi to your dts files.

Hi @WayneWWW,
I’m using the cfg generated from the dtsi files with the pinmux-dts2cfg.py .
At the same time, I’m also using the dtsi files generated with the Pinmux Generation Spreadsheet inside my linux dts.

I see a comment in the Jetson TX2 Platform Adaptation and Bring-Up Guide about having only the bootloader configure the pins.
I think it is quite uncommon to expect this on any embedded platform.
It’s often the job of uboot and linux to do this.

The setting I had on those pins is the one you’d get from running the spreadsheet (it goes like this)

vcomp_alert_ps4 {
	nvidia,pins = "vcomp_alert_ps4";
	nvidia,function = "soc";
	nvidia,pull = <TEGRA_PIN_PULL_UP>;
	nvidia,tristate = <TEGRA_PIN_ENABLE>;
	nvidia,enable-input = <TEGRA_PIN_ENABLE>;
	nvidia,lpdr = <TEGRA_PIN_DISABLE>;
};

pwr_i2c_scl_ps0 {
	nvidia,pins = "pwr_i2c_scl_ps0";
	nvidia,function = "i2c5";
	nvidia,pull = <TEGRA_PIN_PULL_NONE>;
	nvidia,tristate = <TEGRA_PIN_DISABLE>;
	nvidia,enable-input = <TEGRA_PIN_ENABLE>;
	nvidia,io-high-voltage = <TEGRA_PIN_DISABLE>;
	nvidia,lpdr = <TEGRA_PIN_DISABLE>;
};

pwr_i2c_sda_ps1 {
	nvidia,pins = "pwr_i2c_sda_ps1";
	nvidia,function = "i2c5";
	nvidia,pull = <TEGRA_PIN_PULL_NONE>;
	nvidia,tristate = <TEGRA_PIN_DISABLE>;
	nvidia,enable-input = <TEGRA_PIN_ENABLE>;
	nvidia,io-high-voltage = <TEGRA_PIN_DISABLE>;
	nvidia,lpdr = <TEGRA_PIN_DISABLE>;
};

batt_oc_ps2 {
	nvidia,pins = "batt_oc_ps2";
	nvidia,function = "soc";
	nvidia,pull = <TEGRA_PIN_PULL_UP>;
	nvidia,tristate = <TEGRA_PIN_ENABLE>;
	nvidia,enable-input = <TEGRA_PIN_ENABLE>;
	nvidia,lpdr = <TEGRA_PIN_DISABLE>;
};

Best Regards,
Juan Pablo.

1 Like

Hi @WayneWWW,
Since I’ve already made this work and you’ve already mentioned what Nvidia expects there’s probably no reason to continue with the discussion.
I’d love it if future versions had a simpler boot flow and relied on the more conventional way of using uboot and linux dts files.

Best Regards,
Juan Pablo.

1 Like

We will check why this dts setting causes the system unstable. Thanks for reporting this.

Hi @juan.tettamanti ,

I just want to ask. Did you only put the pinmux into dts but didn’t create and flash the cfg file?

This topic was automatically closed 60 days after the last reply. New replies are no longer allowed.