cancel
Showing results for 
Search instead for 
Did you mean: 

"stm32-usart 4000f000.serial: failed to get alias id, errno -19" and additional likely related error output to std-out

KWatt.2
Associate

I've noticed when booting one of our board designs with a STM32MP157C in openstlinux-5.4-dunfell-mp1-20-11-12 with Weston Wayland under the STM32MP157-Ecosystem-v2.1.0 that multiple times when the kernel is loading I'll see the following messages output via std-out..

[ 1.661544] 4000e000.serial: ttySTM0 at MMIO 0x4000e000 (irq = 45, base_baud = 6250000) is a stm32-usart

[ 2.824397] printk: console [ttySTM0] enabled

[ 2.830231] stm32-usart 4000f000.serial: failed to get alias id, errno -19

..additionally, later on in the after the Weston Wayland Compositor initializes, I begin getting the following output...

[ OK ] Started Weston Wayland Compositor (on tty7).

[ 21.050754] dma dma1chan0: Request not allowe[ 21.056455] stm32-usart 4000e000.serial: rx dma pre[ 21.122445] dma dma1chan0: Request not allowe[ 21.126782] stm32-usart 4000e000.serial: rx dma pre[ 31.177662] dma dma1chan0: Request not allowe[ 31.181949] stm32-usart 4000e000.serial: rx dma pre[ 31.213137] dma dma1chan0: Request not allowe[ 31.217425] stm32-usart 4000e000.serial: rx dma pre[ 31.301740] dma dma1chan0: Request not allowe[ 31.307117] stm32-usart 4000e000.serial: rx dma pre[ 31.343051] dma dma1chan0: Request not allowe[ 31.347372] stm32-usart 4000e000.serial: rx dma pre[ 31.423030] dma dma1chan0: Request not allowe[ 31.427532] stm32-usart 4000e000.serial: rx dma pre[ 33.762935] reg11: [ 33.765128] reg18: [ 33.767238] usb33: supp[ 33.769696] r[ 33.771196] r[ 33.777466] [ 41.483019] dma dma1chan0: Request not allowe[ 41.487304] stm32-usart 4000e000.serial: rx dma pre[ 41.521778] dma dma1chan0: Request not allowe[ 41.528703] stm32-usart 4000e000.serial: rx dma pre[ 41.608479] dma dma1chan0: Request not allowe

I'm having trouble interpreting the meaning of this error -19, but I'm assuming this is likely to do with something going wrong in my device tree? As seen below, I'm aliasing serial0 to usart2, which I'm presuming is presented a sttySTM0 to the kernel.

/* USER CODE BEGIN root */

aliases {

serial0 = &usart2;

serial1 = &usart1;

};

chosen {

stdout-path = "serial0:115200n8";

};

..I appear to have everything I'm aware of present to define usart2 though, see below..

usart2_pins_mx: usart2_mx-0 {

pins1 {

pinmux = <STM32_PINMUX('D', 5, AF7)>; /* USART2_TX */

bias-disable;

drive-push-pull;

slew-rate = <0>;

};

pins2 {

pinmux = <STM32_PINMUX('D', 6, AF7)>; /* USART2_RX */

bias-disable;

};

};

usart2_sleep_pins_mx: usart2_sleep_mx-0 {

pins {

pinmux = <STM32_PINMUX('D', 5, ANALOG)>, /* USART2_TX */

<STM32_PINMUX('D', 6, ANALOG)>; /* USART2_RX */

};

};

&usart2{

pinctrl-names = "default", "sleep";

pinctrl-0 = <&usart2_pins_mx>;

pinctrl-1 = <&usart2_sleep_pins_mx>;

status = "okay";

/* USER CODE BEGIN usart2 */

/* USER CODE END usart2 */

};

..so I'm having difficulty understanding why the alias is not able to be found.. I lack experience debugging a situation reported by the kernel like this, so any possible help that can be provided would be greatly appreciated.

1 REPLY 1
OlivierK
ST Employee

Hello KWatt.2 (Community Member)

[ 2.830231] stm32-usart 4000f000.serial: failed to get alias id, errno -19

you use USART2 but 0x4000f000 is linked to USART3 an alias is defined elsewhere in an other DT ?

also you defined:

serial0 = &usart2;

serial1 = &usart1;

Do you use &usart1?

Either remove USART3 if no use.

&uart3 {

              status = "disabled";

};

Do you use usart3 instead usart1?

serial1 = &usart3;

Regards,

Olivier