Hi Kever,

On 9/30/24 12:11 PM, Kever Yang wrote:
Hi Quentin,

On 2024/8/12 18:44, Quentin Schulz wrote:
Hi Jonas,

On 8/5/24 2:22 PM, Jonas Karlman wrote:
Hi Quentin,

On 2024-08-05 12:23, Quentin Schulz wrote:
Hi Jonas,

On 8/5/24 10:43 AM, Jonas Karlman wrote:
UART pinctrl for serial is typically applied multiple times:
- in external TPL or in TPL for DEBUG_UART in board_debug_uart_init()
- in SPL for DEBUG_UART in board_debug_uart_init()
- in SPL using pinctrl from DT
- in pre-reloc phase using pinctrl from DT
- after relocation using pinctrl from DT

This series change bootph props for the UART pinctrl to not include them
in pre-reloc phase to save some boot time:


NACK. I feel like this is a hack for vendor trees only.

I disagree, this just relaxes the bootph props currently enforced by
<soc>-u-boot.dtsi files. For boards that has special need they can
still add bootph-all or the bootph-some-ram prop to restore prior
behavior.

The pinctrl setting for the same module for multi times is obviously not a good idea,

and for SPL, it used to work without pinctrl which is simple and fast and enough for use.

Because in most case, people use the UART and storage with is the same as the bootrom

used, so the IO has been already been initialized.


Is the bootrom really initializing the UART? Are you sure you're not mixing bootrom and Rockchip's TPL blob? The latter, I know, the former, I'm surprised since it doesn't print anything as far as I am aware?

This change works for most of the boards and forĀ  different design can customize for its

usage, them the patch is acceptable, this is different default setting instead of hack.


I disagree, this is working around the DT specs to make things faster by breaking some other usecases. I believe we shouldn't have to change the device tree when we change something in the defconfig for the board to still work.

I would be fine with a bunch of ifdefs in -u-boot.dtsi to have the appropriate bootph- properties guarded by the appropriate CONFIG_SPL_SERIAL/CONFIG_TPL_SERIAL, e.g. something like (not tested)

"""
// Optimize boot time by avoiding to reconfigure pinctrl already configured by earlier stages for console
#if IS_ENABLED(TPL_SERIAL)
    bootph-pre-sram;
#elif IS_ENABLED(SPL_SERIAL)
    bootph-pre-ram;
#else
    bootph-all;
#endif
"""

I also don't know what we should be doing with ROCKCHIP_EXTERNAL_TPL as we should probably have bootph-pre-ram/bootph-all set if that option is set, in case one uses the default blob from Rockchip but a different UART controller or mux so that they have console starting from upstream U-Boot at least.

What do you think?

Cheers,
Quentin

Reply via email to