1 /* SPDX-License-Identifier: Intel */
2 /*
3  * Copyright (C) 2013, Intel Corporation
4  * Copyright (C) 2014, Bin Meng <bmeng.cn@gmail.com>
5  */
6 
7 #ifndef __FSP1_SUPPORT_H__
8 #define __FSP1_SUPPORT_H__
9 
10 #include <asm/fsp/fsp_support.h>
11 #include "fsp_ffs.h"
12 
13 /**
14  * fsp_asm_continuation() - FSP Continuation assembly helper routine
15  *
16  * This routine jumps to the C version of FSP continuation function
17  */
18 void fsp_asm_continuation(void);
19 
20 /**
21  * fsp_init_done() - FSP initialization complete
22  *
23  * This is the function that indicates FSP initialization is complete and jumps
24  * back to the bootloader with HOB list pointer as the parameter.
25  *
26  * @hob_list:    HOB list pointer
27  */
28 void fsp_init_done(void *hob_list);
29 
30 /**
31  * fsp_continue() - FSP Continuation function
32  *
33  * @status:      Always 0
34  * @hob_list:    HOB list pointer
35  *
36  * @return Never returns
37  */
38 void fsp_continue(u32 status, void *hob_list);
39 
40 /**
41  * fsp_init() - FSP initialization wrapper function
42  *
43  * @stack_top: bootloader stack top address
44  * @boot_mode: boot mode defined in fsp_bootmode.h
45  * @nvs_buf:   Non-volatile memory buffer pointer
46  */
47 void fsp_init(u32 stack_top, u32 boot_mode, void *nvs_buf);
48 
49 /**
50  * fsp_get_bootloader_tmp_mem() - retrieves temporary stack buffer and size
51  *
52  * @hob_list:      A HOB list pointer.
53  * @len:           A pointer to the bootloader temporary stack length.
54  *                 If the HOB is located, the length will be updated.
55  *
56  * @return NULL:   Failed to find the bootloader temporary stack HOB.
57  * @return others: Bootloader temporary stackbuffer pointer.
58  */
59 void *fsp_get_bootloader_tmp_mem(const void *hob_list, u32 *len);
60 
61 /**
62  * fsp_update_configs() - overrides the default configurations of FSP
63  *
64  * @config:  A pointer to the FSP configuration data structure
65  * @rt_buf:  A pointer to the FSP runtime buffer data structure
66  *
67  * @return None
68  */
69 void fsp_update_configs(struct fsp_config_data *config,
70 			struct fspinit_rtbuf *rt_buf);
71 
72 #endif
73