From nobody Mon May 25 20:48:50 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=linux.ibm.com ARC-Seal: i=1; a=rsa-sha256; t=1777933105; cv=none; d=zohomail.com; s=zohoarc; b=Z62WBc/1467xkXPQLlzAXB4Nh5+9/CAHD/1FlE5hEEcKUtteHgsUenirXS/FjyTFQjGD6Q8UsRoqeERxga0q2N2HX38K5WwH5z3ZUfKL62SFjxTiubro6SJ47MfaQB3Sud4CGR2mngAeGEV/T/JZg/knMucCZw0Se90/dJVJvyw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1777933105; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=thOhMnny1Gz8L+LiPiGK1L2LeAATPm/tPxajxHiinu8=; b=E7THEAKl2do5r7oLtLK92urdFZLAlINZ417tFwclGsmKKBCAYdjVM5/uazSBnFgdfSntKLPMUSM9wjWZaC2V8/0EWLU9zrOgzuj4/jTETC02oPVLO610hEULJrLDGnm57N6pZaHoq0V4zjFNI2GBSxH5wNZBSzTsEL8WgQeoxXs= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1777933105098441.1819681559966; Mon, 4 May 2026 15:18:25 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wK1b5-00020h-91; Mon, 04 May 2026 18:17:03 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wK1ac-0001ve-3u; Mon, 04 May 2026 18:16:38 -0400 Received: from mx0b-001b2d01.pphosted.com ([148.163.158.5]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wK1aR-0002r9-6h; Mon, 04 May 2026 18:16:25 -0400 Received: from pps.filterd (m0353725.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 644EWhv53053960; Mon, 4 May 2026 22:16:20 GMT Received: from ppma21.wdc07v.mail.ibm.com (5b.69.3da9.ip4.static.sl-reverse.com [169.61.105.91]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4dw9xxgty4-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 04 May 2026 22:16:20 +0000 (GMT) Received: from pps.filterd (ppma21.wdc07v.mail.ibm.com [127.0.0.1]) by ppma21.wdc07v.mail.ibm.com (8.18.1.7/8.18.1.7) with ESMTP id 644M9pd4017840; Mon, 4 May 2026 22:16:19 GMT Received: from smtprelay03.wdc07v.mail.ibm.com ([172.16.1.70]) by ppma21.wdc07v.mail.ibm.com (PPS) with ESMTPS id 4dwvkjq1cd-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 04 May 2026 22:16:19 +0000 (GMT) Received: from smtpav06.dal12v.mail.ibm.com (smtpav06.dal12v.mail.ibm.com [10.241.53.105]) by smtprelay03.wdc07v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 644MFo3r25035270 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 4 May 2026 22:15:51 GMT Received: from smtpav06.dal12v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 2E56858059; Mon, 4 May 2026 22:16:18 +0000 (GMT) Received: from smtpav06.dal12v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 85DF958043; Mon, 4 May 2026 22:16:17 +0000 (GMT) Received: from t15.ibmuc.com (unknown [9.61.119.68]) by smtpav06.dal12v.mail.ibm.com (Postfix) with ESMTP; Mon, 4 May 2026 22:16:17 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc :content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=pp1; bh=thOhMnny1Gz8L+LiP iGK1L2LeAATPm/tPxajxHiinu8=; b=EJ36W8E2ZIvzGk3LMcqoBMrNsRf7nLsSW kB8JzZK9r/Jc4p601ozv3jJNzrSrddqkiuWG825zqTXvmd5qWFwKH9HRg47ccBys zPhl9wMXgO906+RCzoJXhiKD/VT6zCyB5TsfTuDbkylT0jfRF37912mbxrg5Ce7g vcbd1JSGT+bxLWGV1+N4mqHXJvMgXvtn5ZR/e24hBsfZu8wXZBM46VudamypF8fv Y9c2hPUUGK0FR9GqZL2H8Oh85Tnwb0DKAmuiYLG1vx01iPW2qQLtP9+q5mZHc3XI o0CD4lWbv2ymbm2wdgVOPIm2cnPyC/TrPZ5SEi24f7fFhRZ/IdZrA== From: jrossi@linux.ibm.com To: qemu-devel@nongnu.org, qemu-s390x@nongnu.org, cohuck@redhat.com Cc: jjherne@linux.ibm.com, farman@linux.ibm.com, mjrosato@linux.ibm.com, jrossi@linux.ibm.com, zycai@linux.ibm.com Subject: [PATCH 1/6] s390x: Rename SCSI IPL type to indicate CCW bus Date: Mon, 4 May 2026 18:16:08 -0400 Message-ID: <20260504221613.826825-2-jrossi@linux.ibm.com> X-Mailer: git-send-email 2.43.5 In-Reply-To: <20260504221613.826825-1-jrossi@linux.ibm.com> References: <20260504221613.826825-1-jrossi@linux.ibm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-TM-AS-GCONF: 00 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTA0MDIwNSBTYWx0ZWRfX5VClo8LrL8uN CoR7VrzZOVu0UkJHijHjHZBYzQbgln6d14+BesqEdAf7Syj1X/5Kxee6Kmpz0O+MNVP/XbqgwQ2 tv+NLhKrF2SBxkMIOYq1FMAk32YQeS2pV9QTRNdYjqvgzMqGiGH+g/c+BBGONeIrhS5LY84jy3K GLgXzCMoc1c94Rz54ufi5tPae4e7Kdi9ngHhWkH1I3+ULNoU73NfC/nFumDNtnwJDXytHRRU0hG n6BCfgRtSYrV29BoabDCJiAePkVXtUXY40RPkdvGvL3O6OkA1YPAOgNC+1tMx5WPiv6rSy4rdCc w+Dq3/HtCPR6gIG5FR1rs9hzG0d2u7yMHZ/tYvUfoVWi3dscFdar7Cgbt6q9SCpga2LurgtdhfN 65oIql+NaVXEVp6xfzb0MLsjw/qyX8JkqWVec1t0NlfqasNkysA2GbzjRoNj44BbQIT2VxgouU3 fXtML5GIkf2aEOQqaGQ== X-Proofpoint-ORIG-GUID: CUkOOmMndbUe6zhhnXz9QSwQaYxTw1Lo X-Proofpoint-GUID: CUkOOmMndbUe6zhhnXz9QSwQaYxTw1Lo X-Authority-Analysis: v=2.4 cv=ctWrVV4i c=1 sm=1 tr=0 ts=69f91ab4 cx=c_pps a=GFwsV6G8L6GxiO2Y/PsHdQ==:117 a=GFwsV6G8L6GxiO2Y/PsHdQ==:17 a=NGcC8JguVDcA:10 a=VkNPw1HP01LnGYTKEx00:22 a=RnoormkPH1_aCDwRdu11:22 a=V8glGbnc2Ofi9Qvn3v5h:22 a=VnNF1IyMAAAA:8 a=rdy38TgrvH7PjN8TWAUA:9 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-04_06,2026-04-30_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 lowpriorityscore=0 adultscore=0 clxscore=1015 suspectscore=0 impostorscore=0 spamscore=0 malwarescore=0 phishscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604200000 definitions=main-2605040205 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=148.163.158.5; envelope-from=jrossi@linux.ibm.com; helo=mx0b-001b2d01.pphosted.com X-Spam_score_int: -26 X-Spam_score: -2.7 X-Spam_bar: -- X-Spam_report: (-2.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @ibm.com) X-ZM-MESSAGEID: 1777933108235154100 Content-Type: text/plain; charset="utf-8" From: Jared Rossi As IPL support is being added for some PCI devices it is necessary to speci= fy the bus type of the SCSI controller when booting from a SCSI device. There= fore the IPL type S390_IPL_TYPE_QEMU_SCSI is changed to to S390_IPL_TYPE_CCW_SCS= I. Signed-off-by: Jared Rossi Reviewed-by: Eric Farman --- hw/s390x/ipl.c | 14 +++++++------- hw/s390x/ipl.h | 2 +- include/hw/s390x/ipl/qipl.h | 8 ++++---- pc-bios/s390-ccw/jump2ipl.c | 4 ++-- pc-bios/s390-ccw/main.c | 16 ++++++++-------- pc-bios/s390-ccw/virtio-blkdev.c | 2 +- pc-bios/s390-ccw/virtio.c | 12 ++++++------ target/s390x/diag.c | 2 +- 8 files changed, 30 insertions(+), 30 deletions(-) diff --git a/hw/s390x/ipl.c b/hw/s390x/ipl.c index 1babcd2b7d..402f5dbd7e 100644 --- a/hw/s390x/ipl.c +++ b/hw/s390x/ipl.c @@ -315,7 +315,7 @@ static void s390_ipl_set_boot_menu(S390IPLState *ipl) return; } break; - case S390_IPL_TYPE_QEMU_SCSI: + case S390_IPL_TYPE_CCW_SCSI: break; default: if (current_machine->boot_config.has_menu && current_machine->boot= _config.menu) { @@ -477,12 +477,12 @@ static bool s390_build_iplb(DeviceState *dev_st, IplP= arameterBlock *iplb) iplb->len =3D cpu_to_be32(S390_IPLB_MIN_QEMU_SCSI_LEN); iplb->blk0_len =3D cpu_to_be32(S390_IPLB_MIN_QEMU_SCSI_LEN - S390_IPLB_HEADER= _LEN); - iplb->pbt =3D S390_IPL_TYPE_QEMU_SCSI; - iplb->scsi.lun =3D cpu_to_be32(sd->lun); - iplb->scsi.target =3D cpu_to_be16(sd->id); - iplb->scsi.channel =3D cpu_to_be16(sd->channel); - iplb->scsi.devno =3D cpu_to_be16(ccw_dev->sch->devno); - iplb->scsi.ssid =3D ccw_dev->sch->ssid & 3; + iplb->pbt =3D S390_IPL_TYPE_CCW_SCSI; + iplb->ccw_scsi.lun =3D cpu_to_be32(sd->lun); + iplb->ccw_scsi.target =3D cpu_to_be16(sd->id); + iplb->ccw_scsi.channel =3D cpu_to_be16(sd->channel); + iplb->ccw_scsi.devno =3D cpu_to_be16(ccw_dev->sch->devno); + iplb->ccw_scsi.ssid =3D ccw_dev->sch->ssid & 3; break; case CCW_DEVTYPE_VFIO: iplb->len =3D cpu_to_be32(S390_IPLB_MIN_CCW_LEN); diff --git a/hw/s390x/ipl.h b/hw/s390x/ipl.h index fac30763df..5d4c618ecf 100644 --- a/hw/s390x/ipl.h +++ b/hw/s390x/ipl.h @@ -182,7 +182,7 @@ static inline bool iplb_valid(IplParameterBlock *iplb) return len >=3D S390_IPLB_MIN_CCW_LEN; case S390_IPL_TYPE_PCI: return len >=3D S390_IPLB_MIN_PCI_LEN; - case S390_IPL_TYPE_QEMU_SCSI: + case S390_IPL_TYPE_CCW_SCSI: default: return false; } diff --git a/include/hw/s390x/ipl/qipl.h b/include/hw/s390x/ipl/qipl.h index 8d3c83a80b..67db54c964 100644 --- a/include/hw/s390x/ipl/qipl.h +++ b/include/hw/s390x/ipl/qipl.h @@ -25,7 +25,7 @@ enum S390IplType { S390_IPL_TYPE_CCW =3D 0x02, S390_IPL_TYPE_PCI =3D 0x04, S390_IPL_TYPE_PV =3D 0x05, - S390_IPL_TYPE_QEMU_SCSI =3D 0xff + S390_IPL_TYPE_CCW_SCSI =3D 0xff }; typedef enum S390IplType S390IplType; =20 @@ -99,7 +99,7 @@ struct IplBlockFcp { } QEMU_PACKED; typedef struct IplBlockFcp IplBlockFcp; =20 -struct IplBlockQemuScsi { +struct IplBlockCcwScsi { uint32_t lun; uint16_t target; uint16_t channel; @@ -107,7 +107,7 @@ struct IplBlockQemuScsi { uint8_t ssid; uint16_t devno; } QEMU_PACKED; -typedef struct IplBlockQemuScsi IplBlockQemuScsi; +typedef struct IplBlockCcwScsi IplBlockCcwScsi; =20 struct IplBlockPci { uint32_t reserved0[76]; @@ -131,7 +131,7 @@ union IplParameterBlock { IplBlockCcw ccw; IplBlockFcp fcp; IPLBlockPV pv; - IplBlockQemuScsi scsi; + IplBlockCcwScsi ccw_scsi; IplBlockPci pci; }; } QEMU_PACKED; diff --git a/pc-bios/s390-ccw/jump2ipl.c b/pc-bios/s390-ccw/jump2ipl.c index 86321d0f46..f8f6b21327 100644 --- a/pc-bios/s390-ccw/jump2ipl.c +++ b/pc-bios/s390-ccw/jump2ipl.c @@ -40,10 +40,10 @@ int jump_to_IPL_code(uint64_t address) write_iplb_location(); =20 /* - * The IPLB for QEMU SCSI type devices must be rebuilt during re-ipl. = The + * The IPLB for SCSI type devices must be rebuilt during re-ipl. The * iplb.devno is set to the boot position of the target SCSI device. */ - if (iplb.pbt =3D=3D S390_IPL_TYPE_QEMU_SCSI) { + if (iplb.pbt =3D=3D S390_IPL_TYPE_CCW_SCSI) { iplb.devno =3D qipl.index; } =20 diff --git a/pc-bios/s390-ccw/main.c b/pc-bios/s390-ccw/main.c index 26287cfd81..1a9579beab 100644 --- a/pc-bios/s390-ccw/main.c +++ b/pc-bios/s390-ccw/main.c @@ -183,7 +183,7 @@ static void menu_setup(VDev *vdev) =20 switch (vdev->ipl_type) { case S390_IPL_TYPE_CCW: - case S390_IPL_TYPE_QEMU_SCSI: + case S390_IPL_TYPE_CCW_SCSI: menu_set_parms(qipl.qipl_flags & BOOT_MENU_FLAG_MASK, qipl.boot_menu_timeout); /* fall through */ @@ -249,13 +249,13 @@ static bool find_boot_device(void) debug_print_int("ssid ", blk_schid.ssid); found =3D find_subch(iplb.ccw.devno); break; - case S390_IPL_TYPE_QEMU_SCSI: + case S390_IPL_TYPE_CCW_SCSI: vdev->scsi_device_selected =3D true; - vdev->selected_scsi_device.channel =3D iplb.scsi.channel; - vdev->selected_scsi_device.target =3D iplb.scsi.target; - vdev->selected_scsi_device.lun =3D iplb.scsi.lun; - blk_schid.ssid =3D iplb.scsi.ssid & 0x3; - found =3D find_subch(iplb.scsi.devno); + vdev->selected_scsi_device.channel =3D iplb.ccw_scsi.channel; + vdev->selected_scsi_device.target =3D iplb.ccw_scsi.target; + vdev->selected_scsi_device.lun =3D iplb.ccw_scsi.lun; + blk_schid.ssid =3D iplb.ccw_scsi.ssid & 0x3; + found =3D find_subch(iplb.ccw_scsi.devno); break; case S390_IPL_TYPE_PCI: found =3D find_fid(iplb.pci.fid); @@ -339,7 +339,7 @@ static void ipl_pci_device(void) static void ipl_boot_device(void) { switch (virtio_get_device()->ipl_type) { - case S390_IPL_TYPE_QEMU_SCSI: + case S390_IPL_TYPE_CCW_SCSI: case S390_IPL_TYPE_CCW: ipl_ccw_device(); break; diff --git a/pc-bios/s390-ccw/virtio-blkdev.c b/pc-bios/s390-ccw/virtio-blk= dev.c index 98b6cec3a0..40631e0c0f 100644 --- a/pc-bios/s390-ccw/virtio-blkdev.c +++ b/pc-bios/s390-ccw/virtio-blkdev.c @@ -253,7 +253,7 @@ int virtio_blk_setup_device(VDev *vdev) puts("Using virtio-blk."); =20 switch (vdev->ipl_type) { - case S390_IPL_TYPE_QEMU_SCSI: + case S390_IPL_TYPE_CCW_SCSI: case S390_IPL_TYPE_CCW: return virtio_ccw_setup(vdev); case S390_IPL_TYPE_PCI: diff --git a/pc-bios/s390-ccw/virtio.c b/pc-bios/s390-ccw/virtio.c index 390b55c7b9..30e6b2bc16 100644 --- a/pc-bios/s390-ccw/virtio.c +++ b/pc-bios/s390-ccw/virtio.c @@ -61,7 +61,7 @@ char *virtio_get_ring_area(int ring_num) int drain_irqs(void) { switch (vdev.ipl_type) { - case S390_IPL_TYPE_QEMU_SCSI: + case S390_IPL_TYPE_CCW_SCSI: case S390_IPL_TYPE_CCW: return drain_irqs_ccw(vdev.schid); default: @@ -72,7 +72,7 @@ int drain_irqs(void) int virtio_run(VDev *vdev, int vqid, VirtioCmd *cmd) { switch (vdev->ipl_type) { - case S390_IPL_TYPE_QEMU_SCSI: + case S390_IPL_TYPE_CCW_SCSI: case S390_IPL_TYPE_CCW: return virtio_ccw_run(vdev, vqid, cmd); default: @@ -109,7 +109,7 @@ void vring_init(VRing *vr, VqInfo *info) bool vring_notify(VRing *vr) { switch (vdev.ipl_type) { - case S390_IPL_TYPE_QEMU_SCSI: + case S390_IPL_TYPE_CCW_SCSI: case S390_IPL_TYPE_CCW: vr->cookie =3D virtio_ccw_notify(vdev.schid, vr->id, vr->cookie); break; @@ -129,7 +129,7 @@ bool vring_notify(VRing *vr) bool be_ipl(void) { switch (virtio_get_device()->ipl_type) { - case S390_IPL_TYPE_QEMU_SCSI: + case S390_IPL_TYPE_CCW_SCSI: case S390_IPL_TYPE_CCW: return true; case S390_IPL_TYPE_PCI: @@ -230,7 +230,7 @@ int vring_wait_reply(void) int virtio_reset(VDev *vdev) { switch (vdev->ipl_type) { - case S390_IPL_TYPE_QEMU_SCSI: + case S390_IPL_TYPE_CCW_SCSI: case S390_IPL_TYPE_CCW: return virtio_ccw_reset(vdev); case S390_IPL_TYPE_PCI: @@ -243,7 +243,7 @@ int virtio_reset(VDev *vdev) bool virtio_is_supported(VDev *vdev) { switch (vdev->ipl_type) { - case S390_IPL_TYPE_QEMU_SCSI: + case S390_IPL_TYPE_CCW_SCSI: case S390_IPL_TYPE_CCW: return virtio_ccw_is_supported(vdev); default: diff --git a/target/s390x/diag.c b/target/s390x/diag.c index da44b0133e..06bdb2bbc8 100644 --- a/target/s390x/diag.c +++ b/target/s390x/diag.c @@ -133,7 +133,7 @@ void handle_diag_308(CPUS390XState *env, uint64_t r1, u= int64_t r3, uintptr_t ra) =20 valid =3D subcode =3D=3D DIAG308_PV_SET ? iplb_valid_pv(iplb) : ip= lb_valid(iplb); if (!valid) { - if (subcode =3D=3D DIAG308_SET && iplb->pbt =3D=3D S390_IPL_TY= PE_QEMU_SCSI) { + if (subcode =3D=3D DIAG308_SET && iplb->pbt =3D=3D S390_IPL_TY= PE_CCW_SCSI) { s390_rebuild_iplb(iplb->devno, iplb); s390_ipl_update_diag308(iplb); env->regs[r1 + 1] =3D DIAG_308_RC_OK; --=20 2.52.0 From nobody Mon May 25 20:48:50 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=linux.ibm.com ARC-Seal: i=1; a=rsa-sha256; t=1777933091; cv=none; d=zohomail.com; s=zohoarc; b=eoOjxAncUj58roixI+IGEISVggiXPVOqojpIDvH1fwSlcQxkgV05ZiWl5omYl8X0SU2tZBU3I6IRIIGDqEfl8s77spgrxrpz7NIz6/YO6DfLTPS9/trdtaRI1W0/U2mt+pxHjI9j+klEHAWdGYnbiR7FnddTjYXbMES2laqLF64= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1777933091; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=9s1408RELOIbhfnBg1uNbnxAyiluQ7ImoKZEZVXoL+0=; b=W6umaGuJVBTPPQoKpMmoczM9Nv/Wt7tG479hFs2zBJYXms2UcOII81Iu2ZpiseVOXZq85HJYnkXZUg7qptX+uMkise9QeTBFq+9Zz5JTOpucYsTrmTwXIon09lfC9T5/oQj9swDKeeqFkyatwdEA5WFMgBE28d0WKo+FvjYbSNg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1777933091572371.9650943898115; Mon, 4 May 2026 15:18:11 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wK1b2-000200-48; Mon, 04 May 2026 18:17:00 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wK1ac-0001vd-3Y; Mon, 04 May 2026 18:16:38 -0400 Received: from mx0b-001b2d01.pphosted.com ([148.163.158.5]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wK1aQ-0002rK-Vg; Mon, 04 May 2026 18:16:25 -0400 Received: from pps.filterd (m0356516.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 644DtBnW2799040; Mon, 4 May 2026 22:16:21 GMT Received: from ppma11.dal12v.mail.ibm.com (db.9e.1632.ip4.static.sl-reverse.com [50.22.158.219]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4dw9w68vph-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 04 May 2026 22:16:21 +0000 (GMT) Received: from pps.filterd (ppma11.dal12v.mail.ibm.com [127.0.0.1]) by ppma11.dal12v.mail.ibm.com (8.18.1.7/8.18.1.7) with ESMTP id 644M9tR4001293; Mon, 4 May 2026 22:16:20 GMT Received: from smtprelay06.dal12v.mail.ibm.com ([172.16.1.8]) by ppma11.dal12v.mail.ibm.com (PPS) with ESMTPS id 4dwx9y6t41-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 04 May 2026 22:16:20 +0000 (GMT) Received: from smtpav06.dal12v.mail.ibm.com (smtpav06.dal12v.mail.ibm.com [10.241.53.105]) by smtprelay06.dal12v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 644MGK4R28443382 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 4 May 2026 22:16:20 GMT Received: from smtpav06.dal12v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id EA1985805E; Mon, 4 May 2026 22:16:19 +0000 (GMT) Received: from smtpav06.dal12v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 4DA9E58055; Mon, 4 May 2026 22:16:19 +0000 (GMT) Received: from t15.ibmuc.com (unknown [9.61.119.68]) by smtpav06.dal12v.mail.ibm.com (Postfix) with ESMTP; Mon, 4 May 2026 22:16:19 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc :content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=pp1; bh=9s1408RELOIbhfnBg 1uNbnxAyiluQ7ImoKZEZVXoL+0=; b=I82vO8aDBC2EoSfWu4jDgGwUTyedcPb+Y ADM8iSj6Tgdk04zFjH+f1dS/mqFTYaYNN8urM2ktrfQwrpSpHLAi1eKafaP5Ja37 7QLQbRvoTvIQb7V8h+sL6dwezoopNy648OHgQCbRk3NiKZzZn3wzF4aLo7oxN7S7 BAbxHe3p2WdSUE+TdcUpZQEc6iuZcGrcyi3ph247AxTseaY8M7xiVFh8SsTMusmL UnKWnYZiNd9JXVNqC1YGECsDPybmciOOqsad7JvZFDFvUuKGM8o+FW5uHrtjVDU7 nNOcf36yfggKhynykUl98Su+G+DD0cw16L4DvWle98ItsFK5vjA5w== From: jrossi@linux.ibm.com To: qemu-devel@nongnu.org, qemu-s390x@nongnu.org, cohuck@redhat.com Cc: jjherne@linux.ibm.com, farman@linux.ibm.com, mjrosato@linux.ibm.com, jrossi@linux.ibm.com, zycai@linux.ibm.com Subject: [PATCH 2/5] pc-bios/s390-ccw: Add per-queue notification offset for multi-queue virtio configurations Date: Mon, 4 May 2026 18:16:09 -0400 Message-ID: <20260504221613.826825-3-jrossi@linux.ibm.com> X-Mailer: git-send-email 2.43.5 In-Reply-To: <20260504221613.826825-1-jrossi@linux.ibm.com> References: <20260504221613.826825-1-jrossi@linux.ibm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-TM-AS-GCONF: 00 X-Authority-Analysis: v=2.4 cv=XPQAjwhE c=1 sm=1 tr=0 ts=69f91ab5 cx=c_pps a=aDMHemPKRhS1OARIsFnwRA==:117 a=aDMHemPKRhS1OARIsFnwRA==:17 a=NGcC8JguVDcA:10 a=VkNPw1HP01LnGYTKEx00:22 a=RnoormkPH1_aCDwRdu11:22 a=Y2IxJ9c9Rs8Kov3niI8_:22 a=VnNF1IyMAAAA:8 a=_Y7PSZvCIfzLFVzbsK0A:9 X-Proofpoint-ORIG-GUID: aVSR5eUzCySXSXsf25xsUmPM-Ck1_xRG X-Proofpoint-GUID: aVSR5eUzCySXSXsf25xsUmPM-Ck1_xRG X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTA0MDIwNSBTYWx0ZWRfXxOjmyC/oSJFA L0lCNJZJNwXSID+wGWojG7g9AtZ2IXF/8J5J+uyn6EjLemYnp+kMw7bWN56yCWaLT6EEptPDUKo jJ1RaIKOkmnrXG7wV8ZTJt14kH4Y+RXdfFsMtNv5FJaYv0QALKZlwbccLIz1On7hLhz50rhGPnd asW9xDhIg5JaPrg0KL+oCOQuQebJSxU3zYfL6R0WasK39wDw37MTR6XqWzPDOUfYJVZhCJzWL63 8cLDihqtDRDJl0hhd1btW5/48YkdO4VKZ9K5AahTBT67cQ/ynMhNi3oapJ1yCYWd5QbdN+vf6cu vSqrnc32MEq61ss5esSfdWt8U1w+jaeLFJHOgpEaqngV4FjlJMVFvGniA7E5U/9WTKSi4aP8V3m Ruergn8npJG/cdPL1NUopKuWCIcCUTb4nUXei5v4Yhq90kLR1YKYrdX6WB8csfZjsCrAJ9O01RQ hYTJSHWaSV3WRxWUzkQ== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-04_06,2026-04-30_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 lowpriorityscore=0 suspectscore=0 adultscore=0 spamscore=0 priorityscore=1501 impostorscore=0 phishscore=0 malwarescore=0 clxscore=1015 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604200000 definitions=main-2605040205 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=148.163.158.5; envelope-from=jrossi@linux.ibm.com; helo=mx0b-001b2d01.pphosted.com X-Spam_score_int: -26 X-Spam_score: -2.7 X-Spam_bar: -- X-Spam_report: (-2.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @ibm.com) X-ZM-MESSAGEID: 1777933093959154100 Content-Type: text/plain; charset="utf-8" From: Jared Rossi The initial support for virtio-blk-pci IPL devices used a single virt-queue= , but other device types require multiple queues, and for PCI device types this a= lso requires a per-queue notification offset. Add a PCI notify field to the VRing struct so that each queue has a unique notify offset. Also re-select the target queue before writing buffers to ensure the proper queue is active. Signed-off-by: Jared Rossi --- pc-bios/s390-ccw/virtio-pci.c | 36 ++++++++++++++++++++++------------- pc-bios/s390-ccw/virtio-pci.h | 3 ++- pc-bios/s390-ccw/virtio.c | 4 +++- pc-bios/s390-ccw/virtio.h | 1 + 4 files changed, 29 insertions(+), 15 deletions(-) diff --git a/pc-bios/s390-ccw/virtio-pci.c b/pc-bios/s390-ccw/virtio-pci.c index 53bdb52e76..736869f4f5 100644 --- a/pc-bios/s390-ccw/virtio-pci.c +++ b/pc-bios/s390-ccw/virtio-pci.c @@ -74,10 +74,10 @@ int virtio_pci_reset(VDev *vdev) return 0; } =20 -long virtio_pci_notify(int vq_id) +long virtio_pci_notify(VRing *vr) { - uint32_t offset =3D n_cap.off + notify_mult * q_notify_offset; - return vpci_bswap16_write(offset, n_cap.bar, (uint16_t) vq_id); + uint32_t offset =3D n_cap.off + notify_mult * vr->pci_notify; + return vpci_bswap16_write(offset, n_cap.bar, (uint16_t) vr->id); } =20 /* @@ -166,7 +166,7 @@ int vpci_read_flex(uint64_t offset, uint8_t pcias, void= *buf, int len) return 0; } =20 -static int vpci_set_selected_vq(uint16_t queue_num) +int vpci_set_selected_vq(uint16_t queue_num) { return vpci_bswap16_write(c_cap.off + VPCI_C_OFFSET_Q_SELECT, c_cap.ba= r, queue_num); } @@ -332,7 +332,6 @@ int virtio_pci_setup(VDev *vdev) VRing *vr; int rc; uint8_t status; - uint16_t vq_size; int i =3D 0; =20 vdev->guessed_disk_nature =3D VIRTIO_GDN_NONE; @@ -380,28 +379,39 @@ int virtio_pci_setup(VDev *vdev) return -EIO; } =20 - if (vpci_read_bswap16(VPCI_C_OFFSET_Q_SIZE, c_cap.bar, &vq_size)) { - puts("Failed to read virt-queue configuration"); - return -EIO; - } - /* Configure virt-queues for pci */ for (i =3D 0; i < vdev->nr_vqs; i++) { + uint16_t vq_size; + uint16_t vq_notify; VqInfo info =3D { .queue =3D (unsigned long long) virtio_get_ring_area(i), .align =3D KVM_S390_VIRTIO_RING_ALIGN, .index =3D i, - .num =3D vq_size, + .num =3D 0, }; =20 vr =3D &vdev->vrings[i]; - vring_init(vr, &info); =20 - if (vpci_set_selected_vq(vr->id)) { + if (vpci_set_selected_vq(i)) { puts("Failed to set selected virt-queue"); return -EIO; } =20 + if (vpci_read_bswap16(VPCI_C_OFFSET_Q_SIZE, c_cap.bar, &vq_size)) { + puts("Failed to read virt-queue configuration"); + return -EIO; + } + + info.num =3D vq_size; + + if (vpci_read_bswap16(c_cap.off + VPCI_C_OFFSET_Q_NOFF, c_cap.bar,= &vq_notify)) { + puts("Failed to read virt-queue configuration"); + return -EIO; + } + + vr->pci_notify =3D vq_notify; + vring_init(vr, &info); + rc =3D set_pci_vq_addr(VPCI_C_OFFSET_Q_DESCLO, vr->desc); rc |=3D set_pci_vq_addr(VPCI_C_OFFSET_Q_AVAILLO, vr->avail); rc |=3D set_pci_vq_addr(VPCI_C_OFFSET_Q_USEDLO, vr->used); diff --git a/pc-bios/s390-ccw/virtio-pci.h b/pc-bios/s390-ccw/virtio-pci.h index 90d07cb9a7..993fc285ac 100644 --- a/pc-bios/s390-ccw/virtio-pci.h +++ b/pc-bios/s390-ccw/virtio-pci.h @@ -62,9 +62,10 @@ struct VirtioPciCap { }; typedef struct VirtioPciCap VirtioPciCap; =20 +int vpci_set_selected_vq(uint16_t queue_num); void virtio_pci_id2type(VDev *vdev, uint16_t device_id); int virtio_pci_reset(VDev *vdev); -long virtio_pci_notify(int vq_id); +long virtio_pci_notify(VRing *vr); int virtio_pci_setup(VDev *vdev); int virtio_pci_setup_device(void); =20 diff --git a/pc-bios/s390-ccw/virtio.c b/pc-bios/s390-ccw/virtio.c index 30e6b2bc16..00850acc2f 100644 --- a/pc-bios/s390-ccw/virtio.c +++ b/pc-bios/s390-ccw/virtio.c @@ -114,7 +114,8 @@ bool vring_notify(VRing *vr) vr->cookie =3D virtio_ccw_notify(vdev.schid, vr->id, vr->cookie); break; case S390_IPL_TYPE_PCI: - vr->cookie =3D virtio_pci_notify(vr->id); + vr->cookie =3D virtio_pci_notify(vr); + break; default: return 1; } @@ -154,6 +155,7 @@ static void vr_bswap_descriptor(VRingDesc *desc) void vring_send_buf(VRing *vr, void *p, int len, int flags) { if (!be_ipl()) { + vpci_set_selected_vq(vr->id); vr->avail->idx =3D bswap16(vr->avail->idx); } =20 diff --git a/pc-bios/s390-ccw/virtio.h b/pc-bios/s390-ccw/virtio.h index d32a4830ca..75ae5bdbc2 100644 --- a/pc-bios/s390-ccw/virtio.h +++ b/pc-bios/s390-ccw/virtio.h @@ -107,6 +107,7 @@ struct VRing { VRingUsed *used; long cookie; int id; + uint16_t pci_notify; }; typedef struct VRing VRing; =20 --=20 2.52.0 From nobody Mon May 25 20:48:50 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=linux.ibm.com ARC-Seal: i=1; a=rsa-sha256; t=1777933100; cv=none; d=zohomail.com; s=zohoarc; b=dIxjglXDscEVYgfHoIOy8wDWswaLQ7MAgqf1JQknd1yk95NXxUErAVzJH6wpXDa+LzlYhy4Ekj+t+7DR+s90GIIWB2Y4JvhwdEmHeIzPH51Kl6cWR0wFK4nw0cbKK0FiExHFm00V0DjcQ1INEjuGXpleAKHl2BjmVLuLZQFrhOg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1777933100; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=+3QkYVr0hUmoBCdQGPlXBbNPoa12+z4M4QE/ERmfb60=; b=hQutmqLy1ssmAv4L24DkKjz8Tq4+fz4eTbZWi1fxo/kuCvZhGBclgTThIwDmS+mmssm1S2mn23KyoEsPmSTZt8B+GDjwa3fQnVCRX42cbzBdaE9ntGUh6gLXM0RAwaTV4t8J0uQS6kMQR8oA1b1kbxfhDchnQN20eaJQSxiogi8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1777933100945579.9666386910803; Mon, 4 May 2026 15:18:20 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wK1b8-000210-80; Mon, 04 May 2026 18:17:09 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wK1ag-0001vv-Gx; Mon, 04 May 2026 18:16:40 -0400 Received: from mx0b-001b2d01.pphosted.com ([148.163.158.5]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wK1ac-0002rp-5f; Mon, 04 May 2026 18:16:36 -0400 Received: from pps.filterd (m0353725.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 644EdUZS3352054; Mon, 4 May 2026 22:16:23 GMT Received: from ppma23.wdc07v.mail.ibm.com (5d.69.3da9.ip4.static.sl-reverse.com [169.61.105.93]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4dw9xxgty9-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 04 May 2026 22:16:23 +0000 (GMT) Received: from pps.filterd (ppma23.wdc07v.mail.ibm.com [127.0.0.1]) by ppma23.wdc07v.mail.ibm.com (8.18.1.7/8.18.1.7) with ESMTP id 644M9gbi012907; Mon, 4 May 2026 22:16:22 GMT Received: from smtprelay02.dal12v.mail.ibm.com ([172.16.1.4]) by ppma23.wdc07v.mail.ibm.com (PPS) with ESMTPS id 4dww3gxyuu-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 04 May 2026 22:16:22 +0000 (GMT) Received: from smtpav06.dal12v.mail.ibm.com (smtpav06.dal12v.mail.ibm.com [10.241.53.105]) by smtprelay02.dal12v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 644MGLft15860456 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 4 May 2026 22:16:21 GMT Received: from smtpav06.dal12v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id A8A4D5805D; Mon, 4 May 2026 22:16:21 +0000 (GMT) Received: from smtpav06.dal12v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 0F29F58043; Mon, 4 May 2026 22:16:21 +0000 (GMT) Received: from t15.ibmuc.com (unknown [9.61.119.68]) by smtpav06.dal12v.mail.ibm.com (Postfix) with ESMTP; Mon, 4 May 2026 22:16:20 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc :content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=pp1; bh=+3QkYVr0hUmoBCdQG PlXBbNPoa12+z4M4QE/ERmfb60=; b=TxNjvGAgn0/kA7DgF5GRX5suJ7hoq/Ydh tLRRQqltlVzwFBqNdgowzEYzW8n4mQXWjq4l6R7CMIzXz3Q31oxthlOvGtMlOGGA RG5uR+Bo5K90tS+e50fiVUcudJyzaHeFDzEApPI99qtC2g9lbQ1D5LxECdA9GouH RqMmBd8XEDHr4mHXLgS//SO1xgSHLtSH4JAfeXZEfrj4vh267cbEMV8UjX031bxL kHx47giHao26qcSMz5F8zpLXUPxswA3XDyjqhBhqXxcOj59kSMI3qGyDmBaq+kbm Cp8ndeIX8JQXOJtuiRCwu8qAbqAwv2Ok5Nz3KXykr0mjMc9Fv86Cw== From: jrossi@linux.ibm.com To: qemu-devel@nongnu.org, qemu-s390x@nongnu.org, cohuck@redhat.com Cc: jjherne@linux.ibm.com, farman@linux.ibm.com, mjrosato@linux.ibm.com, jrossi@linux.ibm.com, zycai@linux.ibm.com Subject: [PATCH 3/6] pc-bios/s390-ccw: Rename Virtio CCW run function for generic use Date: Mon, 4 May 2026 18:16:10 -0400 Message-ID: <20260504221613.826825-4-jrossi@linux.ibm.com> X-Mailer: git-send-email 2.43.5 In-Reply-To: <20260504221613.826825-1-jrossi@linux.ibm.com> References: <20260504221613.826825-1-jrossi@linux.ibm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-TM-AS-GCONF: 00 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTA0MDIwNSBTYWx0ZWRfXxBey4f6BcSl0 N7iHT8RDvA1knZWa4zKGyijyAHnXHQvoHuifpOSHbnkYII63R9NIPTEOFV0Y6dDhpRRa0Ya54GO jHZR7dcncNXAcwHpn0XNpYACmdeoxXzeIxLBIxc3VUzjq4ffdhD46Cd1ugQ3M0rze229DFSMukH fUWfFYlf0Dgb8MfQWgUTGS8LmE1S/UHiXePVJw97/Aaco22QpC528s210jbAOl/KX4nq+tx7wCN TDZhY/NHIR+oq069Truw9++hFLFetTMNWt6yPWQZOh86LNFjPsPdRHG14CvRAtPyRfWKTbp6T6g 2iz2z2uK+Z4SYnqB/sYd2xdV5mjLbLNlMe5ISwE9BnjaqUJGuOmZCSgyBqdBtItuO39vnjQrlwM IasoRDetGED48IhBA7vsOwc6dC99yWWt1j235B9hQpNyv9HaGbyIhzLkR80mBDsPwjGGx1NU/wR xXA1/CJinSpwuyGWMYw== X-Proofpoint-ORIG-GUID: ajAHJUGzEYBaQ2r58Z58lwqRnzSZltUP X-Proofpoint-GUID: ajAHJUGzEYBaQ2r58Z58lwqRnzSZltUP X-Authority-Analysis: v=2.4 cv=ctWrVV4i c=1 sm=1 tr=0 ts=69f91ab7 cx=c_pps a=3Bg1Hr4SwmMryq2xdFQyZA==:117 a=3Bg1Hr4SwmMryq2xdFQyZA==:17 a=NGcC8JguVDcA:10 a=VkNPw1HP01LnGYTKEx00:22 a=RnoormkPH1_aCDwRdu11:22 a=V8glGbnc2Ofi9Qvn3v5h:22 a=VnNF1IyMAAAA:8 a=HwR0zErlyjH57yb9cWcA:9 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-04_06,2026-04-30_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 lowpriorityscore=0 adultscore=0 clxscore=1015 suspectscore=0 impostorscore=0 spamscore=0 malwarescore=0 phishscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604200000 definitions=main-2605040205 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=148.163.158.5; envelope-from=jrossi@linux.ibm.com; helo=mx0b-001b2d01.pphosted.com X-Spam_score_int: -26 X-Spam_score: -2.7 X-Spam_bar: -- X-Spam_report: (-2.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @ibm.com) X-ZM-MESSAGEID: 1777933102017154100 Content-Type: text/plain; charset="utf-8" From: Jared Rossi The same function can be used for issuing both CCW and PCI virtio commands,= so remove CCW from the existing name. Additionally, move the function out of = the CCW specific file and make it static. Signed-off-by: Jared Rossi Reviewed-by: Eric Farman --- pc-bios/s390-ccw/virtio-ccw.c | 17 ----------------- pc-bios/s390-ccw/virtio-ccw.h | 1 - pc-bios/s390-ccw/virtio.c | 19 ++++++++++++++++++- 3 files changed, 18 insertions(+), 19 deletions(-) diff --git a/pc-bios/s390-ccw/virtio-ccw.c b/pc-bios/s390-ccw/virtio-ccw.c index 5cb2158ed2..ea5dbc2857 100644 --- a/pc-bios/s390-ccw/virtio-ccw.c +++ b/pc-bios/s390-ccw/virtio-ccw.c @@ -107,23 +107,6 @@ long virtio_ccw_notify(SubChannelId schid, int vq_idx,= long cookie) vq_idx, cookie); } =20 -int virtio_ccw_run(VDev *vdev, int vqid, VirtioCmd *cmd) -{ - VRing *vr =3D &vdev->vrings[vqid]; - int i =3D 0; - - do { - vring_send_buf(vr, cmd[i].data, cmd[i].size, - cmd[i].flags | (i ? VRING_HIDDEN_IS_CHAIN : 0)); - } while (cmd[i++].flags & VRING_DESC_F_NEXT); - - vring_wait_reply(); - if (drain_irqs()) { - return -1; - } - return 0; -} - int virtio_ccw_reset(VDev *vdev) { return run_ccw(vdev, CCW_CMD_VDEV_RESET, NULL, 0, false); diff --git a/pc-bios/s390-ccw/virtio-ccw.h b/pc-bios/s390-ccw/virtio-ccw.h index a506767eaa..43d21906e5 100644 --- a/pc-bios/s390-ccw/virtio-ccw.h +++ b/pc-bios/s390-ccw/virtio-ccw.h @@ -16,7 +16,6 @@ extern SubChannelId blk_schid; /* virtio-ccw.c */ int drain_irqs_ccw(SubChannelId schid); bool virtio_ccw_is_supported(VDev *vdev); -int virtio_ccw_run(VDev *vdev, int vqid, VirtioCmd *cmd); long virtio_ccw_notify(SubChannelId schid, int vq_idx, long cookie); int virtio_ccw_setup(VDev *vdev); int virtio_ccw_reset(VDev *vdev); diff --git a/pc-bios/s390-ccw/virtio.c b/pc-bios/s390-ccw/virtio.c index 00850acc2f..79dccdcbfc 100644 --- a/pc-bios/s390-ccw/virtio.c +++ b/pc-bios/s390-ccw/virtio.c @@ -69,12 +69,29 @@ int drain_irqs(void) } } =20 +static int virtio_do_run(VDev *vdev, int vqid, VirtioCmd *cmd) +{ + VRing *vr =3D &vdev->vrings[vqid]; + int i =3D 0; + + do { + vring_send_buf(vr, cmd[i].data, cmd[i].size, + cmd[i].flags | (i ? VRING_HIDDEN_IS_CHAIN : 0)); + } while (cmd[i++].flags & VRING_DESC_F_NEXT); + + vring_wait_reply(); + if (drain_irqs()) { + return -1; + } + return 0; +} + int virtio_run(VDev *vdev, int vqid, VirtioCmd *cmd) { switch (vdev->ipl_type) { case S390_IPL_TYPE_CCW_SCSI: case S390_IPL_TYPE_CCW: - return virtio_ccw_run(vdev, vqid, cmd); + return virtio_do_run(vdev, vqid, cmd); default: return -1; } --=20 2.52.0 From nobody Mon May 25 20:48:50 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=linux.ibm.com ARC-Seal: i=1; a=rsa-sha256; t=1777933078; cv=none; d=zohomail.com; s=zohoarc; b=hFzbwrT23EhOecVBkkbNIMgKVBbuqmZrQxqOspwgwWPbEyME5bL23DrraU1CtQyQV7KYu5JpsVhjMigKHnWID6fwgXhUchHMAS6da/0mgTpFb+zy4lberQSypTLZqAKadRnIRkcCEFFqspc+Pnl126Z6zkWvzPCXiIfUKVYuADk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1777933078; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=C7nsx+MkAUaI3LHKcx9PZPRwc5JqzC5aODaFyFmH8So=; b=Xcu2Xq7fSpyx+DnDhipz15vldX+a6Hn7OS1kuBfDUCWfyzSdXJCLacoZu2xUKyJ8wUEgDDZWZJ2C28QXLedFiH3tAc4n+sp3bCBS8t1nGHAEZp9uQB41u/DKsJHoghqHS95wBnxnjGdSL7KuFJw6zgos8jnLkFXH9F16fgjitUw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1777933078487933.252672990085; Mon, 4 May 2026 15:17:58 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wK1ay-0001ym-81; Mon, 04 May 2026 18:16:56 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wK1ag-0001vy-HC; Mon, 04 May 2026 18:16:40 -0400 Received: from mx0b-001b2d01.pphosted.com ([148.163.158.5]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wK1aZ-0002sE-Bi; Mon, 04 May 2026 18:16:35 -0400 Received: from pps.filterd (m0360072.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 644Fu4rW3001038; Mon, 4 May 2026 22:16:26 GMT Received: from ppma13.dal12v.mail.ibm.com (dd.9e.1632.ip4.static.sl-reverse.com [50.22.158.221]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4dw9y4gvfj-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 04 May 2026 22:16:25 +0000 (GMT) Received: from pps.filterd (ppma13.dal12v.mail.ibm.com [127.0.0.1]) by ppma13.dal12v.mail.ibm.com (8.18.1.7/8.18.1.7) with ESMTP id 644M9gke012305; Mon, 4 May 2026 22:16:25 GMT Received: from smtprelay05.wdc07v.mail.ibm.com ([172.16.1.72]) by ppma13.dal12v.mail.ibm.com (PPS) with ESMTPS id 4dwwtg6w5f-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 04 May 2026 22:16:25 +0000 (GMT) Received: from smtpav06.dal12v.mail.ibm.com (smtpav06.dal12v.mail.ibm.com [10.241.53.105]) by smtprelay05.wdc07v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 644MGNFj19399296 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 4 May 2026 22:16:23 GMT Received: from smtpav06.dal12v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 3C7B758055; Mon, 4 May 2026 22:16:23 +0000 (GMT) Received: from smtpav06.dal12v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 9769B58043; Mon, 4 May 2026 22:16:22 +0000 (GMT) Received: from t15.ibmuc.com (unknown [9.61.119.68]) by smtpav06.dal12v.mail.ibm.com (Postfix) with ESMTP; Mon, 4 May 2026 22:16:22 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc :content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=pp1; bh=C7nsx+MkAUaI3LHKc x9PZPRwc5JqzC5aODaFyFmH8So=; b=D+p4tP8plMdEehNf1Bh7HotPLNepWMNMI OGS4hUbriFc8uNIw+NXQqBytgjvT8MpnP8uYbhoi0C8dRbWXam0NW4372BYGdiLH ufN0+dloTjNIRfPjX6AmxQWV6p3giHAiR+GCMmGhnvbmLz21g2W0n7XtIHXOb7ky VkMYL/tI8i4mSueNcyQqZhDAE5G7Mwnb/6aBIzMnQTMllwGjTMsmkYnFuyiD4SIT Smp37xtzcgZCNqcUilOAn5lGaWGNu9BLhlPKSjvkjBG3/OWXFN2jbOxZbYDNmWkg +Xp0lM2zMQxWK0wYsVvnakrchXQNxgMYbZDD7kT7Gy6ULlL21hPmA== From: jrossi@linux.ibm.com To: qemu-devel@nongnu.org, qemu-s390x@nongnu.org, cohuck@redhat.com Cc: jjherne@linux.ibm.com, farman@linux.ibm.com, mjrosato@linux.ibm.com, jrossi@linux.ibm.com, zycai@linux.ibm.com Subject: [PATCH 4/6] s390x: Introduce PCI SCSI IPLB and boot type Date: Mon, 4 May 2026 18:16:11 -0400 Message-ID: <20260504221613.826825-5-jrossi@linux.ibm.com> X-Mailer: git-send-email 2.43.5 In-Reply-To: <20260504221613.826825-1-jrossi@linux.ibm.com> References: <20260504221613.826825-1-jrossi@linux.ibm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-TM-AS-GCONF: 00 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTA0MDIwNSBTYWx0ZWRfX8LF8egXOIQi5 ZOpW78DkFaI2l1GfrfjzR5fzjWSSiRzxUEQxbCX9efVnXJgiGkm8z8Mm+F8ECbgbVu84iHCppgU b1ZZci5RNFzQJlomQw8ORpOs7BxHRFB2UottubbgMvNSGQoQj7MdUm3b8HFNhEDMYTc6t0Yzxr6 Jv15cHqQOtRxz1SQq+USrDzEaJl9m9WevatUg1lYTueXVQsqpH4UeZhLYyK3ZSwrOdOI+5Lze9H CxxiZLo+PI3d9+UwJDqXZeya9raeocn6xUX8CnmCbdcMlaIytZ5OsvB5HZGq1DhtSrGQ88hoGcF PB+AxLODP44aTRAuenwqOBZntKID7QEOUcIdzjQYLtv/wBwyNl5F5t+ujRN2/G1lE2SW9EPtxpY ErHHf/D1gaPpiKgzH4p36Cj3dExO2LVJRmjTqXHTUNsGj6G8MfP50J/MEwBYTh0Hnw1MZQrvdOk YP+cb+WFnLBT33kYuqA== X-Authority-Analysis: v=2.4 cv=J4GaKgnS c=1 sm=1 tr=0 ts=69f91ab9 cx=c_pps a=AfN7/Ok6k8XGzOShvHwTGQ==:117 a=AfN7/Ok6k8XGzOShvHwTGQ==:17 a=NGcC8JguVDcA:10 a=VkNPw1HP01LnGYTKEx00:22 a=RnoormkPH1_aCDwRdu11:22 a=RzCfie-kr_QcCd8fBx8p:22 a=VnNF1IyMAAAA:8 a=6Cfbqmhnqq_KncMTHv0A:9 X-Proofpoint-GUID: wC7amXW52LmHscOTBpXu6iaiD-zbNXlf X-Proofpoint-ORIG-GUID: wC7amXW52LmHscOTBpXu6iaiD-zbNXlf X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-04_06,2026-04-30_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 clxscore=1015 malwarescore=0 bulkscore=0 suspectscore=0 priorityscore=1501 spamscore=0 phishscore=0 adultscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604200000 definitions=main-2605040205 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=148.163.158.5; envelope-from=jrossi@linux.ibm.com; helo=mx0b-001b2d01.pphosted.com X-Spam_score_int: -26 X-Spam_score: -2.7 X-Spam_bar: -- X-Spam_report: (-2.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @ibm.com) X-ZM-MESSAGEID: 1777933079434158500 Content-Type: text/plain; charset="utf-8" From: Jared Rossi Define a new IPLB format for SCSI PCI devices and add cases to handle it. Signed-off-by: Jared Rossi --- include/hw/s390x/ipl/qipl.h | 15 +++++++++++++++ pc-bios/s390-ccw/main.c | 11 ++++++++++- pc-bios/s390-ccw/virtio-pci.c | 29 +++++++++++++++++++++++++++++ pc-bios/s390-ccw/virtio-scsi.c | 14 +++++++++++++- pc-bios/s390-ccw/virtio.c | 5 +++++ 5 files changed, 72 insertions(+), 2 deletions(-) diff --git a/include/hw/s390x/ipl/qipl.h b/include/hw/s390x/ipl/qipl.h index 67db54c964..951c5e2d8e 100644 --- a/include/hw/s390x/ipl/qipl.h +++ b/include/hw/s390x/ipl/qipl.h @@ -25,6 +25,7 @@ enum S390IplType { S390_IPL_TYPE_CCW =3D 0x02, S390_IPL_TYPE_PCI =3D 0x04, S390_IPL_TYPE_PV =3D 0x05, + S390_IPL_TYPE_PCI_SCSI =3D 0xfe, S390_IPL_TYPE_CCW_SCSI =3D 0xff }; typedef enum S390IplType S390IplType; @@ -117,6 +118,19 @@ struct IplBlockPci { } QEMU_PACKED; typedef struct IplBlockPci IplBlockPci; =20 +struct IplBlockPciScsi { + uint32_t lun; + uint16_t target; + uint16_t channel; + uint8_t reserved0[74]; + uint8_t opt; + uint8_t reserved1[3]; + uint32_t fid; + uint8_t ssid; + uint16_t devno; +} QEMU_PACKED; +typedef struct IplBlockPciScsi IplBlockPciScsi; + union IplParameterBlock { struct { uint32_t len; @@ -133,6 +147,7 @@ union IplParameterBlock { IPLBlockPV pv; IplBlockCcwScsi ccw_scsi; IplBlockPci pci; + IplBlockPciScsi pci_scsi; }; } QEMU_PACKED; struct { diff --git a/pc-bios/s390-ccw/main.c b/pc-bios/s390-ccw/main.c index 1a9579beab..b2bc35962a 100644 --- a/pc-bios/s390-ccw/main.c +++ b/pc-bios/s390-ccw/main.c @@ -257,7 +257,15 @@ static bool find_boot_device(void) blk_schid.ssid =3D iplb.ccw_scsi.ssid & 0x3; found =3D find_subch(iplb.ccw_scsi.devno); break; + case S390_IPL_TYPE_PCI_SCSI: + vdev->scsi_device_selected =3D true; + vdev->selected_scsi_device.channel =3D iplb.pci_scsi.channel; + vdev->selected_scsi_device.target =3D iplb.pci_scsi.target; + vdev->selected_scsi_device.lun =3D iplb.pci_scsi.lun; + found =3D find_fid(iplb.pci_scsi.fid); + break; case S390_IPL_TYPE_PCI: + vdev->scsi_device_selected =3D false; found =3D find_fid(iplb.pci.fid); break; default: @@ -318,13 +326,13 @@ static void ipl_pci_device(void) { VDev *vdev =3D virtio_get_device(); vdev->is_cdrom =3D false; - vdev->scsi_device_selected =3D false; =20 if (virtio_pci_setup_device()) { return; } =20 switch (vdev->dev_type) { + case VIRTIO_ID_SCSI: case VIRTIO_ID_BLOCK: if (virtio_setup() =3D=3D 0) { zipl_load(); /* only return on error */ @@ -343,6 +351,7 @@ static void ipl_boot_device(void) case S390_IPL_TYPE_CCW: ipl_ccw_device(); break; + case S390_IPL_TYPE_PCI_SCSI: case S390_IPL_TYPE_PCI: ipl_pci_device(); break; diff --git a/pc-bios/s390-ccw/virtio-pci.c b/pc-bios/s390-ccw/virtio-pci.c index 736869f4f5..01a1401ef2 100644 --- a/pc-bios/s390-ccw/virtio-pci.c +++ b/pc-bios/s390-ccw/virtio-pci.c @@ -53,6 +53,10 @@ void virtio_pci_id2type(VDev *vdev, uint16_t device_id) case 0x1001: vdev->dev_type =3D VIRTIO_ID_BLOCK; break; + case 0x1048: + case 0x1004: + vdev->dev_type =3D VIRTIO_ID_SCSI; + break; default: vdev->dev_type =3D 0; } @@ -200,6 +204,26 @@ static int virtio_pci_get_blk_config(void) return rc; } =20 +static int virtio_pci_get_scsi_config(void) +{ + VirtioScsiConfig *cfg =3D &virtio_get_device()->config.scsi; + int rc =3D vpci_read_flex(d_cap.off, d_cap.bar, cfg, sizeof(VirtioScsi= Config)); + + /* all fields of scsi config must be byte swapped */ + cfg->num_queues =3D bswap32(cfg->num_queues); + cfg->seg_max =3D bswap32(cfg->seg_max); + cfg->max_sectors =3D bswap32(cfg->max_sectors); + cfg->cmd_per_lun =3D bswap32(cfg->cmd_per_lun); + cfg->event_info_size =3D bswap32(cfg->event_info_size); + cfg->sense_size =3D bswap32(cfg->sense_size); + cfg->cdb_size =3D bswap32(cfg->cdb_size); + cfg->max_channel =3D bswap16(cfg->max_channel); + cfg->max_target =3D bswap16(cfg->max_target); + cfg->max_lun =3D bswap32(cfg->max_lun); + + return rc; +} + static int virtio_pci_negotiate(void) { int i, rc; @@ -367,6 +391,11 @@ int virtio_pci_setup(VDev *vdev) vdev->cmd_vr_idx =3D 0; virtio_pci_get_blk_config(); break; + case VIRTIO_ID_SCSI: + vdev->nr_vqs =3D 3; + vdev->cmd_vr_idx =3D 2; + virtio_pci_get_scsi_config(); + break; default: puts("Unsupported virtio device"); return -ENODEV; diff --git a/pc-bios/s390-ccw/virtio-scsi.c b/pc-bios/s390-ccw/virtio-scsi.c index 9ea00c6fe6..09d2caa879 100644 --- a/pc-bios/s390-ccw/virtio-scsi.c +++ b/pc-bios/s390-ccw/virtio-scsi.c @@ -16,6 +16,7 @@ #include "scsi.h" #include "virtio-scsi.h" #include "virtio-ccw.h" +#include "virtio-pci.h" #include "s390-time.h" #include "helper.h" =20 @@ -479,7 +480,18 @@ static int virtio_scsi_setup(VDev *vdev) =20 int virtio_scsi_setup_device(VDev *vdev) { - virtio_ccw_setup(vdev); + switch (vdev->ipl_type) { + case S390_IPL_TYPE_CCW_SCSI: + case S390_IPL_TYPE_CCW: + virtio_ccw_setup(vdev); + break; + case S390_IPL_TYPE_PCI_SCSI: + case S390_IPL_TYPE_PCI: + virtio_pci_setup(vdev); + break; + default: + return 1; + } =20 if (vdev->config.scsi.sense_size !=3D VIRTIO_SCSI_SENSE_SIZE) { puts("Config: sense size mismatch"); diff --git a/pc-bios/s390-ccw/virtio.c b/pc-bios/s390-ccw/virtio.c index 79dccdcbfc..598768d12b 100644 --- a/pc-bios/s390-ccw/virtio.c +++ b/pc-bios/s390-ccw/virtio.c @@ -89,6 +89,8 @@ static int virtio_do_run(VDev *vdev, int vqid, VirtioCmd = *cmd) int virtio_run(VDev *vdev, int vqid, VirtioCmd *cmd) { switch (vdev->ipl_type) { + case S390_IPL_TYPE_PCI_SCSI: + case S390_IPL_TYPE_PCI: case S390_IPL_TYPE_CCW_SCSI: case S390_IPL_TYPE_CCW: return virtio_do_run(vdev, vqid, cmd); @@ -130,6 +132,7 @@ bool vring_notify(VRing *vr) case S390_IPL_TYPE_CCW: vr->cookie =3D virtio_ccw_notify(vdev.schid, vr->id, vr->cookie); break; + case S390_IPL_TYPE_PCI_SCSI: case S390_IPL_TYPE_PCI: vr->cookie =3D virtio_pci_notify(vr); break; @@ -150,6 +153,7 @@ bool be_ipl(void) case S390_IPL_TYPE_CCW_SCSI: case S390_IPL_TYPE_CCW: return true; + case S390_IPL_TYPE_PCI_SCSI: case S390_IPL_TYPE_PCI: return false; default: @@ -252,6 +256,7 @@ int virtio_reset(VDev *vdev) case S390_IPL_TYPE_CCW_SCSI: case S390_IPL_TYPE_CCW: return virtio_ccw_reset(vdev); + case S390_IPL_TYPE_PCI_SCSI: case S390_IPL_TYPE_PCI: return virtio_pci_reset(vdev); default: --=20 2.52.0 From nobody Mon May 25 20:48:50 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=linux.ibm.com ARC-Seal: i=1; a=rsa-sha256; t=1777933049; cv=none; d=zohomail.com; s=zohoarc; b=CYL9klWtgxLJtVFB+6kBaatdojbenuz8zwO2L4Py4NeW+Ig3+IVoyMhoayo8ooKILQXOQj76ps+h16qvdKKP5Um5rX5CLkDviO/IclKMZ9syL+zfp3w28q4DMXJWZvfMkKhoxld9tA3+r/TE/3aRfL9bnrzoPHG+vzfu21hS+uE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1777933049; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=FXIt7qEDwIqw/7fNivpRUvOAJgUhQVxbx8gZymuFsN4=; b=X4RqKtXIs+cEyDuSZq6WMEU3eFqgE4u/x03qbLPnV9UmFr0GldtT6leoPXMiI6laQiog9PtsuxrDLBqmTzn6lH/bu/UiVCwqZLaCoHFnxx8Gkg+X3WgPQ8pDW1hB8SaIR0nfwF7rmHlANsnhGaU/L2WByZEK4S3Ov0QcySfCqQo= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1777933049341213.8384639178072; Mon, 4 May 2026 15:17:29 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wK1aw-0001y9-6s; Mon, 04 May 2026 18:16:54 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wK1ag-0001vw-Gi; Mon, 04 May 2026 18:16:40 -0400 Received: from mx0b-001b2d01.pphosted.com ([148.163.158.5]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wK1ac-0002sY-7H; Mon, 04 May 2026 18:16:36 -0400 Received: from pps.filterd (m0353725.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 644Kdp2A2771798; Mon, 4 May 2026 22:16:27 GMT Received: from ppma22.wdc07v.mail.ibm.com (5c.69.3da9.ip4.static.sl-reverse.com [169.61.105.92]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4dw9xxgtyc-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 04 May 2026 22:16:26 +0000 (GMT) Received: from pps.filterd (ppma22.wdc07v.mail.ibm.com [127.0.0.1]) by ppma22.wdc07v.mail.ibm.com (8.18.1.7/8.18.1.7) with ESMTP id 644M9jRY012550; Mon, 4 May 2026 22:16:26 GMT Received: from smtprelay06.wdc07v.mail.ibm.com ([172.16.1.73]) by ppma22.wdc07v.mail.ibm.com (PPS) with ESMTPS id 4dwuyvy5nq-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 04 May 2026 22:16:26 +0000 (GMT) Received: from smtpav06.dal12v.mail.ibm.com (smtpav06.dal12v.mail.ibm.com [10.241.53.105]) by smtprelay06.wdc07v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 644MGO6n25428570 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 4 May 2026 22:16:25 GMT Received: from smtpav06.dal12v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id C9C7458055; Mon, 4 May 2026 22:16:24 +0000 (GMT) Received: from smtpav06.dal12v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 2F61158043; Mon, 4 May 2026 22:16:24 +0000 (GMT) Received: from t15.ibmuc.com (unknown [9.61.119.68]) by smtpav06.dal12v.mail.ibm.com (Postfix) with ESMTP; Mon, 4 May 2026 22:16:24 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc :content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=pp1; bh=FXIt7qEDwIqw/7fNi vpRUvOAJgUhQVxbx8gZymuFsN4=; b=OonBBD1mGw18GrtpVP16GF7HkBWHTTcYQ e2YBCGpEWitburz59PRC5AOaY18jcd4FEr3z02YMVUIL13iDA6EcivQA0Aea6zOT oHMr+c6ieGPki6cZC5wWJPanDrhTtNuoLiG/6N5Vzw1ZcfE8wHiqv14oyA4c5Bzh BJWHcBy9bifyrjcvT3DVraCCMQ9hce3Y490OQ43FUiJ91kX68EaYGt8sN+dBnLoO oJQWYqcD3u/ossiRT0Cgq3zaHy4xpbLx2TzlbAeKa31cicrXFv+SWZ4sPsvO50n5 0OdSnqFxv+wFtzIbqeFdsPo01CAZwvtvHI3H6IH+vmFKH/eF2lDDg== From: jrossi@linux.ibm.com To: qemu-devel@nongnu.org, qemu-s390x@nongnu.org, cohuck@redhat.com Cc: jjherne@linux.ibm.com, farman@linux.ibm.com, mjrosato@linux.ibm.com, jrossi@linux.ibm.com, zycai@linux.ibm.com Subject: [PATCH 5/6] s390x: Enable IPL from Virtio PCI SCSI devices Date: Mon, 4 May 2026 18:16:12 -0400 Message-ID: <20260504221613.826825-6-jrossi@linux.ibm.com> X-Mailer: git-send-email 2.43.5 In-Reply-To: <20260504221613.826825-1-jrossi@linux.ibm.com> References: <20260504221613.826825-1-jrossi@linux.ibm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-TM-AS-GCONF: 00 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTA0MDIwNSBTYWx0ZWRfX66U/UwKndq0O AG30bDmyZTvOeRZbnRF5D5oOGJwrL16D1c+kehZ9D+QFVJzpf3ieapR3N44f6zbzAfMPgZTO9SU Kz2X/W9AHrPMWF93V7vEzj8RwFcrxXmUjN98F8RdP0L+3OPagqqhn8r726tTQl2yqQ+9cAA5XJf OREn277WBjCMfPq0mR+vm4dm0q4UfapbWK7QCMVVUBgA+VcAnJQvSa4t2XQNonEjPIm1yRSg36b pcaxk/3jcIfoMeva9qOXF2bcjBm9Q0EtiioCpICuPVi3CSs71dEitgpr4y1Rc3WSQJwcBusPyeM AFhIqoN0uPT8ECXOys4gAEWHnm7LrsFu8m/RfdBxoRXtCXBMHbUPHUdlO+zrKrx/uL5b1NjFB14 LJbjTV96FqZe8uMrOmN+kqjywm+6ZcZVrg7wMvN+IJeALFSv+1eeFksFShi1TkO1IbBHvhET8fm H1HQfx2i3akCW3fBiLA== X-Proofpoint-ORIG-GUID: bIEC0919hyH6s19WaoiVSGQQwOistGnG X-Proofpoint-GUID: bIEC0919hyH6s19WaoiVSGQQwOistGnG X-Authority-Analysis: v=2.4 cv=ctWrVV4i c=1 sm=1 tr=0 ts=69f91aba cx=c_pps a=5BHTudwdYE3Te8bg5FgnPg==:117 a=5BHTudwdYE3Te8bg5FgnPg==:17 a=NGcC8JguVDcA:10 a=VkNPw1HP01LnGYTKEx00:22 a=RnoormkPH1_aCDwRdu11:22 a=V8glGbnc2Ofi9Qvn3v5h:22 a=VnNF1IyMAAAA:8 a=GdLXXov1tT0adLAbiZYA:9 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-04_06,2026-04-30_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 lowpriorityscore=0 adultscore=0 clxscore=1015 suspectscore=0 impostorscore=0 spamscore=0 malwarescore=0 phishscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604200000 definitions=main-2605040205 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=148.163.158.5; envelope-from=jrossi@linux.ibm.com; helo=mx0b-001b2d01.pphosted.com X-Spam_score_int: -26 X-Spam_score: -2.7 X-Spam_bar: -- X-Spam_report: (-2.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @ibm.com) X-ZM-MESSAGEID: 1777933051874154100 Content-Type: text/plain; charset="utf-8" From: Jared Rossi Detect PCI SCSI boot devices and build an IPLB for them. Signed-off-by: Jared Rossi --- hw/s390x/ipl.c | 36 ++++++++++++++++++++++++++++++++++++ target/s390x/diag.c | 3 ++- 2 files changed, 38 insertions(+), 1 deletion(-) diff --git a/hw/s390x/ipl.c b/hw/s390x/ipl.c index 402f5dbd7e..1ed1afe4c4 100644 --- a/hw/s390x/ipl.c +++ b/hw/s390x/ipl.c @@ -400,6 +400,7 @@ static CcwDevice *s390_get_ccw_device(DeviceState *dev_= st, int *devtype) } =20 #define PCI_DEVTYPE_VIRTIO 0x05 +#define PCI_DEVTYPE_SCSI 0x06 =20 static S390PCIBusDevice *s390_get_pci_device(DeviceState *dev_st, int *dev= type) { @@ -415,6 +416,26 @@ static S390PCIBusDevice *s390_get_pci_device(DeviceSta= te *dev_st, int *devtype) if (pbdev) { tmp_dt =3D PCI_DEVTYPE_VIRTIO; } + } else { + SCSIDevice *sd =3D (SCSIDevice *) + object_dynamic_cast(OBJECT(dev_st), TYPE_SCSI_DEVICE); + if (sd) { + SCSIBus *sbus =3D scsi_bus_from_device(sd); + VirtIODevice *vdev =3D (VirtIODevice *) + object_dynamic_cast(OBJECT(sbus->qbus.parent), + TYPE_VIRTIO_DEVICE); + if (vdev) { + pci_dev =3D (PCIDevice *) + object_dynamic_cast(OBJECT(qdev_get_parent_bus(DEV= ICE(vdev))->parent), + TYPE_PCI_DEVICE); + if (pci_dev) { + pbdev =3D s390_pci_find_dev_by_pci(s390_get_phb(),= pci_dev); + if (pbdev) { + tmp_dt =3D PCI_DEVTYPE_SCSI; + } + } + } + } } } if (devtype) { @@ -523,6 +544,21 @@ static bool s390_build_iplb(DeviceState *dev_st, IplPa= rameterBlock *iplb) } =20 switch (devtype) { + case PCI_DEVTYPE_SCSI: + sd =3D SCSI_DEVICE(dev_st); + scsi_lp =3D object_property_get_str(OBJECT(sd), "loadparm", NU= LL); + if (scsi_lp && strlen(scsi_lp) > 0) { + lp =3D scsi_lp; + } + iplb->len =3D cpu_to_be32(S390_IPLB_MIN_QEMU_SCSI_LEN); + iplb->blk0_len =3D + cpu_to_be32(S390_IPLB_MIN_QEMU_SCSI_LEN - S390_IPLB_HEADER= _LEN); + iplb->pbt =3D S390_IPL_TYPE_PCI_SCSI; + iplb->pci_scsi.lun =3D cpu_to_be32(sd->lun); + iplb->pci_scsi.target =3D cpu_to_be16(sd->id); + iplb->len =3D S390_IPLB_MIN_PCI_LEN; + iplb->pci.fid =3D cpu_to_be32(pbdev->fid); + break; case PCI_DEVTYPE_VIRTIO: iplb->len =3D cpu_to_be32(S390_IPLB_MIN_PCI_LEN); iplb->pbt =3D S390_IPL_TYPE_PCI; diff --git a/target/s390x/diag.c b/target/s390x/diag.c index 06bdb2bbc8..319a2c9f4c 100644 --- a/target/s390x/diag.c +++ b/target/s390x/diag.c @@ -133,7 +133,8 @@ void handle_diag_308(CPUS390XState *env, uint64_t r1, u= int64_t r3, uintptr_t ra) =20 valid =3D subcode =3D=3D DIAG308_PV_SET ? iplb_valid_pv(iplb) : ip= lb_valid(iplb); if (!valid) { - if (subcode =3D=3D DIAG308_SET && iplb->pbt =3D=3D S390_IPL_TY= PE_CCW_SCSI) { + if (subcode =3D=3D DIAG308_SET && (iplb->pbt =3D=3D S390_IPL_T= YPE_CCW_SCSI || + iplb->pbt =3D=3D S390_IPL_TYPE_= PCI_SCSI)) { s390_rebuild_iplb(iplb->devno, iplb); s390_ipl_update_diag308(iplb); env->regs[r1 + 1] =3D DIAG_308_RC_OK; --=20 2.52.0 From nobody Mon May 25 20:48:50 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=linux.ibm.com ARC-Seal: i=1; a=rsa-sha256; t=1777933049; cv=none; d=zohomail.com; s=zohoarc; b=Um7+rzrpz5byacy5eF5oN3iFOBrTyXXV1Up0FQAXxiFZKzzVJ82JN2jUMyyyUCRPYVZa8YTSenL1w/u0oOEr4gK0uo/GEp/9KzGN3A6KL6jNR+6waqhaUUBQxPzt9MuZjC0/rHuEu0Ii6t2EGWlMqUaQgnLDLwvqlzcNjat0zrA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1777933049; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=tIKv9cAjaGUzdvSZitiD4ES7uaq5h/YoWDY0LPNlWyA=; b=WSgFXesaDBKxA5JqxDNk1hINGpnVNat+st5cPNcsG3cFlb4D2b+2B64CzLOGdiIOM49g78L0/MKGtceXpmpeEnLT2EUFNo4BUFteqNdpWi4EqjjQLa0gRbJhzgv7i/mg5yG3dE4QlyToDV1sVx/u76sz5uGK4S6tE53mVeAONFk= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1777933049342828.4590925231859; Mon, 4 May 2026 15:17:29 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wK1av-0001xa-QB; Mon, 04 May 2026 18:16:53 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wK1ag-0001vx-H4; Mon, 04 May 2026 18:16:40 -0400 Received: from mx0b-001b2d01.pphosted.com ([148.163.158.5]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wK1ac-0002sm-7b; Mon, 04 May 2026 18:16:35 -0400 Received: from pps.filterd (m0360072.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 644AduFV2476923; Mon, 4 May 2026 22:16:29 GMT Received: from ppma13.dal12v.mail.ibm.com (dd.9e.1632.ip4.static.sl-reverse.com [50.22.158.221]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4dw9y4gvfn-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 04 May 2026 22:16:29 +0000 (GMT) Received: from pps.filterd (ppma13.dal12v.mail.ibm.com [127.0.0.1]) by ppma13.dal12v.mail.ibm.com (8.18.1.7/8.18.1.7) with ESMTP id 644M9fXh012299; Mon, 4 May 2026 22:16:28 GMT Received: from smtprelay04.dal12v.mail.ibm.com ([172.16.1.6]) by ppma13.dal12v.mail.ibm.com (PPS) with ESMTPS id 4dwwtg6w5k-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 04 May 2026 22:16:28 +0000 (GMT) Received: from smtpav06.dal12v.mail.ibm.com (smtpav06.dal12v.mail.ibm.com [10.241.53.105]) by smtprelay04.dal12v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 644MGRJ215532732 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 4 May 2026 22:16:27 GMT Received: from smtpav06.dal12v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 5F9BC58055; Mon, 4 May 2026 22:16:27 +0000 (GMT) Received: from smtpav06.dal12v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id A7FFB58043; Mon, 4 May 2026 22:16:26 +0000 (GMT) Received: from t15.ibmuc.com (unknown [9.61.119.68]) by smtpav06.dal12v.mail.ibm.com (Postfix) with ESMTP; Mon, 4 May 2026 22:16:26 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc :content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=pp1; bh=tIKv9cAjaGUzdvSZi tiD4ES7uaq5h/YoWDY0LPNlWyA=; b=lqU0wq5fOOFyq9z+QF/LAW0c4Lw61mAfw D/WL50HZA4KFe+8mwc9w+aWAtNOAhdJrHxQHop9BNv49BJkcsDlMM+kqbmhu3gjJ XZ1DPlkk8JzXILszao7NX9inUWVhmbsMKcoVmNiLHlONHTe9e5+af8dxnGkR1YSa P2boUqELFaCVHqw8bVRm9CmU3Dhei/g9IU4ZMODC2o9QlAcLL9xmWOyOX1cNmgWK I6ublX/pXdpXhLiNRTTtpiJ84Rly7X6xUQarWEs/MDycTIJb3Knqbm2jQxdkg97D b6sNywipoAi6OOx3IA9oQ7xGEFe0rTeiGmMi1jLCjNraBf0j8E1KA== From: jrossi@linux.ibm.com To: qemu-devel@nongnu.org, qemu-s390x@nongnu.org, cohuck@redhat.com Cc: jjherne@linux.ibm.com, farman@linux.ibm.com, mjrosato@linux.ibm.com, jrossi@linux.ibm.com, zycai@linux.ibm.com Subject: [PATCH 6/6] tests/qtest: Add s390x PCI SCSI fallback test to cdrom-test.c Date: Mon, 4 May 2026 18:16:13 -0400 Message-ID: <20260504221613.826825-7-jrossi@linux.ibm.com> X-Mailer: git-send-email 2.43.5 In-Reply-To: <20260504221613.826825-1-jrossi@linux.ibm.com> References: <20260504221613.826825-1-jrossi@linux.ibm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-TM-AS-GCONF: 00 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTA0MDIwNSBTYWx0ZWRfX1QdPGjFGLXgW FoTawqyS9ZQTkji+JPubh+E3MuKftU7yS7fWdowQsgRn2zKjepYdz+DHtxywNpW7o2Xwd5YtXMl IRrCl+jcnoo3zL/Fyd/8Dlck2NdGry8AwCtT0k4QFtKGEJOSEGS8y5lDTSzbwa7SQOdyTEpTjXs gn4WrUySr7tmH0WfKH4nrCqvHaUWyfV+t4qy/zX+z/ZpT4Z+pswrdPcOjiVHkivrRvRRqhpbNLl klAKKo2ltp7p/y/LkvUJuB4hfcuq1JBN3vyl7D4hLATImhXslP5GtiiQDSNtRTiSmUljj3WFW+v 5J7IF+NI8fzl9g1g2vtey7oRWsN1qffhzp2G5dXTKGEO9f2/Vrgs8RboeD+43urm26TUetdIz1b iWWikDFb9/KeoOucqOCoBR5NouT287mNkHE8BR+hmWi1vPxG7rP8pGt47abMY6mUGkPA8wIm9Iq HZ8DHIMmEXResuM0Knw== X-Authority-Analysis: v=2.4 cv=J4GaKgnS c=1 sm=1 tr=0 ts=69f91abd cx=c_pps a=AfN7/Ok6k8XGzOShvHwTGQ==:117 a=AfN7/Ok6k8XGzOShvHwTGQ==:17 a=NGcC8JguVDcA:10 a=VkNPw1HP01LnGYTKEx00:22 a=RnoormkPH1_aCDwRdu11:22 a=RzCfie-kr_QcCd8fBx8p:22 a=VnNF1IyMAAAA:8 a=MvDj_lKWWGcuVSP3geIA:9 X-Proofpoint-GUID: c8lxLE2yJyQE6VEXRpNEMLUp_W5sVFup X-Proofpoint-ORIG-GUID: c8lxLE2yJyQE6VEXRpNEMLUp_W5sVFup X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-04_06,2026-04-30_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 clxscore=1015 malwarescore=0 bulkscore=0 suspectscore=0 priorityscore=1501 spamscore=0 phishscore=0 adultscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604200000 definitions=main-2605040205 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=148.163.158.5; envelope-from=jrossi@linux.ibm.com; helo=mx0b-001b2d01.pphosted.com X-Spam_score_int: -26 X-Spam_score: -2.7 X-Spam_bar: -- X-Spam_report: (-2.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @ibm.com) X-ZM-MESSAGEID: 1777933051777154100 Content-Type: text/plain; charset="utf-8" From: Jared Rossi Add a test to verify that a guest can use a PCI controlled CD as a fallback= boot device after a failed CCW IPL. Signed-off-by: Jared Rossi --- tests/qtest/cdrom-test.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/tests/qtest/cdrom-test.c b/tests/qtest/cdrom-test.c index a65854d2bc..50706b6f84 100644 --- a/tests/qtest/cdrom-test.c +++ b/tests/qtest/cdrom-test.c @@ -253,6 +253,14 @@ static void add_s390x_tests(void) "-drive if=3Dnone,id=3Dd1,media=3Dcdrom,file= =3D", test_cdboot); } + if (qtest_has_device("virtio-scsi-pci")) { + qtest_add_data_func("cdrom/boot/pci-scsi-fallback-from-blk-ccw", + "-device virtio-scsi-pci -device virtio-serial= " + "-device virtio-blk-ccw,drive=3Dd1,bootindex= =3D1 " + "-drive driver=3Dnull-co,read-zeroes=3Don,if= =3Dnone,id=3Dd1 " + "-device scsi-cd,drive=3Dd2,bootindex=3D2 " + "-drive if=3Dnone,id=3Dd2,media=3Dcdrom,file= =3D", test_cdboot); + } } =20 int main(int argc, char **argv) --=20 2.52.0