14 Dec, 2020

7 commits

  • To fix build issues of:
    error: implicit declaration of function ‘kmalloc’
    error: implicit declaration of function ‘kfree’

    Signed-off-by: Li Yang

    Li Yang
     
  • Cope with upstream API change from commit
    4bdc0d676("remove ioremap_nocache and devm_ioremap_nocache")

    Signed-off-by: Li Yang

    Li Yang
     
  • - 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
     
  • - Clean up the codes, move the tx/rx mailbox initializations into one
    function.
    - Fix the mu msg data exchange bug.
    - Fix to stop autoload pingpong test module.

    Signed-off-by: Richard Zhu

    Richard Zhu
     
  • - extend the rpmsg support for imx8qm/imx7ulp/imx7d/imx6sx

    Signed-off-by: Richard Zhu

    Richard Zhu
     
  • 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