Hello Simon, On 27.01.22 16:05, Simon Glass wrote: > Hi Felix, > > On Wed, 26 Jan 2022 at 07:02, Felix Brack <f...@ltec.ch> wrote: >> >> Hello Simon, >> >> I am trying to get the current U-Boot master working on the PDU001 >> board. This involves the use of an early debug UART. >> >> With commit 0dba4586 (arm: Init the debug UART) the early debug UART on >> the AM33XX SoC doesn't work anymore. >> >> By looking at the code involved I believe a call to >> setup_clocks_for_console() implemented in clock_am33xx.c before the call >> to debug_uart_init() is missing. This is also what happens prior to >> commit 0dba4586 by a call to early_system_init() which in turn calls >> setup_early_clocks() which then calls setup_clocks_for_console(). >> >> My quick and dirty fix consist of inserting a call in crt0.S to >> setup_clocks_for_console() just before the call to debug_uart_init() >> which was added in commit 0dba4586. I have guarded this call with >> #if/#endif testing for CONFIG_AM33XX. The code sequence in crt0.S now >> looks like this: >> >> #if defined(CONFIG_DEBUG_UART) && CONFIG_IS_ENABLED(SERIAL) >> #if defined(CONFIG_AM33XX) >> bl setup_clocks_for_console >> #endif >> bl debug_uart_init >> #endif >> >> However, from what I understand the crt0.S is for _all_ ARM boards hence >> it's probably a bad idea polluting it with such #if/#endif tests for >> different SoCs. What do you think? >> >> If my quick and dirty fix is not that dirty I would be happy to send a >> patch which would also include the removal of the currently remaining >> call to debug_uart_init() in am33xx/board.c >> >> Please apologize my narrow view of the matter dealing only with AM33XX SoCs. > > Are you able to put that call into board_debug_uart_init() and enable > CONFIG_DEBUG_UART_BOARD_INIT ? > Sure I can but there two drawbacks: 1. this fixes the problem only for my board, others might remain broken 2. the now redundant call to setup_early_clocks() in am33xx/board.c remains (at least it does not seem to hurt ;-))
I will prepare a patch with a modified board_debug_uart_init() for the PDU001 board then. -- Many thanks for your help and kind regards, Felix