打印
[应用相关]

更改默认的tf-a和u-boot串行linux控制台。

[复制链接]
732|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
你好,我的主要串行控制台应该是USART2,而不是UART4。我对内核dts的修改如下:

并且它正确地配置了内核控制台。
如果我在tf-a和u-bootdts中尝试相同的修改,在引导时,我看到了从uart4开始的日志,但此时它阻塞了

我也应该修改一些引导环境吗?

使用特权

评论回复
沙发
两只袜子|  楼主 | 2021-11-17 11:24 | 只看该作者
对于uboot项目,我在防御配置中添加了CONFIG_DEBUG_UART_BASE=0x4000E000(usart2基本地址)
chosen {
      stdout-path = "serial0:115200n8";
   };
   aliases {
      ethernet0 = &ethernet0;
      mmc0 = &sdmmc1;
      mmc1 = &sdmmc2;
      serial0 = &usart2;
      serial1 = &uart4;
   };
&pinctrl {
   usart2_pins_d: usart2-2 {
      pins1 {
         pinmux = <STM32_PINMUX('D', 5, AF7)>; /* USART2_TX */
         bias-disable;
         drive-push-pull;
         slew-rate = <3>;
      };
      pins2 {
         pinmux = <STM32_PINMUX('D', 6, AF7)>; /* USART2_RX */
         bias-disable;
         bias-pull-up;
      };
   };
   usart2_idle_pins_d: usart2-idle-2 {
      pins1 {
         pinmux = <STM32_PINMUX('D', 5, ANALOG)>; /* USART2_TX */
      };
      pins2 {
         pinmux = <STM32_PINMUX('D', 6, AF7)>; /* USART2_RX */
         bias-disable;
      };
   };
   usart2_sleep_pins_d: usart2-sleep-2 {
      pins {
         pinmux = <STM32_PINMUX('D', 5, ANALOG)>, /* USART2_TX */
            <STM32_PINMUX('D', 6, ANALOG)>; /* USART2_RX */
      };
   };
};
&usart2 {
   pinctrl-names = "default", "sleep", "idle";
   pinctrl-0 = <&usart2_pins_d>;
   pinctrl-1 = <&usart2_sleep_pins_d>;
   pinctrl-2 = <&usart2_idle_pins_d>;
   status = "okay";
};
in the .dts.
我还在tf-a项目的dts中添加了这部分。

然后我生成了fip文件文件。当闪烁时,我看到usart2上的立程序员日志。

使用特权

评论回复
板凳
jcky001| | 2021-11-17 11:25 | 只看该作者
您不仅需要将串行0从uart4更改为usart2。您还必须确保usart2已在DT(设备树)中定义,并且已启用:
        status = "okay";
而且这些pins 也被配置好了。

请在tf-a和u-boot数据库中验证情况是否如此

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2051

主题

7441

帖子

10

粉丝