Hi, all:
We are debugging a custom carrier with two ORins, They are connected to PCiE C5. We are running Jetpack 5.1.2. We enable-srns and disable Spread Spectrum Clocking(SSC) on Orin refer to the following link: How to disable Spread Spectrum Clocking(SSC) on Orin
The two computers are turned on at the same time. Then the endpoint orin executes the requisite start_endpoint.sh command which is:
Then we reboot the rootport orin, we get errors on the endpoint that look like:
root@trunk-desktop:/home/trunk# [ 76.629721] pci_epf_tvnet pci_epf_tvnet.0: tvnet_ep_open: PCIe link is not up
[ 76.645435] pci_epf_tvnet pci_epf_tvnet.0: tvnet_ep_open: PCIe link is not up
[ 76.656325] pci_epf_tvnet pci_epf_tvnet.0: tvnet_ep_open: PCIe link is not up
[ 76.667567] pci_epf_tvnet pci_epf_tvnet.0: tvnet_ep_open: PCIe link is not up
[ 76.680197] pci_epf_tvnet pci_epf_tvnet.0: tvnet_ep_open: PCIe link is not up
[ 94.604342] CPU:0, Error: cbb-fabric@0x13a00000, irq=34
[ 94.609727] **************************************
[ 94.614653] CPU:0, Error:cbb-fabric, Errmon:2
[ 94.619133] Error Code : TIMEOUT_ERR
[ 94.623172]
[ 94.624701] Error Code : TIMEOUT_ERR
[ 94.628733] MASTER_ID : CCPLEX
[ 94.632230] Address : 0x3e90078
[ 94.635820] Cache : 0x1 -- Bufferable
[ 94.640114] Protection : 0x2 -- Unprivileged, Non-Secure, Data Access
[ 94.647095] Access_Type : Read
[ 94.650591] Access_ID : 0x13
[ 94.650592] Fabric : cbb-fabric
[ 94.657501] Slave_Id : 0x2e
[ 94.660719] Burst_length : 0x0
[ 94.664216] Burst_type : 0x1
[ 94.667537] Beat_size : 0x2
[ 94.670754] VQC : 0x0
[ 94.673533] GRPSEC : 0x7e
[ 94.676588] FALCONSEC : 0x0
[ 94.679807] **************************************
[ 94.684848] WARNING: CPU: 0 PID: 227 at drivers/soc/tegra/cbb/tegra234-cbb.c:577 tegra234_cbb_isr+0x130/0x170
[ 94.695263] ---[ end trace d5c8b5c14fb41327 ]---
[ 94.700052] CPU:0, Error: cbb-fabric@0x13a00000, irq=34
These logs are captured from the serial UART console. We log into the machine through the same serial so that the executed commands are visible in the log files. orin_rp_console.txt (194.0 KB) orin_ep_console.txt (562.6 KB)
After the rootport is restarted, pcie ethernet can be identified and the network communication between them is normal,The endpoint did not report any errors.
But /sys/kernel/debug/BPMP/debug/uphy/config register values on endpoint from 0x40d84000 into 0x00584000.
our endpoint ODMDATA configured to:
What’s going on here.
I think 0x40d84000 is the correct configuration on the endpoint , why does rebrushing A_bpmp-fw-dtb partition to 0x00584000 work?
Do we use devmem to see which registers are configured correctly? Because our first version of hardware was designed without a pcie external clock, we had to use enable SRNS
No, we are talking about the shared memory read/write in this doc. Devmem will be used to write and read. This is the simplest method to validate EP function.
If you want to use SRNS, then you have to disable SSC(on both EP and RP side)
and add pcie-cX -endpoint-use-int-refclk in bpmp dtb “uphy” section (only on EP).
There is a property "nvidia,enable-srns” for kernel dtb. You have to add this in both EP and RP PCIe controller DT.
I only add "nvidia,enable-srns” in both EP and RP PCIe controller DT and delete “nvidia,enable-ext-refclk;” I also tried to add “pcie cx-endpoint-use-int-refclk” to the EP
I also found that the configurations of hsio-uphy-config and nvhs-uphy-config on bpmp ,
Do they need to change it modified, Or they do it through ODMDATA?
I think the fact that I only reflash the A_bpmp-fw-dtb partition may have caused the system to use these default configurations