器件型号: J784S4XEVM
当我尝试从 mcu4_0 上运行的应用程序中读取 MCSPI 寄存器(例如 0x02100000 或 0x021[1-7]0000)时、R5F 似乎锁定。
当我尝试使用 devmem2 读取相同的寄存器时、Linux 内核出现严重错误。
我在做什么?
devmem2_read_0x02170000_panic.txt
谢谢、
Bruce
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
器件型号: J784S4XEVM
当我尝试从 mcu4_0 上运行的应用程序中读取 MCSPI 寄存器(例如 0x02100000 或 0x021[1-7]0000)时、R5F 似乎锁定。
当我尝试使用 devmem2 读取相同的寄存器时、Linux 内核出现严重错误。
我在做什么?
devmem2_read_0x02170000_panic.txt
谢谢、
Bruce
k3conf 命令 k3conf dump device 376 的输出显示它未启用:
k3conf dump device 376 |------------------------------------------------------------------------------| | VERSION INFO | |------------------------------------------------------------------------------| | K3CONF | (version 0.3-nogit built Fri Oct 06 12:20:16 UTC 2023) | | SoC | J784S4 SR1.0 | | SYSFW | ABI: 3.1 (firmware version 0x0009 '9.1.2--v09.01.02 (Kool Koala))') | |------------------------------------------------------------------------------| |--------------------------------------------------| | Device ID | Device Name | Device Status | |--------------------------------------------------| | 376 | J784S4_DEV_MCSPI0 | DEVICE_STATE_OFF | |--------------------------------------------------|
k3conf enable device 376
之后 k3conf 转储设备显示它已启用、我能够转储相关的寄存器。
我认为在 k3-j784s4-evm.dts 中添加以下内容足以启用 SPI 器件:
&main_spi0 {
status = "okay";
pinctrl-0 = <&main_spi0_pins_default>;
pinctrl-names = "default";
};
因为这不起作用、所以我需要将哪些内容添加到设备树以确保其已启用?
谢谢、
Bruce
您好:
众所周知、模块启用后、可以访问寄存器。
在 k3-j784s4-main.dtsi 中、您应该会看到 spi0 相关信息。如果在这里禁用、则会禁用它。
main_spi0: spi@2100000 {
compatible = "ti,am654-mcspi","ti,omap4-mcspi";
reg = <0x00 0x02100000 0x00 0x400>;
interrupts = <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>;
#address-cells = <1>;
#size-cells = <0>;
power-domains = <&k3_pds 376 TI_SCI_PD_EXCLUSIVE>;
clocks = <&k3_clks 376 0>;
status = "disabled";
};
此致
Tarun Mukesh
尊敬的 Tarun:
我更改了 k3-j784s4-main.dtsi、将状态设置为“oke":“:
main_spi0: spi@2100000 {
compatible = "ti,am654-mcspi","ti,omap4-mcspi";
reg = <0x00 0x02100000 0x00 0x400>;
interrupts = <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>;
#address-cells = <1>;
#size-cells = <0>;
power-domains = <&k3_pds 376 TI_SCI_PD_EXCLUSIVE>;
clocks = <&k3_clks 376 1>;
status = "okay";
};
有趣的是、 当状态=“oke"时“时、k3-j784s4-evm.dtb 位于 k3-j784s4-evm.dts 中 、完全相同。
不幸的是,当我安装新的 k3-j784s4-evm.dtb 时, k3conf 转储设备 376 的输出仍然显示它未启用。
我已将在电路板上运行以下命令的输出连接起来:
dtc -Idtb -Odts /boot/dtb/ti/k3-j784s4-evm.dtb > /tmp/k3-j784s4-evm_curr.txt
e2e.ti.com/.../k3_2D00_j784s4_2D00_evm_5F00_curr.txt
谢谢、
Bruce
您好 Bruce、
Linux 实现了 PM(电源管理)功能、很可能这就是器件关闭的原因。
若要确认、可以使用 SPI 接口启动事务、并且在传输过程中、可以使用 k3conf 检查器件状态。
或者、也应该提供/sys/devices/platform/..... 在 sysfs 中写入/power/control 并将“on"写入“写入此设置应该会禁用自动暂停(控件的默认状态应该是“auto")“)。 也可以设置 udev 规则来永久打开它。
此致、
Takuma