30 Oct, 2023

5 commits

  • Currently, after the rpmsg link up it will use mailbox
    channel in blocking mode to send the notifications. So
    it will be stuck in the notification when the remote side
    unable to respond for some reason, such as crashed.

    To avoid interlock, this patch changes the notifying to
    timeout mode, and treats the virtqueue as broken when
    the remote side doesn't respond within 1 second.

    Signed-off-by: Hou Zhiqiang

    Hou Zhiqiang
     
  • Add the rpmsg tty demo for iMX AMP platforms.
    Use the "echo > /dev/*RPMSG*", after insmod the module.

    Signed-off-by: Richard Zhu
    Acked-by: Fugang Duan
    Signed-off-by: Li Yang
    Signed-off-by: Sherry Sun
    [ Aisheng: cope with tty_operations::write() change ]
    Signed-off-by: Dong Aisheng

    Richard Zhu
     
  • - Enable the tx_block mechanism to make sure that every transmission is
    complete when mailbox is used.
    - Refine the data exchange in the rpmsg_rx_callback and some info
    messages and codes comments.

    Signed-off-by: Robin Gong
    Signed-off-by: Richard Zhu

    Richard Zhu
     
  • Add partition reset notify if m4 reset so that rpmsg channel
    could re-create again while m4 come back.

    Signed-off-by: Robin Gong

    Robin Gong
     
  • Based on "virtio_rpmsg_bus" driver, This patch-set is used to set up
    the communication mechanism between A core and M core on i.MX AMP SOCs.

    Add the initial imx rpmsg support glue driver and one pingpong demo,
    demonstrated the data transactions between A core and remote M core.
    Distributed framework is used in IMX RPMSG implementation, refer to the
    following requirements:
    - The CAN functions contained in M core and RTOS should be ready and
    complete functional in 50ms after AMP system is turned on.
    - Partition reset. System wouldn't be stalled by the exceptions (e.x
    the reset triggered by the system hang) occurred at the other side.
    And the RPMSG mechanism should be recovered automactilly after the
    partition reset is completed.
    In this scenario, the M core and RTOS would be kicked off by bootloader
    firstly, then A core and Linux would be loaded later. Both M core/RTOS
    and A core/Linux are running independly.

    One physical memory region used to store the vring is mandatory required
    to pre-reserved and well-knowned by both A core and M core

    Signed-off-by: Richard Zhu

    Richard Zhu