ST意法半导体
直播中

张玉珍

7年用户 1008经验值
私信 关注
[问答]

增加(1024)RPMSG缓冲区大小将在邮箱vdev声明时失败怎么解决?

最近几天我试图将 STM32MP1 上的 RPMSG 缓冲区大小增加到 1024。A7 端似乎工作正常,但 M4 端似乎难以处理设备树上的 vdev 声明。
A7 端:virtio_rmpsg_buss.c
  • #define MAX_RPMSG_NUM_BUFS        (1024)
  • #define MAX_RPMSG_BUF_SIZE        (1024)
  • #define RPMSG_RESERVED_ADDRESSES        (2048)
  • #define RPMSG_NS_ADDR                        (53)
stm32mp15xx-dkx.dtsi:
  • vdev0buffer: vdev0buffer@10044000 {
  • compatible = "shared-dma-pool";
  • reg = <0x10044000 0x10000>;
  • no-map;
  • };
在 M4 端:rpmsg_virtio.h
  • * Configurable parameters */
  • #ifndef RPMSG_BUFFER_SIZE
  • #define RPMSG_BUFFER_SIZE        (1024)
  • #endif
用户空间可以看到消息并将消息发送到 RPMSG 通道,但是在调试 M4 部分时,我得到的似乎是内存分配错误
  • (gdb) 0x1000b47e in MAILBOX_Poll (vdev=0x10020f70) at ../OPENAMP/mbox_ipcc.c:105
任何想法或建议将不胜感激。









回帖(1)

丁欣如

2023-1-4 12:11:32
初步分析看起来像是 M4 固件映射问题。
2点:
1)关于https://wiki.st.com/stm32mpu/wiki/STM32MP15_RAM_mapping#Zoom_in_the_Cortex-A7-2FCortex-M4_shared_memory
    您已经扩展了 MCUSRAM4 中的 rpmsg 缓冲区
    除非您确定不将 MCUSRAM4 用于 MDMA 传输,否则您必须限制 vdev0buffer 的大小或更改此处描述的内存区域的基地址以在 SRAM2 + SRAM3 中重新定义它们。
2) 是否在 M4 链接描述文件中更新了 m_ipc_shm 内存区域的大小?
  
m_ipc_shm 应与 vdev0vring0 + vdev0vring1 + vdev0buffer(Linux DT 内存区域)基地址和大小对齐。
如果你的 DT 中有这个:


  •                 vdev0vring0: vdev0vring0@10040000 {
  •                         compatible = "shared-dma-pool";
  •                         reg = <0x10040000 0x2000>;
  •                         no-map;
  •                 };

  •                 vdev0vring1: vdev0vring1@10042000 {
  •                         compatible = "shared-dma-pool";
  •                         reg = <0x10042000 0x2000>;
  •                         no-map;
  •                 };

  •                 vdev0buffer: vdev0buffer@10044000 {
  •                         compatible = "shared-dma-pool";
  •                         reg = <0x10044000 0x10000>;
  •                         no-map;
  •                 }

你的 M4 固件链接描述文件中应该有:


  • m_ipc_shm  (RW) : ORIGIN = 0x10040000, LENGTH = 0x00014000
举报

更多回帖

发帖
×
20
完善资料,
赚取积分