[PATCH master 7/7] console: don't fixup baud rate into earlycon string

Ahmad Fatoum a.fatoum at pengutronix.de
Sun May 21 22:22:22 PDT 2023


By design, earlycon depends on boot firmware to setup the console for
Linux to use early before proper driver probe. When we specify the
baudrate though, the earlycon implementation may configure UART-internal
dividers to try to achieve the specified baudrate. The bus clock being
divided is defined statically Linux-architecture-wide using the BASE_BAUD
symbol, which is not suitable across different baudrates and SoCs.

Side step this issue by skipping fix up of the baudrate, so Linux just
uses what was preconfigured. This fixed global.bootm.earlycon=1 for
the ROCK-3A with 1.5 MBaud.

Signed-off-by: Ahmad Fatoum <a.fatoum at pengutronix.de>
---
 common/console.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/common/console.c b/common/console.c
index c09c8e7d44c2..768550eb7df9 100644
--- a/common/console.c
+++ b/common/console.c
@@ -227,8 +227,8 @@ static void console_add_earlycon_param(struct console_device *cdev, unsigned bau
 	if (!cdev->linux_earlycon_name)
 		return;
 
-	str = basprintf("earlycon=%s,0x%lx,%dn8", cdev->linux_earlycon_name,
-			(ulong)cdev->phys_base, baudrate);
+	str = basprintf("earlycon=%s,0x%lx", cdev->linux_earlycon_name,
+			(ulong)cdev->phys_base);
 
 	dev_add_param_fixed(&cdev->class_dev, "linux.bootargs.earlycon", str);
 
-- 
2.39.2




More information about the barebox mailing list