Commit | Line | Data |
---|---|---|
14a43e69 BH |
1 | /* |
2 | * PowerNV OPAL API wrappers | |
3 | * | |
4 | * Copyright 2011 IBM Corp. | |
5 | * | |
6 | * This program is free software; you can redistribute it and/or | |
7 | * modify it under the terms of the GNU General Public License | |
8 | * as published by the Free Software Foundation; either version | |
9 | * 2 of the License, or (at your option) any later version. | |
10 | */ | |
11 | ||
58995a9a | 12 | #include <linux/jump_label.h> |
14a43e69 BH |
13 | #include <asm/ppc_asm.h> |
14 | #include <asm/hvcall.h> | |
15 | #include <asm/asm-offsets.h> | |
16 | #include <asm/opal.h> | |
ec0c464c | 17 | #include <asm/asm-compat.h> |
2c86cd18 | 18 | #include <asm/feature-fixups.h> |
c49f6353 AB |
19 | |
20 | .section ".text" | |
21 | ||
22 | #ifdef CONFIG_TRACEPOINTS | |
e9666d10 | 23 | #ifdef CONFIG_JUMP_LABEL |
c49f6353 AB |
24 | #define OPAL_BRANCH(LABEL) \ |
25 | ARCH_STATIC_BRANCH(LABEL, opal_tracepoint_key) | |
26 | #else | |
27 | ||
28 | .section ".toc","aw" | |
29 | ||
30 | .globl opal_tracepoint_refcount | |
31 | opal_tracepoint_refcount: | |
eb039161 | 32 | .8byte 0 |
c49f6353 AB |
33 | |
34 | .section ".text" | |
35 | ||
36 | /* | |
37 | * We branch around this in early init by using an unconditional cpu | |
38 | * feature. | |
39 | */ | |
40 | #define OPAL_BRANCH(LABEL) \ | |
41 | BEGIN_FTR_SECTION; \ | |
42 | b 1f; \ | |
43 | END_FTR_SECTION(0, 1); \ | |
2a9c4f40 AK |
44 | ld r11,opal_tracepoint_refcount@toc(r2); \ |
45 | cmpdi r11,0; \ | |
c49f6353 AB |
46 | bne- LABEL; \ |
47 | 1: | |
48 | ||
49 | #endif | |
50 | ||
51 | #else | |
52 | #define OPAL_BRANCH(LABEL) | |
53 | #endif | |
14a43e69 | 54 | |
c3a08e93 OH |
55 | /* |
56 | * DO_OPAL_CALL assumes: | |
57 | * r0 = opal call token | |
58 | * r12 = msr | |
59 | * LR has been saved | |
14a43e69 | 60 | */ |
c3a08e93 | 61 | #define DO_OPAL_CALL() \ |
ab9bad0e BH |
62 | mfcr r11; \ |
63 | stw r11,8(r1); \ | |
c49f6353 | 64 | li r11,0; \ |
c49f6353 | 65 | ori r11,r11,MSR_EE; \ |
14a43e69 | 66 | std r12,PACASAVEDMSR(r13); \ |
c49f6353 | 67 | andc r12,r12,r11; \ |
14a43e69 | 68 | mtmsrd r12,1; \ |
c49f6353 AB |
69 | LOAD_REG_ADDR(r11,opal_return); \ |
70 | mtlr r11; \ | |
71 | li r11,MSR_DR|MSR_IR|MSR_LE;\ | |
72 | andc r12,r12,r11; \ | |
14a43e69 BH |
73 | mtspr SPRN_HSRR1,r12; \ |
74 | LOAD_REG_ADDR(r11,opal); \ | |
75 | ld r12,8(r11); \ | |
76 | ld r2,0(r11); \ | |
77 | mtspr SPRN_HSRR0,r12; \ | |
78 | hrfid | |
79 | ||
c3a08e93 OH |
80 | #define OPAL_CALL(name, token) \ |
81 | _GLOBAL_TOC(name); \ | |
82 | mfmsr r12; \ | |
83 | mflr r0; \ | |
84 | andi. r11,r12,MSR_IR|MSR_DR; \ | |
85 | std r0,PPC_LR_STKOFF(r1); \ | |
86 | li r0,token; \ | |
87 | beq opal_real_call; \ | |
88 | OPAL_BRANCH(opal_tracepoint_entry) \ | |
89 | DO_OPAL_CALL() | |
90 | ||
91 | ||
ad0289e4 | 92 | opal_return: |
be401b37 BH |
93 | /* |
94 | * Fixup endian on OPAL return... we should be able to simplify | |
95 | * this by instead converting the below trampoline to a set of | |
96 | * bytes (always BE) since MSR:LE will end up fixed up as a side | |
97 | * effect of the rfid. | |
98 | */ | |
63c9d8a4 | 99 | FIXUP_ENDIAN_HV |
14a43e69 | 100 | ld r2,PACATOC(r13); |
bbe30b3b | 101 | lwz r4,8(r1); |
69c592ed | 102 | ld r5,PPC_LR_STKOFF(r1); |
14a43e69 | 103 | ld r6,PACASAVEDMSR(r13); |
14a43e69 | 104 | mtcr r4; |
c07e1b8a NP |
105 | mtspr SPRN_HSRR0,r5; |
106 | mtspr SPRN_HSRR1,r6; | |
107 | hrfid | |
14a43e69 | 108 | |
ab9bad0e BH |
109 | opal_real_call: |
110 | mfcr r11 | |
111 | stw r11,8(r1) | |
112 | /* Set opal return address */ | |
113 | LOAD_REG_ADDR(r11, opal_return_realmode) | |
114 | mtlr r11 | |
115 | li r11,MSR_LE | |
116 | andc r12,r12,r11 | |
117 | mtspr SPRN_HSRR1,r12 | |
118 | LOAD_REG_ADDR(r11,opal) | |
119 | ld r12,8(r11) | |
120 | ld r2,0(r11) | |
121 | mtspr SPRN_HSRR0,r12 | |
122 | hrfid | |
123 | ||
124 | opal_return_realmode: | |
63c9d8a4 | 125 | FIXUP_ENDIAN_HV |
ab9bad0e BH |
126 | ld r2,PACATOC(r13); |
127 | lwz r11,8(r1); | |
128 | ld r12,PPC_LR_STKOFF(r1) | |
129 | mtcr r11; | |
130 | mtlr r12 | |
131 | blr | |
132 | ||
c49f6353 AB |
133 | #ifdef CONFIG_TRACEPOINTS |
134 | opal_tracepoint_entry: | |
135 | stdu r1,-STACKFRAMESIZE(r1) | |
136 | std r0,STK_REG(R23)(r1) | |
137 | std r3,STK_REG(R24)(r1) | |
138 | std r4,STK_REG(R25)(r1) | |
139 | std r5,STK_REG(R26)(r1) | |
140 | std r6,STK_REG(R27)(r1) | |
141 | std r7,STK_REG(R28)(r1) | |
142 | std r8,STK_REG(R29)(r1) | |
143 | std r9,STK_REG(R30)(r1) | |
144 | std r10,STK_REG(R31)(r1) | |
145 | mr r3,r0 | |
146 | addi r4,r1,STK_REG(R24) | |
147 | bl __trace_opal_entry | |
148 | ld r0,STK_REG(R23)(r1) | |
149 | ld r3,STK_REG(R24)(r1) | |
150 | ld r4,STK_REG(R25)(r1) | |
151 | ld r5,STK_REG(R26)(r1) | |
152 | ld r6,STK_REG(R27)(r1) | |
153 | ld r7,STK_REG(R28)(r1) | |
154 | ld r8,STK_REG(R29)(r1) | |
155 | ld r9,STK_REG(R30)(r1) | |
156 | ld r10,STK_REG(R31)(r1) | |
c3a08e93 OH |
157 | |
158 | /* setup LR so we return via tracepoint_return */ | |
c49f6353 | 159 | LOAD_REG_ADDR(r11,opal_tracepoint_return) |
c49f6353 | 160 | std r11,16(r1) |
c3a08e93 | 161 | |
c49f6353 | 162 | mfmsr r12 |
c3a08e93 | 163 | DO_OPAL_CALL() |
c49f6353 AB |
164 | |
165 | opal_tracepoint_return: | |
166 | std r3,STK_REG(R31)(r1) | |
167 | mr r4,r3 | |
a7e0fb6c | 168 | ld r3,STK_REG(R23)(r1) |
c49f6353 AB |
169 | bl __trace_opal_exit |
170 | ld r3,STK_REG(R31)(r1) | |
171 | addi r1,r1,STACKFRAMESIZE | |
172 | ld r0,16(r1) | |
173 | mtlr r0 | |
174 | blr | |
175 | #endif | |
176 | ||
69c592ed | 177 | |
e28b05e7 | 178 | OPAL_CALL(opal_invalid_call, OPAL_INVALID_CALL); |
14a43e69 BH |
179 | OPAL_CALL(opal_console_write, OPAL_CONSOLE_WRITE); |
180 | OPAL_CALL(opal_console_read, OPAL_CONSOLE_READ); | |
181 | OPAL_CALL(opal_console_write_buffer_space, OPAL_CONSOLE_WRITE_BUFFER_SPACE); | |
182 | OPAL_CALL(opal_rtc_read, OPAL_RTC_READ); | |
183 | OPAL_CALL(opal_rtc_write, OPAL_RTC_WRITE); | |
184 | OPAL_CALL(opal_cec_power_down, OPAL_CEC_POWER_DOWN); | |
185 | OPAL_CALL(opal_cec_reboot, OPAL_CEC_REBOOT); | |
e784b649 | 186 | OPAL_CALL(opal_cec_reboot2, OPAL_CEC_REBOOT2); |
14a43e69 BH |
187 | OPAL_CALL(opal_read_nvram, OPAL_READ_NVRAM); |
188 | OPAL_CALL(opal_write_nvram, OPAL_WRITE_NVRAM); | |
189 | OPAL_CALL(opal_handle_interrupt, OPAL_HANDLE_INTERRUPT); | |
190 | OPAL_CALL(opal_poll_events, OPAL_POLL_EVENTS); | |
191 | OPAL_CALL(opal_pci_set_hub_tce_memory, OPAL_PCI_SET_HUB_TCE_MEMORY); | |
192 | OPAL_CALL(opal_pci_set_phb_tce_memory, OPAL_PCI_SET_PHB_TCE_MEMORY); | |
193 | OPAL_CALL(opal_pci_config_read_byte, OPAL_PCI_CONFIG_READ_BYTE); | |
194 | OPAL_CALL(opal_pci_config_read_half_word, OPAL_PCI_CONFIG_READ_HALF_WORD); | |
195 | OPAL_CALL(opal_pci_config_read_word, OPAL_PCI_CONFIG_READ_WORD); | |
196 | OPAL_CALL(opal_pci_config_write_byte, OPAL_PCI_CONFIG_WRITE_BYTE); | |
197 | OPAL_CALL(opal_pci_config_write_half_word, OPAL_PCI_CONFIG_WRITE_HALF_WORD); | |
198 | OPAL_CALL(opal_pci_config_write_word, OPAL_PCI_CONFIG_WRITE_WORD); | |
199 | OPAL_CALL(opal_set_xive, OPAL_SET_XIVE); | |
200 | OPAL_CALL(opal_get_xive, OPAL_GET_XIVE); | |
201 | OPAL_CALL(opal_register_exception_handler, OPAL_REGISTER_OPAL_EXCEPTION_HANDLER); | |
202 | OPAL_CALL(opal_pci_eeh_freeze_status, OPAL_PCI_EEH_FREEZE_STATUS); | |
203 | OPAL_CALL(opal_pci_eeh_freeze_clear, OPAL_PCI_EEH_FREEZE_CLEAR); | |
5ca27efb | 204 | OPAL_CALL(opal_pci_eeh_freeze_set, OPAL_PCI_EEH_FREEZE_SET); |
5b642340 | 205 | OPAL_CALL(opal_pci_err_inject, OPAL_PCI_ERR_INJECT); |
14a43e69 BH |
206 | OPAL_CALL(opal_pci_shpc, OPAL_PCI_SHPC); |
207 | OPAL_CALL(opal_pci_phb_mmio_enable, OPAL_PCI_PHB_MMIO_ENABLE); | |
208 | OPAL_CALL(opal_pci_set_phb_mem_window, OPAL_PCI_SET_PHB_MEM_WINDOW); | |
209 | OPAL_CALL(opal_pci_map_pe_mmio_window, OPAL_PCI_MAP_PE_MMIO_WINDOW); | |
210 | OPAL_CALL(opal_pci_set_phb_table_memory, OPAL_PCI_SET_PHB_TABLE_MEMORY); | |
211 | OPAL_CALL(opal_pci_set_pe, OPAL_PCI_SET_PE); | |
212 | OPAL_CALL(opal_pci_set_peltv, OPAL_PCI_SET_PELTV); | |
213 | OPAL_CALL(opal_pci_set_mve, OPAL_PCI_SET_MVE); | |
214 | OPAL_CALL(opal_pci_set_mve_enable, OPAL_PCI_SET_MVE_ENABLE); | |
215 | OPAL_CALL(opal_pci_get_xive_reissue, OPAL_PCI_GET_XIVE_REISSUE); | |
216 | OPAL_CALL(opal_pci_set_xive_reissue, OPAL_PCI_SET_XIVE_REISSUE); | |
217 | OPAL_CALL(opal_pci_set_xive_pe, OPAL_PCI_SET_XIVE_PE); | |
218 | OPAL_CALL(opal_get_xive_source, OPAL_GET_XIVE_SOURCE); | |
219 | OPAL_CALL(opal_get_msi_32, OPAL_GET_MSI_32); | |
220 | OPAL_CALL(opal_get_msi_64, OPAL_GET_MSI_64); | |
221 | OPAL_CALL(opal_start_cpu, OPAL_START_CPU); | |
222 | OPAL_CALL(opal_query_cpu_status, OPAL_QUERY_CPU_STATUS); | |
223 | OPAL_CALL(opal_write_oppanel, OPAL_WRITE_OPPANEL); | |
224 | OPAL_CALL(opal_pci_map_pe_dma_window, OPAL_PCI_MAP_PE_DMA_WINDOW); | |
225 | OPAL_CALL(opal_pci_map_pe_dma_window_real, OPAL_PCI_MAP_PE_DMA_WINDOW_REAL); | |
226 | OPAL_CALL(opal_pci_reset, OPAL_PCI_RESET); | |
f11fe552 BH |
227 | OPAL_CALL(opal_pci_get_hub_diag_data, OPAL_PCI_GET_HUB_DIAG_DATA); |
228 | OPAL_CALL(opal_pci_get_phb_diag_data, OPAL_PCI_GET_PHB_DIAG_DATA); | |
229 | OPAL_CALL(opal_pci_fence_phb, OPAL_PCI_FENCE_PHB); | |
230 | OPAL_CALL(opal_pci_reinit, OPAL_PCI_REINIT); | |
231 | OPAL_CALL(opal_pci_mask_pe_error, OPAL_PCI_MASK_PE_ERROR); | |
232 | OPAL_CALL(opal_set_slot_led_status, OPAL_SET_SLOT_LED_STATUS); | |
233 | OPAL_CALL(opal_get_epow_status, OPAL_GET_EPOW_STATUS); | |
3b476aad | 234 | OPAL_CALL(opal_get_dpo_status, OPAL_GET_DPO_STATUS); |
f11fe552 | 235 | OPAL_CALL(opal_set_system_attention_led, OPAL_SET_SYSTEM_ATTENTION_LED); |
23773230 GS |
236 | OPAL_CALL(opal_pci_next_error, OPAL_PCI_NEXT_ERROR); |
237 | OPAL_CALL(opal_pci_poll, OPAL_PCI_POLL); | |
137436c9 | 238 | OPAL_CALL(opal_pci_msi_eoi, OPAL_PCI_MSI_EOI); |
23773230 | 239 | OPAL_CALL(opal_pci_get_phb_diag_data2, OPAL_PCI_GET_PHB_DIAG_DATA2); |
cc0efb57 BH |
240 | OPAL_CALL(opal_xscom_read, OPAL_XSCOM_READ); |
241 | OPAL_CALL(opal_xscom_write, OPAL_XSCOM_WRITE); | |
242 | OPAL_CALL(opal_lpc_read, OPAL_LPC_READ); | |
243 | OPAL_CALL(opal_lpc_write, OPAL_LPC_WRITE); | |
13906db6 | 244 | OPAL_CALL(opal_return_cpu, OPAL_RETURN_CPU); |
4926616c | 245 | OPAL_CALL(opal_reinit_cpus, OPAL_REINIT_CPUS); |
774fea1a SS |
246 | OPAL_CALL(opal_read_elog, OPAL_ELOG_READ); |
247 | OPAL_CALL(opal_send_ack_elog, OPAL_ELOG_ACK); | |
248 | OPAL_CALL(opal_get_elog_size, OPAL_ELOG_SIZE); | |
249 | OPAL_CALL(opal_resend_pending_logs, OPAL_ELOG_RESEND); | |
250 | OPAL_CALL(opal_write_elog, OPAL_ELOG_WRITE); | |
50bd6153 VH |
251 | OPAL_CALL(opal_validate_flash, OPAL_FLASH_VALIDATE); |
252 | OPAL_CALL(opal_manage_flash, OPAL_FLASH_MANAGE); | |
253 | OPAL_CALL(opal_update_flash, OPAL_FLASH_UPDATE); | |
97eb001f | 254 | OPAL_CALL(opal_resync_timebase, OPAL_RESYNC_TIMEBASE); |
bffe6bda | 255 | OPAL_CALL(opal_check_token, OPAL_CHECK_TOKEN); |
c7e64b9c SS |
256 | OPAL_CALL(opal_dump_init, OPAL_DUMP_INIT); |
257 | OPAL_CALL(opal_dump_info, OPAL_DUMP_INFO); | |
258 | OPAL_CALL(opal_dump_info2, OPAL_DUMP_INFO2); | |
259 | OPAL_CALL(opal_dump_read, OPAL_DUMP_READ); | |
260 | OPAL_CALL(opal_dump_ack, OPAL_DUMP_ACK); | |
24366360 | 261 | OPAL_CALL(opal_get_msg, OPAL_GET_MSG); |
43a1dd9b | 262 | OPAL_CALL(opal_write_oppanel_async, OPAL_WRITE_OPPANEL_ASYNC); |
24366360 | 263 | OPAL_CALL(opal_check_completion, OPAL_CHECK_ASYNC_COMPLETION); |
c7e64b9c | 264 | OPAL_CALL(opal_dump_resend_notification, OPAL_DUMP_RESEND); |
f7d98d18 | 265 | OPAL_CALL(opal_sync_host_reboot, OPAL_SYNC_HOST_REBOOT); |
7224adbb | 266 | OPAL_CALL(opal_sensor_read, OPAL_SENSOR_READ); |
4029cd66 NG |
267 | OPAL_CALL(opal_get_param, OPAL_GET_PARAM); |
268 | OPAL_CALL(opal_set_param, OPAL_SET_PARAM); | |
0ef95b41 | 269 | OPAL_CALL(opal_handle_hmi, OPAL_HANDLE_HMI); |
5703d2f4 | 270 | OPAL_CALL(opal_config_cpu_idle_state, OPAL_CONFIG_CPU_IDLE_STATE); |
77b54e9f | 271 | OPAL_CALL(opal_slw_set_reg, OPAL_SLW_SET_REG); |
b09c2ec4 VH |
272 | OPAL_CALL(opal_register_dump_region, OPAL_REGISTER_DUMP_REGION); |
273 | OPAL_CALL(opal_unregister_dump_region, OPAL_UNREGISTER_DUMP_REGION); | |
d7cf83fc | 274 | OPAL_CALL(opal_pci_set_phb_cxl_mode, OPAL_PCI_SET_PHB_CAPI_MODE); |
16b1d26e NG |
275 | OPAL_CALL(opal_tpo_write, OPAL_WRITE_TPO); |
276 | OPAL_CALL(opal_tpo_read, OPAL_READ_TPO); | |
608b286d JK |
277 | OPAL_CALL(opal_ipmi_send, OPAL_IPMI_SEND); |
278 | OPAL_CALL(opal_ipmi_recv, OPAL_IPMI_RECV); | |
47083450 | 279 | OPAL_CALL(opal_i2c_request, OPAL_I2C_REQUEST); |
ed59190e CB |
280 | OPAL_CALL(opal_flash_read, OPAL_FLASH_READ); |
281 | OPAL_CALL(opal_flash_write, OPAL_FLASH_WRITE); | |
282 | OPAL_CALL(opal_flash_erase, OPAL_FLASH_ERASE); | |
0d7cd855 | 283 | OPAL_CALL(opal_prd_msg, OPAL_PRD_MSG); |
8a8d9181 AK |
284 | OPAL_CALL(opal_leds_get_ind, OPAL_LEDS_GET_INDICATOR); |
285 | OPAL_CALL(opal_leds_set_ind, OPAL_LEDS_SET_INDICATOR); | |
affddff6 | 286 | OPAL_CALL(opal_console_flush, OPAL_CONSOLE_FLUSH); |
ea0d856c GS |
287 | OPAL_CALL(opal_get_device_tree, OPAL_GET_DEVICE_TREE); |
288 | OPAL_CALL(opal_pci_get_presence_state, OPAL_PCI_GET_PRESENCE_STATE); | |
289 | OPAL_CALL(opal_pci_get_power_state, OPAL_PCI_GET_POWER_STATE); | |
290 | OPAL_CALL(opal_pci_set_power_state, OPAL_PCI_SET_POWER_STATE); | |
9fedd3f8 BH |
291 | OPAL_CALL(opal_int_get_xirr, OPAL_INT_GET_XIRR); |
292 | OPAL_CALL(opal_int_set_cppr, OPAL_INT_SET_CPPR); | |
293 | OPAL_CALL(opal_int_eoi, OPAL_INT_EOI); | |
294 | OPAL_CALL(opal_int_set_mfrr, OPAL_INT_SET_MFRR); | |
69c592ed | 295 | OPAL_CALL(opal_pci_tce_kill, OPAL_PCI_TCE_KILL); |
1d0761d2 | 296 | OPAL_CALL(opal_nmmu_set_ptcr, OPAL_NMMU_SET_PTCR); |
eeea1a43 BH |
297 | OPAL_CALL(opal_xive_reset, OPAL_XIVE_RESET); |
298 | OPAL_CALL(opal_xive_get_irq_info, OPAL_XIVE_GET_IRQ_INFO); | |
299 | OPAL_CALL(opal_xive_get_irq_config, OPAL_XIVE_GET_IRQ_CONFIG); | |
300 | OPAL_CALL(opal_xive_set_irq_config, OPAL_XIVE_SET_IRQ_CONFIG); | |
301 | OPAL_CALL(opal_xive_get_queue_info, OPAL_XIVE_GET_QUEUE_INFO); | |
302 | OPAL_CALL(opal_xive_set_queue_info, OPAL_XIVE_SET_QUEUE_INFO); | |
303 | OPAL_CALL(opal_xive_donate_page, OPAL_XIVE_DONATE_PAGE); | |
304 | OPAL_CALL(opal_xive_alloc_vp_block, OPAL_XIVE_ALLOCATE_VP_BLOCK); | |
305 | OPAL_CALL(opal_xive_free_vp_block, OPAL_XIVE_FREE_VP_BLOCK); | |
306 | OPAL_CALL(opal_xive_allocate_irq, OPAL_XIVE_ALLOCATE_IRQ); | |
307 | OPAL_CALL(opal_xive_free_irq, OPAL_XIVE_FREE_IRQ); | |
308 | OPAL_CALL(opal_xive_get_vp_info, OPAL_XIVE_GET_VP_INFO); | |
309 | OPAL_CALL(opal_xive_set_vp_info, OPAL_XIVE_SET_VP_INFO); | |
310 | OPAL_CALL(opal_xive_sync, OPAL_XIVE_SYNC); | |
311 | OPAL_CALL(opal_xive_dump, OPAL_XIVE_DUMP); | |
e36d0a2e | 312 | OPAL_CALL(opal_signal_system_reset, OPAL_SIGNAL_SYSTEM_RESET); |
1ab66d1f AP |
313 | OPAL_CALL(opal_npu_init_context, OPAL_NPU_INIT_CONTEXT); |
314 | OPAL_CALL(opal_npu_destroy_context, OPAL_NPU_DESTROY_CONTEXT); | |
315 | OPAL_CALL(opal_npu_map_lpar, OPAL_NPU_MAP_LPAR); | |
28a5db00 MS |
316 | OPAL_CALL(opal_imc_counters_init, OPAL_IMC_COUNTERS_INIT); |
317 | OPAL_CALL(opal_imc_counters_start, OPAL_IMC_COUNTERS_START); | |
318 | OPAL_CALL(opal_imc_counters_stop, OPAL_IMC_COUNTERS_STOP); | |
25529100 | 319 | OPAL_CALL(opal_pci_set_p2p, OPAL_PCI_SET_P2P); |
cb8b340d SB |
320 | OPAL_CALL(opal_get_powercap, OPAL_GET_POWERCAP); |
321 | OPAL_CALL(opal_set_powercap, OPAL_SET_POWERCAP); | |
8e84b2d1 SB |
322 | OPAL_CALL(opal_get_power_shift_ratio, OPAL_GET_POWER_SHIFT_RATIO); |
323 | OPAL_CALL(opal_set_power_shift_ratio, OPAL_SET_POWER_SHIFT_RATIO); | |
bf957155 | 324 | OPAL_CALL(opal_sensor_group_clear, OPAL_SENSOR_GROUP_CLEAR); |
ee03b9b4 | 325 | OPAL_CALL(opal_quiesce, OPAL_QUIESCE); |
74d656d2 FB |
326 | OPAL_CALL(opal_npu_spa_setup, OPAL_NPU_SPA_SETUP); |
327 | OPAL_CALL(opal_npu_spa_clear_cache, OPAL_NPU_SPA_CLEAR_CACHE); | |
328 | OPAL_CALL(opal_npu_tl_set, OPAL_NPU_TL_SET); | |
d6a90bb8 PB |
329 | OPAL_CALL(opal_pci_get_pbcq_tunnel_bar, OPAL_PCI_GET_PBCQ_TUNNEL_BAR); |
330 | OPAL_CALL(opal_pci_set_pbcq_tunnel_bar, OPAL_PCI_SET_PBCQ_TUNNEL_BAR); | |
5cdcb01e | 331 | OPAL_CALL(opal_sensor_read_u64, OPAL_SENSOR_READ_U64); |
04baaf28 | 332 | OPAL_CALL(opal_sensor_group_enable, OPAL_SENSOR_GROUP_ENABLE); |
656ecc16 | 333 | OPAL_CALL(opal_nx_coproc_init, OPAL_NX_COPROC_INIT); |