xref: /rk3399_rockchip-uboot/arch/x86/lib/fsp/fsp_common.c (revision 91785f70b9b7ebfd1a2da4772a8268b36f58fa3d)
1*91785f70SSimon Glass /*
2*91785f70SSimon Glass  * Copyright (C) 2014, Bin Meng <bmeng.cn@gmail.com>
3*91785f70SSimon Glass  *
4*91785f70SSimon Glass  * SPDX-License-Identifier:	GPL-2.0+
5*91785f70SSimon Glass  */
6*91785f70SSimon Glass 
7*91785f70SSimon Glass #include <common.h>
8*91785f70SSimon Glass #include <errno.h>
9*91785f70SSimon Glass #include <asm/io.h>
10*91785f70SSimon Glass #include <asm/post.h>
11*91785f70SSimon Glass #include <asm/processor.h>
12*91785f70SSimon Glass #include <asm/fsp/fsp_support.h>
13*91785f70SSimon Glass 
14*91785f70SSimon Glass int print_cpuinfo(void)
15*91785f70SSimon Glass {
16*91785f70SSimon Glass 	post_code(POST_CPU_INFO);
17*91785f70SSimon Glass 	return default_print_cpuinfo();
18*91785f70SSimon Glass }
19*91785f70SSimon Glass 
20*91785f70SSimon Glass void reset_cpu(ulong addr)
21*91785f70SSimon Glass {
22*91785f70SSimon Glass 	/* cold reset */
23*91785f70SSimon Glass 	outb(0x06, PORT_RESET);
24*91785f70SSimon Glass }
25*91785f70SSimon Glass 
26*91785f70SSimon Glass 
27*91785f70SSimon Glass int board_pci_post_scan(struct pci_controller *hose)
28*91785f70SSimon Glass {
29*91785f70SSimon Glass 	u32 status;
30*91785f70SSimon Glass 
31*91785f70SSimon Glass 	/* call into FspNotify */
32*91785f70SSimon Glass 	debug("Calling into FSP (notify phase INIT_PHASE_PCI): ");
33*91785f70SSimon Glass 	status = fsp_notify(NULL, INIT_PHASE_PCI);
34*91785f70SSimon Glass 	if (status != FSP_SUCCESS)
35*91785f70SSimon Glass 		debug("fail, error code %x\n", status);
36*91785f70SSimon Glass 	else
37*91785f70SSimon Glass 		debug("OK\n");
38*91785f70SSimon Glass 
39*91785f70SSimon Glass 	return 0;
40*91785f70SSimon Glass }
41*91785f70SSimon Glass 
42*91785f70SSimon Glass void board_final_cleanup(void)
43*91785f70SSimon Glass {
44*91785f70SSimon Glass 	u32 status;
45*91785f70SSimon Glass 
46*91785f70SSimon Glass 	/* call into FspNotify */
47*91785f70SSimon Glass 	debug("Calling into FSP (notify phase INIT_PHASE_BOOT): ");
48*91785f70SSimon Glass 	status = fsp_notify(NULL, INIT_PHASE_BOOT);
49*91785f70SSimon Glass 	if (status != FSP_SUCCESS)
50*91785f70SSimon Glass 		debug("fail, error code %x\n", status);
51*91785f70SSimon Glass 	else
52*91785f70SSimon Glass 		debug("OK\n");
53*91785f70SSimon Glass 
54*91785f70SSimon Glass 	return;
55*91785f70SSimon Glass }
56