/openbmc/linux/arch/powerpc/kernel/ |
H A D | rtas_entry.S | 9 * RTAS is called with MSR IR, DR, EE disabled, and LR in the return address. 11 * Note: r3 is an input parameter to rtas, so don't trash it... 19 LOAD_REG_ADDR(r4, rtas) 20 lis r6,1f@ha /* physical return address for rtas */ 55 * 32-bit rtas on 64-bit machines has the additional problem that RTAS may 63 /* Because RTAS is running in 32b mode, it clobbers the high order half 65 * RTAS might touch to the stack. (r0, r3-r12 are caller saved) 81 /* Temporary workaround to clear CR until RTAS can be modified to 91 * our original state after RTAS returns. 102 LOAD_REG_ADDR(r4, rtas) [all …]
|
H A D | rtas.c | 4 * Procedures for interfacing to the RTAS on CHRP machines. 10 #define pr_fmt(fmt) "rtas: " fmt 40 #include <asm/rtas-work-area.h> 41 #include <asm/rtas.h> 60 * struct rtas_function - Descriptor for RTAS functions. 62 * @token: Value of @name if it exists under the /rtas node. 64 * @filter: If non-NULL, invoking this function via the rtas syscall is 316 * "ibm,reset-pe-dma-windows" (plural), but RTAS 415 .name = "rtas-last-error", 463 * Nearly all RTAS calls need to be serialized. All uses of the [all …]
|
H A D | rtasd.c | 25 #include <asm/rtas.h> 45 /* RTAS service tokens */ 58 * Since we use 32 bit RTAS, the physical address of this must be below 97 /* To see this info, grep RTAS /var/log/messages and each entry 102 * format of error logs returned from RTAS: 116 char * str = "RTAS event"; in printk_log_rtas() 124 * with RTAS and a changing number, so syslogd will in printk_log_rtas() 132 n = sprintf(buffer, "RTAS %d:", i/perline); in printk_log_rtas() 165 /* rtas fixed header */ in log_rtas_len() 188 * method for the type of error. Currently, only RTAS [all …]
|
H A D | proc_powerpc.c | 14 #include <asm/rtas.h> 66 * Create the ppc64 and ppc64/rtas directories early. This allows us to 82 if (!of_find_node_by_path("/rtas")) in proc_ppc64_create() 85 if (!proc_mkdir("rtas", root)) in proc_ppc64_create() 88 if (!proc_symlink("rtas", NULL, "powerpc/rtas")) in proc_ppc64_create()
|
H A D | crash_dump.c | 20 #include <asm/rtas.h> 97 * The crashkernel region will almost always overlap the RTAS region, so 106 basep = of_get_property(rtas.dev, "linux,rtas-base", NULL); in crash_free_reserved_phys_range() 107 sizep = of_get_property(rtas.dev, "rtas-size", NULL); in crash_free_reserved_phys_range() 115 /* Does this page overlap with the RTAS region? */ in crash_free_reserved_phys_range()
|
H A D | rtas_flash.c | 5 * /proc/powerpc/rtas/firmware_flash interface 9 * firmware image and flash it as it reboots (see rtas.c). 19 #include <asm/rtas.h> 29 /* General RTAS Status Codes */ 35 #define FLASH_AUTH -9002 /* RTAS Not Service Authority Partition */ 43 #define MANAGE_AUTH -9002 /* RTAS Not Service Authority Partition */ 44 #define MANAGE_ACTIVE_ERR -9001 /* RTAS Cannot Overwrite Active Img */ 46 #define MANAGE_PARAM_ERR -3 /* RTAS Parameter Error */ 47 #define MANAGE_HW_ERR -1 /* RTAS Hardware Error */ 50 #define VALIDATE_AUTH -9002 /* RTAS Not Service Authority Partition */ [all …]
|
H A D | rtas-proc.c | 6 * RTAS (Runtime Abstraction Services) stuff 8 * to use the RTAS. 12 * location. Write Documentation on what the /proc/rtas/ entries 32 #include <asm/rtas.h> 236 rtas_node = of_find_node_by_name(NULL, "rtas"); in proc_rtas_init() 240 proc_create("powerpc/rtas/progress", 0644, NULL, in proc_rtas_init() 242 proc_create("powerpc/rtas/clock", 0644, NULL, in proc_rtas_init() 244 proc_create("powerpc/rtas/poweron", 0644, NULL, in proc_rtas_init() 246 proc_create_single("powerpc/rtas/sensors", 0444, NULL, in proc_rtas_init() 248 proc_create("powerpc/rtas/frequency", 0644, NULL, in proc_rtas_init() [all …]
|
/openbmc/linux/arch/powerpc/include/asm/ |
H A D | rtas.h | 8 #include <asm/rtas-types.h> 13 * Definitions for talking to the RTAS on CHRP machines. 105 * Opaque handle for client code to refer to RTAS functions. All valid 199 #define RTAS_INSTANTIATE_MAX (1ULL<<30) /* Don't instantiate rtas at/above this value */ 204 /* RTAS return status codes */ 206 #define RTAS_BUSY -2 /* RTAS Busy */ 217 /* RTAS event classes */ 224 /* RTAS event severity */ 232 /* RTAS event disposition */ 237 /* RTAS event initiator */ [all …]
|
/openbmc/qemu/pc-bios/vof/ |
H A D | ci.c | 18 phandle rtas; in prom_handle() local 24 if (strcmp("instantiate-rtas", (void *)(unsigned long)pargs->args[0])) { in prom_handle() 28 rtas = ci_finddevice("/rtas"); in prom_handle() 29 /* rtas-size is set by QEMU depending of FWNMI support */ in prom_handle() 30 ci_getprop(rtas, "rtas-size", &rtassize, sizeof(rtassize)); in prom_handle()
|
/openbmc/qemu/docs/specs/ |
H A D | ppc-spapr-hcalls.rst | 23 RTAS stands for Run-Time Abstraction Sercies and is a set of runtime services 29 We currently implement the RTAS services in QEMU itself. The actual RTAS 31 calls our private H_RTAS hypervisor call to pass the RTAS calls to QEMU. 37 ``r4``: Guest physical address of RTAS parameter block. 41 ``H_SUCCESS``: Successfully called the RTAS function (RTAS result will have
|
H A D | ppc-spapr-hotplug.rst | 126 particular DRC are configured/managed by the guest via a number of RTAS calls 130 ``rtas-set-power-level`` 143 ``rtas-get-power-level`` 154 ``rtas-set-indicator`` 208 ``rtas-get-sensor-state:`` 222 ``rtas-set-indicator``. The semantics/encodings of the sensor values are 259 ``rtas-ibm-configure-connector`` 268 non-zero if a prior RTAS response indicated a need for additional memory. 317 check-exception interrupt, then provides an RTAS event log via an 318 rtas-check-exception call issued by the guest in response. This framework is [all …]
|
/openbmc/linux/drivers/watchdog/ |
H A D | wdrtas.c | 4 * RTAS calls are available 8 * RTAS watchdog driver 11 * device driver to exploit watchdog RTAS functions 29 #include <asm/rtas.h> 36 MODULE_DESCRIPTION("RTAS watchdog driver"); 68 * RTAS function set-indicator (surveillance). The unit of interval is 77 /* rtas uses minutes */ in wdrtas_set_interval() 95 * @fallback_value: value (in seconds) to use, if the RTAS call fails 100 * as reported by the RTAS function ibm,get-system-parameter. The unit 123 /* rtas uses minutes */ in wdrtas_get_interval() [all …]
|
/openbmc/linux/drivers/pci/hotplug/ |
H A D | rpaphp_pci.c | 16 #include <asm/rtas.h> 23 * RTAS call get-sensor-state(DR_ENTITY_SENSE) return values as per PAPR: 27 * -3: Invalid sensor. RTAS Parameter Error. 29 * -9000: Need DR entity to be powered up and unisolated before RTAS call 30 * -9001: Need DR entity to be powered up, but not unisolated, before RTAS call 59 * On certain PHB failures, the RTAS call rtas_call(get-sensor-state) returns 60 * extended busy error (9902) until PHB is recovered by pHyp. The RTAS call 61 * interface rtas_get_sensor() loops over the RTAS call on extended delay 67 * recovery state and return -EBUSY error based on RTAS return status. This
|
/openbmc/linux/arch/powerpc/platforms/pseries/ |
H A D | rtas-work-area.c | 3 #define pr_fmt(fmt) "rtas-work-area: " fmt 17 #include <asm/rtas-work-area.h> 18 #include <asm/rtas.h> 34 * PAPR+ 7.3.20 ibm,get-vpd RTAS Call 128 * reliably reserve an arena that satisfies RTAS addressing 130 * immmediately after RTAS instantiation. Then we have to wait until 151 * All RTAS functions that consume work areas are OK with in rtas_work_area_allocator_init() 186 * rtas_work_area_reserve_arena() - Reserve memory suitable for RTAS work areas.
|
H A D | ras.c | 15 #include <asm/rtas.h> 36 /* RTAS pseries MCE errorlog section. */ 76 /* RTAS pseries MCE error types */ 86 /* RTAS pseries MCE error sub types */ 194 " UPS/battery. Check RTAS error log for details\n"); in handle_system_shutdown() 199 " RTAS error log for details\n"); in handle_system_shutdown() 204 pr_emerg("High ambient temperature detected. Check RTAS" in handle_system_shutdown() 255 pr_info("Non-critical cooling issue detected. Check RTAS error" in rtas_parse_epow_errlog() 260 pr_info("Non-critical power issue detected. Check RTAS error" in rtas_parse_epow_errlog() 269 pr_emerg("Critical power/cooling issue detected. Check RTAS" in rtas_parse_epow_errlog() [all …]
|
H A D | eeh_pseries.c | 4 * Actually, the pseries platform is built based on RTAS heavily. That means the 5 * pseries platform dependent EEH operations will be built on RTAS calls. The functions 34 #include <asm/rtas.h> 36 /* RTAS tokens */ 92 * The EEH RTAS calls use a tuple consisting of: (buid_hi, buid_lo, 147 * I haven't found *any* systems that don't have that RTAS call in pseries_eeh_get_pe_config_addr() 166 /* Reset PE through RTAS call */ in pseries_eeh_phb_reset() 214 * If RTAS returns a delay value that's above 100ms, cut it in pseries_eeh_phb_configure_bridge() 240 * Buffer for reporting slot-error-detail rtas calls. Its here 242 * RMO where RTAS can access it. [all …]
|
H A D | smp.c | 35 #include <asm/rtas.h> 69 "RTAS query-cpu-stopped-state failed: %i\n", status); in smp_query_cpu_stopped() 80 * started from Open Firmware. For anything else, call RTAS with the 108 * If the RTAS start-cpu token does not exist then presume the in smp_startup_cpu() 266 * We know prom_init will not have started them if RTAS supports in smp_init_pseries()
|
H A D | io_event_irq.c | 16 #include <asm/rtas.h> 23 * IO event interrupt is a mechanism provided by RTAS to return 66 * @elog: RTAS error/event log. 89 printk_once(KERN_WARNING "io_event_irq: RTAS extended event " in ioei_find_event()
|
/openbmc/qemu/tests/qtest/ |
H A D | rtas-test.c | 6 #include "libqos/rtas.h" 44 g_printerr("RTAS requires qemu-system-ppc64\n"); in main() 47 qtest_add_func("rtas/get-time-of-day", test_rtas_get_time_of_day); in main() 48 qtest_add_func("rtas/get-time-of-day-vof", test_rtas_get_time_of_day_vof); in main()
|
/openbmc/qemu/hw/ppc/ |
H A D | pegasos2.c | 463 qemu_log_mask(LOG_GUEST_ERROR, "Too few return values in RTAS call\n"); in pegasos2_rtas() 541 qemu_log_mask(LOG_UNIMP, "Unknown RTAS token %u (args=%u, rets=%u)\n", in pegasos2_rtas() 965 qemu_fdt_add_subnode(fdt, "/rtas"); in build_fdt() 966 qemu_fdt_setprop_cell(fdt, "/rtas", "system-reboot", RTAS_SYSTEM_REBOOT); in build_fdt() 967 qemu_fdt_setprop_cell(fdt, "/rtas", "hibernate", RTAS_HIBERNATE); in build_fdt() 968 qemu_fdt_setprop_cell(fdt, "/rtas", "suspend", RTAS_SUSPEND); in build_fdt() 969 qemu_fdt_setprop_cell(fdt, "/rtas", "power-off", RTAS_POWER_OFF); in build_fdt() 970 qemu_fdt_setprop_cell(fdt, "/rtas", "set-indicator", RTAS_SET_INDICATOR); in build_fdt() 971 qemu_fdt_setprop_cell(fdt, "/rtas", "display-character", in build_fdt() 973 qemu_fdt_setprop_cell(fdt, "/rtas", "write-pci-config", in build_fdt() [all …]
|
H A D | spapr_numa.c | 432 void *fdt, int rtas) in spapr_numa_FORM1_write_rtas_dt() argument 481 _FDT(fdt_setprop(fdt, rtas, "ibm,associativity-reference-points", in spapr_numa_FORM1_write_rtas_dt() 484 _FDT(fdt_setprop(fdt, rtas, "ibm,max-associativity-domains", in spapr_numa_FORM1_write_rtas_dt() 489 void *fdt, int rtas) in spapr_numa_FORM2_write_rtas_tables() argument 509 _FDT(fdt_setprop(fdt, rtas, "ibm,numa-lookup-index-table", in spapr_numa_FORM2_write_rtas_tables() 537 _FDT(fdt_setprop(fdt, rtas, "ibm,numa-distance-table", in spapr_numa_FORM2_write_rtas_tables() 550 void *fdt, int rtas) in spapr_numa_FORM2_write_rtas_dt() argument 569 _FDT(fdt_setprop(fdt, rtas, "ibm,associativity-reference-points", in spapr_numa_FORM2_write_rtas_dt() 572 _FDT(fdt_setprop(fdt, rtas, "ibm,max-associativity-domains", in spapr_numa_FORM2_write_rtas_dt() 575 spapr_numa_FORM2_write_rtas_tables(spapr, fdt, rtas); in spapr_numa_FORM2_write_rtas_dt() [all …]
|
H A D | spapr_rtas.c | 4 * Hypercall based emulated RTAS 468 "FWNMI: ibm,nmi-interlock RTAS called with FWNMI not registered.\n"); in rtas_ibm_nmi_interlock() 519 /* HACK: Some Linux early debug code uses RTAS display-character, in spapr_rtas_call() 528 hcall_dprintf("Unknown RTAS token 0x%x\n", token); in spapr_rtas_call() 553 if (strcmp(words[0], "rtas") == 0) { in spapr_qtest_callback() 589 void spapr_dt_rtas_tokens(void *fdt, int rtas) in spapr_dt_rtas_tokens() argument 600 _FDT(fdt_setprop_cell(fdt, rtas, call->name, i + RTAS_TOKEN_BASE)); in spapr_dt_rtas_tokens() 611 /* fetch rtas addr from fdt */ in spapr_get_rtas_addr() 612 rtas_node = fdt_path_offset(fdt, "/rtas"); in spapr_get_rtas_addr() 617 rtas_data = fdt_getprop(fdt, rtas_node, "linux,rtas-base", NULL); in spapr_get_rtas_addr() [all …]
|
/openbmc/linux/arch/powerpc/platforms/chrp/ |
H A D | pci.c | 21 #include <asm/rtas.h> 95 * Access functions for PCI config space using RTAS calls. 192 struct device_node *rtas; in setup_peg2() local 194 rtas = of_find_node_by_name (root, "rtas"); in setup_peg2() 195 if (rtas) { in setup_peg2() 197 of_node_put(rtas); in setup_peg2() 199 printk ("RTAS supporting Pegasos OF not found, please upgrade" in setup_peg2() 300 printk("No methods for %pOF (model %s), using RTAS\n", in chrp_find_bridges()
|
/openbmc/linux/arch/powerpc/sysdev/xics/ |
H A D | ics-rtas.c | 18 #include <asm/rtas.h> 20 /* RTAS service tokens */ 160 /* Check if RTAS knows about this interrupt */ in ics_rtas_check() 208 /* We enable the RTAS "ICS" if RTAS is present with the in ics_rtas_init()
|
/openbmc/qemu/include/hw/ppc/ |
H A D | spapr_drc.h | 78 * set via set-indicator RTAS calls 90 * set via set-indicator RTAS calls 108 * set via set-indicator RTAS calls 125 * returned via get-sensor-state RTAS calls 180 /* RTAS ibm,configure-connector state */
|