Benjamin Herrenschmidt | 14a43e6 | 2011-09-19 17:44:57 +0000 | [diff] [blame] | 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 | |
Anton Blanchard | 58995a9 | 2015-04-09 13:51:32 +1000 | [diff] [blame] | 12 | #include <linux/jump_label.h> |
Benjamin Herrenschmidt | 14a43e6 | 2011-09-19 17:44:57 +0000 | [diff] [blame] | 13 | #include <asm/ppc_asm.h> |
| 14 | #include <asm/hvcall.h> |
| 15 | #include <asm/asm-offsets.h> |
| 16 | #include <asm/opal.h> |
Anton Blanchard | c49f635 | 2014-07-03 17:20:50 +1000 | [diff] [blame] | 17 | |
| 18 | .section ".text" |
| 19 | |
| 20 | #ifdef CONFIG_TRACEPOINTS |
Anton Blanchard | 1bc9e47 | 2014-10-30 15:43:43 +1100 | [diff] [blame] | 21 | #ifdef HAVE_JUMP_LABEL |
Anton Blanchard | c49f635 | 2014-07-03 17:20:50 +1000 | [diff] [blame] | 22 | #define OPAL_BRANCH(LABEL) \ |
| 23 | ARCH_STATIC_BRANCH(LABEL, opal_tracepoint_key) |
| 24 | #else |
| 25 | |
| 26 | .section ".toc","aw" |
| 27 | |
| 28 | .globl opal_tracepoint_refcount |
| 29 | opal_tracepoint_refcount: |
| 30 | .llong 0 |
| 31 | |
| 32 | .section ".text" |
| 33 | |
| 34 | /* |
| 35 | * We branch around this in early init by using an unconditional cpu |
| 36 | * feature. |
| 37 | */ |
| 38 | #define OPAL_BRANCH(LABEL) \ |
| 39 | BEGIN_FTR_SECTION; \ |
| 40 | b 1f; \ |
| 41 | END_FTR_SECTION(0, 1); \ |
Alexey Kardashevskiy | 2a9c4f4 | 2017-03-02 17:41:24 +1100 | [diff] [blame] | 42 | ld r11,opal_tracepoint_refcount@toc(r2); \ |
| 43 | cmpdi r11,0; \ |
Anton Blanchard | c49f635 | 2014-07-03 17:20:50 +1000 | [diff] [blame] | 44 | bne- LABEL; \ |
| 45 | 1: |
| 46 | |
| 47 | #endif |
| 48 | |
| 49 | #else |
| 50 | #define OPAL_BRANCH(LABEL) |
| 51 | #endif |
Benjamin Herrenschmidt | 14a43e6 | 2011-09-19 17:44:57 +0000 | [diff] [blame] | 52 | |
| 53 | /* TODO: |
| 54 | * |
| 55 | * - Trace irqs in/off (needs saving/restoring all args, argh...) |
| 56 | * - Get r11 feed up by Dave so I can have better register usage |
| 57 | */ |
Anton Blanchard | c49f635 | 2014-07-03 17:20:50 +1000 | [diff] [blame] | 58 | |
Benjamin Herrenschmidt | 14a43e6 | 2011-09-19 17:44:57 +0000 | [diff] [blame] | 59 | #define OPAL_CALL(name, token) \ |
Jeremy Kerr | 19d36c2 | 2014-10-22 11:32:52 +0800 | [diff] [blame] | 60 | _GLOBAL_TOC(name); \ |
Benjamin Herrenschmidt | ab9bad0 | 2017-02-07 16:03:17 +1100 | [diff] [blame] | 61 | mfmsr r12; \ |
Benjamin Herrenschmidt | 14a43e6 | 2011-09-19 17:44:57 +0000 | [diff] [blame] | 62 | mflr r0; \ |
Benjamin Herrenschmidt | ab9bad0 | 2017-02-07 16:03:17 +1100 | [diff] [blame] | 63 | andi. r11,r12,MSR_IR|MSR_DR; \ |
Benjamin Herrenschmidt | 69c592e | 2016-07-08 16:37:11 +1000 | [diff] [blame] | 64 | std r0,PPC_LR_STKOFF(r1); \ |
Anton Blanchard | c49f635 | 2014-07-03 17:20:50 +1000 | [diff] [blame] | 65 | li r0,token; \ |
Benjamin Herrenschmidt | ab9bad0 | 2017-02-07 16:03:17 +1100 | [diff] [blame] | 66 | beq opal_real_call; \ |
Anton Blanchard | c49f635 | 2014-07-03 17:20:50 +1000 | [diff] [blame] | 67 | OPAL_BRANCH(opal_tracepoint_entry) \ |
Benjamin Herrenschmidt | ab9bad0 | 2017-02-07 16:03:17 +1100 | [diff] [blame] | 68 | mfcr r11; \ |
| 69 | stw r11,8(r1); \ |
Anton Blanchard | c49f635 | 2014-07-03 17:20:50 +1000 | [diff] [blame] | 70 | li r11,0; \ |
Anton Blanchard | c49f635 | 2014-07-03 17:20:50 +1000 | [diff] [blame] | 71 | ori r11,r11,MSR_EE; \ |
Benjamin Herrenschmidt | 14a43e6 | 2011-09-19 17:44:57 +0000 | [diff] [blame] | 72 | std r12,PACASAVEDMSR(r13); \ |
Anton Blanchard | c49f635 | 2014-07-03 17:20:50 +1000 | [diff] [blame] | 73 | andc r12,r12,r11; \ |
Benjamin Herrenschmidt | 14a43e6 | 2011-09-19 17:44:57 +0000 | [diff] [blame] | 74 | mtmsrd r12,1; \ |
Anton Blanchard | c49f635 | 2014-07-03 17:20:50 +1000 | [diff] [blame] | 75 | LOAD_REG_ADDR(r11,opal_return); \ |
| 76 | mtlr r11; \ |
| 77 | li r11,MSR_DR|MSR_IR|MSR_LE;\ |
| 78 | andc r12,r12,r11; \ |
Benjamin Herrenschmidt | 14a43e6 | 2011-09-19 17:44:57 +0000 | [diff] [blame] | 79 | mtspr SPRN_HSRR1,r12; \ |
| 80 | LOAD_REG_ADDR(r11,opal); \ |
| 81 | ld r12,8(r11); \ |
| 82 | ld r2,0(r11); \ |
| 83 | mtspr SPRN_HSRR0,r12; \ |
| 84 | hrfid |
| 85 | |
Anton Blanchard | ad0289e | 2014-02-04 16:04:52 +1100 | [diff] [blame] | 86 | opal_return: |
Benjamin Herrenschmidt | be401b3 | 2013-09-23 12:05:03 +1000 | [diff] [blame] | 87 | /* |
| 88 | * Fixup endian on OPAL return... we should be able to simplify |
| 89 | * this by instead converting the below trampoline to a set of |
| 90 | * bytes (always BE) since MSR:LE will end up fixed up as a side |
| 91 | * effect of the rfid. |
| 92 | */ |
| 93 | FIXUP_ENDIAN |
Benjamin Herrenschmidt | 14a43e6 | 2011-09-19 17:44:57 +0000 | [diff] [blame] | 94 | ld r2,PACATOC(r13); |
Anton Blanchard | bbe30b3 | 2013-10-15 14:36:31 +1100 | [diff] [blame] | 95 | lwz r4,8(r1); |
Benjamin Herrenschmidt | 69c592e | 2016-07-08 16:37:11 +1000 | [diff] [blame] | 96 | ld r5,PPC_LR_STKOFF(r1); |
Benjamin Herrenschmidt | 14a43e6 | 2011-09-19 17:44:57 +0000 | [diff] [blame] | 97 | ld r6,PACASAVEDMSR(r13); |
| 98 | mtspr SPRN_SRR0,r5; |
| 99 | mtspr SPRN_SRR1,r6; |
| 100 | mtcr r4; |
| 101 | rfid |
| 102 | |
Benjamin Herrenschmidt | ab9bad0 | 2017-02-07 16:03:17 +1100 | [diff] [blame] | 103 | opal_real_call: |
| 104 | mfcr r11 |
| 105 | stw r11,8(r1) |
| 106 | /* Set opal return address */ |
| 107 | LOAD_REG_ADDR(r11, opal_return_realmode) |
| 108 | mtlr r11 |
| 109 | li r11,MSR_LE |
| 110 | andc r12,r12,r11 |
| 111 | mtspr SPRN_HSRR1,r12 |
| 112 | LOAD_REG_ADDR(r11,opal) |
| 113 | ld r12,8(r11) |
| 114 | ld r2,0(r11) |
| 115 | mtspr SPRN_HSRR0,r12 |
| 116 | hrfid |
| 117 | |
| 118 | opal_return_realmode: |
| 119 | FIXUP_ENDIAN |
| 120 | ld r2,PACATOC(r13); |
| 121 | lwz r11,8(r1); |
| 122 | ld r12,PPC_LR_STKOFF(r1) |
| 123 | mtcr r11; |
| 124 | mtlr r12 |
| 125 | blr |
| 126 | |
Anton Blanchard | c49f635 | 2014-07-03 17:20:50 +1000 | [diff] [blame] | 127 | #ifdef CONFIG_TRACEPOINTS |
| 128 | opal_tracepoint_entry: |
| 129 | stdu r1,-STACKFRAMESIZE(r1) |
| 130 | std r0,STK_REG(R23)(r1) |
| 131 | std r3,STK_REG(R24)(r1) |
| 132 | std r4,STK_REG(R25)(r1) |
| 133 | std r5,STK_REG(R26)(r1) |
| 134 | std r6,STK_REG(R27)(r1) |
| 135 | std r7,STK_REG(R28)(r1) |
| 136 | std r8,STK_REG(R29)(r1) |
| 137 | std r9,STK_REG(R30)(r1) |
| 138 | std r10,STK_REG(R31)(r1) |
| 139 | mr r3,r0 |
| 140 | addi r4,r1,STK_REG(R24) |
| 141 | bl __trace_opal_entry |
| 142 | ld r0,STK_REG(R23)(r1) |
| 143 | ld r3,STK_REG(R24)(r1) |
| 144 | ld r4,STK_REG(R25)(r1) |
| 145 | ld r5,STK_REG(R26)(r1) |
| 146 | ld r6,STK_REG(R27)(r1) |
| 147 | ld r7,STK_REG(R28)(r1) |
| 148 | ld r8,STK_REG(R29)(r1) |
| 149 | ld r9,STK_REG(R30)(r1) |
| 150 | ld r10,STK_REG(R31)(r1) |
| 151 | LOAD_REG_ADDR(r11,opal_tracepoint_return) |
| 152 | mfcr r12 |
| 153 | std r11,16(r1) |
| 154 | stw r12,8(r1) |
Anton Blanchard | c49f635 | 2014-07-03 17:20:50 +1000 | [diff] [blame] | 155 | li r11,0 |
| 156 | mfmsr r12 |
| 157 | ori r11,r11,MSR_EE |
| 158 | std r12,PACASAVEDMSR(r13) |
| 159 | andc r12,r12,r11 |
| 160 | mtmsrd r12,1 |
| 161 | LOAD_REG_ADDR(r11,opal_return) |
| 162 | mtlr r11 |
| 163 | li r11,MSR_DR|MSR_IR|MSR_LE |
| 164 | andc r12,r12,r11 |
| 165 | mtspr SPRN_HSRR1,r12 |
| 166 | LOAD_REG_ADDR(r11,opal) |
| 167 | ld r12,8(r11) |
| 168 | ld r2,0(r11) |
| 169 | mtspr SPRN_HSRR0,r12 |
| 170 | hrfid |
| 171 | |
| 172 | opal_tracepoint_return: |
| 173 | std r3,STK_REG(R31)(r1) |
| 174 | mr r4,r3 |
Michael Ellerman | a7e0fb6 | 2017-02-07 21:01:01 +1100 | [diff] [blame] | 175 | ld r3,STK_REG(R23)(r1) |
Anton Blanchard | c49f635 | 2014-07-03 17:20:50 +1000 | [diff] [blame] | 176 | bl __trace_opal_exit |
| 177 | ld r3,STK_REG(R31)(r1) |
| 178 | addi r1,r1,STACKFRAMESIZE |
| 179 | ld r0,16(r1) |
| 180 | mtlr r0 |
| 181 | blr |
| 182 | #endif |
| 183 | |
Benjamin Herrenschmidt | 69c592e | 2016-07-08 16:37:11 +1000 | [diff] [blame] | 184 | |
Joel Stanley | e28b05e | 2014-04-01 14:28:20 +1030 | [diff] [blame] | 185 | OPAL_CALL(opal_invalid_call, OPAL_INVALID_CALL); |
Benjamin Herrenschmidt | 14a43e6 | 2011-09-19 17:44:57 +0000 | [diff] [blame] | 186 | OPAL_CALL(opal_console_write, OPAL_CONSOLE_WRITE); |
| 187 | OPAL_CALL(opal_console_read, OPAL_CONSOLE_READ); |
| 188 | OPAL_CALL(opal_console_write_buffer_space, OPAL_CONSOLE_WRITE_BUFFER_SPACE); |
| 189 | OPAL_CALL(opal_rtc_read, OPAL_RTC_READ); |
| 190 | OPAL_CALL(opal_rtc_write, OPAL_RTC_WRITE); |
| 191 | OPAL_CALL(opal_cec_power_down, OPAL_CEC_POWER_DOWN); |
| 192 | OPAL_CALL(opal_cec_reboot, OPAL_CEC_REBOOT); |
Mahesh Salgaonkar | e784b64 | 2015-07-31 21:24:38 +0530 | [diff] [blame] | 193 | OPAL_CALL(opal_cec_reboot2, OPAL_CEC_REBOOT2); |
Benjamin Herrenschmidt | 14a43e6 | 2011-09-19 17:44:57 +0000 | [diff] [blame] | 194 | OPAL_CALL(opal_read_nvram, OPAL_READ_NVRAM); |
| 195 | OPAL_CALL(opal_write_nvram, OPAL_WRITE_NVRAM); |
| 196 | OPAL_CALL(opal_handle_interrupt, OPAL_HANDLE_INTERRUPT); |
| 197 | OPAL_CALL(opal_poll_events, OPAL_POLL_EVENTS); |
| 198 | OPAL_CALL(opal_pci_set_hub_tce_memory, OPAL_PCI_SET_HUB_TCE_MEMORY); |
| 199 | OPAL_CALL(opal_pci_set_phb_tce_memory, OPAL_PCI_SET_PHB_TCE_MEMORY); |
| 200 | OPAL_CALL(opal_pci_config_read_byte, OPAL_PCI_CONFIG_READ_BYTE); |
| 201 | OPAL_CALL(opal_pci_config_read_half_word, OPAL_PCI_CONFIG_READ_HALF_WORD); |
| 202 | OPAL_CALL(opal_pci_config_read_word, OPAL_PCI_CONFIG_READ_WORD); |
| 203 | OPAL_CALL(opal_pci_config_write_byte, OPAL_PCI_CONFIG_WRITE_BYTE); |
| 204 | OPAL_CALL(opal_pci_config_write_half_word, OPAL_PCI_CONFIG_WRITE_HALF_WORD); |
| 205 | OPAL_CALL(opal_pci_config_write_word, OPAL_PCI_CONFIG_WRITE_WORD); |
| 206 | OPAL_CALL(opal_set_xive, OPAL_SET_XIVE); |
| 207 | OPAL_CALL(opal_get_xive, OPAL_GET_XIVE); |
| 208 | OPAL_CALL(opal_register_exception_handler, OPAL_REGISTER_OPAL_EXCEPTION_HANDLER); |
| 209 | OPAL_CALL(opal_pci_eeh_freeze_status, OPAL_PCI_EEH_FREEZE_STATUS); |
| 210 | OPAL_CALL(opal_pci_eeh_freeze_clear, OPAL_PCI_EEH_FREEZE_CLEAR); |
Gavin Shan | 5ca27ef | 2014-07-21 14:42:31 +1000 | [diff] [blame] | 211 | OPAL_CALL(opal_pci_eeh_freeze_set, OPAL_PCI_EEH_FREEZE_SET); |
Gavin Shan | 5b64234 | 2014-09-30 12:38:55 +1000 | [diff] [blame] | 212 | OPAL_CALL(opal_pci_err_inject, OPAL_PCI_ERR_INJECT); |
Benjamin Herrenschmidt | 14a43e6 | 2011-09-19 17:44:57 +0000 | [diff] [blame] | 213 | OPAL_CALL(opal_pci_shpc, OPAL_PCI_SHPC); |
| 214 | OPAL_CALL(opal_pci_phb_mmio_enable, OPAL_PCI_PHB_MMIO_ENABLE); |
| 215 | OPAL_CALL(opal_pci_set_phb_mem_window, OPAL_PCI_SET_PHB_MEM_WINDOW); |
| 216 | OPAL_CALL(opal_pci_map_pe_mmio_window, OPAL_PCI_MAP_PE_MMIO_WINDOW); |
| 217 | OPAL_CALL(opal_pci_set_phb_table_memory, OPAL_PCI_SET_PHB_TABLE_MEMORY); |
| 218 | OPAL_CALL(opal_pci_set_pe, OPAL_PCI_SET_PE); |
| 219 | OPAL_CALL(opal_pci_set_peltv, OPAL_PCI_SET_PELTV); |
| 220 | OPAL_CALL(opal_pci_set_mve, OPAL_PCI_SET_MVE); |
| 221 | OPAL_CALL(opal_pci_set_mve_enable, OPAL_PCI_SET_MVE_ENABLE); |
| 222 | OPAL_CALL(opal_pci_get_xive_reissue, OPAL_PCI_GET_XIVE_REISSUE); |
| 223 | OPAL_CALL(opal_pci_set_xive_reissue, OPAL_PCI_SET_XIVE_REISSUE); |
| 224 | OPAL_CALL(opal_pci_set_xive_pe, OPAL_PCI_SET_XIVE_PE); |
| 225 | OPAL_CALL(opal_get_xive_source, OPAL_GET_XIVE_SOURCE); |
| 226 | OPAL_CALL(opal_get_msi_32, OPAL_GET_MSI_32); |
| 227 | OPAL_CALL(opal_get_msi_64, OPAL_GET_MSI_64); |
| 228 | OPAL_CALL(opal_start_cpu, OPAL_START_CPU); |
| 229 | OPAL_CALL(opal_query_cpu_status, OPAL_QUERY_CPU_STATUS); |
| 230 | OPAL_CALL(opal_write_oppanel, OPAL_WRITE_OPPANEL); |
| 231 | OPAL_CALL(opal_pci_map_pe_dma_window, OPAL_PCI_MAP_PE_DMA_WINDOW); |
| 232 | OPAL_CALL(opal_pci_map_pe_dma_window_real, OPAL_PCI_MAP_PE_DMA_WINDOW_REAL); |
| 233 | OPAL_CALL(opal_pci_reset, OPAL_PCI_RESET); |
Benjamin Herrenschmidt | f11fe55 | 2011-11-29 18:22:50 +0000 | [diff] [blame] | 234 | OPAL_CALL(opal_pci_get_hub_diag_data, OPAL_PCI_GET_HUB_DIAG_DATA); |
| 235 | OPAL_CALL(opal_pci_get_phb_diag_data, OPAL_PCI_GET_PHB_DIAG_DATA); |
| 236 | OPAL_CALL(opal_pci_fence_phb, OPAL_PCI_FENCE_PHB); |
| 237 | OPAL_CALL(opal_pci_reinit, OPAL_PCI_REINIT); |
| 238 | OPAL_CALL(opal_pci_mask_pe_error, OPAL_PCI_MASK_PE_ERROR); |
| 239 | OPAL_CALL(opal_set_slot_led_status, OPAL_SET_SLOT_LED_STATUS); |
| 240 | OPAL_CALL(opal_get_epow_status, OPAL_GET_EPOW_STATUS); |
Vipin K Parashar | 3b476aad | 2015-07-08 16:36:01 +0530 | [diff] [blame] | 241 | OPAL_CALL(opal_get_dpo_status, OPAL_GET_DPO_STATUS); |
Benjamin Herrenschmidt | f11fe55 | 2011-11-29 18:22:50 +0000 | [diff] [blame] | 242 | OPAL_CALL(opal_set_system_attention_led, OPAL_SET_SYSTEM_ATTENTION_LED); |
Gavin Shan | 2377323 | 2013-06-20 13:21:05 +0800 | [diff] [blame] | 243 | OPAL_CALL(opal_pci_next_error, OPAL_PCI_NEXT_ERROR); |
| 244 | OPAL_CALL(opal_pci_poll, OPAL_PCI_POLL); |
Gavin Shan | 137436c | 2013-04-25 19:20:59 +0000 | [diff] [blame] | 245 | OPAL_CALL(opal_pci_msi_eoi, OPAL_PCI_MSI_EOI); |
Gavin Shan | 2377323 | 2013-06-20 13:21:05 +0800 | [diff] [blame] | 246 | OPAL_CALL(opal_pci_get_phb_diag_data2, OPAL_PCI_GET_PHB_DIAG_DATA2); |
Benjamin Herrenschmidt | cc0efb5 | 2013-07-15 13:03:09 +1000 | [diff] [blame] | 247 | OPAL_CALL(opal_xscom_read, OPAL_XSCOM_READ); |
| 248 | OPAL_CALL(opal_xscom_write, OPAL_XSCOM_WRITE); |
| 249 | OPAL_CALL(opal_lpc_read, OPAL_LPC_READ); |
| 250 | OPAL_CALL(opal_lpc_write, OPAL_LPC_WRITE); |
Benjamin Herrenschmidt | 13906db | 2013-08-21 13:03:20 +1000 | [diff] [blame] | 251 | OPAL_CALL(opal_return_cpu, OPAL_RETURN_CPU); |
Benjamin Herrenschmidt | 4926616 | 2014-05-20 11:01:28 +1000 | [diff] [blame] | 252 | OPAL_CALL(opal_reinit_cpus, OPAL_REINIT_CPUS); |
Stewart Smith | 774fea1 | 2014-02-28 11:58:32 +1100 | [diff] [blame] | 253 | OPAL_CALL(opal_read_elog, OPAL_ELOG_READ); |
| 254 | OPAL_CALL(opal_send_ack_elog, OPAL_ELOG_ACK); |
| 255 | OPAL_CALL(opal_get_elog_size, OPAL_ELOG_SIZE); |
| 256 | OPAL_CALL(opal_resend_pending_logs, OPAL_ELOG_RESEND); |
| 257 | OPAL_CALL(opal_write_elog, OPAL_ELOG_WRITE); |
Vasant Hegde | 50bd615 | 2013-10-24 16:04:58 +0530 | [diff] [blame] | 258 | OPAL_CALL(opal_validate_flash, OPAL_FLASH_VALIDATE); |
| 259 | OPAL_CALL(opal_manage_flash, OPAL_FLASH_MANAGE); |
| 260 | OPAL_CALL(opal_update_flash, OPAL_FLASH_UPDATE); |
Vaidyanathan Srinivasan | 97eb001f | 2014-02-26 05:38:43 +0530 | [diff] [blame] | 261 | OPAL_CALL(opal_resync_timebase, OPAL_RESYNC_TIMEBASE); |
Michael Neuling | bffe6bd | 2014-08-19 14:47:59 +1000 | [diff] [blame] | 262 | OPAL_CALL(opal_check_token, OPAL_CHECK_TOKEN); |
Stewart Smith | c7e64b9 | 2014-03-03 10:25:42 +1100 | [diff] [blame] | 263 | OPAL_CALL(opal_dump_init, OPAL_DUMP_INIT); |
| 264 | OPAL_CALL(opal_dump_info, OPAL_DUMP_INFO); |
| 265 | OPAL_CALL(opal_dump_info2, OPAL_DUMP_INFO2); |
| 266 | OPAL_CALL(opal_dump_read, OPAL_DUMP_READ); |
| 267 | OPAL_CALL(opal_dump_ack, OPAL_DUMP_ACK); |
Mahesh Salgaonkar | 2436636 | 2013-11-18 15:35:58 +0530 | [diff] [blame] | 268 | OPAL_CALL(opal_get_msg, OPAL_GET_MSG); |
Suraj Jitindar Singh | 43a1dd9 | 2016-06-29 13:38:39 +1000 | [diff] [blame] | 269 | OPAL_CALL(opal_write_oppanel_async, OPAL_WRITE_OPPANEL_ASYNC); |
Mahesh Salgaonkar | 2436636 | 2013-11-18 15:35:58 +0530 | [diff] [blame] | 270 | OPAL_CALL(opal_check_completion, OPAL_CHECK_ASYNC_COMPLETION); |
Stewart Smith | c7e64b9 | 2014-03-03 10:25:42 +1100 | [diff] [blame] | 271 | OPAL_CALL(opal_dump_resend_notification, OPAL_DUMP_RESEND); |
Vasant Hegde | f7d98d1 | 2014-01-15 17:02:04 +1100 | [diff] [blame] | 272 | OPAL_CALL(opal_sync_host_reboot, OPAL_SYNC_HOST_REBOOT); |
Neelesh Gupta | 7224adb | 2014-03-07 11:03:27 +0530 | [diff] [blame] | 273 | OPAL_CALL(opal_sensor_read, OPAL_SENSOR_READ); |
Neelesh Gupta | 4029cd6 | 2014-03-07 11:02:09 +0530 | [diff] [blame] | 274 | OPAL_CALL(opal_get_param, OPAL_GET_PARAM); |
| 275 | OPAL_CALL(opal_set_param, OPAL_SET_PARAM); |
Mahesh Salgaonkar | 0ef95b4 | 2014-07-29 18:40:07 +0530 | [diff] [blame] | 276 | OPAL_CALL(opal_handle_hmi, OPAL_HANDLE_HMI); |
Shreyas B. Prabhu | 5703d2f | 2015-04-20 10:32:58 +0530 | [diff] [blame] | 277 | OPAL_CALL(opal_config_cpu_idle_state, OPAL_CONFIG_CPU_IDLE_STATE); |
Shreyas B. Prabhu | 77b54e9f | 2014-12-10 00:26:53 +0530 | [diff] [blame] | 278 | OPAL_CALL(opal_slw_set_reg, OPAL_SLW_SET_REG); |
Vasant Hegde | b09c2ec | 2014-08-09 11:15:45 +0530 | [diff] [blame] | 279 | OPAL_CALL(opal_register_dump_region, OPAL_REGISTER_DUMP_REGION); |
| 280 | OPAL_CALL(opal_unregister_dump_region, OPAL_UNREGISTER_DUMP_REGION); |
Michael Ellerman | d7cf83f | 2015-02-17 20:01:54 +1100 | [diff] [blame] | 281 | OPAL_CALL(opal_pci_set_phb_cxl_mode, OPAL_PCI_SET_PHB_CAPI_MODE); |
Neelesh Gupta | 16b1d26 | 2014-10-14 14:08:36 +0530 | [diff] [blame] | 282 | OPAL_CALL(opal_tpo_write, OPAL_WRITE_TPO); |
| 283 | OPAL_CALL(opal_tpo_read, OPAL_READ_TPO); |
Jeremy Kerr | 608b286 | 2014-11-06 11:38:27 +0800 | [diff] [blame] | 284 | OPAL_CALL(opal_ipmi_send, OPAL_IPMI_SEND); |
| 285 | OPAL_CALL(opal_ipmi_recv, OPAL_IPMI_RECV); |
Neelesh Gupta | 4708345 | 2014-12-13 23:31:05 +0530 | [diff] [blame] | 286 | OPAL_CALL(opal_i2c_request, OPAL_I2C_REQUEST); |
Cyril Bur | ed59190 | 2015-04-01 14:05:30 +0800 | [diff] [blame] | 287 | OPAL_CALL(opal_flash_read, OPAL_FLASH_READ); |
| 288 | OPAL_CALL(opal_flash_write, OPAL_FLASH_WRITE); |
| 289 | OPAL_CALL(opal_flash_erase, OPAL_FLASH_ERASE); |
Jeremy Kerr | 0d7cd85 | 2015-06-04 21:51:47 +0800 | [diff] [blame] | 290 | OPAL_CALL(opal_prd_msg, OPAL_PRD_MSG); |
Anshuman Khandual | 8a8d918 | 2015-08-19 22:19:52 +0530 | [diff] [blame] | 291 | OPAL_CALL(opal_leds_get_ind, OPAL_LEDS_GET_INDICATOR); |
| 292 | OPAL_CALL(opal_leds_set_ind, OPAL_LEDS_SET_INDICATOR); |
Russell Currey | affddff | 2015-11-27 17:23:07 +1100 | [diff] [blame] | 293 | OPAL_CALL(opal_console_flush, OPAL_CONSOLE_FLUSH); |
Gavin Shan | ea0d856 | 2016-05-20 16:41:41 +1000 | [diff] [blame] | 294 | OPAL_CALL(opal_get_device_tree, OPAL_GET_DEVICE_TREE); |
| 295 | OPAL_CALL(opal_pci_get_presence_state, OPAL_PCI_GET_PRESENCE_STATE); |
| 296 | OPAL_CALL(opal_pci_get_power_state, OPAL_PCI_GET_POWER_STATE); |
| 297 | OPAL_CALL(opal_pci_set_power_state, OPAL_PCI_SET_POWER_STATE); |
Benjamin Herrenschmidt | 9fedd3f | 2016-07-08 16:37:05 +1000 | [diff] [blame] | 298 | OPAL_CALL(opal_int_get_xirr, OPAL_INT_GET_XIRR); |
| 299 | OPAL_CALL(opal_int_set_cppr, OPAL_INT_SET_CPPR); |
| 300 | OPAL_CALL(opal_int_eoi, OPAL_INT_EOI); |
| 301 | OPAL_CALL(opal_int_set_mfrr, OPAL_INT_SET_MFRR); |
Benjamin Herrenschmidt | 69c592e | 2016-07-08 16:37:11 +1000 | [diff] [blame] | 302 | OPAL_CALL(opal_pci_tce_kill, OPAL_PCI_TCE_KILL); |
Alistair Popple | 1d0761d | 2016-12-14 13:36:51 +1100 | [diff] [blame] | 303 | OPAL_CALL(opal_nmmu_set_ptcr, OPAL_NMMU_SET_PTCR); |