powerpc/powernv: Add invalid OPAL call

This call will not be understood by OPAL, and cause it to add an error
to it's log. Among other things, this is useful for testing the
behaviour of the log as it fills up.

Signed-off-by: Joel Stanley <joel@jms.id.au>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
This commit is contained in:
Joel Stanley 2014-04-01 14:28:20 +10:30 committed by Benjamin Herrenschmidt
parent bfc36894a4
commit e28b05e7ae
3 changed files with 6 additions and 0 deletions

View File

@ -87,6 +87,7 @@ extern int opal_enter_rtas(struct rtas_args *args,
#define OPAL_ASYNC_COMPLETION -15 #define OPAL_ASYNC_COMPLETION -15
/* API Tokens (in r0) */ /* API Tokens (in r0) */
#define OPAL_INVALID_CALL -1
#define OPAL_CONSOLE_WRITE 1 #define OPAL_CONSOLE_WRITE 1
#define OPAL_CONSOLE_READ 2 #define OPAL_CONSOLE_READ 2
#define OPAL_RTC_READ 3 #define OPAL_RTC_READ 3
@ -734,6 +735,7 @@ extern struct kobject *opal_kobj;
extern struct device_node *opal_node; extern struct device_node *opal_node;
/* API functions */ /* API functions */
int64_t opal_invalid_call(void);
int64_t opal_console_write(int64_t term_number, __be64 *length, int64_t opal_console_write(int64_t term_number, __be64 *length,
const uint8_t *buffer); const uint8_t *buffer);
int64_t opal_console_read(int64_t term_number, __be64 *length, int64_t opal_console_read(int64_t term_number, __be64 *length,

View File

@ -61,6 +61,7 @@ _STATIC(opal_return)
mtcr r4; mtcr r4;
rfid rfid
OPAL_CALL(opal_invalid_call, OPAL_INVALID_CALL);
OPAL_CALL(opal_console_write, OPAL_CONSOLE_WRITE); OPAL_CALL(opal_console_write, OPAL_CONSOLE_WRITE);
OPAL_CALL(opal_console_read, OPAL_CONSOLE_READ); OPAL_CALL(opal_console_read, OPAL_CONSOLE_READ);
OPAL_CALL(opal_console_write_buffer_space, OPAL_CONSOLE_WRITE_BUFFER_SPACE); OPAL_CALL(opal_console_write_buffer_space, OPAL_CONSOLE_WRITE_BUFFER_SPACE);

View File

@ -635,3 +635,6 @@ void opal_shutdown(void)
mdelay(10); mdelay(10);
} }
} }
/* Export this so that test modules can use it */
EXPORT_SYMBOL_GPL(opal_invalid_call);