[PATCH 7/8] spl: x86: Avoid starting up PCI automatically in SPL

Heinrich Schuchardt xypron.glpk at gmx.de
Wed Aug 23 22:15:07 CEST 2023


On 8/23/23 20:47, Simon Glass wrote:
> For x86 platforms, PCI is core to their operation and is managed in
> arch-specific code. Each platform has its own way of doing this. For TPL
> and some SPL implementations, the full driver model PCI is not used.
>
> A recent change enabled full PCI in TPL/SPL for all boards. This breaks
> some x86 boards, so adjust it to skip that for x86.

Could you, please, give some more detail?

* Which boards are broken?
* Don't these boards have a pci_init() function?
* In what way does calling pci_init() lead to a failure?

It would be preferable to have all architectures and boards use the same
high level API. Excluding x86 here looks more like a (necessary) hack
than like a target state.

Best regards

Heinrich

>
> Signed-off-by: Simon Glass <sjg at chromium.org>
> ---
>
>   common/spl/spl.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/common/spl/spl.c b/common/spl/spl.c
> index 0062f3f45d9..13d7b1a742f 100644
> --- a/common/spl/spl.c
> +++ b/common/spl/spl.c
> @@ -800,7 +800,7 @@ void board_init_r(gd_t *dummy1, ulong dummy2)
>   	    IS_ENABLED(CONFIG_SPL_ATF))
>   		dram_init_banksize();
>
> -	if (CONFIG_IS_ENABLED(PCI)) {
> +	if (CONFIG_IS_ENABLED(PCI) && !IS_ENABLED(CONFIG_X86)) {
>   		ret = pci_init();
>   		if (ret)
>   			puts(SPL_TPL_PROMPT "Cannot initialize PCI\n");



More information about the U-Boot mailing list