(+86) 15013630202 sales@pcie.com

Bootloader panic when pcie@141c0000 / pcie@141e0000 enabled

Mar 04, 2024

Hi,

With bootloader Jetson UEFI firmware (version v35.3.1 built on 2023-01-24T13:18:32+00:00) I’m getting a panic when the device tree has pcie@141c0000 / pcie@141e0000 enabled:


//PCIe C6
pcie@141c0000{
status = "okay"; // leaving this as disabled, when enabled, the bootloader panics
num-lanes =
;
phys = <&p2u_nvhs_4>, <&p2u_nvhs_5>, <&p2u_nvhs_6>, <&p2u_nvhs_7>;
phy-names = "p2u-0", "p2u-1", "p2u-2", "p2u-3";

};

//PCIe C7
pcie@141e0000 {
status = "okay"; // leavnig this as disabled, when enabled, the bootloader panics
num-lanes =

;
phys = <&p2u_gbe_0>;
phy-names = "p2u-0";
};


Looking at the dev kit, it both pcie@141c0000 / pcie@141e0000 are disabled. This is what the bootloader will produce in the panic (not all registers copied)


I/TC: Primary CPU switching to normal world boot

Unhandled Exception in EL3.

x30 = 0x00000000500013a4

x0 = 0x0000000000000000

x1 = 0xfffffffffffff000

x2 = 0xfffffffffffdd000

x3 = 0x0000000000022000

x4 = 0x0000000000000548

x5 = 0x0000001036000550

x6 = 0x0000000000000000

x7 = 0x0000000000000000

x8 = 0x000000102ea00000

x9 = 0x0000000000100004


Using the uefi debugger with the debugging enabled produced more debugging information:


PCIE Controller ID-6, Bpmp Phandle-2
��Unhandled Exception in EL3.


pcie@141c0000 / pcie@141e0000 seem to have a complete definition, as when I boot with the nvidia device tree, I see a reasonable set of values, just that the status is disabled:


pcie@141c0000 {
compatible = "nvidia,tegra234-pcie\0snps,dw-pcie";
power-domains = <0x04 0x06>;
reg = <0x00 0x141c0000 0x00 0x20000 0x00 0x3c000000 0x00 0x40000 0x00 0x3c040000 0x00 0x40000 0x00 0x3c080000 0x00 0x40000 0x2e 0x30000000 0x00 0x10000000>;
reg-names = "appl\0config\0atu_dma\0dbi\0ecam";
status = "disabled";
#address-cells = <0x03>;
#size-cells = <0x02>;
device_type = "pci";
num-lanes = <0x04>;
num-viewport = <0x08>;
linux,pci-domain = <0x06>;
clocks = <0x04 0xa1 0x04 0xeb>;
clock-names = "core\0core_m";
resets = <0x04 0x0c 0x04 0x0b>;
reset-names = "apb\0core";
interrupts = <0x00 0x160 0x04 0x00 0x161 0x04>;
interrupt-names = "intr\0msi";
interconnects = <0x23 0x28 0x23 0x29>;
interconnect-names = "dma-mem\0dma-mem";
iommus = <0x02 0x15>;
iommu-map = <0x00 0x02 0x15 0x1000>;
msi-parent = <0x11 0x15>;
msi-map = <0x00 0x11 0x15 0x1000>;
dma-coherent;
iommu-map-mask = <0x00>;
#interrupt-cells = <0x01>;
interrupt-map-mask = <0x00 0x00 0x00 0x00>;
interrupt-map = <0x00 0x00 0x00 0x00 0x01 0x00 0x160 0x04>;
nvidia,dvfs-tbl = <0xc28cb00 0xc28cb00 0xc28cb00 0x27ac4000 0xc28cb00 0xc28cb00 0x27ac4000 0x5f5e1000 0xc28cb00 0x27ac4000 0x5f5e1000 0x7f22ff40 0x00 0x00 0x00 0x00>;
nvidia,max-speed = <0x04>;
nvidia,disable-aspm-states = <0x0f>;
nvidia,controller-id = <0x04 0x06>;
nvidia,tsa-config = <0x200b004>;
nvidia,disable-l1-cpm;
nvidia,aux-clk-freq = <0x13>;
nvidia,preset-init = <0x05>;
nvidia,aspm-cmrt = <0x3c>;
nvidia,aspm-pwr-on-t = <0x14>;
nvidia,aspm-l0s-entrance-latency = <0x03>;
nvidia,bpmp = <0x04 0x06>;
nvidia,aspm-cmrt-us = <0x3c>;
nvidia,aspm-pwr-on-t-us = <0x14>;
nvidia,aspm-l0s-entrance-latency-us = <0x03>;
bus-range = <0x00 0xff>;
ranges = <0x81000000 0x00 0x3c100000 0x00 0x3c100000 0x00 0x100000 0x82000000 0x00 0x40000000 0x2e 0x28000000 0x00 0x8000000 0xc3000000 0x2b 0x40000000 0x2b 0x40000000 0x02 0xe8000000>;
nvidia,cfg-link-cap-l1sub = <0x1b0>;
nvidia,cap-pl16g-status = <0x174>;
nvidia,cap-pl16g-cap-off = <0x188>;
nvidia,event-cntr-ctrl = <0x1c4>;
nvidia,event-cntr-data = <0x1c8>;
nvidia,dl-feature-cap = <0x2f8>;
nvidia,ptm-cap-off = <0x304>;
vddio-pex-ctl-supply = <0x13>;
phandle = <0x31b>;
};

Is there a known problem with version of the bootloader (v35.3.1) or configuration of pcie@141c0000 / pcie@141e0000? At this time, I’ve left pcie@141c0000 / pcie@141e0000 disabled so the machine boots to linux as I research this issue.