2011-11-16 71 views
8

我正在使用u-boot開發嵌入式linux系統。 U-boot用console = bootarg設置ttyS0串口的波特率,但我也想設置ttyS [1-3]的默認波特率(不是9600)。默認波特率-linux/u-boot

在本系統中的U-boot經過一臺設備樹(DTS/DTB)內核,但設置波特率似乎沒有奏效。

注意到,該系統是類似於峽谷板(ppc460ex)。

反正在的u-boot,內核或設備樹更改串行端口的默認波特率?

+0

這是一個編程問題? – Gabe

+0

我這麼認爲......改變默認的波特率是內核模式或對設備樹源的改變。我只是不知道它需要做什麼。 – dan6470

+0

這是使用你的ttys來設置相應串口的波特率的「應用程序」。你想用ttyS [1-3]做什麼?它使用它們的程序是什麼? – Longfield

回答

0

在原文中,已經提到,設備設置似乎是由內核被忽略。

在這個系統中,U-boot將設備樹(dts/dtb)傳遞給內核,但是在那裏設置波特率似乎不起作用。

如果您在設備樹中對新波特率進行硬編碼,則可能在引導過程中它會被覆蓋。在後續引導過程中實際傳遞給內核之前,設備樹會被u-boot更新。查看u-boot源代碼中的ft_board_setup()。我自己一直在使用u-boot的PowerPC 44X分支,並且fdt代碼更新了「時鐘頻率」,但更新了串行設備的「當前速度」屬性。您正在處理的分支可能有不同的代碼庫。

1

有時下面的文件中的值會覆蓋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