请问一下这个问题有补丁了嘛
TDA4VM_ECO TDA4VM_EVH ospi不识别_a72
TDA4VM: TDA4VM_EVH ospi不识别_a72 - 处理器论坛 - 处理器 - E2E 设计支持 (ti.com)
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.
请问一下这个问题有补丁了嘛
TDA4VM_ECO TDA4VM_EVH ospi不识别_a72
TDA4VM: TDA4VM_EVH ospi不识别_a72 - 处理器论坛 - 处理器 - E2E 设计支持 (ti.com)
请尝试使用最新的processor SDK。
https://www.ti.com/tool/download/PROCESSOR-SDK-LINUX-J721E
下载prebuilt包
www.ti.com/.../PROCESSOR-SDK-RTOS-J721S2
ti-processor-sdk-rtos-j721s2-evm-09_00_00_02-prebuilt.tar.gz
将包中的Image-6.1.33-g8f7f371be2 k3-j721s2-common-proc-board.dtb
替换我们的板子中Image ,k3-j721s2-common-proc-board.dtb
然后做交叉实验,发现造成DMA报错的部分在Image
[ 2.730223] mmcblk0: p1 p2 p3 [ 2.733639] mmcblk0boot0: mmc0:0001 BGUF4R 31.9 MiB [ 2.739119] mmcblk0boot1: mmc0:0001 BGUF4R 31.9 MiB [ 2.744561] mmcblk0rpmb: mmc0:0001 BGUF4R 4.00 MiB, chardev (240:0) [ 2.901351] tps6594-rtc tps6594-rtc.4.auto: registered as rtc0 [ 2.907314] tps6594-rtc tps6594-rtc.4.auto: hctosys: unable to read the hardware clock [ 3.311449] omap-mailbox 31f80000.mailbox: omap mailbox rev 0x66fca100 [ 3.318278] omap-mailbox 31f81000.mailbox: omap mailbox rev 0x66fca100 [ 3.325079] omap-mailbox 31f82000.mailbox: omap mailbox rev 0x66fca100 [ 3.331881] omap-mailbox 31f84000.mailbox: omap mailbox rev 0x66fca100 [ 3.339927] ti-udma 285c0000.dma-controller: Channels: 26 (tchan: 13, rchan: 13, gp-rflow: 8) [ 3.350029] ti-udma 31150000.dma-controller: Channels: 60 (tchan: 30, rchan: 30, gp-rflow: 16) [ 3.359923] pinctrl-single 4301c000.pinctrl: mux offset out of range: 0x38 (0x34) [ 3.367411] pinctrl-single 4301c000.pinctrl: could not add functions for mcu-fss0-ospi0-pins-default 56x [ 3.378632] spi-nor spi0.0: unrecognized JEDEC id bytes: 00 00 00 00 00 00 [ 3.387239] spi-nor spi1.0: unrecognized JEDEC id bytes: ff ff ff ff ff ff [ 3.394621] davinci_mdio 46000f00.mdio: Configuring MDIO in manual mode
436: 20230524_14:34:22:850:[ 1.500467] cadence-qspi 47050000.spi: error (____ptrval____): No Rx DMA available
我的意思是,上面这个DMA报错问题,针对dma的patch有嘛,8.6的sdk上是有找不到对应dma的报错的,现在是将9.0的img ,dtb放进去,没有DMA报错,可以将对应的修改项指出来嘛,我们porting到8.6
或者告知一下移哪部分代码,因为遇到很多编译错误
比如一步步移植ti-processor-sdk-linux-adas-j721s2-evm-09_00_01_02\board-support\linux-6.1.46+gitAUTOINC+f8110d9ce8-gf8110d9ce8\drivers\dma\ti\k3-udma.c及相关到8.6,就有很多接口不一样
CALL scripts/atomic/check-atomics.sh CC arch/arm64/kernel/asm-offsets.s CALL scripts/checksyscalls.sh CHK include/generated/compile.h CC arch/arm64/mm/dma-mapping.o CC arch/arm64/kernel/smp.o CC drivers/irqchip/irq-gic-v2m.o CC kernel/irq/chip.o CC drivers/irqchip/irq-gic-v3-mbi.o AR arch/arm64/mm/built-in.a drivers/irqchip/irq-gic-v2m.c:91:23: error: ‘pci_msi_domain_write_msg’ undeclared here (not in a function); did you mean ‘pci_msi_domain_get_msi_rid’? 91 | .irq_write_msi_msg = pci_msi_domain_write_msg, | ^~~~~~~~~~~~~~~~~~~~~~~~ | pci_msi_domain_get_msi_rid make[3]: *** [scripts/Makefile.build:286: drivers/irqchip/irq-gic-v2m.o] Error 1 make[3]: *** Waiting for unfinished jobs.... drivers/irqchip/irq-gic-v3-mbi.c:174:23: error: ‘pci_msi_domain_write_msg’ undeclared here (not in a function); did you mean ‘pci_msi_domain_get_msi_rid’? 174 | .irq_write_msi_msg = pci_msi_domain_write_msg, | ^~~~~~~~~~~~~~~~~~~~~~~~ | pci_msi_domain_get_msi_rid make[3]: *** [scripts/Makefile.build:286: drivers/irqchip/irq-gic-v3-mbi.o] Error 1 make[2]: *** [scripts/Makefile.build:503: drivers/irqchip] Error 2 make[1]: *** [Makefile:1840: drivers] Error 2 make[1]: *** Waiting for unfinished jobs.... CC kernel/irq/msi.o CC arch/arm64/kernel/perf_event.o CC arch/arm64/kernel/hibernate.o kernel/irq/msi.c: In function ‘alloc_msi_entry’: kernel/irq/msi.c:38:22: error: ‘struct msi_desc’ has no member named ‘list’ 38 | INIT_LIST_HEAD(&desc->list); | ^~ kernel/irq/msi.c: In function ‘msi_domain_populate_irqs’: kernel/irq/msi.c:326:2: error: implicit declaration of function ‘for_each_msi_entry’; did you mean ‘free_msi_entry’? [-Werror=implicit-function-declaration] 326 | for_each_msi_entry(desc, dev) { | ^~~~~~~~~~~~~~~~~~ | free_msi_entry kernel/irq/msi.c:326:31: error: expected ‘;’ before ‘{’ token 326 | for_each_msi_entry(desc, dev) { | ^~ | ; kernel/irq/msi.c:324:6: warning: unused variable ‘ret’ [-Wunused-variable] 324 | int ret = 0; | ^~~ kernel/irq/msi.c:322:25: warning: unused variable ‘ops’ [-Wunused-variable] 322 | struct msi_domain_ops *ops = info->ops; | ^~~ kernel/irq/msi.c: In function ‘msi_check_reservation_mode’: kernel/irq/msi.c:394:9: error: implicit declaration of function ‘first_msi_entry’; did you mean ‘free_msi_entry’? [-Werror=implicit-function-declaration] 394 | desc = first_msi_entry(dev); | ^~~~~~~~~~~~~~~ | free_msi_entry kernel/irq/msi.c:394:7: warning: assignment to ‘struct msi_desc *’ from ‘int’ makes pointer from integer without a cast [-Wint-conversion] 394 | desc = first_msi_entry(dev); | ^ kernel/irq/msi.c:395:13: error: ‘struct msi_desc’ has no member named ‘msi_attrib’ 395 | return desc->msi_attrib.is_msix || desc->msi_attrib.maskbit; | ^~ kernel/irq/msi.c:395:41: error: ‘struct msi_desc’ has no member named ‘msi_attrib’ 395 | return desc->msi_attrib.is_msix || desc->msi_attrib.maskbit; | ^~ kernel/irq/msi.c: In function ‘__msi_domain_alloc_irqs’:
请看下面工程师的回复。
CALL scripts/atomic/check-atomics.sh
CC arch/arm64/kernel/asm-offsets.s
CALL scripts/checksyscalls.sh
CHK include/generated/compile.h
CC arch/arm64/mm/dma-mapping.o
CC arch/arm64/kernel/smp.o
CC drivers/irqchip/irq-gic-v2m.o
CC kernel/irq/chip.o
CC drivers/irqchip/irq-gic-v3-mbi.o
AR arch/arm64/mm/built-in.a
drivers/irqchip/irq-gic-v2m.c:91:23: error: ‘pci_msi_domain_write_msg’ undeclared here (not in a function); did you mean ‘pci_msi_domain_get_msi_rid’?
91 | .irq_write_msi_msg = pci_msi_domain_write_msg,
| ^~~~~~~~~~~~~~~~~~~~~~~~
| pci_msi_domain_get_msi_rid
make[3]: *** [scripts/Makefile.build:286: drivers/irqchip/irq-gic-v2m.o] Error 1
make[3]: *** Waiting for unfinished jobs....
The above patch is a simple if check patch.
The build errors should be nowhere related to the above patch. If 9.0 is working correctly can they migrate?
这个补丁切过去,没能识别到ospi,
[ 2.390400] j721e-pcie 2910000.pcie: IB MEM 0x0000000000..0xffffffffffff -> 0x0000000000
[ 2.399362] ti-udma 285c0000.dma-controller: Channels: 22 (tchan: 11, rchan: 11, gp-rflow: 8)
[ 2.409318] ti-udma 31150000.dma-controller: Channels: 66 (tchan: 33, rchan: 33, gp-rflow: 16)
spi-nor spi0.0: octal mode not supported
[ 2.421553] spi-nor: probe of spi0.0 failed with error -22
但是我们这边可以用非dma的方式识别到ospi(这可以说明pinmux没有问题)
是我们confirm过
下载了ti-processor-sdk-rtos-j784s4-evm-09_00_00_02-prebuilt.tar.gz sdcard启动后
[ 2.062862] ti-udma 285c0000.dma-controller: Channels: 22 (tchan: 11, rchan: 11, gp-rflow: 8) [ 2.072763] ti-udma 31150000.dma-controller: Channels: 66 (tchan: 33, rchan: 33, gp-rflow: 16) [ 2.084268] spi-nor spi0.0: unrecognized JEDEC id bytes: ff ef dc 21 00 00 [ 2.092877] spi-nor spi1.0: mt25qu512a (65536 Kbytes) [ 2.097961] 7 fixed-partitions partitions found on MTD device 47050000.spi.0 [ 2.104996] Creating 7 MTD partitions on "47050000.spi.0": [ 2.110468] 0x000000000000-0x000000080000 : "qspi.tiboot3" [ 2.116601] 0x000000080000-0x000000280000 : "qspi.tispl" [ 2.122434] 0x000000280000-0x000000680000 : "qspi.u-boot" [ 2.128355] 0x000000680000-0x0000006c0000 : "qspi.env" [ 2.133990] 0x0000006c0000-0x000000700000 : "qspi.env.backup" [ 2.140243] 0x000000800000-0x000003fc0000 : "qspi.rootfs" [ 2.146150] 0x000003fc0000-0x000004000000 : "qspi.phypattern" [ 2.190765] davinci_mdio 46000f00.mdio: davinci mdio revision 9.7, bus freq 1000000
移植过去后,
这个补丁切过去,没能识别到ospi, [ 2.390400] j721e-pcie 2910000.pcie: IB MEM 0x0000000000..0xffffffffffff -> 0x0000000000 [ 2.399362] ti-udma 285c0000.dma-controller: Channels: 22 (tchan: 11, rchan: 11, gp-rflow: 8) [ 2.409318] ti-udma 31150000.dma-controller: Channels: 66 (tchan: 33, rchan: 33, gp-rflow: 16) spi-nor spi0.0: octal mode not supported [ 2.421553] spi-nor: probe of spi0.0 failed with error -22
debug发现
spi_nor_micron_octal_dtr_enable
不匹配,而提示不支持8位模式