Getting panic at UEFI on 5.1.1 and 5.1.3

Hi, we have been using JP5.1.1 for a while, and have intermittent kernel panics that always include the line
kernel BUG at drivers/soc/tegra/cbb/tegra194-cbb.c:2057!

I see similar posts on here, with most solutions being to disable the boot splash screen.

I see some older posts with the same error, suggesting adding a bootloader-status field to DTB giles. However, I tried that and it did not change UEFI behavior.

My main goal is to avoid kernel panics. We do not need to show the splash screen, or allow the customer to change boot options.
So if we could disable the UEFI screen and timeout, that would be great.
But, most importantly, how do I fix this panic on 5.1.1 and 5.1.3?

Here is a sample UART log of a boot failure. Sometimes it happens when rebooting, sometimes from cold boot.

5.1.3_withDisplaysDisabled.log (129.7 KB)
Thanks,

I see some older posts with the same error, suggesting adding a bootloader-status field to DTB giles. However, I tried that and it did not change UEFI behavior.

It is most likely because you modify the wrong device tree. If you only modify /boot/dtb things, then it won’t take effect because UEFI totally does not read dtb from that location.

Modify it from your host PC and reflash the whole board to make it take effect.

Could you please be more specific in how to disable the UEFI splash screen?
Which files do I need to modify, and what text do I need to add?
Could you at least provide a link to some documentation or an example?
Thanks

What was the file you made change there?

Adding bootloader-status to disabled is the correct method. But UEFI dtb and kernel dtb are read from different location. That is the point…

So Please tell me which files to modify!
I don’t know which ones I need to modify, or exactly how. I am just making guesses, and as you say, they are probably wrong.
Why won’t you tell me?

Modify the dtb you are using for your board on your host PC Linux_for_Tegra/kernel/dtb… and do full flash to your board… This will make both UEFI and kernel dtb got updated.

The reason I cannot directly give you file name is because you may change dtb file name which I won’t know.

Ok Wayne,

I do have custom DTBs in Linux_for_Tegra/sources/hardware/nvidia/platform/t19x//kernel/dts/<.dts and .dtsi files>, modeled after jakku (the p3509 we used as a starting point).

I have a build script that builds to DTBs, then copies the DTB files from Linux_for_Tegra/kernel_out/arch/arm64/boot/dts/nvidia/* to Linux_for_Tegra/kernel/dtb
The script flash.sh seems to put a copy into Linux_for_Tegra/bootloader, so if I knew what to write in the .dts files, it would get flashed.

What lines of code should I add to these files to fix the kernel panic?

As I said, setting “bootloader-status” to disabled is the correct method.

Search “bootloader-status” as keyword in your t194 dts sources and there would be one file that already had this keyword.

IIRC, there was 3 heads that have this setting and you need to do the same setting for the rest of the display head.

Wayne,
Thank you for your help, I finally got it to work.
I searched for bootloader-status, and saw that it came up in the file sources/hardware/nvidia/soc/t19x/kernel-dts/tegra194-soc/tegra194-soc-base.dtsi
That file defines four display heads:

		head0: display@15200000 {
			status = "disabled";
			compatible = "nvidia,tegra194-dc";

		head1: display@15210000 {
			status = "disabled";
			bootloader-status = "disabled";
			compatible = "nvidia,tegra194-dc";

		head2: display@15220000 {
			status = "disabled";
			bootloader-status = "disabled";
			compatible = "nvidia,tegra194-dc";

		head3: display@15230000 {
			status = "disabled";
			bootloader-status = "disabled";
			compatible = "nvidia,tegra194-dc";

I added a line at line 657 to disable head0, just like head 1-3 were:

		head0: display@15200000 {
			status = "disabled";
			bootloader-status = "disabled"; // I added this to disable display in UEFI
			compatible = "nvidia,tegra194-dc";

After a full rebuild and re-flash (I probably could have just built and flashed the DTBs), it worked! I had the HDMI monitor plugged in and did not see any UEFI splash screen.
Thank you for your help. I must have missed this spot when I tried before.

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