Here’s what i did to get 2 extra ports working.
This is not the recommended way, but the documentation for this just blows my head.
Get your base bitbake build done. use either the tdx-reference-minimal-image or multimedia image.
From the build directory run >bitbake virtual/kernel -c devshell . this will bring up a new terminal.
leave it running.
You then need to find the imx6ull-colibri.dtsi
this is located in the build/tmp/work-shared/colibri-imx6ull/kenel-source/arch/arm/boot/dts folder.
find the &uart5 entry and add:
&uart6 {
pinctrl-names = “default”;
pinctrl-0 = <&pinctrl_uart6>;
fsl,dte-mode;
};
&uart8 {
pinctrl-names = “default”;
pinctrl-0 = <&pinctrl_uart8>;
fsl,dte-mode;
};
I also changed the following from the pinctrl_uart1 section. I didn’t need any control lines for any uarts so removed them (commented out) and added the required lines for the uart6 and uart8.
pinctrl_uart1: uart1-grp {
fsl,pins = <
MX6UL_PAD_UART1_TX_DATA__UART1_DTE_RX 0x1b0b1 /* SODIMM 33 */
MX6UL_PAD_UART1_RX_DATA__UART1_DTE_TX 0x1b0b1 /* SODIMM 35 */
//MX6UL_PAD_UART1_RTS_B__UART1_DTE_CTS 0x1b0b1 /* SODIMM 27 */
//MX6UL_PAD_UART1_CTS_B__UART1_DTE_RTS 0x1b0b1 /* SODIMM 25 */
>;
};
//pinctrl_uart1_ctrl1: uart1-ctrl1-grp { /* Additional DTR, DCD */
// fsl,pins = <
// MX6UL_PAD_JTAG_TDI__GPIO1_IO13 0x70a0 /* SODIMM 31 */
// MX6UL_PAD_LCD_DATA18__GPIO3_IO23 0x10b0 /* SODIMM 29 */
// MX6UL_PAD_JTAG_TDO__GPIO1_IO12 0x90b1 /* SODIMM 23 */
// MX6UL_PAD_LCD_DATA19__GPIO3_IO24 0x10b0 /* SODIMM 37 */
// >;
//};
pinctrl_uart2: uart2-grp {
fsl,pins = <
MX6UL_PAD_UART2_TX_DATA__UART2_DTE_RX 0x1b0b1 /* SODIMM 36 */
MX6UL_PAD_UART2_RX_DATA__UART2_DTE_TX 0x1b0b1 /* SODIMM 38 */
//MX6UL_PAD_UART2_CTS_B__UART2_DTE_RTS 0x1b0b1 /* SODIMM 32 */
//MX6UL_PAD_UART2_RTS_B__UART2_DTE_CTS 0x1b0b1 /* SODIMM 34 */
>;
};
pinctrl_uart5: uart5-grp {
fsl,pins = <
MX6UL_PAD_GPIO1_IO04__UART5_DTE_RX 0x1b0b1 /* SODIMM 19 */
MX6UL_PAD_GPIO1_IO05__UART5_DTE_TX 0x1b0b1 /* SODIMM 21 */
>;
};
pinctrl_uart6: uart6-grp {
fsl,pins = <
MX6UL_PAD_CSI_MCLK__UART6_DTE_RX 0x1b0b1 /* SODIMM 75 */
MX6UL_PAD_CSI_PIXCLK__UART6_DTE_TX 0x1b0b1 /* SODIMM 96 */
>;
};
pinctrl_uart8: uart8-grp {
fsl,pins = <
MX6UL_PAD_LCD_DATA20__UART8_DTE_RX 0x1b0b1 /* SODIMM 88 */
MX6UL_PAD_LCD_DATA21__UART8_DTE_TX 0x1b0b1 /* SODIMM 86 */
>;
};
Next find the imx6ull-colibri-eval-v3.dtsi
find the &ecspi1 section and disable it! This is because it uses the same line as one of the additional uarts. I modded as below:
&ecspi1 {
status = “disabled”;
mcp2515: can@0 {
compatible = "microchip,mcp2515";
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_can_int>;
reg = <0>;
clocks = <&clk16m>;
interrupt-parent = <&gpio2>;
interrupts = <4 IRQ_TYPE_EDGE_FALLING>;
spi-max-frequency = <10000000>;
vdd-supply = <®_3v3>;
xceiver-supply = <®_5v0>;
status = "disabled";
};
/* To keep the CAN controller enabled by default,
* disable conflicting spidev.
*/
spidev0: spidev@0 {
status = "disabled";
};
};
Finally enable the 2 uarts below the &uart5 section
&uart6 {
status = “okay”;
};
&uart8 {
status = “okay”;
};
Save those 2 files.
From the terminal opened by the devshell command run:
make dtbs
then you can exit the terminal.
then run
bitbake virtual/kernel -f -c compile
then rebuild your image
bitbake your-image.
This worked for me. Hope it helps.