diff options
author | Simon Glass <sjg@chromium.org> | 2015-08-10 07:05:07 -0600 |
---|---|---|
committer | Simon Glass <sjg@chromium.org> | 2015-08-14 03:24:21 -0600 |
commit | 412400abaaa6ef02adff35419188689ea6d3ec7e (patch) | |
tree | b056bd2a176dabe981308976c7f75d40584121be /arch | |
parent | 9e3ff9c2b464e4aa342bed74a534ec9844612459 (diff) | |
download | u-boot-imx-412400abaaa6ef02adff35419188689ea6d3ec7e.zip u-boot-imx-412400abaaa6ef02adff35419188689ea6d3ec7e.tar.gz u-boot-imx-412400abaaa6ef02adff35419188689ea6d3ec7e.tar.bz2 |
x86: Split out fsp_init_phase_pci() code into a new function
This code may be useful for boards that use driver model for PCI.
Note: It would be better to have driver model automatically call this
function somehow. However for now it is probably safer to have it under
board control.
Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/x86/include/asm/fsp/fsp_support.h | 7 | ||||
-rw-r--r-- | arch/x86/lib/fsp/fsp_common.c | 11 |
2 files changed, 15 insertions, 3 deletions
diff --git a/arch/x86/include/asm/fsp/fsp_support.h b/arch/x86/include/asm/fsp/fsp_support.h index c6c7dc0..7317dda 100644 --- a/arch/x86/include/asm/fsp/fsp_support.h +++ b/arch/x86/include/asm/fsp/fsp_support.h @@ -207,4 +207,11 @@ void *fsp_get_bootloader_tmp_mem(const void *hob_list, u32 *len); */ void update_fsp_upd(struct upd_region *fsp_upd); +/** + * fsp_init_phase_pci() - Tell the FSP that we have completed PCI init + * + * @return 0 if OK, -EPERM if the FSP gave an error. + */ +int fsp_init_phase_pci(void); + #endif diff --git a/arch/x86/lib/fsp/fsp_common.c b/arch/x86/lib/fsp/fsp_common.c index c585710..6f72c6d 100644 --- a/arch/x86/lib/fsp/fsp_common.c +++ b/arch/x86/lib/fsp/fsp_common.c @@ -19,19 +19,24 @@ int print_cpuinfo(void) return default_print_cpuinfo(); } -int board_pci_post_scan(struct pci_controller *hose) +int fsp_init_phase_pci(void) { u32 status; /* call into FspNotify */ debug("Calling into FSP (notify phase INIT_PHASE_PCI): "); status = fsp_notify(NULL, INIT_PHASE_PCI); - if (status != FSP_SUCCESS) + if (status) debug("fail, error code %x\n", status); else debug("OK\n"); - return 0; + return status ? -EPERM : 0; +} + +int board_pci_post_scan(struct pci_controller *hose) +{ + return fsp_init_phase_pci(); } void board_final_cleanup(void) |