hi all
When testing SPI2 in jekpack 6.0, some issues occurred. Currently, I am using SPI2 to connect to MCP2518FD, but the following error is reported.
i use the customboard
[ 49.127133] ------------[ cut here ]------------
[ 49.127169] WARNING: CPU: 7 PID: 818 at drivers/spi/spi-tegra114.c:1460 tegra_spi_transfer_one_message+0xa3c/0xbc8 [spi_tegra114]
[ 49.127246] Modules linked in: can_raw can nvidia_modeset(O) aic8800_fdrv(OE) cfg80211 lzo_rle lzo_compress zram zsmalloc aic_load_fw(OE) ramoops reed_solomon nv_cam(O) max96717 snd_soc_tegra210_admaif(O) snd_soc_tegra186_asrc(O) snd_soc_tegra210_mixer(O) snd_soc_tegra_pcm snd_soc_tegra210_afc(O) snd_soc_tegra186_arad(O) snd_soc_tegra210_ope(O) snd_soc_tegra210_dmic(O) snd_soc_tegra210_amx(O) snd_soc_tegra210_mvc(O) snd_soc_tegra186_dspk(O) snd_soc_tegra210_sfc(O) snd_soc_tegra210_adx(O) snd_soc_tegra210_i2s(O) snd_soc_tegra210_ahub(O) tegra210_adma mcp251xfd nvvrs_pseq_rtc(O) tegra_pcie_dma_test(O) tegra_pcie_edma(O) snd_hda_codec_hdmi mttcan(O) can_dev tegra_cactmon_mc_all(O) tegra234_aon(O) tegra_aconnect snd_hda_tegra max96724 snd_hda_codec snd_hda_core max_serdes_all at24 pwm_tegra_tachometer(O) nvethernet(O) spi_tegra114(E) mc_hwpm(O) nvpps(O) host1x_fence(O) crct10dif_ce snd_soc_tegra_machine_driver(O) snd_soc_tegra_utils(O) snd_soc_simple_card_utils rfkill
[ 49.127437] tegra23x_perf_uncore(O) tegra234_oc_event(O) nvpmodel_clk_cap(O) nvidia(O) tegra_mce(O) thermal_trip_event(O) i2c_nvvrs11(O) lm90 nvhost_vi5(O) nvhost_isp5(O) nvhost_nvcsi_t194(O) nvidia_vrs_pseq(O) tegra_dce(O) bridge stp llc usb_f_ncm usb_f_mass_storage tegra_camera(O) v4l2_dv_timings nvhost_nvcsi(O) tegra_camera_platform(O) capture_ivc(O) tegra_camera_rtcpu(O) ivc_bus(O) hsp_mailbox_client(O) ivc_ext(O) v4l2_fwnode usb_f_acm v4l2_async videobuf2_dma_contig u_serial governor_userspace videobuf2_memops usb_f_rndis videobuf2_v4l2 tegra_drm(O) u_ether videobuf2_common videodev tegra_wmark(O) libcomposite nvhost_pva(O) mc nvhost_nvdla(O) cec tegra_se(O) nvhwpm(O) nvhost_capture(O) drm_kms_helper tsecriscv(O) host1x_nvhost(O) crypto_engine nvidia_p2p(O) ina3221 nvgpu(O) governor_pod_scaling(O) host1x(O) mc_utils(O) nvmap(O) nvsciipc(O) drm fuse ip_tables x_tables ipv6 pwm_fan(E) pwm_tegra(E) tegra_bpmp_thermal(E) tegra_xudc(E) ucsi_ccg(E) typec_ucsi(E) typec(E) nvme(E)
[ 49.127711] nvme_core(E) phy_tegra194_p2u(E) pcie_tegra194(E)
[ 49.127738] CPU: 7 PID: 818 Comm: spi2 Tainted: G OE 5.15.136-tegra #1
[ 49.127748] Hardware name: NVIDIA NVIDIA Jetson AGX Orin Developer Kit/Jetson, BIOS 36.3.0-gcid-36191598 05/06/2024
[ 49.127753] pstate: 60400009 (nZCv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--)
[ 49.127764] pc : tegra_spi_transfer_one_message+0xa3c/0xbc8 [spi_tegra114]
[ 49.127774] lr : tegra_spi_transfer_one_message+0x550/0xbc8 [spi_tegra114]
[ 49.127780] sp : ffff80000e30bce0
[ 49.127784] x29: ffff80000e30bce0 x28: 0000000000000000 x27: 0000000000000000
[ 49.127790] x26: ffff80000cd73790 x25: ffff80000cd737d0 x24: 0000000040608007
[ 49.127796] x23: ffff000092aaa800 x22: ffff000092b38600 x21: ffff000092b38600
[ 49.127801] x20: ffff80000cd73848 x19: 0000000000000000 x18: 0000000000000000
[ 49.127807] x17: 000000040044ffff x16: 005000f5b5503510 x15: 0000000000000000
[ 49.127812] x14: ffff0000801dae80 x13: ffff3382ec16d000 x12: 00000000b464d91d
[ 49.127819] x11: 0000000000000000 x10: 836db2a032b2883c x9 : 5eb61e7a18dc955e
[ 49.127825] x8 : ffff00008985bdd8 x7 : 0000000000000003 x6 : 00000000f0c9536a
[ 49.127833] x5 : 00000000410fd420 x4 : 0000000000c0000e x3 : 0000000000000000
[ 49.127840] x2 : 0000000000000000 x1 : 0000000000000000 x0 : 0000000000000000
[ 49.127850] Call trace:
[ 49.127857] tegra_spi_transfer_one_message+0xa3c/0xbc8 [spi_tegra114]
[ 49.127864] __spi_pump_messages+0x384/0x7f0
[ 49.127928] spi_pump_messages+0x2c/0x40
[ 49.127936] kthread_worker_fn+0xb8/0x290
[ 49.127962] kthread+0x184/0x190
[ 49.127972] ret_from_fork+0x10/0x20
[ 49.127993] ---[ end trace 6fef0303a9df98a0 ]---
[ 50.133091] sched: RT throttling activated
[ 50.496652] spi-tegra114 c260000.spi: spi transfer timeout, err 0
[ 50.501674] tegra-gpcdma 2600000.dma-controller: DMA pause timed out
[ 50.502052] spi_master spi2: failed to transfer one message from queue
[ 60.903040] ------------[ cut here ]------------
[ 60.903070] WARNING: CPU: 2 PID: 1830 at drivers/spi/spi-tegra114.c:1460 tegra_spi_transfer_one_message+0xa3c/0xbc8 [spi_tegra114]
[ 60.903145] Modules linked in: can_raw can nvidia_modeset(O) aic8800_fdrv(OE) cfg80211 lzo_rle lzo_compress zram zsmalloc aic_load_fw(OE) ramoops reed_solomon nv_cam(O) max96717 snd_soc_tegra210_admaif(O) snd_soc_tegra186_asrc(O) snd_soc_tegra210_mixer(O) snd_soc_tegra_pcm snd_soc_tegra210_afc(O) snd_soc_tegra186_arad(O) snd_soc_tegra210_ope(O) snd_soc_tegra210_dmic(O) snd_soc_tegra210_amx(O) snd_soc_tegra210_mvc(O) snd_soc_tegra186_dspk(O) snd_soc_tegra210_sfc(O) snd_soc_tegra210_adx(O) snd_soc_tegra210_i2s(O) snd_soc_tegra210_ahub(O) tegra210_adma mcp251xfd nvvrs_pseq_rtc(O) tegra_pcie_dma_test(O) tegra_pcie_edma(O) snd_hda_codec_hdmi mttcan(O) can_dev tegra_cactmon_mc_all(O) tegra234_aon(O) tegra_aconnect snd_hda_tegra max96724 snd_hda_codec snd_hda_core max_serdes_all at24 pwm_tegra_tachometer(O) nvethernet(O) spi_tegra114(E) mc_hwpm(O) nvpps(O) host1x_fence(O) crct10dif_ce snd_soc_tegra_machine_driver(O) snd_soc_tegra_utils(O) snd_soc_simple_card_utils rfkill
[ 60.903326] tegra23x_perf_uncore(O) tegra234_oc_event(O) nvpmodel_clk_cap(O) nvidia(O) tegra_mce(O) thermal_trip_event(O) i2c_nvvrs11(O) lm90 nvhost_vi5(O) nvhost_isp5(O) nvhost_nvcsi_t194(O) nvidia_vrs_pseq(O) tegra_dce(O) bridge stp llc usb_f_ncm usb_f_mass_storage tegra_camera(O) v4l2_dv_timings nvhost_nvcsi(O) tegra_camera_platform(O) capture_ivc(O) tegra_camera_rtcpu(O) ivc_bus(O) hsp_mailbox_client(O) ivc_ext(O) v4l2_fwnode usb_f_acm v4l2_async videobuf2_dma_contig u_serial governor_userspace videobuf2_memops usb_f_rndis videobuf2_v4l2 tegra_drm(O) u_ether videobuf2_common videodev tegra_wmark(O) libcomposite nvhost_pva(O) mc nvhost_nvdla(O) cec tegra_se(O) nvhwpm(O) nvhost_capture(O) drm_kms_helper tsecriscv(O) host1x_nvhost(O) crypto_engine nvidia_p2p(O) ina3221 nvgpu(O) governor_pod_scaling(O) host1x(O) mc_utils(O) nvmap(O) nvsciipc(O) drm fuse ip_tables x_tables ipv6 pwm_fan(E) pwm_tegra(E) tegra_bpmp_thermal(E) tegra_xudc(E) ucsi_ccg(E) typec_ucsi(E) typec(E) nvme(E)
[ 60.903628] nvme_core(E) phy_tegra194_p2u(E) pcie_tegra194(E)
[ 60.903655] CPU: 2 PID: 1830 Comm: ifconfig Tainted: G W OE 5.15.136-tegra #1
[ 60.903670] Hardware name: NVIDIA NVIDIA Jetson AGX Orin Developer Kit/Jetson, BIOS 36.3.0-gcid-36191598 05/06/2024
[ 60.903679] pstate: 60400009 (nZCv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--)
[ 60.903691] pc : tegra_spi_transfer_one_message+0xa3c/0xbc8 [spi_tegra114]
[ 60.903699] lr : tegra_spi_transfer_one_message+0x550/0xbc8 [spi_tegra114]
[ 60.903706] sp : ffff80000cd73450
[ 60.903710] x29: ffff80000cd73450 x28: 00000000000000fc x27: ffff0000a1800940
[ 60.903718] x26: ffff80000cd73680 x25: ffff80000cd736c0 x24: 0000000040408007
[ 60.903725] x23: ffff000092aaa800 x22: ffff000092b38600 x21: ffff000092b38600
[ 60.903733] x20: ffff80000cd736e8 x19: 0000000000000000 x18: 0000000000000000
[ 60.903741] x17: 000000040044ffff x16: 005000f5b5503510 x15: 0000000000000000
[ 60.903748] x14: ffff0000801dbe00 x13: ffff3382ec0dc000 x12: 00000000b464d91d
[ 60.903755] x11: 0000000000000000 x10: dc48ca45fee5ae0a x9 : a2d9b3d1aae4fdd7
[ 60.903765] x8 : ffff000089498f58 x7 : 0000000000000003 x6 : 0000000106b88f6a
[ 60.903771] x5 : 00000000410fd420 x4 : 0000000000c0000e x3 : 0000000000000000
[ 60.903778] x2 : 0000000000000000 x1 : 0000000000000000 x0 : 0000000000000000
[ 60.903790] Call trace:
[ 60.903799] tegra_spi_transfer_one_message+0xa3c/0xbc8 [spi_tegra114]
[ 60.903806] __spi_pump_messages+0x384/0x7f0
[ 60.903871] __spi_sync+0x2d0/0x310
[ 60.903878] spi_sync+0x3c/0x60
[ 60.903884] mcp251xfd_regmap_crc_read+0x144/0x2c0 [mcp251xfd]
[ 60.903902] _regmap_raw_read+0xec/0x2e0
[ 60.903925] regmap_raw_read+0x1a0/0x290
[ 60.903930] regmap_bulk_read+0x1b8/0x260
[ 60.903936] mcp251xfd_dump+0xdc/0x31c [mcp251xfd]
[ 60.903943] mcp251xfd_chip_start+0x3c/0x7e0 [mcp251xfd]
[ 60.903951] mcp251xfd_open+0x2a0/0x390 [mcp251xfd]
[ 60.903957] __dev_open+0xf4/0x1e0
[ 60.903987] __dev_change_flags+0x19c/0x220
[ 60.903993] dev_change_flags+0x44/0x90
[ 60.903999] devinet_ioctl+0x548/0x700
[ 60.904019] inet_ioctl+0x1a4/0x1d0
[ 60.904023] sock_do_ioctl+0x58/0x110
[ 60.904042] sock_ioctl+0x2e0/0x4d0
[ 60.904049] __arm64_sys_ioctl+0xb4/0x100
[ 60.904069] invoke_syscall+0x5c/0x130
[ 60.904089] el0_svc_common.constprop.0+0x64/0x110
[ 60.904096] do_el0_svc+0x74/0xa0
[ 60.904103] el0_svc+0x28/0x80
[ 60.904119] el0t_64_sync_handler+0xa4/0x130
[ 60.904123] el0t_64_sync+0x1a4/0x1a8
[ 60.904131] ---[ end trace 6fef0303a9df98a1 ]---
[ 60.908223] tegra-gpcdma 2600000.dma-controller: DMA pause timed out
[ 60.908389] spi-tegra114 c260000.spi: TxDma Xfer failed
[ 61.004890] spi-tegra114 c260000.spi: spi transfer timeout, err 0
[ 61.006153] spi_master spi2: failed to transfer one message from queue
[ 71.142993] ------------[ cut here ]------------
[ 71.143020] WARNING: CPU: 2 PID: 1830 at drivers/spi/spi-tegra114.c:1460 tegra_spi_transfer_one_message+0xa3c/0xbc8 [spi_tegra114]
[ 71.143078] Modules linked in: can_raw can nvidia_modeset(O) aic8800_fdrv(OE) cfg80211 lzo_rle lzo_compress zram zsmalloc aic_load_fw(OE) ramoops reed_solomon nv_cam(O) max96717 snd_soc_tegra210_admaif(O) snd_soc_tegra186_asrc(O) snd_soc_tegra210_mixer(O) snd_soc_tegra_pcm snd_soc_tegra210_afc(O) snd_soc_tegra186_arad(O) snd_soc_tegra210_ope(O) snd_soc_tegra210_dmic(O) snd_soc_tegra210_amx(O) snd_soc_tegra210_mvc(O) snd_soc_tegra186_dspk(O) snd_soc_tegra210_sfc(O) snd_soc_tegra210_adx(O) snd_soc_tegra210_i2s(O) snd_soc_tegra210_ahub(O) tegra210_adma mcp251xfd nvvrs_pseq_rtc(O) tegra_pcie_dma_test(O) tegra_pcie_edma(O) snd_hda_codec_hdmi mttcan(O) can_dev tegra_cactmon_mc_all(O) tegra234_aon(O) tegra_aconnect
[ 71.143178] spi-tegra114 c260000.spi: RxDma Xfer failed
[ 71.143183] snd_hda_tegra
[ 71.143185] max96724 snd_hda_codec
[ 71.143190] spi-tegra114 c260000.spi: DmaXfer: ERROR bit set 0x400005
[ 71.143193] snd_hda_core
[ 71.143196] spi-tegra114 c260000.spi: DmaXfer 0x40409827:0x00000100
[ 71.143197] max_serdes_all
[ 71.143199] at24 pwm_tegra_tachometer(O) nvethernet(O) spi_tegra114(E) mc_hwpm(O) nvpps(O) host1x_fence(O) crct10dif_ce snd_soc_tegra_machine_driver(O) snd_soc_tegra_utils(O) snd_soc_simple_card_utils rfkill tegra23x_perf_uncore(O) tegra234_oc_event(O) nvpmodel_clk_cap(O) nvidia(O) tegra_mce(O) thermal_trip_event(O) i2c_nvvrs11(O) lm90 nvhost_vi5(O) nvhost_isp5(O) nvhost_nvcsi_t194(O) nvidia_vrs_pseq(O) tegra_dce(O) bridge stp llc usb_f_ncm usb_f_mass_storage tegra_camera(O) v4l2_dv_timings nvhost_nvcsi(O) tegra_camera_platform(O) capture_ivc(O) tegra_camera_rtcpu(O) ivc_bus(O) hsp_mailbox_client(O) ivc_ext(O) v4l2_fwnode usb_f_acm v4l2_async videobuf2_dma_contig u_serial governor_userspace videobuf2_memops usb_f_rndis videobuf2_v4l2 tegra_drm(O) u_ether videobuf2_common videodev tegra_wmark(O) libcomposite nvhost_pva(O) mc nvhost_nvdla(O) cec tegra_se(O) nvhwpm(O) nvhost_capture(O) drm_kms_helper tsecriscv(O) host1x_nvhost(O) crypto_engine nvidia_p2p(O) ina3221 nvgpu(O)
[ 71.143422] governor_pod_scaling(O) host1x(O) mc_utils(O) nvmap(O) nvsciipc(O) drm fuse ip_tables x_tables ipv6 pwm_fan(E) pwm_tegra(E) tegra_bpmp_thermal(E) tegra_xudc(E) ucsi_ccg(E) typec_ucsi(E) typec(E) nvme(E) nvme_core(E) phy_tegra194_p2u(E) pcie_tegra194(E)
[ 71.143493] CPU: 2 PID: 1830 Comm: ifconfig Tainted: G W OE 5.15.136-tegra #1
[ 71.143502] Hardware name: NVIDIA NVIDIA Jetson AGX Orin Developer Kit/Jetson, BIOS 36.3.0-gcid-36191598 05/06/2024
[ 71.143510] pstate: 60400009 (nZCv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--)
[ 71.143521] pc : tegra_spi_transfer_one_message+0xa3c/0xbc8 [spi_tegra114]
[ 71.143527] lr : tegra_spi_transfer_one_message+0x550/0xbc8 [spi_tegra114]
[ 71.143533] sp : ffff80000cd73450
[ 71.143537] x29: ffff80000cd73450 x28: 00000000000000fc x27: ffff0000a1800940
[ 71.143545] x26: ffff80000cd73680 x25: ffff80000cd736c0 x24: 0000000040408007
[ 71.143551] x23: ffff000092aaa800 x22: ffff000092b38600 x21: ffff000092b38600
[ 71.143558] x20: ffff80000cd736e8 x19: 0000000000000000 x18: 0000000000000000
[ 71.143566] x17: 000000040044ffff x16: 005000f5b5503510 x15: 0000000000000000
[ 71.143572] x14: ffff0000801dbe00 x13: ffff3382ec0dc000 x12: 00000000b464d91d
[ 71.143578] x11: 0000000000000000 x10: dc48ca45fee5ae0a x9 : a2d9b3d1aae4fdd7
[ 71.143583] x8 : ffff000089498f58 x7 : 0000000000000003 x6 : 0000000119cb5f6a
[ 71.143590] x5 : 00000000410fd420 x4 : 0000000000c0000e x3 : 0000000000000000
[ 71.143596] x2 : 0000000000000000 x1 : 0000000000000000 x0 : 0000000000000000
[ 71.143605] Call trace:
[ 71.143611] tegra_spi_transfer_one_message+0xa3c/0xbc8 [spi_tegra114]
[ 71.143620] __spi_pump_messages+0x384/0x7f0
[ 71.143662] __spi_sync+0x2d0/0x310
[ 71.143668] spi_sync+0x3c/0x60
[ 71.143676] mcp251xfd_regmap_crc_read+0x144/0x2c0 [mcp251xfd]
[ 71.143690] _regmap_raw_read+0xec/0x2e0
[ 71.143711] regmap_raw_read+0x1a0/0x290
[ 71.143716] regmap_bulk_read+0x1b8/0x260
[ 71.143721] mcp251xfd_dump+0xdc/0x31c [mcp251xfd]
[ 71.143728] mcp251xfd_chip_start+0x3c/0x7e0 [mcp251xfd]
[ 71.143734] mcp251xfd_open+0x2a0/0x390 [mcp251xfd]
[ 71.143739] __dev_open+0xf4/0x1e0
[ 71.143762] __dev_change_flags+0x19c/0x220
[ 71.143768] dev_change_flags+0x44/0x90
[ 71.143775] devinet_ioctl+0x548/0x700
[ 71.143792] inet_ioctl+0x1a4/0x1d0
[ 71.143796] sock_do_ioctl+0x58/0x110
[ 71.143809] sock_ioctl+0x2e0/0x4d0
[ 71.143813] __arm64_sys_ioctl+0xb4/0x100
[ 71.143825] invoke_syscall+0x5c/0x130
[ 71.143842] el0_svc_common.constprop.0+0x64/0x110
[ 71.143848] do_el0_svc+0x74/0xa0
[ 71.143853] el0_svc+0x28/0x80
[ 71.143867] el0t_64_sync_handler+0xa4/0x130
[ 71.143872] el0t_64_sync+0x1a4/0x1a8
[ 71.143878] ---[ end trace 6fef0303a9df98a2 ]---
[ 71.244522] spi-tegra114 c260000.spi: spi transfer timeout, err 0
[ 71.249537] tegra-gpcdma 2600000.dma-controller: DMA pause timed out
and i try to disable the dma , just use tegra_spi_start_cpu_based_transfer , ti can work up .
but use tegra_spi_start_cpu_based_transfer only can send 1 message, and cannot recv any message.
i can also use the spi@3210000 and spi@3230000 is work well
my dts settings :
spi@c260000{
status = "okay";
spi-max-frequency = <12000000>;
spi_can4: spi_can4@0 {
compatible = "microchip,mcp2518fd";
status = "okay";
reg = <0x0>;
spi-max-frequency = <12000000>;
clocks = <&can_clock>;
interrupts-extended = <&gpio_aon TEGRA234_AON_GPIO(AA, 7) IRQ_TYPE_LEVEL_LOW>;
vdd-supply = <&vdd_5v0_sys>;
xceiver-supply = <&vdd_5v0_sys>;
controller-data {
nvidia,enable-hw-based-cs;
nvidia,cs-setup-clk-count = <0x1e>;
nvidia,cs-hold-clk-count = <0x1e>;
nvidia,rx-clk-tap-delay = <0x1f>;
nvidia,tx-clk-tap-delay = <0x0>;
};
};
};
how can i fix it ? i think is a bug in spi-tegra114.c