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.

[参考译文] AM5726:阻止其他 Linux 进程使用 DSP CMA 池

Guru**** 1862100 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1400426/am5726-prevent-dsp-cma-pools-from-being-used-by-other-linux-processes

器件型号:AM5726

工具与软件:

您好!

我们在保留 DSP CMA 池时遇到了一些问题、因此其他 A15进程无法访问/分配这些地址。

这是我们的.dts 配置

        dsp1_cma_pool: dsp1_cma@95800000 {
            compatible = "shared-dma-pool";
            reg = <0x0 0x95800000 0x0 0x5000000>;
            reusable;
            status = "okay";
        };

        dsp2_cma_pool: dsp2_cma@9a800000 {
            compatible = "shared-dma-pool";
            reg = <0x0 0x9a800000 0x0 0x5000000>;
            reusable;
            status = "okay";
        };
        
&dsp1 {
    status = "okay";
    memory-region = <&dsp1_cma_pool>;
    mboxes = <&mailbox5 &mbox_dsp1_ipc3x>;
    timers = <&timer5>;
};

&dsp2 {
    status = "okay";
    memory-region = <&dsp2_cma_pool>;
    mboxes = <&mailbox6 &mbox_dsp2_ipc3x>;
    timers = <&timer6>;
};
 

我们尝试使用无映射。 删除可重用和一些其他选项来修改 DTS 文件、所有这些都防止 DSP 绑定。

更糟糕的是,即使"MemFree"在600MB 左右徘徊,内核也可以保留这些块。 如果 DDR 上没有剩余空间并且 A15需要更多空间、这是可以接受的。

当我们将 SDK 从03.01.00.06更新为06.03.00.106时、此问题开始变得更糟

我们已经看到内核随机锁定。 我们怀疑这可能与使用 DSP CMA 池和其他 Linux 进程之间的重叠有关。 我们不确定、因为没有锁定跟踪。

如果有人能帮助我们将2GB DDR 中的160MB 真正预留给 DSP、我们将不胜感激。

CMA 相关定义:

CONFIG_CMA=y
CONFIG_CMA_DEBUG=y
CONFIG_CMA_DEBUGFS=y
CONFIG_CMA_AREAS=7
CONFIG_DMA_CMA=y
CONFIG_CMA_SIZE_MBYTES=24
CONFIG_CMA_SIZE_SEL_MBYTES=y
CONFIG_CMA_ALIGNMENT=8
CONFIG_GENERIC_ARCH_TOPOLOGY=y

如果我们能提供更多信息,请告知我们

谢谢!

