As per the pin assignment documentation - "all the processor features (gpio, adc, spi, i2c…) can theoretically assigned to both cores.", does that mean we can have more UARTs on internal pins? I have a cellular shield that has Adruino Uno R3 pins (3v3 logic), but has re-purposed R3's mosi/miso pins as UART TX/RX (baud rate 115200). Which would be pin 11, 12 (GPIO_147, GPIO_100) on Udoo Neo. So can I assign internal pins 11, 12 to TX/RX on Udoo Neo? Or use software serial instead? Any other options? Please also point me to the documentation that will help me achieve this.
Software serial is not supported on the Neo. If you want to assign functions to other pins, that should be possible but it is not easy and requires in-depth knowledge of the architecture of the Neo. There is no manual other than the device tree section which does not cover your requirements.
I understand that an in-depth knowledge of neo is required, but rearranging the device tree is the correct approach for adding additional UART on internal pins. Is that correct?
There are 6 uarts available on the imx6sx and these can be mux'd to certain pins (not any), refer to reference manual or to imx6sx-pinfunc.h determine which pins can be used. You will need to follow the schematics to determine what uarts configurations are possible on the neo (not all are available) and at the expense of losing other peripherals. If you are expecting to use a uart which currently isn't assigned then you will have to alter the dts files (manually) and/or possible the MQX code to make it work. If wanting to use software serial then you would need to write your own custom code on the M4 side to make this work within the MQX layer. There is no guarantee you will achieve the performance you need with this approach.