xref: /aosp_15_r20/external/coreboot/src/drivers/intel/fsp2_0/ppi/mp_service2_noop.c (revision b9411a12aaaa7e1e6a6fb7c5e057f44ee179a49c)
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 
3 #include <fsp/api.h>
4 #include <fsp/ppi/mp_service_ppi.h>
5 #include <Ppi/MpServices2.h>
6 
7 typedef EDKII_PEI_MP_SERVICES2_PPI efi_pei_mp_services_ppi;
8 
mps2_noop_get_number_of_processors(efi_pei_mp_services_ppi * ignored1,efi_uintn_t * number_of_processors,efi_uintn_t * number_of_enabled_processors)9 static efi_return_status_t mps2_noop_get_number_of_processors(
10 	efi_pei_mp_services_ppi *ignored1,
11 	efi_uintn_t *number_of_processors,
12 	efi_uintn_t *number_of_enabled_processors)
13 {
14 	*number_of_processors = 1; /* BSP alone */
15 	*number_of_enabled_processors = 1; /* BSP alone */
16 
17 	return FSP_SUCCESS;
18 }
19 
mps2_noop_get_processor_info(efi_pei_mp_services_ppi * ignored1,efi_uintn_t ignored2,efi_processor_information * ignored3)20 static efi_return_status_t mps2_noop_get_processor_info(
21 	efi_pei_mp_services_ppi *ignored1,
22 	efi_uintn_t ignored2,
23 	efi_processor_information *ignored3)
24 {
25 	return mp_api_unsupported();
26 }
27 
mps2_noop_startup_all_aps(efi_pei_mp_services_ppi * ignored1,efi_ap_procedure ignored2,efi_boolean_t ignored3,efi_uintn_t ignored4,void * ignored5)28 static efi_return_status_t mps2_noop_startup_all_aps(
29 	efi_pei_mp_services_ppi *ignored1,
30 	efi_ap_procedure ignored2, efi_boolean_t ignored3,
31 	efi_uintn_t ignored4, void *ignored5)
32 {
33 	return mp_api_unsupported();
34 }
35 
mps2_noop_startup_all_cpus(efi_pei_mp_services_ppi * ignored1,efi_ap_procedure ignored2,efi_uintn_t ignored3,void * ignored4)36 static efi_return_status_t mps2_noop_startup_all_cpus(
37 	efi_pei_mp_services_ppi *ignored1,
38 	efi_ap_procedure ignored2,
39 	efi_uintn_t ignored3, void *ignored4)
40 {
41 	return mp_api_unsupported();
42 }
43 
mps2_noop_startup_this_ap(efi_pei_mp_services_ppi * ignored1,efi_ap_procedure ignored2,efi_uintn_t ignored3,efi_uintn_t ignored4,void * ignored5)44 static efi_return_status_t mps2_noop_startup_this_ap(
45 	efi_pei_mp_services_ppi *ignored1,
46 	efi_ap_procedure ignored2, efi_uintn_t ignored3,
47 	efi_uintn_t ignored4, void *ignored5)
48 {
49 	return mp_api_unsupported();
50 }
51 
mps2_noop_switch_bsp(efi_pei_mp_services_ppi * ignored1,efi_uintn_t ignored2,efi_boolean_t ignored3)52 static efi_return_status_t mps2_noop_switch_bsp(
53 	efi_pei_mp_services_ppi *ignored1, efi_uintn_t ignored2,
54 	efi_boolean_t ignored3)
55 {
56 	return mp_api_unsupported();
57 }
58 
mps2_noop_enable_disable_ap(efi_pei_mp_services_ppi * ignored1,efi_uintn_t ignored2,efi_boolean_t ignored3,efi_uint32_t * ignored4)59 static efi_return_status_t mps2_noop_enable_disable_ap(
60 	efi_pei_mp_services_ppi *ignored1,
61 	efi_uintn_t ignored2, efi_boolean_t ignored3, efi_uint32_t *ignored4)
62 {
63 	return mp_api_unsupported();
64 }
65 
mps2_noop_identify_processor(efi_pei_mp_services_ppi * ignored1,efi_uintn_t * ignored2)66 static efi_return_status_t mps2_noop_identify_processor(
67 	efi_pei_mp_services_ppi *ignored1,
68 	efi_uintn_t *ignored2)
69 {
70 	return mp_api_unsupported();
71 }
72 
73 /*
74  * Default MP Services data structure adhering to the EDK2 UEFIPKG Open
75  * Source version 2 specification
76  */
77 
78 static efi_pei_mp_services_ppi mp_service2_noop_ppi = {
79 	mps2_noop_get_number_of_processors,
80 	mps2_noop_get_processor_info,
81 	mps2_noop_startup_all_aps,
82 	mps2_noop_startup_this_ap,
83 	mps2_noop_switch_bsp,
84 	mps2_noop_enable_disable_ap,
85 	mps2_noop_identify_processor,
86 	mps2_noop_startup_all_cpus,
87 };
88 
mp_fill_ppi_services_data(void)89 void *mp_fill_ppi_services_data(void)
90 {
91 	return (void *)&mp_service2_noop_ppi;
92 }
93