Daksh  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    我们处理此主题的专家目前不在办公室。 因此、预计会有响应延迟。 谢谢。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    只是想知道案例上是否有任何更新。

    谢谢

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Daksh:

    由于带宽的原因、我没有机会再次访问它。

    感谢您的耐心等待。

    -若苏厄

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Daksh:

    防止任何其他 Linux 进程访问 DSP 内存分配的唯一方法是使用您尝试过的 no-map 属性。
    执行此操作时、u-boot dts 和内核 dts 中是否都使用了该功能?  
    内存是否在资源表中被指定为 CARVEOUT?

    -若苏厄

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我有另一次机会查看与我们分享的 DTS:

    如果这是设置 no-map 属性的方式、则在错误的节点上使用该属性。

    应将此属性放在上面的节点上的可重用属性的位置。

    此致!

    若苏厄

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我们 在节点 dsp1_cma_pool 和 dsp2_cma_pool 中尝试了无映射选项

    DSP 无法绑定、并且抛出以下错误:

    [    3.514120] omap-rproc 40800000.dsp: device does not have specific CMA pool
    [    3.552827] omap-rproc 41000000.dsp: device does not have specific CMA pool

    CMEM 池中的无映射正常工作。 我们已 在 OCMC RAM 3中将4x 2k 缓冲器定义为 c66x 和 A15之间的共享缓冲器。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    资源表保持不变是否正确?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    有。 资源表是相同的。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Daksh,

    我希望这周我会尝试一下。 它不应作为 CMA 池出现、而应在未启用映射后作为 DMA 池出现。

    内核日志是否报告正在创建的 DMA 池?
    添加了示例  

    [   0.000000]保留内存:在0x0000000095800000处创建了 DMA 内存池、大小为56MiB
    [   0.000000] of:reserved mem:initialized node ipu1-memory@95800000、compatible id shared-dma-pool

    -若苏厄

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    下面是我看到的与这些池相关的启动内核消息:


    [    0.000000] Reserved memory: created DMA memory pool at 0x0000000040500000, size 0 MiB
    [    0.000000] OF: reserved mem: initialized node cmemDSP1config@40500000, compatible id shared-dma-pool
    [    0.000000] Reserved memory: created DMA memory pool at 0x0000000040502000, size 0 MiB
    [    0.000000] OF: reserved mem: initialized node cmemDSP1status@40502000, compatible id shared-dma-pool
    [    0.000000] Reserved memory: created DMA memory pool at 0x0000000040510000, size 0 MiB
    [    0.000000] OF: reserved mem: initialized node cmemDSP2config@40510000, compatible id shared-dma-pool
    [    0.000000] Reserved memory: created DMA memory pool at 0x0000000040512000, size 0 MiB
    [    0.000000] OF: reserved mem: initialized node cmemDSP2status@40512000, compatible id shared-dma-pool
    [    0.000000] Reserved memory: created DMA memory pool at 0x0000000095800000, size 80 MiB
    [    0.000000] OF: reserved mem: initialized node dsp1_cma@95800000, compatible id shared-dma-pool
    [    0.000000] Reserved memory: created DMA memory pool at 0x000000009a800000, size 80 MiB
    [    0.000000] OF: reserved mem: initialized node dsp2_cma@9a800000, compatible id shared-dma-pool
    [    0.000000] cma: dma_contiguous_reserve(limit ffffffff)
    [    0.000000] cma: dma_contiguous_reserve: reserving 24 MiB for global area
    [    0.000000] cma: cma_declare_contiguous(size 0x0000000001800000, base 0x0000000000000000, limit 0x00000000ffffffff alignment 0x0000000000000000)
    [    0.000000] cma: Reserved 24 MiB at 0x00000000fd400000

    之后出现"No specific CMA pool (无特定 CMA 池)"错误。

    谢谢!

    Daksh

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢您发送编修。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Josue、ping 该主题以查看您是否在此处有进一步的更新? 谢谢你

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Abi、Daksh、

    我一直在尝试6.03的基本 IPC 示例、但遇到了一些环境问题。 将继续尝试这样做、并在我成功后立即报告

    -若苏厄

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Josue、您是否能够在您希望获取更新信息时告诉我们? 感谢您的帮助、谢谢

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Abi、Daksh、

    我目前的带宽较低。 本周我们将尝试完成该课程。

    谢谢 Ping!

    -若苏厄

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Josue:  

    只需再次在此处查看您是否有更新? 谢谢你

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Daksh:

    除了附加"无映射"之外、您是否可以确认您对资源表进行了相应的更改?

    -若苏厄

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Josue:

    请告诉我们需要更新哪些内容。

    我们的印象是资源表保持不变

    资源表是否仍然正确?

    谢谢!

    Daksh

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Daksh,

    我认为需要解决以下几个问题:

    1. 从上次查看资源表开始、可能需要进行的另一项更改是确保存储器分配符合 DMA 池的要求、且大小为2的幂。请参阅 应用手册。 例如、在中、DMA 池将分配64 MB、而不是63 MB  
      #define DSP_MEM_HEAP0_SIZE   (SZ_1M * 63)
      您也可以尝试将其拆分;似乎64 MB 会更容易
    2. TYPE_CARVEOUTt 是正确的 RSC

    3. . 自 

      DSP 无法绑定、并且抛出以下错误:

      我认为此错误来自 DSP 内存链接到 DSP 节点的 memory-region 属性。
      作为一个实验、您能否从 DSP 节点中删除此属性并检查是否可以绑定?
      -若苏厄
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    若苏厄

    当我从 DSP 节点中删除 memory-region 属性时、DSP 不能绑定。 (未指定 CMA 池)

    使它64Mb 不会使它有任何不同。 如果以太网流量很大、则 CMA 池将耗尽、并且 DSP 不会绑定。

    我想再次指出最初的问题-其他设备/驱动程序正在获取为 DSP 保留的 CMA 池。

    当 CMA 可用时、Remoteproc 可以轻松地分配 CMA 池。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Daksh,

    对于本线程、我们只对将您的 DSP 区域启用为"无映射"区域感兴趣、因此这些区域在 Linux 中不可用。 为什么其他驱动程序占用了保留的内存、我们无法进行任何注释、因为我们无法按照上一线程所述在我们自己的设备上复制此问题。

    这个问题听起来就像您遇到的问题 。 您是否第一次没有正确设置此打印件、或者您在两种情况下都看到了相同的打印件?

    使其成为64MB 不会改变它。 [报价]

    这是将其放入 DMA 池的要求,这是您在使用"no-map"属性时有效执行的操作。

    响应中链接的内容。

    当 CMA 可用时、Remoteproc 可以轻松地分配 CMA 池。

    这是否包括非映射属性?

    -若苏厄

    [/quote]
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    打开无映射后、DSP 就无法绑定。

    无论我们指定何种 HEAP0大小(63MB 或64MB)

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Daksh:

    明天我再看一遍。

    -若苏厄

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Daksh:  

    以下是我们的6.03 SDK 中使用的 no-map 属性的示例:

    有关延迟连接的信息、请参阅设备树:  

    我看不出您的设备没有根据需要进行绑定的任何原因。 我必须在办公室对我的设备进行更多调查。  

    我今天没有机会达到这个目的,但从高层次来看,似乎所有的右节点都是对齐的。 将在下周继续。

    好的  

    若苏厄

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Daksh:

    我今天运行了一项测试、并对默认 am572x-idk.dtb 进行了此更改:

    diff --git a/arch/arm/boot/dts/am572x-idk.dts b/arch/arm/boot/dts/am572x-idk.dts
    index 31ed8070a6..3cf6a2686f 100644
    --- a/arch/arm/boot/dts/am572x-idk.dts
    +++ b/arch/arm/boot/dts/am572x-idk.dts
    @@ -38,4 +38,9 @@
            reset-delay-us = <2>;   /* PHY datasheet states 1uS min */
     };
     
    +&dsp2_memory_region {
    +       /delete-property/ reusable;
    +       no-map;
    +};
    +
    

    这就是我在引导时看到的:

    [    0.000000] Reserved memory: created CMA memory pool at 0x0000000095800000, size 56 MiB
    [    0.000000] OF: reserved mem: initialized node ipu2-memory@95800000, compatible id shared-dma-pool
    [    0.000000] Reserved memory: created CMA memory pool at 0x0000000099000000, size 64 MiB
    [    0.000000] OF: reserved mem: initialized node dsp1-memory@99000000, compatible id shared-dma-pool
    [    0.000000] Reserved memory: created DMA memory pool at 0x000000009d000000, size 32 MiB
    [    0.000000] OF: reserved mem: initialized node ipu1-memory@9d000000, compatible id shared-dma-pool
    [    0.000000] Reserved memory: created DMA memory pool at 0x000000009f000000, size 8 MiB
    [    0.000000] OF: reserved mem: initialized node dsp2-memory@9f000000, compatible id shared-dma-pool
    [    0.000000] cma: Reserved 24 MiB at 0x00000000fe400000

    root@am57xx-evm:~# dmesg | grep "remoteproc"
    [    6.618037] remoteproc remoteproc0: 58820000.ipu is available
    [    6.744791] remoteproc remoteproc1: 55020000.ipu is available
    [    6.914822] remoteproc remoteproc2: 40800000.dsp is available
    [    6.997098] remoteproc remoteproc3: 41000000.dsp is available
    [    8.118993] remoteproc remoteproc1: powering up 55020000.ipu
    [    8.124768] remoteproc remoteproc1: Booting fw image dra7-ipu2-fw.xem4, size 3747220
    [    8.194454] remoteproc remoteproc1: registered virtio0 (type 7)
    [    8.200402] remoteproc remoteproc1: remote processor 55020000.ipu is now up
    [    8.214503] remoteproc remoteproc0: powering up 58820000.ipu
    [    8.220194] remoteproc remoteproc0: Booting fw image dra7-ipu1-fw.xem4, size 6887428
    [    8.459811] remoteproc remoteproc0: registered virtio1 (type 7)
    [    8.473880] remoteproc remoteproc0: remote processor 58820000.ipu is now up
    [    9.396076] remoteproc remoteproc3: powering up 41000000.dsp
    [    9.401914] remoteproc remoteproc3: Booting fw image dra7-dsp2-fw.xe66, size 4744488
    [    9.441030] remoteproc remoteproc3: registered virtio2 (type 7)
    [    9.456518] remoteproc remoteproc3: remote processor 41000000.dsp is now up
    [   10.935110] remoteproc remoteproc2: powering up 40800000.dsp
    [   10.940968] remoteproc remoteproc2: Booting fw image dra7-dsp1-fw.xe66, size 20482288
    [   11.131537] remoteproc remoteproc2: registered virtio3 (type 7)
    [   11.151808] remoteproc remoteproc2: remote processor 40800000.dsp is now up
    [   12.867870] remoteproc remoteproc4: 4b234000.pru is available
    [   12.911946] remoteproc remoteproc5: 4b238000.pru is available
    [   12.950053] remoteproc remoteproc6: 4b2b4000.pru is available
    [   12.982487] remoteproc remoteproc7: 4b2b8000.pru is available
    [   14.875257] remoteproc remoteproc7: powering up 4b2b8000.pru
    [   14.903611] remoteproc remoteproc7: Booting fw image ti-pruss/am57xx-pru1-prueth-fw.elf, size 7256
    [   14.948660] remoteproc remoteproc7: remote processor 4b2b8000.pru is now up
    [   15.014614] remoteproc remoteproc6: powering up 4b2b4000.pru
    [   15.028583] remoteproc remoteproc6: Booting fw image ti-pruss/am57xx-pru0-prueth-fw.elf, size 7228
    [   15.086864] remoteproc remoteproc6: remote processor 4b2b4000.pru is now up
    

    取消绑定和绑定时:

    root@am57xx-evm:~# cd /sys/bus/platform/drivers/omap-rproc/
    root@am57xx-evm:/sys/bus/platform/drivers/omap-rproc# echo 41000000.dsp > unbind
    [  524.011998] omap-iommu 41501000.mmu: 41501000.mmu: version 3.0
    [  524.017902] omap-iommu 41502000.mmu: 41502000.mmu: version 3.0
    [  524.029526] remoteproc remoteproc3: failed to unmap 1048576/0
    [  524.037464] remoteproc remoteproc3: stopped remote processor 41000000.dsp
    [  524.045430] remoteproc remoteproc3: releasing 41000000.dsp
    root@am57xx-evm:/sys/bus/platform/drivers/omap-rproc# echo 41000000.dsp > bind  
    [  539.781911] omap-rproc 41000000.dsp: ignoring dependency for device, assuming no driver
    [  539.790160] omap-rproc 41000000.dsp: ignoring dependency for device, assuming no driver
    [  539.799932] omap-rproc 41000000.dsp: assigned reserved memory node dsp2-memory@9f000000
    [  539.809117] remoteproc remoteproc3: 41000000.dsp is available
    [  539.821878] remoteproc remoteproc3: powering up 41000000.dsp
    [  539.827648] remoteproc remoteproc3: Booting fw image dra7-dsp2-fw.xe66, size 4744488
    root@am57xx-evm:/sys/bus/platform/drivers/omap-rproc# [  539.837308] omap-iommu 41501000.mmu: 41501000.mmu: version 3.0
    [  539.846114] omap-iommu 41502000.mmu: 41502000.mmu: version 3.0
    [  539.860186] virtio_rpmsg_bus virtio2: rpmsg host is online
    [  539.865823] remoteproc remoteproc3: registered virtio2 (type 7)
    [  539.872923] remoteproc remoteproc3: remote processor 41000000.dsp is now up
    [  539.880452] virtio_rpmsg_bus virtio2: creating channel rpmsg-proto addr 0x3d
    

    资源表:

    root@am57xx-evm:/sys/kernel/debug/remoteproc/remoteproc3# cat resource_table
    Entry 0 is of type vdev
      ID 7
      Notify ID 0
      Device features 0x1
      Guest features 0x1
      Config length 0x0
      Status 0x7
      Number of vrings 2
      Reserved (should be zero) [0][0]
    
      Vring 0
        Device Address 0x9f000000
        Alignment 4096
        Number of buffers 256
        Notify ID 0
        Physical Address 0x0
    
      Vring 1
        Device Address 0x9f004000
        Alignment 4096
        Number of buffers 256
        Notify ID 1
        Physical Address 0x0
    
    Entry 1 is of type carveout
      Device Address 0x9f000000
      Physical Address 0x9f100000
      Length 0x100000 Bytes
      Flags 0x0
      Reserved (should be zero) [0]
      Name DSP_MEM_IPC_DATA
    
    Entry 2 is of type carveout
      Device Address 0x95000000
      Physical Address 0x9f200000
      Length 0x100000 Bytes
      Flags 0x0
      Reserved (should be zero) [0]
      Name DSP_MEM_TEXT
    
    Entry 3 is of type carveout
      Device Address 0x95100000
      Physical Address 0x9f300000
      Length 0x100000 Bytes
      Flags 0x0
      Reserved (should be zero) [0]
      Name DSP_MEM_DATA
    
    Entry 4 is of type carveout
      Device Address 0x95200000
      Physical Address 0x9f400000
      Length 0x200000 Bytes
      Flags 0x0
      Reserved (should be zero) [0]
      Name DSP_MEM_HEAP0
    
    Entry 5 is of type carveout
      Device Address 0x95300000
      Physical Address 0x9f600000
      Length 0x100000 Bytes
      Flags 0x0
      Reserved (should be zero) [0]
      Name DSP_MEM_HEAP1
    
    Entry 6 is version 0 of type trace
      Device Address 0x9f000000
      Length 0x8000 Bytes
      Reserved (should be zero) [0]
      Name trace:dsp
    
    Entry 7 is of type devmem
      Device Address 0xa0000000
      Physical Address 0x9f000000
      Length 0x100000 Bytes
      Flags 0x0
      Reserved (should be zero) [0]
      Name DSP_MEM_IPC_VRING
    
    Entry 8 is of type devmem
      Device Address 0x60000000
      Physical Address 0x60000000
      Length 0x10000000 Bytes
      Flags 0x0
      Reserved (should be zero) [0]
      Name DSP_TILER_MODE_0_1
    
    Entry 9 is of type devmem
      Device Address 0x70000000
      Physical Address 0x70000000
      Length 0x8000000 Bytes
      Flags 0x0
      Reserved (should be zero) [0]
      Name DSP_TILER_MODE_2
    
    Entry 10 is of type devmem
      Device Address 0x78000000
      Physical Address 0x78000000
      Length 0x8000000 Bytes
      Flags 0x0
      Reserved (should be zero) [0]
      Name DSP_TILER_MODE_3
    
    Entry 11 is of type devmem
      Device Address 0x4a000000
      Physical Address 0x4a000000
      Length 0x1000000 Bytes
      Flags 0x0
      Reserved (should be zero) [0]
      Name DSP_PERIPHERAL_L4CFG
    
    Entry 12 is of type devmem
      Device Address 0x48000000
      Physical Address 0x48000000
      Length 0x200000 Bytes
      Flags 0x0
      Reserved (should be zero) [0]
      Name DSP_PERIPHERAL_L4PER1
    
    Entry 13 is of type devmem
      Device Address 0x48400000
      Physical Address 0x48400000
      Length 0x400000 Bytes
      Flags 0x0
      Reserved (should be zero) [0]
      Name DSP_PERIPHERAL_L4PER2
    
    Entry 14 is of type devmem
      Device Address 0x48800000
      Physical Address 0x48800000
      Length 0x800000 Bytes
      Flags 0x0
      Reserved (should be zero) [0]
      Name DSP_PERIPHERAL_L4PER3
    
    Entry 15 is of type devmem
      Device Address 0x54000000
      Physical Address 0x54000000
      Length 0x1000000 Bytes
      Flags 0x0
      Reserved (should be zero) [0]
      Name DSP_PERIPHERAL_L4EMU
    
    Entry 16 is of type devmem
      Device Address 0x4e000000
      Physical Address 0x4e000000
      Length 0x100000 Bytes
      Flags 0x0
      Reserved (should be zero) [0]
      Name DSP_PERIPHERAL_DMM
    

    我最后将介绍 IPC 示例。

    希望这对您有所帮助!

    -若苏厄