пн, 17 окт. 2022 г. в 12:32, Paul Cercueil <paul@xxxxxxxxxxxxxxx>: > > I checked that approach: serial seems to be working as expected, > > but not all the time: there's a time period when the CGU driver > > started but serial console driver is still early one. > > In my case UART produces garbage at that period since CGU > > needs to enable clock divider back: ext is 24MHz but 12MHz > > required for audio codec and USB to function properly. > > What I'd do, is just force-enable it to 12 MHz in ingenic_fixup_fdt(), > since the programming manual basically says that 24 MHz does not work > properly. > > Then in the earlycon setup code hardcode the /2 divider with a big fat > comment about why it's there. Agree, the vendor's kernel does that as well. Also I found that: 1. Many other drivers compile the early console only when CONFIG_SERIAL_8250_CONSOLE is set. 2. All the early ingenic_ functions can be labeled as __init. Shall I fix that while I'm already here?