Hi
I can confirm the same findings using the configuration that I prepared for the uTasker project.
Your printf() is probably using a blocking method if it hangs since the LPUART just does nothing and doesn't cause a failure in accessing it, etc.
Therefore PLL3_SW/6 is fine and OSC_CLK is fine but when trying to use PER_CLK the LPUARTs don't respond.
What I can say is that if the clock path is set back from the PER_CLK setting to one of the two that operate the LPUART starts working again - with the PER_CLK source setting my interrupt driven LPUART driver doesn't get any interrupts and so has data in its SW queue waiting to be transmitted. As soon as the clock is changed the interrupts start arriving and the data then goes out.
Therefore this new switch setting looks to be a red-herring that the config tools developers also used without testing it.It looks more like the register description is wrong but the clock diagram in right. The question is where did this new register description come from? Was it a mistake or was it actually envisaged that the i.MX RT 1011 would have this additional option at some point but it was forgotten, or it has a silicon errata?
The mystery continues !!!
In any case, as you presumably have done, using OSC_CLK allows PLL3 to be disabled if not used by any other parts of the system.
Regards
Mark