Index: sys/arch/arm/broadcom/bcm283x_platform.c =================================================================== RCS file: /cvsroot/src/sys/arch/arm/broadcom/bcm283x_platform.c,v retrieving revision 1.33 diff -u -p -r1.33 bcm283x_platform.c --- sys/arch/arm/broadcom/bcm283x_platform.c 1 Jan 2020 09:35:50 -0000 1.33 +++ sys/arch/arm/broadcom/bcm283x_platform.c 1 Jan 2020 13:26:12 -0000 @@ -1499,6 +1499,20 @@ static u_int bcm283x_platform_uart_freq(void) { + /* + * We are safe to access stdout phandle - consinit did before + * calling ap_uart_freq + */ + const int phandle = fdtbus_get_stdout_phandle(); + + static const char * const aux_compatible[] = { + "brcm,bcm2835-aux-uart", + NULL + }; + + if (of_match_compatible(phandle, aux_compatible)) + return core_clk * 2; + return uart_clk; } @@ -1517,12 +1531,6 @@ ARM_PLATFORM(bcm2835, "brcm,bcm2835", &b #endif #if defined(SOC_BCM2836) -static u_int -bcm2837_platform_uart_freq(void) -{ - - return core_clk * 2; -} static const struct arm_platform bcm2836_platform = { .ap_devmap = bcm2836_platform_devmap, @@ -1542,7 +1550,7 @@ static const struct arm_platform bcm2837 .ap_device_register = bcm283x_platform_device_register, .ap_reset = bcm2835_system_reset, .ap_delay = gtmr_delay, - .ap_uart_freq = bcm2837_platform_uart_freq, + .ap_uart_freq = bcm283x_platform_uart_freq, .ap_mpstart = arm_fdt_cpu_mpstart, }; @@ -1553,7 +1561,7 @@ static const struct arm_platform bcm2711 .ap_device_register = bcm283x_platform_device_register, .ap_reset = bcm2835_system_reset, .ap_delay = gtmr_delay, - .ap_uart_freq = bcm2837_platform_uart_freq, + .ap_uart_freq = bcm283x_platform_uart_freq, .ap_mpstart = arm_fdt_cpu_mpstart, };