xref: /rk3399_rockchip-uboot/arch/x86/lib/fsp/fsp_common.c (revision 8b097916faa20f04ff4b0147ebcf0331204ec96b)
191785f70SSimon Glass /*
291785f70SSimon Glass  * Copyright (C) 2014, Bin Meng <bmeng.cn@gmail.com>
391785f70SSimon Glass  *
491785f70SSimon Glass  * SPDX-License-Identifier:	GPL-2.0+
591785f70SSimon Glass  */
691785f70SSimon Glass 
791785f70SSimon Glass #include <common.h>
891785f70SSimon Glass #include <errno.h>
991785f70SSimon Glass #include <asm/io.h>
1091785f70SSimon Glass #include <asm/post.h>
1191785f70SSimon Glass #include <asm/processor.h>
1291785f70SSimon Glass #include <asm/fsp/fsp_support.h>
1391785f70SSimon Glass 
14*8b097916SSimon Glass DECLARE_GLOBAL_DATA_PTR;
15*8b097916SSimon Glass 
1691785f70SSimon Glass int print_cpuinfo(void)
1791785f70SSimon Glass {
1891785f70SSimon Glass 	post_code(POST_CPU_INFO);
1991785f70SSimon Glass 	return default_print_cpuinfo();
2091785f70SSimon Glass }
2191785f70SSimon Glass 
2291785f70SSimon Glass int board_pci_post_scan(struct pci_controller *hose)
2391785f70SSimon Glass {
2491785f70SSimon Glass 	u32 status;
2591785f70SSimon Glass 
2691785f70SSimon Glass 	/* call into FspNotify */
2791785f70SSimon Glass 	debug("Calling into FSP (notify phase INIT_PHASE_PCI): ");
2891785f70SSimon Glass 	status = fsp_notify(NULL, INIT_PHASE_PCI);
2991785f70SSimon Glass 	if (status != FSP_SUCCESS)
3091785f70SSimon Glass 		debug("fail, error code %x\n", status);
3191785f70SSimon Glass 	else
3291785f70SSimon Glass 		debug("OK\n");
3391785f70SSimon Glass 
3491785f70SSimon Glass 	return 0;
3591785f70SSimon Glass }
3691785f70SSimon Glass 
3791785f70SSimon Glass void board_final_cleanup(void)
3891785f70SSimon Glass {
3991785f70SSimon Glass 	u32 status;
4091785f70SSimon Glass 
4191785f70SSimon Glass 	/* call into FspNotify */
4291785f70SSimon Glass 	debug("Calling into FSP (notify phase INIT_PHASE_BOOT): ");
4391785f70SSimon Glass 	status = fsp_notify(NULL, INIT_PHASE_BOOT);
4491785f70SSimon Glass 	if (status != FSP_SUCCESS)
4591785f70SSimon Glass 		debug("fail, error code %x\n", status);
4691785f70SSimon Glass 	else
4791785f70SSimon Glass 		debug("OK\n");
4891785f70SSimon Glass 
4991785f70SSimon Glass 	return;
5091785f70SSimon Glass }
51aefaff8eSBin Meng 
52aefaff8eSBin Meng int x86_fsp_init(void)
53aefaff8eSBin Meng {
54aefaff8eSBin Meng 	if (!gd->arch.hob_list)
55aefaff8eSBin Meng 		fsp_init(CONFIG_FSP_TEMP_RAM_ADDR, BOOT_FULL_CONFIG, NULL);
56aefaff8eSBin Meng 
57aefaff8eSBin Meng 	return 0;
58aefaff8eSBin Meng }
59