From patchwork Thu Jul 18 10:50:16 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Janosch Frank X-Patchwork-Id: 13736374 Received: from mx0a-001b2d01.pphosted.com (mx0a-001b2d01.pphosted.com [148.163.156.1]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1A77386126; Thu, 18 Jul 2024 10:52:32 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.163.156.1 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1721299958; cv=none; b=nSGUMyswwS91ecjzWmx0Puf0MQly6aj6yoXkeynCmN3wiXTQbuEWZwcHOjxa6JqPdMIweOWeqRyg2/WYY8EKjOBESzYPZNxMA0cECjjFYW5Md7ljNJJRRbbAwQCw6IlkNEu0SfsQyzkxYIpsTCnT5gOxHRdNlj0XCLV34vEKBdg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1721299958; c=relaxed/simple; bh=9gisNchJtWr2y6PH53+TRbrQRfUAgtBr4QUsnwTe5C8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=YuutuUwKeOicmwcriGG9YFm9unwaSFJV2QCjGtL7yrzHD5AmApauQ2c/O1CsistBkJtjUtljJ9z1LRrxIyUOLN4GqJgVUvd1/9fph5OY2QTTWEnaiy7mZVy2sZDA2UW9ARLqIfxUwKo+lQkxJw8AKdtxG6APICbWu3NR0qi2B0I= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.ibm.com; spf=pass smtp.mailfrom=linux.ibm.com; dkim=pass (2048-bit key) header.d=ibm.com header.i=@ibm.com header.b=FGwxj+If; arc=none smtp.client-ip=148.163.156.1 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.ibm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linux.ibm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=ibm.com header.i=@ibm.com header.b="FGwxj+If" Received: from pps.filterd (m0356517.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 46IAKZEo006582; Thu, 18 Jul 2024 10:52:32 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=from :to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; s=pp1; bh=A5ykeXyEUem3I 5xYnjaB0f3a3bWec1chX9yogWo4q7M=; b=FGwxj+IflEp9Q0fSMuhT7w2SW2BZ9 eviLROurfGkeDjLeM5pEXlxCaPnvhIOeFj+cbyT7e3OcX0R6cGWYcOagBpt4brV7 /CrGRKrRiuQBtEC64D9X48PddPm2e06y22GMFIdJcv1eK0cGXdFvQKRNPndAU4LR 3+3ZphiGtu49HQ3LN1w+lp9aozCPOQy0nmA24uEtFFlHyNAYfw3i4pe2LBpHDBWm DL0MVIm9WfEOL8jP6gD+zXLCNAhgwKr+WvaT+a8F41bntGeyKHzcV+J8GiWj5UQY HMBbbJDU7UeOPJGzcg2e4PFrxb4OXGIRGQKwG0V54xodeOLhze+wGRsYg== Received: from pps.reinject (localhost [127.0.0.1]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 40ey4k8daf-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 18 Jul 2024 10:52:31 +0000 (GMT) Received: from m0356517.ppops.net (m0356517.ppops.net [127.0.0.1]) by pps.reinject (8.18.0.8/8.18.0.8) with ESMTP id 46IAqVHX017993; Thu, 18 Jul 2024 10:52:31 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 40ey4k8dab-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 18 Jul 2024 10:52:31 +0000 (GMT) Received: from pps.filterd (ppma22.wdc07v.mail.ibm.com [127.0.0.1]) by ppma22.wdc07v.mail.ibm.com (8.17.1.19/8.17.1.19) with ESMTP id 46I9FtJO029228; Thu, 18 Jul 2024 10:52:30 GMT Received: from smtprelay06.fra02v.mail.ibm.com ([9.218.2.230]) by ppma22.wdc07v.mail.ibm.com (PPS) with ESMTPS id 40dwkj977u-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 18 Jul 2024 10:52:30 +0000 Received: from smtpav05.fra02v.mail.ibm.com (smtpav05.fra02v.mail.ibm.com [10.20.54.104]) by smtprelay06.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 46IAqOfS28115674 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 18 Jul 2024 10:52:26 GMT Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 5429420040; Thu, 18 Jul 2024 10:52:24 +0000 (GMT) Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 217C92004B; Thu, 18 Jul 2024 10:52:24 +0000 (GMT) Received: from a46lp67.lnxne.boe (unknown [9.152.108.100]) by smtpav05.fra02v.mail.ibm.com (Postfix) with ESMTP; Thu, 18 Jul 2024 10:52:24 +0000 (GMT) From: Janosch Frank To: kvm@vger.kernel.org Cc: linux-s390@vger.kernel.org, imbrenda@linux.ibm.com, nrb@linux.ibm.com, npiggin@gmail.com, nsg@linux.ibm.com, mhartmay@linux.ibm.com Subject: [kvm-unit-tests PATCH 1/4] s390x: Split snippet makefile rules into new file Date: Thu, 18 Jul 2024 10:50:16 +0000 Message-ID: <20240718105104.34154-2-frankja@linux.ibm.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240718105104.34154-1-frankja@linux.ibm.com> References: <20240718105104.34154-1-frankja@linux.ibm.com> Precedence: bulk X-Mailing-List: kvm@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-TM-AS-GCONF: 00 X-Proofpoint-ORIG-GUID: zSB8FmRT25e4sjO3twy7oW9gULgBUMna X-Proofpoint-GUID: 73IZ5oZ8nCc1krh1AHcjT_zYCxnrzN9k X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1039,Hydra:6.0.680,FMLib:17.12.28.16 definitions=2024-07-18_06,2024-07-17_02,2024-05-17_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 suspectscore=0 bulkscore=0 lowpriorityscore=0 clxscore=1015 priorityscore=1501 adultscore=0 mlxscore=0 mlxlogscore=735 spamscore=0 impostorscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.19.0-2407110000 definitions=main-2407180068 It's time to move the snippet related Makefile parts into a new file to make s390x/Makefile less busy. Signed-off-by: Janosch Frank Reviewed-by: Christoph Schlameuss Reviewed-by: Claudio Imbrenda --- s390x/Makefile | 34 ++++------------------------------ s390x/snippets/Makefile | 30 ++++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+), 30 deletions(-) create mode 100644 s390x/snippets/Makefile diff --git a/s390x/Makefile b/s390x/Makefile index c5c6f92c..2933b452 100644 --- a/s390x/Makefile +++ b/s390x/Makefile @@ -120,9 +120,11 @@ asmlib = $(TEST_DIR)/cstart64.o $(TEST_DIR)/cpu.o FLATLIBS = $(libcflat) +# Snippets SNIPPET_DIR = $(TEST_DIR)/snippets snippet_asmlib = $(SNIPPET_DIR)/c/cstart.o snippet_lib = $(snippet_asmlib) lib/auxinfo.o +include $(SNIPPET_DIR)/Makefile # perquisites (=guests) for the snippet hosts. # $(TEST_DIR)/.elf: snippets = $(SNIPPET_DIR)//.gbin @@ -148,34 +150,6 @@ else snippet-hdr-obj = endif -# the asm/c snippets %.o have additional generated files as dependencies -$(SNIPPET_DIR)/asm/%.o: $(SNIPPET_DIR)/asm/%.S $(asm-offsets) - $(CC) $(CFLAGS) -c -nostdlib -o $@ $< - -$(SNIPPET_DIR)/c/%.o: $(SNIPPET_DIR)/c/%.c $(asm-offsets) - $(CC) $(CFLAGS) -c -nostdlib -o $@ $< - -$(SNIPPET_DIR)/asm/%.gbin: $(SNIPPET_DIR)/asm/%.o $(SNIPPET_DIR)/asm/flat.lds - $(CC) $(LDFLAGS) -o $@ -T $(SNIPPET_DIR)/asm/flat.lds $< - $(OBJCOPY) -O binary -j ".rodata" -j ".lowcore" -j ".text" -j ".data" -j ".bss" --set-section-flags .bss=alloc,load,contents $@ $@ - truncate -s '%4096' $@ - -$(SNIPPET_DIR)/c/%.gbin: $(SNIPPET_DIR)/c/%.o $(snippet_lib) $(FLATLIBS) $(SNIPPET_DIR)/c/flat.lds - $(CC) $(LDFLAGS) -o $@ -T $(SNIPPET_DIR)/c/flat.lds $< $(snippet_lib) $(FLATLIBS) - $(OBJCOPY) -O binary -j ".rodata" -j ".lowcore" -j ".text" -j ".data" -j ".bss" --set-section-flags .bss=alloc,load,contents $@ $@ - truncate -s '%4096' $@ - -%.hdr: %.gbin $(HOST_KEY_DOCUMENT) - $(GEN_SE_HEADER) -k $(HOST_KEY_DOCUMENT) -c $<,0x0,0x00000000000000420000000000000000 --psw-addr 0x4000 -o $@ - -.SECONDARY: -%.gobj: %.gbin - $(OBJCOPY) -I binary -O elf64-s390 -B "s390:64-bit" $< $@ - -.SECONDARY: -%.hdr.obj: %.hdr - $(OBJCOPY) -I binary -O elf64-s390 -B "s390:64-bit" $< $@ - lds-autodepend-flags = -MMD -MF $(dir $*).$(notdir $*).d -MT $@ %.lds: %.lds.S $(asm-offsets) $(CPP) $(lds-autodepend-flags) $(CPPFLAGS) -P -C -o $@ $< @@ -229,8 +203,8 @@ $(snippet_asmlib): $$(patsubst %.o,%.S,$$@) $(asm-offsets) $(CC) $(CFLAGS) -c -nostdlib -o $@ $< -arch_clean: asm_offsets_clean - $(RM) $(TEST_DIR)/*.{o,elf,bin,lds} $(SNIPPET_DIR)/*/*.{o,elf,*bin,*obj,hdr,lds} $(SNIPPET_DIR)/asm/.*.d $(TEST_DIR)/.*.d lib/s390x/.*.d $(comm-key) +arch_clean: asm_offsets_clean snippet_clean + $(RM) $(TEST_DIR)/*.{o,elf,bin,lds} $(TEST_DIR)/.*.d lib/s390x/.*.d $(comm-key) generated-files = $(asm-offsets) $(tests:.elf=.o) $(asmlib) $(cflatobjs): $(generated-files) diff --git a/s390x/snippets/Makefile b/s390x/snippets/Makefile new file mode 100644 index 00000000..a1c479f6 --- /dev/null +++ b/s390x/snippets/Makefile @@ -0,0 +1,30 @@ +# the asm/c snippets %.o have additional generated files as dependencies +$(SNIPPET_DIR)/asm/%.o: $(SNIPPET_DIR)/asm/%.S $(asm-offsets) + $(CC) $(CFLAGS) -c -nostdlib -o $@ $< + +$(SNIPPET_DIR)/c/%.o: $(SNIPPET_DIR)/c/%.c $(asm-offsets) + $(CC) $(CFLAGS) -c -nostdlib -o $@ $< + +$(SNIPPET_DIR)/asm/%.gbin: $(SNIPPET_DIR)/asm/%.o $(SNIPPET_DIR)/asm/flat.lds + $(CC) $(LDFLAGS) -o $@ -T $(SNIPPET_DIR)/asm/flat.lds $< + $(OBJCOPY) -O binary -j ".rodata" -j ".lowcore" -j ".text" -j ".data" -j ".bss" --set-section-flags .bss=alloc,load,contents $@ $@ + truncate -s '%4096' $@ + +$(SNIPPET_DIR)/c/%.gbin: $(SNIPPET_DIR)/c/%.o $(snippet_lib) $(FLATLIBS) $(SNIPPET_DIR)/c/flat.lds + $(CC) $(LDFLAGS) -o $@ -T $(SNIPPET_DIR)/c/flat.lds $< $(snippet_lib) $(FLATLIBS) + $(OBJCOPY) -O binary -j ".rodata" -j ".lowcore" -j ".text" -j ".data" -j ".bss" --set-section-flags .bss=alloc,load,contents $@ $@ + truncate -s '%4096' $@ + +%.hdr: %.gbin $(HOST_KEY_DOCUMENT) + $(GEN_SE_HEADER) -k $(HOST_KEY_DOCUMENT) -c $<,0x0,0x00000000000000420000000000000000 --psw-addr 0x4000 -o $@ + +.SECONDARY: +%.gobj: %.gbin + $(OBJCOPY) -I binary -O elf64-s390 -B "s390:64-bit" $< $@ + +.SECONDARY: +%.hdr.obj: %.hdr + $(OBJCOPY) -I binary -O elf64-s390 -B "s390:64-bit" $< $@ + +snippet_clean: + $(RM) $(SNIPPET_DIR)/*/*.{o,elf,*bin,*obj,hdr,lds} $(SNIPPET_DIR)/asm/.*.d From patchwork Thu Jul 18 10:50:17 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Janosch Frank X-Patchwork-Id: 13736377 Received: from mx0b-001b2d01.pphosted.com (mx0b-001b2d01.pphosted.com [148.163.158.5]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id DFB5F13664E; Thu, 18 Jul 2024 10:53:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.163.158.5 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1721299995; cv=none; b=BwpnRS7HZwHk8Oxys4orDORX3VJf9b0xILQKeFbOVPSdCZNujvouLvBOLFgI4XoSUH7lcpF0Py8e/P6kiFJCF2RDFeut3WqX+wnXEcZdq448edYD2fXlDet0wMKfS1vi5c7Mh2jP2yyDITKXjk7CC/Nuj9psrC2FQMjlKv3KgjI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1721299995; c=relaxed/simple; bh=60+B1/mq9deLP/oFM985bbm7amwZe/UqFNPpA3rGGPU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=SffowNZsM6IXb/unukv2x8ynhqMxd0QG0S5nvJTA1AnMd94l/bdfRHDxGh8pnd/+Jw2QGNSyBrx+La7PfGvTb0Nyxyff5NvLS4RJgSOAgFTyHFd3TIr/662hdTOLDtrhWg7WRrW/ZWVGRPUig8aSNCQUIWN77Vu0Il+4BVRe2pQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.ibm.com; spf=pass smtp.mailfrom=linux.ibm.com; dkim=pass (2048-bit key) header.d=ibm.com header.i=@ibm.com header.b=eKxLQSsb; arc=none smtp.client-ip=148.163.158.5 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.ibm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linux.ibm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=ibm.com header.i=@ibm.com header.b="eKxLQSsb" Received: from pps.filterd (m0360072.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 46I9uUHZ032742; Thu, 18 Jul 2024 10:53:09 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=from :to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; s=pp1; bh=KY7PSxvyIrVJK HO4JmPdTJRIMI8kXoXW4fYHWPZOhtI=; b=eKxLQSsbIWoXw8vkSV6s+Z7S49eky 518/I8+yytUFPh/Aha1vHHcLQdZIey3SnfZKRlE3WvexI2c0MSfFvuNn4MW/O4NP qHYTldLLZycHygLRtc9X8YQm68GpdpSKzyv4PzF3TJezFo92NfXDkXLPeqOhvWVu l1wiu1WS0XbGUVNX3I8z2wsdBWvHQ+qmIbL6KaC0qsx6f/u3DrvDbKJ0nGH6Tdr1 pyEshd/PjOUI2omDV6fvPMRZBdSU9OyqQuBPmfRCYHJvV4orCkNzWQwiBkIH2Uyf u44Yb6KYX/+yzj7rEi796roLv/S60157alrPAtZlmw4y/YrmnFwwNPDjw== Received: from pps.reinject (localhost [127.0.0.1]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 40eyjp89tn-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 18 Jul 2024 10:53:09 +0000 (GMT) Received: from m0360072.ppops.net (m0360072.ppops.net [127.0.0.1]) by pps.reinject (8.18.0.8/8.18.0.8) with ESMTP id 46IAr822016254; Thu, 18 Jul 2024 10:53:08 GMT Received: from ppma12.dal12v.mail.ibm.com (dc.9e.1632.ip4.static.sl-reverse.com [50.22.158.220]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 40eyjp89s0-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 18 Jul 2024 10:53:08 +0000 (GMT) Received: from pps.filterd (ppma12.dal12v.mail.ibm.com [127.0.0.1]) by ppma12.dal12v.mail.ibm.com (8.17.1.19/8.17.1.19) with ESMTP id 46I9Cp40009574; Thu, 18 Jul 2024 10:52:30 GMT Received: from smtprelay06.fra02v.mail.ibm.com ([9.218.2.230]) by ppma12.dal12v.mail.ibm.com (PPS) with ESMTPS id 40dwkms7nk-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 18 Jul 2024 10:52:30 +0000 Received: from smtpav05.fra02v.mail.ibm.com (smtpav05.fra02v.mail.ibm.com [10.20.54.104]) by smtprelay06.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 46IAqOP534144856 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 18 Jul 2024 10:52:26 GMT Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 8E7BC2004B; Thu, 18 Jul 2024 10:52:24 +0000 (GMT) Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 5CDBC2004D; Thu, 18 Jul 2024 10:52:24 +0000 (GMT) Received: from a46lp67.lnxne.boe (unknown [9.152.108.100]) by smtpav05.fra02v.mail.ibm.com (Postfix) with ESMTP; Thu, 18 Jul 2024 10:52:24 +0000 (GMT) From: Janosch Frank To: kvm@vger.kernel.org Cc: linux-s390@vger.kernel.org, imbrenda@linux.ibm.com, nrb@linux.ibm.com, npiggin@gmail.com, nsg@linux.ibm.com, mhartmay@linux.ibm.com Subject: [kvm-unit-tests PATCH 2/4] s390x/Makefile: Add more comments Date: Thu, 18 Jul 2024 10:50:17 +0000 Message-ID: <20240718105104.34154-3-frankja@linux.ibm.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240718105104.34154-1-frankja@linux.ibm.com> References: <20240718105104.34154-1-frankja@linux.ibm.com> Precedence: bulk X-Mailing-List: kvm@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-TM-AS-GCONF: 00 X-Proofpoint-GUID: YiyxRus8YjRnBY_3VFxuKaZhJlfRg7SB X-Proofpoint-ORIG-GUID: MPPs9rbONlGcKqcflq3kH4IVnwGpYv_h X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1039,Hydra:6.0.680,FMLib:17.12.28.16 definitions=2024-07-18_07,2024-07-17_02,2024-05-17_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 mlxlogscore=999 adultscore=0 impostorscore=0 clxscore=1015 mlxscore=0 spamscore=0 lowpriorityscore=0 phishscore=0 malwarescore=0 priorityscore=1501 suspectscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.19.0-2407110000 definitions=main-2407180072 More comments in Makefiles can only make them more approachable. Signed-off-by: Janosch Frank Reviewed-by: Christoph Schlameuss Reviewed-by: Claudio Imbrenda --- s390x/Makefile | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/s390x/Makefile b/s390x/Makefile index 2933b452..457b8455 100644 --- a/s390x/Makefile +++ b/s390x/Makefile @@ -50,12 +50,15 @@ pv-tests += $(TEST_DIR)/pv-icptcode.elf pv-tests += $(TEST_DIR)/pv-ipl.elf pv-tests += $(TEST_DIR)/pv-edat1.elf +# Add PV host tests if we're able to generate them +# The host key document and a tool to generate SE headers are the prerequisite ifneq ($(HOST_KEY_DOCUMENT),) ifneq ($(GEN_SE_HEADER),) tests += $(pv-tests) endif endif +# Add binary flat images for use in non-KVM hypervisors tests_binary = $(patsubst %.elf,%.bin,$(tests)) ifneq ($(HOST_KEY_DOCUMENT),) tests_pv_binary = $(patsubst %.bin,%.pv.bin,$(tests_binary)) @@ -142,6 +145,7 @@ $(TEST_DIR)/pv-icptcode.elf: pv-snippets += $(SNIPPET_DIR)/asm/pv-icpt-vir-timin $(TEST_DIR)/pv-ipl.elf: pv-snippets += $(SNIPPET_DIR)/asm/pv-diag-308.gbin $(TEST_DIR)/pv-edat1.elf: pv-snippets += $(SNIPPET_DIR)/c/pv-memhog.gbin +# Add PV tests and snippets if GEN_SE_HEADER is set ifneq ($(GEN_SE_HEADER),) snippets += $(pv-snippets) tests += $(pv-tests) @@ -150,6 +154,7 @@ else snippet-hdr-obj = endif +# Generate loader script lds-autodepend-flags = -MMD -MF $(dir $*).$(notdir $*).d -MT $@ %.lds: %.lds.S $(asm-offsets) $(CPP) $(lds-autodepend-flags) $(CPPFLAGS) -P -C -o $@ $< From patchwork Thu Jul 18 10:50:18 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Janosch Frank X-Patchwork-Id: 13736376 Received: from mx0a-001b2d01.pphosted.com (mx0a-001b2d01.pphosted.com [148.163.156.1]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 34379136653; Thu, 18 Jul 2024 10:53:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.163.156.1 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1721299994; cv=none; b=OcHnU4jIGOYyzcFFXzV1ffjTyA8b/MGNYCbcy+waT9ZZQ/Wxj2wV/acl9+azQN2csi10ow5wwzDnLjRRKcsr4acaPbUWdbgf4ICEWZpdCAd5QUiWEFkWrMpPCCFXvfpfQ74zdgThgvWQNeVrAS7lUGXg3KHRJjyBJBraRBocOew= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1721299994; c=relaxed/simple; bh=8ZzGqgrHF7bXwPePjcE8by1i0K8yFmkI9mgPiniGO5o=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=lcn/uNoY01+Y2bEH94jJuqxnEb5BCQoNULs00aj8G4l2EdLZ03frVvzUBIjYzM+ZsK6PhjXfeEOcOuBAptPCSTB3jCuEe3VlzFexW9EECL98D7SFVMf96tiUghD1X0pac27IS3Jchl1xgcp0lxr8NzgbQ+bxw4K+GZKm3xVVnrM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.ibm.com; spf=pass smtp.mailfrom=linux.ibm.com; dkim=pass (2048-bit key) header.d=ibm.com header.i=@ibm.com header.b=FkJvC3rR; arc=none smtp.client-ip=148.163.156.1 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.ibm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linux.ibm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=ibm.com header.i=@ibm.com header.b="FkJvC3rR" Received: from pps.filterd (m0353729.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 46I8R1B0008251; Thu, 18 Jul 2024 10:53:11 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=from :to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; s=pp1; bh=lzauRYefjJFhD bIme1BvTSvWS9AEzRxpZNXDkpL1Hfs=; b=FkJvC3rRkRJAIvDP6iQUFRWJmTXXe Cdt6w9unRYIdeZCP1G67jvX2OAyK0DBJstZA1XLLas9WroQEsQwbRopO6cVb51wc MafjS39DSyAtpBngubr4JgE/mw/r9aBEOvu5yx6YMGrvgRJvlvz/RbakdBm1vsTa ZT2PmHyqbi2jlSzAtKIdXBWZElAvnQc2or/iBN601RGC4m+u6O5JctquyCfSlf3I qUX+IyS/A8N/u/UT3EcX9EiUK8CMfapDT2hiw90Kh9FIZLRaBoRU0XxYEMchaAlH Z/lc6611+WPxVe811SCBJrs4y40wa4XRRFmpWQGKzV7cNd0dE6o550vKw== Received: from pps.reinject (localhost [127.0.0.1]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 40evxe0pje-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 18 Jul 2024 10:53:11 +0000 (GMT) Received: from m0353729.ppops.net (m0353729.ppops.net [127.0.0.1]) by pps.reinject (8.18.0.8/8.18.0.8) with ESMTP id 46IArAZi026221; Thu, 18 Jul 2024 10:53:10 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 40evxe0pgw-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 18 Jul 2024 10:53:10 +0000 (GMT) Received: from pps.filterd (ppma22.wdc07v.mail.ibm.com [127.0.0.1]) by ppma22.wdc07v.mail.ibm.com (8.17.1.19/8.17.1.19) with ESMTP id 46I92oj0029260; Thu, 18 Jul 2024 10:52:30 GMT Received: from smtprelay06.fra02v.mail.ibm.com ([9.218.2.230]) by ppma22.wdc07v.mail.ibm.com (PPS) with ESMTPS id 40dwkj977x-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 18 Jul 2024 10:52:30 +0000 Received: from smtpav05.fra02v.mail.ibm.com (smtpav05.fra02v.mail.ibm.com [10.20.54.104]) by smtprelay06.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 46IAqOWT33817302 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 18 Jul 2024 10:52:26 GMT Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id C8D4E2004D; Thu, 18 Jul 2024 10:52:24 +0000 (GMT) Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 975BA2004E; Thu, 18 Jul 2024 10:52:24 +0000 (GMT) Received: from a46lp67.lnxne.boe (unknown [9.152.108.100]) by smtpav05.fra02v.mail.ibm.com (Postfix) with ESMTP; Thu, 18 Jul 2024 10:52:24 +0000 (GMT) From: Janosch Frank To: kvm@vger.kernel.org Cc: linux-s390@vger.kernel.org, imbrenda@linux.ibm.com, nrb@linux.ibm.com, npiggin@gmail.com, nsg@linux.ibm.com, mhartmay@linux.ibm.com Subject: [kvm-unit-tests PATCH 3/4] s390x: Move SIE assembly into new file Date: Thu, 18 Jul 2024 10:50:18 +0000 Message-ID: <20240718105104.34154-4-frankja@linux.ibm.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240718105104.34154-1-frankja@linux.ibm.com> References: <20240718105104.34154-1-frankja@linux.ibm.com> Precedence: bulk X-Mailing-List: kvm@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-TM-AS-GCONF: 00 X-Proofpoint-GUID: wCRWg9ECmki9iW5JH4aLyeN7c1Mh9-zT X-Proofpoint-ORIG-GUID: dBObeKp3LF1wdLKYfbfG3bkBBE6xfLeB X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1039,Hydra:6.0.680,FMLib:17.12.28.16 definitions=2024-07-18_07,2024-07-17_02,2024-05-17_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 mlxscore=0 malwarescore=0 suspectscore=0 adultscore=0 spamscore=0 clxscore=1015 bulkscore=0 phishscore=0 lowpriorityscore=0 impostorscore=0 mlxlogscore=976 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.19.0-2407110000 definitions=main-2407180072 In contrast to the other functions in cpu.S it's quite lengthy so let's split it off. Signed-off-by: Janosch Frank Reviewed-by: Claudio Imbrenda Reviewed-by: Christoph Schlameuss --- s390x/Makefile | 2 +- s390x/{cpu.S => cpu-sie.S} | 59 +---------------------------------- s390x/cpu.S | 64 -------------------------------------- 3 files changed, 2 insertions(+), 123 deletions(-) copy s390x/{cpu.S => cpu-sie.S} (56%) diff --git a/s390x/Makefile b/s390x/Makefile index 457b8455..ecf0bc7e 100644 --- a/s390x/Makefile +++ b/s390x/Makefile @@ -119,7 +119,7 @@ cflatobjs += lib/s390x/fault.o OBJDIRS += lib/s390x -asmlib = $(TEST_DIR)/cstart64.o $(TEST_DIR)/cpu.o +asmlib = $(TEST_DIR)/cstart64.o $(TEST_DIR)/cpu.o $(TEST_DIR)/cpu-sie.o FLATLIBS = $(libcflat) diff --git a/s390x/cpu.S b/s390x/cpu-sie.S similarity index 56% copy from s390x/cpu.S copy to s390x/cpu-sie.S index 9155b044..9370b5c0 100644 --- a/s390x/cpu.S +++ b/s390x/cpu-sie.S @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: GPL-2.0-only */ /* - * s390x assembly library + * s390x SIE assembly library * * Copyright (c) 2019 IBM Corp. * @@ -8,59 +8,6 @@ * Janosch Frank */ #include -#include - -#include "macros.S" - -/* - * load_reset calling convention: - * %r2 subcode (0 or 1) - */ -.globl diag308_load_reset -diag308_load_reset: - SAVE_REGS_STACK - /* Backup current PSW mask, as we have to restore it on success */ - epsw %r0, %r1 - st %r0, GEN_LC_SW_INT_PSW - st %r1, GEN_LC_SW_INT_PSW + 4 - /* Load reset psw mask (short psw, 64 bit) */ - lg %r0, reset_psw - /* Load the success label address */ - larl %r1, 0f - /* Or it to the mask */ - ogr %r0, %r1 - /* Store it at the reset PSW location (real 0x0) */ - stg %r0, 0 - stg %r15, GEN_LC_SW_INT_GRS + 15 * 8 - /* Do the reset */ - diag %r0,%r2,0x308 - /* Failure path */ - xgr %r2, %r2 - br %r14 - /* Success path */ - /* load a cr0 that has the AFP control bit which enables all FPRs */ -0: larl %r1, initial_cr0 - lctlg %c0, %c0, 0(%r1) - lg %r15, GEN_LC_SW_INT_GRS + 15 * 8 - RESTORE_REGS_STACK - lhi %r2, 1 - larl %r0, 1f - stg %r0, GEN_LC_SW_INT_PSW + 8 - lpswe GEN_LC_SW_INT_PSW -1: br %r14 - -/* Sets up general registers and cr0 when a new cpu is brought online. */ -.globl smp_cpu_setup_state -smp_cpu_setup_state: - xgr %r1, %r1 - lmg %r0, %r15, GEN_LC_SW_INT_GRS - lctlg %c0, %c0, GEN_LC_SW_INT_CRS - /* We should only go once through cpu setup and not for every restart */ - stg %r14, GEN_LC_RESTART_NEW_PSW + 8 - larl %r14, 0f - lpswe GEN_LC_SW_INT_PSW - /* If the function returns, just loop here */ -0: j 0 /* * sie64a calling convention: @@ -125,7 +72,3 @@ sie_exit: .globl sie_exit_gregs sie_exit_gregs: br %r14 - - .align 8 -reset_psw: - .quad 0x0008000180000000 diff --git a/s390x/cpu.S b/s390x/cpu.S index 9155b044..2ff4b8e1 100644 --- a/s390x/cpu.S +++ b/s390x/cpu.S @@ -62,70 +62,6 @@ smp_cpu_setup_state: /* If the function returns, just loop here */ 0: j 0 -/* - * sie64a calling convention: - * %r2 pointer to sie control block - * %r3 guest register save area - */ -.globl sie64a -sie64a: - # Save host grs, fprs, fpc - stmg %r0,%r14,SIE_SAVEAREA_HOST_GRS(%r3) # save kernel registers - .irp i, 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 - std \i, \i * 8 + SIE_SAVEAREA_HOST_FPRS(%r3) - .endr - stfpc SIE_SAVEAREA_HOST_FPC(%r3) - - stctg %c1, %c1, SIE_SAVEAREA_HOST_ASCE(%r3) - lctlg %c1, %c1, SIE_SAVEAREA_GUEST_ASCE(%r3) - - # Store scb and save_area pointer into stack frame - stg %r2,__SF_SIE_CONTROL(%r15) # save control block pointer - stg %r3,__SF_SIE_SAVEAREA(%r15) # save guest register save area -.globl sie_entry_gregs -sie_entry_gregs: - # Load guest's gprs, fprs and fpc - .irp i, 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 - ld \i, \i * 8 + SIE_SAVEAREA_GUEST_FPRS(%r3) - .endr - lfpc SIE_SAVEAREA_GUEST_FPC(%r3) - lmg %r0,%r13,SIE_SAVEAREA_GUEST_GRS(%r3) - - # Move scb ptr into r14 for the sie instruction - lg %r14,__SF_SIE_CONTROL(%r15) - -.globl sie_entry -sie_entry: - sie 0(%r14) - nopr 7 - nopr 7 - nopr 7 - -.globl sie_exit -sie_exit: - # Load guest register save area - lg %r14,__SF_SIE_SAVEAREA(%r15) - - # Restore the host asce - lctlg %c1, %c1, SIE_SAVEAREA_HOST_ASCE(%r14) - - # Store guest's gprs, fprs and fpc - stmg %r0,%r13,SIE_SAVEAREA_GUEST_GRS(%r14) # save guest gprs 0-13 - .irp i, 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 - std \i, \i * 8 + SIE_SAVEAREA_GUEST_FPRS(%r14) - .endr - stfpc SIE_SAVEAREA_GUEST_FPC(%r14) - - # Restore host's gprs, fprs and fpc - .irp i, 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 - ld \i, \i * 8 + SIE_SAVEAREA_HOST_FPRS(%r14) - .endr - lfpc SIE_SAVEAREA_HOST_FPC(%r14) - lmg %r0,%r14,SIE_SAVEAREA_HOST_GRS(%r14) # restore kernel registers -.globl sie_exit_gregs -sie_exit_gregs: - br %r14 - .align 8 reset_psw: .quad 0x0008000180000000 From patchwork Thu Jul 18 10:50:19 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Janosch Frank X-Patchwork-Id: 13736378 Received: from mx0b-001b2d01.pphosted.com (mx0b-001b2d01.pphosted.com [148.163.158.5]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B339C1EA80; Thu, 18 Jul 2024 10:56:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.163.158.5 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1721300189; cv=none; b=nInINJ7zm1n8KCjEnfOJc3Fexu6deV2K5JVe41cyNV5QqT2WHoQMd68oMSBzBgPjA/4ybvBltz09+IZ/J9JJreYg2YShZ8G9QJ/XpCxQ8Q06te0/QDafNF0+kRgeijcV5KOJ2Exk6IpAt7uR9GwqDnbnIsiANIcNTDMamWbWMuY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1721300189; c=relaxed/simple; bh=JSc9xUZKo6A2//1jLMem/oSwVDccrQehR6QdHnPy/U4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=b5oIsI3UQI7aTaCBUHTmL+No/05ei6as7nfJH6bjgfuaca6tGvesb4aYB0gfsL+eE74CzYO9oj6ksV4rqaJIzQp84a3Cen/7T3BIGdCmJCYivzIgse0zV4+Ubsp4IcjUDgGhQm+plsGIpFsWeaPD5R3jswPsdV0UjZF59zDAFRY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.ibm.com; spf=pass smtp.mailfrom=linux.ibm.com; dkim=pass (2048-bit key) header.d=ibm.com header.i=@ibm.com header.b=WvfrJjaR; arc=none smtp.client-ip=148.163.158.5 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.ibm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linux.ibm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=ibm.com header.i=@ibm.com header.b="WvfrJjaR" Received: from pps.filterd (m0356516.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 46I8dWlD013645; Thu, 18 Jul 2024 10:56:25 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=from :to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; s=pp1; bh=9yRUypCBoAe43 NrzoDicduyWJmN4nSJTtXcPskW61R8=; b=WvfrJjaRa2M1+lMf37QeXPIhrGAua t/9KlT/A0c/7UmmC8+/pVj2/fIiSinJhm6fvIfGohy2YbKR6eBw/C6l93dXpRCgV rrdbcQBK5MUvfkTM1s58LPyW6suwkI+ykOuwr8rBAYxOfTub2ocBulr/GhColFya 8Ki9G1ZlK9VnSVRQF9M5tyZhhSSR7ovfzRlErdsjaZZ7PjW0W1SsHV59ZLs7isOG 3CJWijTYgcitgSDcnVmaCSa+WPBeqo7AhhzjOwjr2LaemFnfLFrpgCq8nVSivk0S poO6+Koo8zU4bo5t6vPYbkKaDrhAtJBIgOtKvNgRz6SLr6ZevY5rRSB7Q== Received: from pps.reinject (localhost [127.0.0.1]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 40ey4m8c74-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 18 Jul 2024 10:56:24 +0000 (GMT) Received: from m0356516.ppops.net (m0356516.ppops.net [127.0.0.1]) by pps.reinject (8.18.0.8/8.18.0.8) with ESMTP id 46IAuOIo016462; Thu, 18 Jul 2024 10:56:24 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 40ey4m8c32-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 18 Jul 2024 10:56:23 +0000 (GMT) Received: from pps.filterd (ppma23.wdc07v.mail.ibm.com [127.0.0.1]) by ppma23.wdc07v.mail.ibm.com (8.17.1.19/8.17.1.19) with ESMTP id 46I97egU000547; Thu, 18 Jul 2024 10:52:31 GMT Received: from smtprelay07.fra02v.mail.ibm.com ([9.218.2.229]) by ppma23.wdc07v.mail.ibm.com (PPS) with ESMTPS id 40dwkk96rx-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 18 Jul 2024 10:52:30 +0000 Received: from smtpav05.fra02v.mail.ibm.com (smtpav05.fra02v.mail.ibm.com [10.20.54.104]) by smtprelay07.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 46IAqPoO51052880 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 18 Jul 2024 10:52:27 GMT Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 152722004E; Thu, 18 Jul 2024 10:52:25 +0000 (GMT) Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id D1B702004F; Thu, 18 Jul 2024 10:52:24 +0000 (GMT) Received: from a46lp67.lnxne.boe (unknown [9.152.108.100]) by smtpav05.fra02v.mail.ibm.com (Postfix) with ESMTP; Thu, 18 Jul 2024 10:52:24 +0000 (GMT) From: Janosch Frank To: kvm@vger.kernel.org Cc: linux-s390@vger.kernel.org, imbrenda@linux.ibm.com, nrb@linux.ibm.com, npiggin@gmail.com, nsg@linux.ibm.com, mhartmay@linux.ibm.com Subject: [kvm-unit-tests PATCH 4/4] lib: s390x: Split SIE fw structs from lib structs Date: Thu, 18 Jul 2024 10:50:19 +0000 Message-ID: <20240718105104.34154-5-frankja@linux.ibm.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240718105104.34154-1-frankja@linux.ibm.com> References: <20240718105104.34154-1-frankja@linux.ibm.com> Precedence: bulk X-Mailing-List: kvm@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-TM-AS-GCONF: 00 X-Proofpoint-GUID: casGxXQkK56sPEjNhiFpC_6CSiDyDlih X-Proofpoint-ORIG-GUID: ReRxpH47D7unfTVlBoJYV78wsVqkPakM X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1039,Hydra:6.0.680,FMLib:17.12.28.16 definitions=2024-07-18_07,2024-07-17_02,2024-05-17_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 mlxlogscore=999 mlxscore=0 phishscore=0 suspectscore=0 bulkscore=0 clxscore=1015 spamscore=0 impostorscore=0 lowpriorityscore=0 malwarescore=0 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.19.0-2407110000 definitions=main-2407180072 The SIE control block is huge and takes up too much space. Additionally sie.h will now only contain sie lib structs and declarations so we have a clear divide about which header contains which things. Signed-off-by: Janosch Frank Reviewed-by: Christoph Schlameuss Reviewed-by: Claudio Imbrenda --- lib/s390x/{sie.h => asm/sie-arch.h} | 58 +------ lib/s390x/sie.h | 231 +--------------------------- 2 files changed, 4 insertions(+), 285 deletions(-) copy lib/s390x/{sie.h => asm/sie-arch.h} (81%) diff --git a/lib/s390x/sie.h b/lib/s390x/asm/sie-arch.h similarity index 81% copy from lib/s390x/sie.h copy to lib/s390x/asm/sie-arch.h index c1724cf2..4911c988 100644 --- a/lib/s390x/sie.h +++ b/lib/s390x/asm/sie-arch.h @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: GPL-2.0-or-later */ -#ifndef _S390X_SIE_H_ -#define _S390X_SIE_H_ +#ifndef _S390X_SIE_ARCH_H_ +#define _S390X_SIE_ARCH_H_ #include #include @@ -235,56 +235,4 @@ struct esca_block { struct esca_entry cpu[256]; }; -struct vm_uv { - uint64_t vm_handle; - uint64_t vcpu_handle; - uint64_t asce; - void *conf_base_stor; - void *conf_var_stor; - void *cpu_stor; -}; - -struct vm_save_regs { - uint64_t asce; - uint64_t grs[16]; - uint64_t fprs[16]; - uint32_t fpc; -}; - -/* We might be able to nestle all of this into the stack frame. But - * having a dedicated save area that saves more than the s390 ELF ABI - * defines leaves us more freedom in the implementation. -*/ -struct vm_save_area { - struct vm_save_regs guest; - struct vm_save_regs host; -}; - -struct vm { - struct kvm_s390_sie_block *sblk; - struct vm_save_area save_area; - struct esca_block *sca; /* System Control Area */ - uint8_t *crycb; /* Crypto Control Block */ - struct vm_uv uv; /* PV UV information */ - /* Ptr to first guest page */ - uint8_t *guest_mem; - bool validity_expected; -}; - -extern void sie_entry(void); -extern void sie_exit(void); -extern void sie_entry_gregs(void); -extern void sie_exit_gregs(void); -extern void sie64a(struct kvm_s390_sie_block *sblk, struct vm_save_area *save_area); -void sie(struct vm *vm); -void sie_expect_validity(struct vm *vm); -uint16_t sie_get_validity(struct vm *vm); -void sie_check_validity(struct vm *vm, uint16_t vir_exp); -void sie_handle_validity(struct vm *vm); -void sie_guest_sca_create(struct vm *vm); -void sie_guest_create(struct vm *vm, uint64_t guest_mem, uint64_t guest_mem_len); -void sie_guest_destroy(struct vm *vm); - -uint8_t *sie_guest_alloc(uint64_t guest_size); - -#endif /* _S390X_SIE_H_ */ +#endif /* _S390X_SIE_ARCH_H_ */ diff --git a/lib/s390x/sie.h b/lib/s390x/sie.h index c1724cf2..f13e698f 100644 --- a/lib/s390x/sie.h +++ b/lib/s390x/sie.h @@ -4,236 +4,7 @@ #include #include - -#define CPUSTAT_STOPPED 0x80000000 -#define CPUSTAT_WAIT 0x10000000 -#define CPUSTAT_ECALL_PEND 0x08000000 -#define CPUSTAT_STOP_INT 0x04000000 -#define CPUSTAT_IO_INT 0x02000000 -#define CPUSTAT_EXT_INT 0x01000000 -#define CPUSTAT_RUNNING 0x00800000 -#define CPUSTAT_RETAINED 0x00400000 -#define CPUSTAT_TIMING_SUB 0x00020000 -#define CPUSTAT_SIE_SUB 0x00010000 -#define CPUSTAT_RRF 0x00008000 -#define CPUSTAT_SLSV 0x00004000 -#define CPUSTAT_SLSR 0x00002000 -#define CPUSTAT_ZARCH 0x00000800 -#define CPUSTAT_MCDS 0x00000100 -#define CPUSTAT_KSS 0x00000200 -#define CPUSTAT_SM 0x00000080 -#define CPUSTAT_IBS 0x00000040 -#define CPUSTAT_GED2 0x00000010 -#define CPUSTAT_G 0x00000008 -#define CPUSTAT_GED 0x00000004 -#define CPUSTAT_J 0x00000002 -#define CPUSTAT_P 0x00000001 - -struct kvm_s390_sie_block { - uint32_t cpuflags; /* 0x0000 */ - uint32_t : 1; /* 0x0004 */ - uint32_t prefix : 18; - uint32_t : 1; - uint32_t ibc : 12; - uint8_t reserved08[4]; /* 0x0008 */ -#define PROG_IN_SIE (1<<0) - uint32_t prog0c; /* 0x000c */ -union { - uint8_t reserved10[16]; /* 0x0010 */ - struct { - uint64_t pv_handle_cpu; - uint64_t pv_handle_config; - }; - }; -#define PROG_BLOCK_SIE (1<<0) -#define PROG_REQUEST (1<<1) - uint32_t prog20; /* 0x0020 */ - uint8_t reserved24[4]; /* 0x0024 */ - uint64_t cputm; /* 0x0028 */ - uint64_t ckc; /* 0x0030 */ - uint64_t epoch; /* 0x0038 */ - uint32_t svcc; /* 0x0040 */ -#define LCTL_CR0 0x8000 -#define LCTL_CR6 0x0200 -#define LCTL_CR9 0x0040 -#define LCTL_CR10 0x0020 -#define LCTL_CR11 0x0010 -#define LCTL_CR14 0x0002 - uint16_t lctl; /* 0x0044 */ - int16_t icpua; /* 0x0046 */ -#define ICTL_OPEREXC 0x80000000 -#define ICTL_PINT 0x20000000 -#define ICTL_LPSW 0x00400000 -#define ICTL_STCTL 0x00040000 -#define ICTL_ISKE 0x00004000 -#define ICTL_SSKE 0x00002000 -#define ICTL_RRBE 0x00001000 -#define ICTL_TPROT 0x00000200 - uint32_t ictl; /* 0x0048 */ -#define ECA_CEI 0x80000000 -#define ECA_IB 0x40000000 -#define ECA_SIGPI 0x10000000 -#define ECA_MVPGI 0x01000000 -#define ECA_AIV 0x00200000 -#define ECA_VX 0x00020000 -#define ECA_PROTEXCI 0x00002000 -#define ECA_APIE 0x00000008 -#define ECA_SII 0x00000001 - uint32_t eca; /* 0x004c */ -#define ICPT_INST 0x04 -#define ICPT_PROGI 0x08 -#define ICPT_INSTPROGI 0x0C -#define ICPT_EXTREQ 0x10 -#define ICPT_EXTINT 0x14 -#define ICPT_IOREQ 0x18 -#define ICPT_WAIT 0x1c -#define ICPT_VALIDITY 0x20 -#define ICPT_STOP 0x28 -#define ICPT_OPEREXC 0x2C -#define ICPT_PARTEXEC 0x38 -#define ICPT_IOINST 0x40 -#define ICPT_KSS 0x5c -#define ICPT_INT_ENABLE 0x64 -#define ICPT_PV_INSTR 0x68 -#define ICPT_PV_NOTIFY 0x6c -#define ICPT_PV_PREF 0x70 - uint8_t icptcode; /* 0x0050 */ - uint8_t icptstatus; /* 0x0051 */ - uint16_t ihcpu; /* 0x0052 */ - uint8_t reserved54; /* 0x0054 */ -#define IICTL_CODE_NONE 0x00 -#define IICTL_CODE_MCHK 0x01 -#define IICTL_CODE_EXT 0x02 -#define IICTL_CODE_IO 0x03 -#define IICTL_CODE_RESTART 0x04 -#define IICTL_CODE_SPECIFICATION 0x10 -#define IICTL_CODE_OPERAND 0x11 - uint8_t iictl; /* 0x0055 */ - uint16_t ipa; /* 0x0056 */ - uint32_t ipb; /* 0x0058 */ - uint32_t scaoh; /* 0x005c */ -#define FPF_BPBC 0x20 - uint8_t fpf; /* 0x0060 */ -#define ECB_GS 0x40 -#define ECB_TE 0x10 -#define ECB_SPECI 0x08 -#define ECB_SRSI 0x04 -#define ECB_HOSTPROTINT 0x02 - uint8_t ecb; /* 0x0061 */ -#define ECB2_CMMA 0x80 -#define ECB2_IEP 0x20 -#define ECB2_PFMFI 0x08 -#define ECB2_ESCA 0x04 - uint8_t ecb2; /* 0x0062 */ -#define ECB3_DEA 0x08 -#define ECB3_AES 0x04 -#define ECB3_RI 0x01 - uint8_t ecb3; /* 0x0063 */ - uint32_t scaol; /* 0x0064 */ - uint8_t sdf; /* 0x0068 */ - uint8_t epdx; /* 0x0069 */ - uint8_t reserved6a[2]; /* 0x006a */ - uint32_t todpr; /* 0x006c */ -#define GISA_FORMAT1 0x00000001 - uint32_t gd; /* 0x0070 */ - uint8_t reserved74[12]; /* 0x0074 */ - uint64_t mso; /* 0x0080 */ - uint64_t msl; /* 0x0088 */ - struct psw gpsw; /* 0x0090 */ - uint64_t gg14; /* 0x00a0 */ - uint64_t gg15; /* 0x00a8 */ - uint8_t reservedb0[8]; /* 0x00b0 */ -#define HPID_KVM 0x4 -#define HPID_VSIE 0x5 - uint8_t hpid; /* 0x00b8 */ - uint8_t reservedb9[7]; /* 0x00b9 */ - union { - struct { - uint32_t eiparams; /* 0x00c0 */ - uint16_t extcpuaddr; /* 0x00c4 */ - uint16_t eic; /* 0x00c6 */ - }; - uint64_t mcic; /* 0x00c0 */ - } __attribute__ ((__packed__)); - uint32_t reservedc8; /* 0x00c8 */ - uint16_t pgmilc; /* 0x00cc */ - uint16_t iprcc; /* 0x00ce */ - uint32_t dxc; /* 0x00d0 */ - uint16_t mcn; /* 0x00d4 */ - uint8_t perc; /* 0x00d6 */ - uint8_t peratmid; /* 0x00d7 */ - uint64_t peraddr; /* 0x00d8 */ - uint8_t eai; /* 0x00e0 */ - uint8_t peraid; /* 0x00e1 */ - uint8_t oai; /* 0x00e2 */ - uint8_t armid; /* 0x00e3 */ - uint8_t reservede4[4]; /* 0x00e4 */ - uint64_t tecmc; /* 0x00e8 */ - uint8_t reservedf0[12]; /* 0x00f0 */ -#define CRYCB_FORMAT_MASK 0x00000003 -#define CRYCB_FORMAT0 0x00000000 -#define CRYCB_FORMAT1 0x00000001 -#define CRYCB_FORMAT2 0x00000003 - uint32_t crycbd; /* 0x00fc */ - uint64_t gcr[16]; /* 0x0100 */ - union { - uint64_t gbea; /* 0x0180 */ - uint64_t sidad; - }; - uint8_t reserved188[8]; /* 0x0188 */ - uint64_t sdnxo; /* 0x0190 */ - uint8_t reserved198[8]; /* 0x0198 */ - uint32_t fac; /* 0x01a0 */ - uint8_t reserved1a4[20]; /* 0x01a4 */ - uint64_t cbrlo; /* 0x01b8 */ - uint8_t reserved1c0[8]; /* 0x01c0 */ -#define ECD_HOSTREGMGMT 0x20000000 -#define ECD_MEF 0x08000000 -#define ECD_ETOKENF 0x02000000 -#define ECD_ECC 0x00200000 - uint32_t ecd; /* 0x01c8 */ - uint8_t reserved1cc[18]; /* 0x01cc */ - uint64_t pp; /* 0x01de */ - uint8_t reserved1e6[2]; /* 0x01e6 */ - uint64_t itdba; /* 0x01e8 */ - uint64_t riccbd; /* 0x01f0 */ - uint64_t gvrd; /* 0x01f8 */ - uint64_t reserved200[48]; /* 0x0200 */ - uint64_t pv_grregs[16]; /* 0x0380 */ -} __attribute__((packed)); - -union esca_sigp_ctrl { - uint16_t value; - struct { - uint8_t c : 1; - uint8_t reserved: 7; - uint8_t scn; - }; -}; - -struct esca_entry { - union esca_sigp_ctrl sigp_ctrl; - uint16_t reserved1[3]; - uint64_t sda; - uint64_t reserved2[6]; -}; - -union ipte_control { - unsigned long val; - struct { - unsigned long k : 1; - unsigned long kh : 31; - unsigned long kg : 32; - }; -}; - -struct esca_block { - union ipte_control ipte_control; - uint64_t reserved1[7]; - uint64_t mcn[4]; - uint64_t reserved2[20]; - struct esca_entry cpu[256]; -}; +#include struct vm_uv { uint64_t vm_handle;