1c604fa93SJanosch Frank/* SPDX-License-Identifier: GPL-2.0-only */ 2c604fa93SJanosch Frank/* 3c604fa93SJanosch Frank * Diagnose 0x288 snippet used for PV interception testing. 4c604fa93SJanosch Frank * 5c604fa93SJanosch Frank * Copyright (c) 2021 IBM Corp 6c604fa93SJanosch Frank * 7c604fa93SJanosch Frank * Authors: 8c604fa93SJanosch Frank * Janosch Frank <frankja@linux.ibm.com> 9c604fa93SJanosch Frank */ 102c96b77eSJanosch Frank#include <asm/asm-offsets.h> 114c8a99caSJanosch Frank#include "macros.S" 122c96b77eSJanosch Frank.section .text 132c96b77eSJanosch Frank 142c96b77eSJanosch Frank/* Clean and pre-load registers that are used for diag 288 */ 152c96b77eSJanosch Frankxgr %r0, %r0 162c96b77eSJanosch Frankxgr %r1, %r1 172c96b77eSJanosch Frankxgr %r3, %r3 182c96b77eSJanosch Franklghi %r0, 1 192c96b77eSJanosch Franklghi %r1, 2 202c96b77eSJanosch Franklghi %r2, 3 212c96b77eSJanosch Frank 222c96b77eSJanosch Frank/* Let's jump to the pgm exit label on a PGM */ 234c8a99caSJanosch FrankSET_PSW_NEW_ADDR 4, exit_pgm, GEN_LC_PGM_NEW_PSW 242c96b77eSJanosch Frank 252c96b77eSJanosch Frank/* Execute the diag288 */ 262c96b77eSJanosch Frankdiag %r0, %r2, 0x288 272c96b77eSJanosch Frank 282c96b77eSJanosch Frank/* Force exit if we don't get a PGM */ 292c96b77eSJanosch Frankdiag 0, 0, 0x44 302c96b77eSJanosch Frank 312c96b77eSJanosch Frank/* Communicate the PGM code via diag9c(easiest) */ 322c96b77eSJanosch Frankexit_pgm: 332c96b77eSJanosch Franklh %r1, GEN_LC_PGM_INT_CODE 342c96b77eSJanosch Frankdiag %r1, 0, 0x9c 35