aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc
diff options
context:
space:
mode:
authorNathan Fontenot <nfont@linux.vnet.ibm.com>2015-02-10 14:43:24 -0500
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>2015-03-16 19:57:44 -0400
commit366d395c8dd8f1d92f967e4a7691dadd9b9ae1bb (patch)
tree75a529db8b90b3d789e1e427bd35ab78b3471761 /arch/powerpc
parent9eccca0843205f87c00404b663188b88eb248051 (diff)
powerpc/pseries: Define rtas hotplug event sections
In order to handle device hotplug in the kernel on pseries the hotplug request will be communicated in the kernel in the form of a rtas hotplug event. This patch adds the definition of rtas hotplug event sections. Signed-off-by: Nathan Fontenot <nfont@linux.vnet.ibm.com> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Diffstat (limited to 'arch/powerpc')
-rw-r--r--arch/powerpc/include/asm/rtas.h26
1 files changed, 26 insertions, 0 deletions
diff --git a/arch/powerpc/include/asm/rtas.h b/arch/powerpc/include/asm/rtas.h
index 2e23e92a4372..eddc8469543a 100644
--- a/arch/powerpc/include/asm/rtas.h
+++ b/arch/powerpc/include/asm/rtas.h
@@ -273,6 +273,7 @@ inline uint32_t rtas_ext_event_company_id(struct rtas_ext_event_log_v6 *ext_log)
273#define PSERIES_ELOG_SECT_ID_MANUFACT_INFO (('M' << 8) | 'I') 273#define PSERIES_ELOG_SECT_ID_MANUFACT_INFO (('M' << 8) | 'I')
274#define PSERIES_ELOG_SECT_ID_CALL_HOME (('C' << 8) | 'H') 274#define PSERIES_ELOG_SECT_ID_CALL_HOME (('C' << 8) | 'H')
275#define PSERIES_ELOG_SECT_ID_USER_DEF (('U' << 8) | 'D') 275#define PSERIES_ELOG_SECT_ID_USER_DEF (('U' << 8) | 'D')
276#define PSERIES_ELOG_SECT_ID_HOTPLUG (('H' << 8) | 'P')
276 277
277/* Vendor specific Platform Event Log Format, Version 6, section header */ 278/* Vendor specific Platform Event Log Format, Version 6, section header */
278struct pseries_errorlog { 279struct pseries_errorlog {
@@ -296,6 +297,31 @@ inline uint16_t pseries_errorlog_length(struct pseries_errorlog *sect)
296 return be16_to_cpu(sect->length); 297 return be16_to_cpu(sect->length);
297} 298}
298 299
300/* RTAS pseries hotplug errorlog section */
301struct pseries_hp_errorlog {
302 u8 resource;
303 u8 action;
304 u8 id_type;
305 u8 reserved;
306 union {
307 __be32 drc_index;
308 __be32 drc_count;
309 char drc_name[1];
310 } _drc_u;
311};
312
313#define PSERIES_HP_ELOG_RESOURCE_CPU 1
314#define PSERIES_HP_ELOG_RESOURCE_MEM 2
315#define PSERIES_HP_ELOG_RESOURCE_SLOT 3
316#define PSERIES_HP_ELOG_RESOURCE_PHB 4
317
318#define PSERIES_HP_ELOG_ACTION_ADD 1
319#define PSERIES_HP_ELOG_ACTION_REMOVE 2
320
321#define PSERIES_HP_ELOG_ID_DRC_NAME 1
322#define PSERIES_HP_ELOG_ID_DRC_INDEX 2
323#define PSERIES_HP_ELOG_ID_DRC_COUNT 3
324
299struct pseries_errorlog *get_pseries_errorlog(struct rtas_error_log *log, 325struct pseries_errorlog *get_pseries_errorlog(struct rtas_error_log *log,
300 uint16_t section_id); 326 uint16_t section_id);
301 327