我正在开发一个使用u-boot的嵌入式linux系统。 U-boot通过console= bootarg设置ttyS0串口的波特率,但我也想将ttyS[1-3]的默认波特率设置为其他值(而不是9600)。
在这个系统中,U-boot向内核传递了设备树(dts/dtb),但在那里设置波特率似乎不起作用。
需要注意的是,此系统类似于canyonlands板(ppc460ex)。
在u-boot、内核或设备树中是否有任何方法可以更改串口的默认波特率?
我正在开发一个使用u-boot的嵌入式linux系统。 U-boot通过console= bootarg设置ttyS0串口的波特率,但我也想将ttyS[1-3]的默认波特率设置为其他值(而不是9600)。
在这个系统中,U-boot向内核传递了设备树(dts/dtb),但在那里设置波特率似乎不起作用。
需要注意的是,此系统类似于canyonlands板(ppc460ex)。
在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()。我自己一直在使用PowerPC 44X分支的u-boot,并且fdt代码更新了串行设备的“clock-frequency”而不是“current-speed”属性。您正在使用的分支可能具有不同的代码库。