diff options
author | Bin Meng <bmeng.cn@gmail.com> | 2018-06-17 15:57:52 +0300 |
---|---|---|
committer | Bin Meng <bmeng.cn@gmail.com> | 2018-06-24 03:56:04 +0300 |
commit | 6d02cf0562ead596b20ce23f102be5c3020c04f9 (patch) | |
tree | 05d77124f0838c2f8a52e239d8933f7136dfca39 /board/efi | |
parent | ec15d5f6e5e4bb718d58ec2a3753ae95abc18279 (diff) | |
download | u-boot-6d02cf0562ead596b20ce23f102be5c3020c04f9.tar.xz |
x86: efi-x86_payload: Enumerate PCI bus during early boot
The generic efi payload currently does not enumerate the PCI bus,
which means peripherals on the PCI bus are not discovered by their
drivers. This uses board_early_init_r() to do the PCI enumeration.
Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'board/efi')
-rw-r--r-- | board/efi/efi-x86_payload/Kconfig | 1 | ||||
-rw-r--r-- | board/efi/efi-x86_payload/Makefile | 2 | ||||
-rw-r--r-- | board/efi/efi-x86_payload/payload.c | 18 |
3 files changed, 20 insertions, 1 deletions
diff --git a/board/efi/efi-x86_payload/Kconfig b/board/efi/efi-x86_payload/Kconfig index b6e57b9ea7..08dd0c2edd 100644 --- a/board/efi/efi-x86_payload/Kconfig +++ b/board/efi/efi-x86_payload/Kconfig @@ -17,6 +17,7 @@ config SYS_TEXT_BASE config BOARD_SPECIFIC_OPTIONS # dummy def_bool y + select BOARD_EARLY_INIT_R imply SYS_NS16550 imply SCSI imply SCSI_AHCI diff --git a/board/efi/efi-x86_payload/Makefile b/board/efi/efi-x86_payload/Makefile index 6982340f17..00ef69534d 100644 --- a/board/efi/efi-x86_payload/Makefile +++ b/board/efi/efi-x86_payload/Makefile @@ -2,4 +2,4 @@ # # Copyright (C) 2018, Bin Meng <bmeng.cn@gmail.com> -obj-y += start.o +obj-y += start.o payload.o diff --git a/board/efi/efi-x86_payload/payload.c b/board/efi/efi-x86_payload/payload.c new file mode 100644 index 0000000000..4eeb49a27a --- /dev/null +++ b/board/efi/efi-x86_payload/payload.c @@ -0,0 +1,18 @@ +// SPDX-License-Identifier: GPL-2.0+ +/* + * Copyright (C) 2018, Bin Meng <bmeng.cn@gmail.com> + */ + +#include <common.h> +#include <usb.h> + +int board_early_init_r(void) +{ + /* + * Make sure PCI bus is enumerated so that peripherals on the PCI bus + * can be discovered by their drivers + */ + pci_init(); + + return 0; +} |