Hi. In my pet project I want to make use of two consecutive eCAP modules, and uart0 pins looks the most pain-less option (I2C0 is bonded to PMIC, MMC pin is needed for SD-card which and SPI is needed for another cap). So hardware part is clear for me, I’ve already unmounted U15 and wired the pins straight to J1.
The question is about how to convince uboot and getty to use UART1 instead.
My previous attempt consists of these two changes:
- u-boot is taken from Making sure you're not a bot! , branch
v2022.04-bbb.io-am335x-am57xx.
In menuconfig I setCONFIG_CONS_INDEX=2:
CONFIG_SERIAL=y
CONFIG_BAUDRATE=115200
CONFIG_REQUIRE_SERIAL_CONSOLE=y
CONFIG_SPECIFY_CONSOLE_INDEX=y
CONFIG_SERIAL_PRESENT=y
CONFIG_SPL_SERIAL_PRESENT=y
CONFIG_CONS_INDEX=2
CONFIG_DM_SERIAL=y
Built it, dd`ed to the sd-card, it boots kernel fine but I don’t see anything on my uart-to-usb converter attached to P9.24.
- In my DTS overlay I did this fix:
&{/chosen} {
stdout-path = "serial1:115200n8";
overlays {
ECAP-UIO-00A0.kernel = __TIMESTAMP__;
};
}
&ocp {
P9_24_pinmux { status = "disabled"; }; /* uart1_txd */
P9_26_pinmux { status = "disabled"; }; /* uart1_rxd */
};
&am33xx_pinmux {
bb_uart1_pins: pinmux_bb_uart1_pins {
pinctrl-single,pins = <
AM33XX_PADCONF(AM335X_PIN_UART1_TXD, PIN_OUTPUT, MUX_MODE0) /* P9_24 uart1_txd.uart1_txd */
AM33XX_PADCONF(AM335X_PIN_UART1_RXD, PIN_INPUT, MUX_MODE0) /* P9_26 uart1_rxd.uart1_rxd */
>;
};
/* ECAP1 input on UART0_TXD pin U15.5 */
ecap1_pins: ecap1_pins {
pinctrl-single,pins = <
AM33XX_PADCONF(AM335X_PIN_UART0_TXD, PIN_INPUT, MUX_MODE4) /* ecap1_in_pwm1_out */
>;
};
/* ECAP2 input on UART0_RXD pin U15.6 */
ecap2_pins: ecap2_pins {
pinctrl-single,pins = <
AM33XX_PADCONF(AM335X_PIN_UART0_RXD, PIN_INPUT, MUX_MODE4) /* ecap2_in_pwm2_out */
>;
};
}
&ecap1 {
status = "okay";
compatible = "generic-uio";
linux,uio-name = "ecap1";
pinctrl-names = "default";
pinctrl-0 = <&ecap1_pins>;
interrupt-parent = <&intc>;
interrupts = <62>;
interrupt-names = "ecap1";
};
&ecap2 {
status = "okay";
compatible = "generic-uio";
linux,uio-name = "ecap2";
pinctrl-names = "default";
pinctrl-0 = <&ecap2_pins>;
interrupt-parent = <&intc>;
interrupts = <63>;
interrupt-names = "ecap2";
};
&uart0 {
status = "disabled";
};
&uart1 {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&bb_uart1_pins>;
};
The problem is the following: the pins of UART0 are still tied up (bad), but there is no movement on them (good). pins on UART1 are tied up too (good), but there is no movement on them (bad) until the very end, when login form appears. I want to see u-boot messages as well as booting process log on UART1 and nothing on UART0!
ECAP-UIO-00A0.dtso (3.2 KB)
.config (46.0 KB)