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 <[email protected]>
---

  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");

Reply via email to