|
Pablo Greco |
e6a3ae |
From 81d722eaf6284d55e2da0ba6cc4874bfd262a7e2 Mon Sep 17 00:00:00 2001
|
|
Pablo Greco |
e6a3ae |
From: Thomas Huth <thuth@redhat.com>
|
|
Pablo Greco |
e6a3ae |
Date: Mon, 14 Oct 2019 10:06:43 +0100
|
|
Pablo Greco |
e6a3ae |
Subject: [PATCH 18/21] s390-bios: Add channel command codes/structs needed for
|
|
Pablo Greco |
e6a3ae |
dasd-ipl
|
|
Pablo Greco |
e6a3ae |
|
|
Pablo Greco |
e6a3ae |
RH-Author: Thomas Huth <thuth@redhat.com>
|
|
Pablo Greco |
e6a3ae |
Message-id: <20191014100645.22862-16-thuth@redhat.com>
|
|
Pablo Greco |
e6a3ae |
Patchwork-id: 91792
|
|
Pablo Greco |
e6a3ae |
O-Subject: [RHEL-8.2.0 qemu-kvm PATCH v2 15/17] s390-bios: Add channel command codes/structs needed for dasd-ipl
|
|
Pablo Greco |
e6a3ae |
Bugzilla: 1664376
|
|
Pablo Greco |
e6a3ae |
RH-Acked-by: Cornelia Huck <cohuck@redhat.com>
|
|
Pablo Greco |
e6a3ae |
RH-Acked-by: David Hildenbrand <david@redhat.com>
|
|
Pablo Greco |
e6a3ae |
RH-Acked-by: Jens Freimann <jfreimann@redhat.com>
|
|
Pablo Greco |
e6a3ae |
|
|
Pablo Greco |
e6a3ae |
From: "Jason J. Herne" <jjherne@linux.ibm.com>
|
|
Pablo Greco |
e6a3ae |
|
|
Pablo Greco |
e6a3ae |
The dasd IPL procedure needs to execute a few previously unused
|
|
Pablo Greco |
e6a3ae |
channel commands. Let's define them and their associated data
|
|
Pablo Greco |
e6a3ae |
structures.
|
|
Pablo Greco |
e6a3ae |
|
|
Pablo Greco |
e6a3ae |
Signed-off-by: Jason J. Herne <jjherne@linux.ibm.com>
|
|
Pablo Greco |
e6a3ae |
Acked-by: Cornelia Huck <cohuck@redhat.com>
|
|
Pablo Greco |
e6a3ae |
Acked-by: Thomas Huth <thuth@redhat.com>
|
|
Pablo Greco |
e6a3ae |
Message-Id: <1554388475-18329-15-git-send-email-jjherne@linux.ibm.com>
|
|
Pablo Greco |
e6a3ae |
Signed-off-by: Thomas Huth <thuth@redhat.com>
|
|
Pablo Greco |
e6a3ae |
(cherry picked from commit 69333c36dc85b84b021766747cffc2b53df93ae8)
|
|
Pablo Greco |
e6a3ae |
Signed-off-by: Danilo C. L. de Paula <ddepaula@redhat.com>
|
|
Pablo Greco |
e6a3ae |
---
|
|
Pablo Greco |
e6a3ae |
pc-bios/s390-ccw/cio.h | 23 +++++++++++++++++++++++
|
|
Pablo Greco |
e6a3ae |
1 file changed, 23 insertions(+)
|
|
Pablo Greco |
e6a3ae |
|
|
Pablo Greco |
e6a3ae |
diff --git a/pc-bios/s390-ccw/cio.h b/pc-bios/s390-ccw/cio.h
|
|
Pablo Greco |
e6a3ae |
index 1637e32..aaa432d 100644
|
|
Pablo Greco |
e6a3ae |
--- a/pc-bios/s390-ccw/cio.h
|
|
Pablo Greco |
e6a3ae |
+++ b/pc-bios/s390-ccw/cio.h
|
|
Pablo Greco |
e6a3ae |
@@ -200,11 +200,14 @@ typedef struct ccw1 {
|
|
Pablo Greco |
e6a3ae |
#define CCW_FLAG_IDA 0x04
|
|
Pablo Greco |
e6a3ae |
#define CCW_FLAG_SUSPEND 0x02
|
|
Pablo Greco |
e6a3ae |
|
|
Pablo Greco |
e6a3ae |
+/* Common CCW commands */
|
|
Pablo Greco |
e6a3ae |
+#define CCW_CMD_READ_IPL 0x02
|
|
Pablo Greco |
e6a3ae |
#define CCW_CMD_NOOP 0x03
|
|
Pablo Greco |
e6a3ae |
#define CCW_CMD_BASIC_SENSE 0x04
|
|
Pablo Greco |
e6a3ae |
#define CCW_CMD_TIC 0x08
|
|
Pablo Greco |
e6a3ae |
#define CCW_CMD_SENSE_ID 0xe4
|
|
Pablo Greco |
e6a3ae |
|
|
Pablo Greco |
e6a3ae |
+/* Virtio CCW commands */
|
|
Pablo Greco |
e6a3ae |
#define CCW_CMD_SET_VQ 0x13
|
|
Pablo Greco |
e6a3ae |
#define CCW_CMD_VDEV_RESET 0x33
|
|
Pablo Greco |
e6a3ae |
#define CCW_CMD_READ_FEAT 0x12
|
|
Pablo Greco |
e6a3ae |
@@ -216,6 +219,12 @@ typedef struct ccw1 {
|
|
Pablo Greco |
e6a3ae |
#define CCW_CMD_SET_CONF_IND 0x53
|
|
Pablo Greco |
e6a3ae |
#define CCW_CMD_READ_VQ_CONF 0x32
|
|
Pablo Greco |
e6a3ae |
|
|
Pablo Greco |
e6a3ae |
+/* DASD CCW commands */
|
|
Pablo Greco |
e6a3ae |
+#define CCW_CMD_DASD_READ 0x06
|
|
Pablo Greco |
e6a3ae |
+#define CCW_CMD_DASD_SEEK 0x07
|
|
Pablo Greco |
e6a3ae |
+#define CCW_CMD_DASD_SEARCH_ID_EQ 0x31
|
|
Pablo Greco |
e6a3ae |
+#define CCW_CMD_DASD_READ_MT 0x86
|
|
Pablo Greco |
e6a3ae |
+
|
|
Pablo Greco |
e6a3ae |
/*
|
|
Pablo Greco |
e6a3ae |
* Command-mode operation request block
|
|
Pablo Greco |
e6a3ae |
*/
|
|
Pablo Greco |
e6a3ae |
@@ -333,6 +342,20 @@ typedef struct irb {
|
|
Pablo Greco |
e6a3ae |
__u32 emw[8];
|
|
Pablo Greco |
e6a3ae |
} __attribute__ ((packed, aligned(4))) Irb;
|
|
Pablo Greco |
e6a3ae |
|
|
Pablo Greco |
e6a3ae |
+/* Used for SEEK ccw commands */
|
|
Pablo Greco |
e6a3ae |
+typedef struct CcwSeekData {
|
|
Pablo Greco |
e6a3ae |
+ uint16_t reserved;
|
|
Pablo Greco |
e6a3ae |
+ uint16_t cyl;
|
|
Pablo Greco |
e6a3ae |
+ uint16_t head;
|
|
Pablo Greco |
e6a3ae |
+} __attribute__((packed)) CcwSeekData;
|
|
Pablo Greco |
e6a3ae |
+
|
|
Pablo Greco |
e6a3ae |
+/* Used for SEARCH ID ccw commands */
|
|
Pablo Greco |
e6a3ae |
+typedef struct CcwSearchIdData {
|
|
Pablo Greco |
e6a3ae |
+ uint16_t cyl;
|
|
Pablo Greco |
e6a3ae |
+ uint16_t head;
|
|
Pablo Greco |
e6a3ae |
+ uint8_t record;
|
|
Pablo Greco |
e6a3ae |
+} __attribute__((packed)) CcwSearchIdData;
|
|
Pablo Greco |
e6a3ae |
+
|
|
Pablo Greco |
e6a3ae |
int enable_mss_facility(void);
|
|
Pablo Greco |
e6a3ae |
void enable_subchannel(SubChannelId schid);
|
|
Pablo Greco |
e6a3ae |
uint16_t cu_type(SubChannelId schid);
|
|
Pablo Greco |
e6a3ae |
--
|
|
Pablo Greco |
e6a3ae |
1.8.3.1
|
|
Pablo Greco |
e6a3ae |
|