Hi
Regarding rpmsg_char driver. It can't coexist with other RPMSG devices. Its idea is nice. One communication channel is usually not enough, at least one streaming channel + one control channel to pass settings - is more desired.
As I see, rpmsg_char driver usurpers all RPMSG virtual devices, so that other drivers like imx_rpmsg_tty, gpio_imx_rpmsg, etc are unable to see any more alive devices on Cortex-M, all virtual devices turn into rpmsg_char control devices. Either rpmsg_char is enabled in kernel config and is the only way to use RPMSG, or you disable rpmsg_char in kernel config and may use different RPMSG drivers for different purposes.
imx_rpmsg driver supports up to 8 virtual devices (#define in the driver, could be more). So it is basically just the matter of proper device tree and additional rpmsg_lite_remote_init() and rpmsg_ns_announce() calls on Cortex-M to create second or more imx_rpmsg_tty instances.
Regarding DT, vring size is hardcoded in imx_rpmsg driver. (If you wonder where, look for "+ 0x8000" string in imx_rpmsg.c. It would be better to use bigger vrings for more demanding channels, less for others. But at least it's working and working quite well.) One device uses 64k of shared memory, next virtual device uses next 64k of memory and so on. Number of virtual devices is vdev-nums = <N> property of RPMSG in DT. Vrings memory sized N*64k should be reserved, as well specified as reg = <> property of RPMSG in DT. Each rpmsg_lite_remote_init() call on Cortex-M should specify right addr argument matching specific piece of shared vring memory. Say you have 3 devices, vdev-nums=<3>, vring memory starts at 0x80000000, vring memory size - 0x30000. So one call to rpmsg_lite_remote_init should use addr=0x80000000, second call - 0x80010000, 3rd - 0x80020000.
Oh, one more thing, imx_rpmsg_tty driver detects only up to 3 devices. There are 3 different announcement strings listed in driver rpmsg_driver_tty_id_table struct. Only those listed there and announced by Cortex-M will be detected as /dev/ttyRPMSG devices.
Hope this helps
Edward