我正在使用 u-boot 开发嵌入式 linux 系统。U-boot 使用 console=bootarg 设置 ttyS0 串口的波特率,但我也想设置 ttyS[1-3] 的默认波特率(设置为 9600 以外的值)。
在这个系统中,U-boot 将设备树 (dts/dtb) 传递给内核,但在那里设置波特率似乎不起作用。
需要注意的是,该系统类似于峡谷地板 (ppc460ex)。
u-boot、内核或设备树中是否有更改串口的默认波特率?
我正在使用 u-boot 开发嵌入式 linux 系统。U-boot 使用 console=bootarg 设置 ttyS0 串口的波特率,但我也想设置 ttyS[1-3] 的默认波特率(设置为 9600 以外的值)。
在这个系统中,U-boot 将设备树 (dts/dtb) 传递给内核,但在那里设置波特率似乎不起作用。
需要注意的是,该系统类似于峡谷地板 (ppc460ex)。
u-boot、内核或设备树中是否有更改串口的默认波特率?
有时,以下文件中的值会覆盖 DTS 文件中给出的信息。检查 u-boot 源代码中的以下文件
boot/include/configs/[board name].h -- used for specifying environment and CPU peripheral default value
boot/common/[board name]_cmd_common.h
在原文中已经提到设备设置似乎被内核忽略了。
在这个系统中,U-boot 将设备树 (dts/dtb) 传递给内核,但在那里设置波特率似乎不起作用。
如果您在设备树中硬编码新的波特率,它可能会在引导过程中被覆盖。设备树在后续引导过程中实际传递给内核之前由 u-boot 更新。查看 u-boot 源代码中的 ft_board_setup()。我自己一直在使用 u-boot 的 PowerPC 44X 分支,并且 fdt 代码更新了串行设备的“时钟频率”而不是“当前速度”属性。您正在处理的分支可能有不同的代码库。