Other Parts Discussed in Thread: AM5728, DRA752, TPD12S015, TPIC2810
主题中讨论的其他器件: TPIC2810、 DRA752、 TPD12S015、 PMP
工具/软件:Linux
你(们)好。
我正在使用 Linux 处理器 SDK 05.02.00.10和 RTOS 处理器 SDK 4.03.00.05。
我在 AM5728评估板上成功地与 jailhouse Hypervisor 合作。
现在、我正在尝试在基于 AM5728的定制板上启动 jailhouse。
我可以启动 SYS/BIOS 占用程序并对其进行调试。 在初始化阶段、我从内核获得了著名的转储:
[147.605931]------ [在此处剪切]-----
[147.610600]警告:CPU:0 PID:28、位于/home/stx-ti/Projects/tisdk/build/arago-tmp-external-linaro-toolchain/work-shared/am57xx-evm/kernel-source/drivers/bus/omap_l3_noc.c:147 L3_INTERRUPT_Handler+0x254/0x370
[147.629222] 44000000.OCP:L3自定义错误:主 MPU 目标 GPMC (读取):在功能访问期间以用户模式访问数据
[147.640328]链接到以下模块: Jailhouse (O) vnetdevice (O) SHA512_generic SHA512_arm SHA256_generic SHA1_arm MD5 CBC xhci_plat_hcd xhci_hcd usbcore uDC_core USB_common ti_pruus_rbauss prues_mas pac_prti_mc_tcp_ip_pr_mas pic v_mcult_ip_ip_ip_mas p_ip_mas p_m_ip_m_ipot_pr_ip_ip_pr_mas p_ip_m_m_m_ipot_pr_ip_pr_ip_pr_mas virtio_rpmsg_bus rpmsg_core remoteproc sch_fq_codel cryptodev (O)
[147.696164] CPU:0 PID:28 Comm:IRQ/23-L3-APP-I 已污染:G O 4.14.79-rt47-gd9200ca684 #9
[147.696167]硬件名称:通用 DRA74X (平展器件树)
[147.696169]回溯:
[147.696187][ ](dump_backtrace)从[ ](show_stack+0x18/0x1c)
[147.696194] r7:00000009 r6:60030013 r5:00000000 r4:c0d575a0
[147.696204][ ](show_stack)从[ ](dump_stack+0x90/0xa4)
[147.696215] ](dump_stack)从[ ](_warn+0xec/0x104)
[147.696220] r7:00000009 r6:c0ad5790 r5:00000000 r4:d4a31e40
[147.696229][ ](__warn)从[ ](WARN_RASPH_FMt+0x40/0x48)
[147.69623] R9:0000000b R8:d4a14b10 r7:c0ad55fc R6:00000002 R5:c0ad56bc R4:c0ad5760
[147.696243][ ](warn_slowpath_fmt)、来自[ ](L3_INTERRUPT_Handler+0x254/0x370)
[147.696246] r3:d4a14980 r2:c0ad5760
[147.696249] R4:80080003
[147.696258][ ](L3_interrupt_handler)、来自[ ](IRQ_Forced_thread_fn+0x28/0x7c)
[147.696263] R10:c0181db0 R9:d4a14e80 R8:d49df100 r7:00000001 R6:00000000 R5:d49df100
[147.696265] R4:d4a14e80
[147.696272][ ](IRQ_Forced_thread_fn)、来自[ ](IRQ_THREAD+0x130/0x208)
[147.696276] r7:00000001 R6:00000000 R5:ffe000 R4:d4a14ea4
[147.696284][ ](IRQ_THread)、来自[ ](kthread+0x164/0x16c)
[147.696289] r10:d4871b20 r9:c0182000 r8:d4a14e80 r7:d4a30000 r6:00000000 r5:d4a14ec0
[147.696291] R4:d49e3080
[147.696299][ ](kthread)、来自[ ](RET_FANK_F叉+0x14/0x24)
[147.696303] R10:00000000 R9:00000000 R8:00000000 r7:00000000 R6:00000000 R5:c0149204
[147.696306] R4:d4a14ec0
[147.696308]-[结束跟踪000000000002 ]---
具体来说,当 SPI_OPEN()向下一直到 McSPIReset()时会生成此转储,该转储尝试读取和写入 McSPI4寄存器 MCSPI_SYSSSTATUS (0x480BA114)。
此外、当产生错误时、GPMC 相关寄存器设置为:
GPMC_ERR_ADDRESS (0x50000044)= 0x0480B110
GPMC_ERR_TYPE (0x50000048)= 0x00000211
之前我已确保在 Linux 内核 DTS 中禁用所有 SPI、在内核配置中禁用 SPI、因此我正在尝试找出导致此错误的原因。
通过 AM572x_Sitara_Processor_Technical_Reference_Manual、L3_main Interconnect (引人入胜的内容)、我发现存在可配置的防火墙、和
违反保护规定时、会向 Cortex-A15 INTC 产生中断。 (14.2.3.7.3.4 L3_MAIN 防火墙错误记录)
我怀疑需要配置防火墙以允许用户访问、但我不确定在哪里以及如何访问。
我也不明白为什么尝试读取 SPI 相关寄存器会导致 GPMC 中的错误。
为了尝试防止中断、请设置 GPMC_FW 寄存器
GPMC_FW_START_REGION I_1 (0x4A210090)= 0x480BA000
GPMC_FW_END_REGION I_1 (0x4A210094)= 0x480BB000
没有改变行为。
您能否解释 SPI 与 GPMC 相关的原因?更重要的是、如何配置防火墙以允许用户访问 SPI 寄存器?
非常感谢、
NIR。
