mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-12-13 23:02:59 +00:00
42 lines
1.8 KiB
Text
42 lines
1.8 KiB
Text
|
Fetch serial baudrate from DT
|
||
|
-----------------------------
|
||
|
|
||
|
To support fetching of baudrate from DT, the following is done:-
|
||
|
|
||
|
The baudrate configured in Kconfig symbol CONFIG_BAUDRATE is taken by default by serial.
|
||
|
If change of baudrate is required then the Kconfig symbol CONFIG_BAUDRATE needs to
|
||
|
changed and U-Boot recompilation is required or the U-Boot environment needs to be updated.
|
||
|
|
||
|
To avoid this, add support to fetch the baudrate directly from the device tree file and
|
||
|
update the environment.
|
||
|
|
||
|
The default environment stores the default baudrate value. When default baudrate and dtb
|
||
|
baudrate are not same glitches are seen on the serial.
|
||
|
So, the environment also needs to be updated with the dtb baudrate to avoid the glitches on
|
||
|
the serial which is enabled by OF_SERIAL_BAUD.
|
||
|
|
||
|
The Kconfig SPL_ENV_SUPPORT needs to be enabled to allow patching in SPL.
|
||
|
|
||
|
The Kconfig DEFAULT_ENV_IS_RW which is enabled by OF_SERIAL_BAUD with making the environment
|
||
|
writable.
|
||
|
|
||
|
The ofnode_read_baud() function parses and fetches the baudrate value from the DT. This value
|
||
|
is validated and updated to baudrate during serial init. Padding is added at the end of the
|
||
|
default environment and the dt baudrate is updated with the latest value.
|
||
|
|
||
|
Example:-
|
||
|
|
||
|
The serial port options are of the form "bbbbpnf", where "bbbb" is the baud rate, "p" is parity ("n", "o", or "e"),
|
||
|
"n" is number of bits, and "f" is flow control ("r" for RTS or omit it). Default is "115200n8".
|
||
|
|
||
|
chosen {
|
||
|
bootargs = "earlycon console=ttyPS0,115200 clk_ignore_unused root=/dev/ram0 rw init_fatal_sh=1";
|
||
|
stdout-path = "serial0:115200n8";
|
||
|
};
|
||
|
|
||
|
From the chosen node, stdout-path property is obtained as string.
|
||
|
|
||
|
stdout-path = "serial0:115200n8";
|
||
|
|
||
|
The string is parsed to get the baudrate 115200. This string is converted to integer and updated to the environment.
|