[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[qemu-s390x] [PATCH v6 14/16] s390-bios: Add channel command codes/struc
From: |
Jason J. Herne |
Subject: |
[qemu-s390x] [PATCH v6 14/16] s390-bios: Add channel command codes/structs needed for dasd-ipl |
Date: |
Thu, 4 Apr 2019 10:34:33 -0400 |
The dasd IPL procedure needs to execute a few previously unused
channel commands. Let's define them and their associated data
structures.
Signed-off-by: Jason J. Herne <address@hidden>
Acked-by: Cornelia Huck <address@hidden>
Acked-by: Thomas Huth <address@hidden>
---
pc-bios/s390-ccw/cio.h | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)
diff --git a/pc-bios/s390-ccw/cio.h b/pc-bios/s390-ccw/cio.h
index 1637e32..aaa432d 100644
--- a/pc-bios/s390-ccw/cio.h
+++ b/pc-bios/s390-ccw/cio.h
@@ -200,11 +200,14 @@ typedef struct ccw1 {
#define CCW_FLAG_IDA 0x04
#define CCW_FLAG_SUSPEND 0x02
+/* Common CCW commands */
+#define CCW_CMD_READ_IPL 0x02
#define CCW_CMD_NOOP 0x03
#define CCW_CMD_BASIC_SENSE 0x04
#define CCW_CMD_TIC 0x08
#define CCW_CMD_SENSE_ID 0xe4
+/* Virtio CCW commands */
#define CCW_CMD_SET_VQ 0x13
#define CCW_CMD_VDEV_RESET 0x33
#define CCW_CMD_READ_FEAT 0x12
@@ -216,6 +219,12 @@ typedef struct ccw1 {
#define CCW_CMD_SET_CONF_IND 0x53
#define CCW_CMD_READ_VQ_CONF 0x32
+/* DASD CCW commands */
+#define CCW_CMD_DASD_READ 0x06
+#define CCW_CMD_DASD_SEEK 0x07
+#define CCW_CMD_DASD_SEARCH_ID_EQ 0x31
+#define CCW_CMD_DASD_READ_MT 0x86
+
/*
* Command-mode operation request block
*/
@@ -333,6 +342,20 @@ typedef struct irb {
__u32 emw[8];
} __attribute__ ((packed, aligned(4))) Irb;
+/* Used for SEEK ccw commands */
+typedef struct CcwSeekData {
+ uint16_t reserved;
+ uint16_t cyl;
+ uint16_t head;
+} __attribute__((packed)) CcwSeekData;
+
+/* Used for SEARCH ID ccw commands */
+typedef struct CcwSearchIdData {
+ uint16_t cyl;
+ uint16_t head;
+ uint8_t record;
+} __attribute__((packed)) CcwSearchIdData;
+
int enable_mss_facility(void);
void enable_subchannel(SubChannelId schid);
uint16_t cu_type(SubChannelId schid);
--
2.7.4
- [qemu-s390x] [PATCH v6 03/16] s390-bios: decouple common boot logic from virtio, (continued)
- [qemu-s390x] [PATCH v6 03/16] s390-bios: decouple common boot logic from virtio, Jason J. Herne, 2019/04/04
- [qemu-s390x] [PATCH v6 05/16] s390-bios: Decouple channel i/o logic from virtio, Jason J. Herne, 2019/04/04
- [qemu-s390x] [PATCH v6 04/16] s390-bios: Clean up cio.h, Jason J. Herne, 2019/04/04
- [qemu-s390x] [PATCH v6 06/16] s390-bios: Map low core memory, Jason J. Herne, 2019/04/04
- [qemu-s390x] [PATCH v6 07/16] s390-bios: ptr2u32 and u32toptr, Jason J. Herne, 2019/04/04
- [qemu-s390x] [PATCH v6 08/16] s390-bios: Support for running format-0/1 channel programs, Jason J. Herne, 2019/04/04
- [qemu-s390x] [PATCH v6 09/16] s390-bios: cio error handling, Jason J. Herne, 2019/04/04
- [qemu-s390x] [PATCH v6 11/16] s390-bios: Factor finding boot device out of virtio code path, Jason J. Herne, 2019/04/04
- [qemu-s390x] [PATCH v6 12/16] s390-bios: Refactor virtio to run channel programs via cio, Jason J. Herne, 2019/04/04
- [qemu-s390x] [PATCH v6 13/16] s390-bios: Use control unit type to determine boot method, Jason J. Herne, 2019/04/04
- [qemu-s390x] [PATCH v6 14/16] s390-bios: Add channel command codes/structs needed for dasd-ipl,
Jason J. Herne <=
- [qemu-s390x] [PATCH v6 15/16] s390-bios: Support booting from real dasd device, Jason J. Herne, 2019/04/04
- [qemu-s390x] [PATCH v6 10/16] s390-bios: Extend find_dev() for non-virtio devices, Jason J. Herne, 2019/04/04
- [qemu-s390x] [PATCH v6 16/16] s390-bios: Use control unit type to find bootable devices, Jason J. Herne, 2019/04/04
- Re: [qemu-s390x] [Qemu-devel] [PATCH v6 00/16] s390: vfio-ccw dasd ipl support, no-reply, 2019/04/04
- Re: [qemu-s390x] [Qemu-devel] [PATCH v6 00/16] s390: vfio-ccw dasd ipl support, no-reply, 2019/04/04
- Re: [qemu-s390x] [PATCH v6 00/16] s390: vfio-ccw dasd ipl support, Thomas Huth, 2019/04/05