From nobody Sat May 18 17:34:36 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail header.i=@wdc.com; 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=fail(p=none dis=none) header.from=wdc.com ARC-Seal: i=1; a=rsa-sha256; t=1588185549; cv=none; d=zohomail.com; s=zohoarc; b=UhbUNfePR3dSnFO/6GNLnzentq1i+dT/X3cJJ7fDTSEbogKFyToFjiZfOt+//54RpZ6L1BpdVDMYu+vtSuonUOaVu8Uz5G+tNEE4daWd5FMssGyngx+3ssVcbD+/2Bez8t3tlhRrFuRuDfJxeZ882wverMGbIAGugMCmJV/K/Dc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1588185549; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=c8Otaaa7sK0hOKk2xiAz0WQBM3CNTmt236gDO1pa8T8=; b=CKh2RxjAn62w93tTeUDoFF7FXmrA6HJqsqYYkxNTUr9PoAQYxYjE6y66tqhmlWqwsovAA4EP3N9a+Ql0eKbPdlzxMUTDUsCHsWwVhPqY/xnH7PTpkym85ke5y3odtXGdv8813NDXPQ0zBgRSnWbwSi4H71HAErXQAfRXSLcEuT0= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail header.i=@wdc.com; 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=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1588185549984348.0345656729055; Wed, 29 Apr 2020 11:39:09 -0700 (PDT) Received: from localhost ([::1]:57974 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jTrbw-0002km-KV for importer@patchew.org; Wed, 29 Apr 2020 14:39:08 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:37410) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jTraA-0008J2-Rh for qemu-devel@nongnu.org; Wed, 29 Apr 2020 14:37:21 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.90_1) (envelope-from ) id 1jTra8-0003Tp-1p for qemu-devel@nongnu.org; Wed, 29 Apr 2020 14:37:18 -0400 Received: from esa6.hgst.iphmx.com ([216.71.154.45]:2041) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jTra1-0003PZ-9U; Wed, 29 Apr 2020 14:37:09 -0400 Received: from uls-op-cesaip02.wdc.com (HELO uls-op-cesaep02.wdc.com) ([199.255.45.15]) by ob1.hgst.iphmx.com with ESMTP; 30 Apr 2020 02:37:04 +0800 Received: from uls-op-cesaip01.wdc.com ([10.248.3.36]) by uls-op-cesaep02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 29 Apr 2020 11:27:08 -0700 Received: from cnf007834.ad.shared (HELO risc6-mainframe.hgst.com) ([10.86.55.253]) by uls-op-cesaip01.wdc.com with ESMTP; 29 Apr 2020 11:37:02 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1588185430; x=1619721430; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=dQnv0AWXrAZvSlmsbH49Gt2Jsse2jUj501EULWstkYo=; b=qGe4F+GyK7Ysl6iie/4c7WBlrw+lKLZ/hD8QcFIUBjh0jGdv06NEQVDA trlrI3Jio5mgv4MkYdBAq5Yuw3Z+4cTyAvuah0VyUTe3faFsIuDtM0kMC t9fDjpfR3cvR4u/OOEXTc0HuS+lVPRBmZZIaFL8dqK2g6HeFajh2gLMAe 55728gh+G9NQQKwCzE69OnwgewCFGzHzAP7gFTnaUBXGKP+RULVvZTQbh VR2o1/G/hkc7rkAiH+/GyKIgRuRbWvP7+zvWNlT7Vr+LMoYkslex+sSOW /Q0DZeCfxIv1gg3W8ubS6BIe9/NB561uQCozlHSPW7d2PbNcqqFBt+Lk1 g==; IronPort-SDR: rgSO3F5miD5lHbbtOap8JOCl9P1g2Qzf+Tsxx8mGARNuKE6D0drlrdD/hFNs71i+VJrVVmsWY6 +P9aa+8ucpoYTpIwbCeby82TrkWx/26gDgWDSmCWnKMpdpgCe0CQYQ2Q/WD1JbFvUyxm5VywBe QaJxdCfoF7n2YG+MSNyUHown9DGr0pr3Jqf821JkwVztEbqoocbxRYZVde5hwGCmKqO00lBpgh CfzkaVtYvlvNh5QcabhvWRY7W0bmAzrm7yJUQc0+3pSQNZm86vFogQknRc0G14b/yohYfBx1fY qgQ= X-IronPort-AV: E=Sophos;i="5.73,332,1583164800"; d="scan'208";a="137935128" IronPort-SDR: jKBlkO6P8KnylH+UIbawlj6puiY1AipcedR8Yk5cavsNpiSxcb5fy1ekEfJRgu7loBXjdYi/Nb MovGAQtj5I3KKWnL0GqMUc+0QEjUJpK/M= IronPort-SDR: yjz7qovcvUwPLULOV6wltPLDIu1SWFJV1B3/coKpv4Of/XYY2N71+EE2+XC2IZryS37RKs0xET TH2pU2iUsEMA== WDCIronportException: Internal From: Alistair Francis To: peter.maydell@linaro.org Subject: [PULL 01/14] riscv/sifive_u: Fix up file ordering Date: Wed, 29 Apr 2020 11:28:43 -0700 Message-Id: <20200429182856.2588202-2-alistair.francis@wdc.com> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20200429182856.2588202-1-alistair.francis@wdc.com> References: <20200429182856.2588202-1-alistair.francis@wdc.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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=lists.gnu.org; Received-SPF: pass client-ip=216.71.154.45; envelope-from=prvs=381fbd49e=alistair.francis@wdc.com; helo=esa6.hgst.iphmx.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/04/29 14:37:03 X-ACL-Warn: Detected OS = FreeBSD 9.x or newer [fuzzy] X-Received-From: 216.71.154.45 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Alistair Francis , palmerdabbelt@google.com, qemu-riscv@nongnu.org, qemu-devel@nongnu.org, Bin Meng Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" Split the file into clear machine and SoC sections. Signed-off-by: Alistair Francis Reviewed-by: Bin Meng --- hw/riscv/sifive_u.c | 109 ++++++++++++++++++++++---------------------- 1 file changed, 55 insertions(+), 54 deletions(-) diff --git a/hw/riscv/sifive_u.c b/hw/riscv/sifive_u.c index 56351c4faa..d0ea6803db 100644 --- a/hw/riscv/sifive_u.c +++ b/hw/riscv/sifive_u.c @@ -312,7 +312,7 @@ static void create_fdt(SiFiveUState *s, const struct Me= mmapEntry *memmap, g_free(nodename); } =20 -static void riscv_sifive_u_init(MachineState *machine) +static void sifive_u_machine_init(MachineState *machine) { const struct MemmapEntry *memmap =3D sifive_u_memmap; SiFiveUState *s =3D RISCV_U_MACHINE(machine); @@ -403,6 +403,60 @@ static void riscv_sifive_u_init(MachineState *machine) &address_space_memory); } =20 +static bool sifive_u_machine_get_start_in_flash(Object *obj, Error **errp) +{ + SiFiveUState *s =3D RISCV_U_MACHINE(obj); + + return s->start_in_flash; +} + +static void sifive_u_machine_set_start_in_flash(Object *obj, bool value, E= rror **errp) +{ + SiFiveUState *s =3D RISCV_U_MACHINE(obj); + + s->start_in_flash =3D value; +} + +static void sifive_u_machine_instance_init(Object *obj) +{ + SiFiveUState *s =3D RISCV_U_MACHINE(obj); + + s->start_in_flash =3D false; + object_property_add_bool(obj, "start-in-flash", sifive_u_machine_get_s= tart_in_flash, + sifive_u_machine_set_start_in_flash, NULL); + object_property_set_description(obj, "start-in-flash", + "Set on to tell QEMU's ROM to jump to = " \ + "flash. Otherwise QEMU will jump to DR= AM", + NULL); +} + + +static void sifive_u_machine_class_init(ObjectClass *oc, void *data) +{ + MachineClass *mc =3D MACHINE_CLASS(oc); + + mc->desc =3D "RISC-V Board compatible with SiFive U SDK"; + mc->init =3D sifive_u_machine_init; + mc->max_cpus =3D SIFIVE_U_MANAGEMENT_CPU_COUNT + SIFIVE_U_COMPUTE_CPU_= COUNT; + mc->min_cpus =3D SIFIVE_U_MANAGEMENT_CPU_COUNT + 1; + mc->default_cpus =3D mc->min_cpus; +} + +static const TypeInfo sifive_u_machine_typeinfo =3D { + .name =3D MACHINE_TYPE_NAME("sifive_u"), + .parent =3D TYPE_MACHINE, + .class_init =3D sifive_u_machine_class_init, + .instance_init =3D sifive_u_machine_instance_init, + .instance_size =3D sizeof(SiFiveUState), +}; + +static void sifive_u_machine_init_register_types(void) +{ + type_register_static(&sifive_u_machine_typeinfo); +} + +type_init(sifive_u_machine_init_register_types) + static void riscv_sifive_u_soc_init(Object *obj) { MachineState *ms =3D MACHINE(qdev_get_machine()); @@ -443,33 +497,6 @@ static void riscv_sifive_u_soc_init(Object *obj) TYPE_CADENCE_GEM); } =20 -static bool sifive_u_get_start_in_flash(Object *obj, Error **errp) -{ - SiFiveUState *s =3D RISCV_U_MACHINE(obj); - - return s->start_in_flash; -} - -static void sifive_u_set_start_in_flash(Object *obj, bool value, Error **e= rrp) -{ - SiFiveUState *s =3D RISCV_U_MACHINE(obj); - - s->start_in_flash =3D value; -} - -static void riscv_sifive_u_machine_instance_init(Object *obj) -{ - SiFiveUState *s =3D RISCV_U_MACHINE(obj); - - s->start_in_flash =3D false; - object_property_add_bool(obj, "start-in-flash", sifive_u_get_start_in_= flash, - sifive_u_set_start_in_flash, NULL); - object_property_set_description(obj, "start-in-flash", - "Set on to tell QEMU's ROM to jump to = " \ - "flash. Otherwise QEMU will jump to DR= AM", - NULL); -} - static void riscv_sifive_u_soc_realize(DeviceState *dev, Error **errp) { MachineState *ms =3D MACHINE(qdev_get_machine()); @@ -607,29 +634,3 @@ static void riscv_sifive_u_soc_register_types(void) } =20 type_init(riscv_sifive_u_soc_register_types) - -static void riscv_sifive_u_machine_class_init(ObjectClass *oc, void *data) -{ - MachineClass *mc =3D MACHINE_CLASS(oc); - - mc->desc =3D "RISC-V Board compatible with SiFive U SDK"; - mc->init =3D riscv_sifive_u_init; - mc->max_cpus =3D SIFIVE_U_MANAGEMENT_CPU_COUNT + SIFIVE_U_COMPUTE_CPU_= COUNT; - mc->min_cpus =3D SIFIVE_U_MANAGEMENT_CPU_COUNT + 1; - mc->default_cpus =3D mc->min_cpus; -} - -static const TypeInfo riscv_sifive_u_machine_typeinfo =3D { - .name =3D MACHINE_TYPE_NAME("sifive_u"), - .parent =3D TYPE_MACHINE, - .class_init =3D riscv_sifive_u_machine_class_init, - .instance_init =3D riscv_sifive_u_machine_instance_init, - .instance_size =3D sizeof(SiFiveUState), -}; - -static void riscv_sifive_u_machine_init_register_types(void) -{ - type_register_static(&riscv_sifive_u_machine_typeinfo); -} - -type_init(riscv_sifive_u_machine_init_register_types) --=20 2.26.2 From nobody Sat May 18 17:34:36 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail header.i=@wdc.com; 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=fail(p=none dis=none) header.from=wdc.com ARC-Seal: i=1; a=rsa-sha256; t=1588185528; cv=none; d=zohomail.com; s=zohoarc; b=GN4VmEmCs9WIZkqEmnxdvPo9XhhB8nOIPqxQrlfPCFfVdv24vqU2a3oGH988TSYXuGF17uJcENnUXwkdLJorWwK99+RIQ32h/uimI0s3z8r0/6gIW2e9jEUnno3+8KvMdK9OxieflGkZ9eh8fXjPOQvPb/gHgAJLDbtM24uLBIY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1588185528; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=EsxrA3okQfpVLdn+V+5t3JYnyIuzbI1QQ4bUZI2TKOY=; b=eQz2YubESGelBjV7OIRj611z6ECwHNGbAHmsKnnXphoQ1A44NQcbY13r2zL0cXSldiy6xkq4jeQvDLjWaPFDyW1brDY7LXFmd7FmJhSZZRiNj6vvAHUZ8a3txLa7fZuSbVP18XL4v0ofNQJk7yrVZT8YvGNVWxLFtkdAnXqLYbk= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail header.i=@wdc.com; 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=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 15881855287855.5355085628773395; Wed, 29 Apr 2020 11:38:48 -0700 (PDT) Received: from localhost ([::1]:56072 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jTrba-0001zI-TE for importer@patchew.org; Wed, 29 Apr 2020 14:38:46 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:37404) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jTraA-0008HZ-1S for qemu-devel@nongnu.org; Wed, 29 Apr 2020 14:37:20 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.90_1) (envelope-from ) id 1jTra7-0003Ta-Dr for qemu-devel@nongnu.org; Wed, 29 Apr 2020 14:37:17 -0400 Received: from esa6.hgst.iphmx.com ([216.71.154.45]:2049) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jTra1-0003Ps-TV; Wed, 29 Apr 2020 14:37:10 -0400 Received: from uls-op-cesaip02.wdc.com (HELO uls-op-cesaep02.wdc.com) ([199.255.45.15]) by ob1.hgst.iphmx.com with ESMTP; 30 Apr 2020 02:37:05 +0800 Received: from uls-op-cesaip01.wdc.com ([10.248.3.36]) by uls-op-cesaep02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 29 Apr 2020 11:27:08 -0700 Received: from cnf007834.ad.shared (HELO risc6-mainframe.hgst.com) ([10.86.55.253]) by uls-op-cesaip01.wdc.com with ESMTP; 29 Apr 2020 11:37:02 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1588185430; x=1619721430; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=ASdz2nYicMKK5KNiI4RW9fDQD1WYOAb17Mlu/b4oV8k=; b=OZ0R+257ng9vT2m+ckUqjewmMQRVEK3TUCYLIIMt97M8C8i5TK+Zynv9 eAsXtl00g8YQTtuXYKDY7JEZkI5mmqEf0P4rEM1MIRXvOIbxlBrUnJ17x vIIty2iSCH3jlS1c00cSBvADxOV0mu+2B8qhKlHOccRcfkjAkWVMR6Dcr oEv8B523t6wah329QRhXRRspMYDqr3LgmzWnButCv5DifHQyetnSJCRQ/ sP1jl8B0JX6doGXHn9oH9Ptqgtsj/5YW6H35ShLEpRMSihoqhf5C/wGSC EtLAEXj+PMQ1TtK/ShpKl7naFkHiqwuccvbqLwsavo8WLDNIuuaQf4U5Z Q==; IronPort-SDR: S7xnt+2OBRptTe1WLzh2vACGbYkSk7jRQXzfNE0FZDW4DvG6iD3mJ/dcywVGQf8C2Y3JyfHlIX h+fIxpn1x29K79shAdJmfLX5C75qsK/PC1CuU5a//4nReEUDu6qJc5wR+fZYzK/YIzdAYm+7cb /n1ry/LDdnYSkdJU1QXWGBBrCMH5i8M0GblPzOgrrT+3VQE7auZgCInbyce6VTqlwvS/ccEp9c jJ1yE2fvFnZqa+Bxetkk11KVXeV4hU1lBJm59R6qFJEvFlpJVSM5C/6uTdg0RYu80Qf2UFnGPB 0OQ= X-IronPort-AV: E=Sophos;i="5.73,332,1583164800"; d="scan'208";a="137935131" IronPort-SDR: htJQjp3qBlqhyM08ayfFbd0zXI4ShCrDhitEpBejBDp88UAipLQOr3uK454Ol/4BPySim5tZIY /0GPi2omy3AcG3RkS/66Yh7FyBqDy1YwM= IronPort-SDR: 3TYX+rbpLQGfzANF+eCG7AXToaNG5Nz6r+4ikVxQw9rl8wxZpwj+eNMGIxD1Xg2mwYJWLTOcTu 5QvcDZHY8fiw== WDCIronportException: Internal From: Alistair Francis To: peter.maydell@linaro.org Subject: [PULL 02/14] riscv/sifive_u: Add a serial property to the sifive_u SoC Date: Wed, 29 Apr 2020 11:28:44 -0700 Message-Id: <20200429182856.2588202-3-alistair.francis@wdc.com> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20200429182856.2588202-1-alistair.francis@wdc.com> References: <20200429182856.2588202-1-alistair.francis@wdc.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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=lists.gnu.org; Received-SPF: pass client-ip=216.71.154.45; envelope-from=prvs=381fbd49e=alistair.francis@wdc.com; helo=esa6.hgst.iphmx.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/04/29 14:37:03 X-ACL-Warn: Detected OS = FreeBSD 9.x or newer [fuzzy] X-Received-From: 216.71.154.45 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Alistair Francis , palmerdabbelt@google.com, qemu-riscv@nongnu.org, qemu-devel@nongnu.org, Bin Meng Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" At present the board serial number is hard-coded to 1, and passed to OTP model during initialization. Firmware (FSBL, U-Boot) uses the serial number to generate a unique MAC address for the on-chip ethernet controller. When multiple QEMU 'sifive_u' instances are created and connected to the same subnet, they all have the same MAC address hence it creates a unusable network. A new "serial" property is introduced to the sifive_u SoC to specify the board serial number. When not given, the default serial number 1 is used. Suggested-by: Bin Meng Signed-off-by: Alistair Francis Reviewed-by: Bin Meng Tested-by: Bin Meng --- hw/riscv/sifive_u.c | 8 +++++++- include/hw/riscv/sifive_u.h | 2 ++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/hw/riscv/sifive_u.c b/hw/riscv/sifive_u.c index d0ea6803db..9bfd16d2bb 100644 --- a/hw/riscv/sifive_u.c +++ b/hw/riscv/sifive_u.c @@ -492,7 +492,6 @@ static void riscv_sifive_u_soc_init(Object *obj) TYPE_SIFIVE_U_PRCI); sysbus_init_child_obj(obj, "otp", &s->otp, sizeof(s->otp), TYPE_SIFIVE_U_OTP); - qdev_prop_set_uint32(DEVICE(&s->otp), "serial", OTP_SERIAL); sysbus_init_child_obj(obj, "gem", &s->gem, sizeof(s->gem), TYPE_CADENCE_GEM); } @@ -585,6 +584,7 @@ static void riscv_sifive_u_soc_realize(DeviceState *dev= , Error **errp) object_property_set_bool(OBJECT(&s->prci), true, "realized", &err); sysbus_mmio_map(SYS_BUS_DEVICE(&s->prci), 0, memmap[SIFIVE_U_PRCI].bas= e); =20 + qdev_prop_set_uint32(DEVICE(&s->otp), "serial", s->serial); object_property_set_bool(OBJECT(&s->otp), true, "realized", &err); sysbus_mmio_map(SYS_BUS_DEVICE(&s->otp), 0, memmap[SIFIVE_U_OTP].base); =20 @@ -611,10 +611,16 @@ static void riscv_sifive_u_soc_realize(DeviceState *d= ev, Error **errp) memmap[SIFIVE_U_GEM_MGMT].base, memmap[SIFIVE_U_GEM_MGMT].size); } =20 +static Property riscv_sifive_u_soc_props[] =3D { + DEFINE_PROP_UINT32("serial", SiFiveUSoCState, serial, OTP_SERIAL), + DEFINE_PROP_END_OF_LIST() +}; + static void riscv_sifive_u_soc_class_init(ObjectClass *oc, void *data) { DeviceClass *dc =3D DEVICE_CLASS(oc); =20 + device_class_set_props(dc, riscv_sifive_u_soc_props); dc->realize =3D riscv_sifive_u_soc_realize; /* Reason: Uses serial_hds in realize function, thus can't be used twi= ce */ dc->user_creatable =3D false; diff --git a/include/hw/riscv/sifive_u.h b/include/hw/riscv/sifive_u.h index 82667b5746..a2baa1de5f 100644 --- a/include/hw/riscv/sifive_u.h +++ b/include/hw/riscv/sifive_u.h @@ -42,6 +42,8 @@ typedef struct SiFiveUSoCState { SiFiveUPRCIState prci; SiFiveUOTPState otp; CadenceGEMState gem; + + uint32_t serial; } SiFiveUSoCState; =20 #define TYPE_RISCV_U_MACHINE MACHINE_TYPE_NAME("sifive_u") --=20 2.26.2 From nobody Sat May 18 17:34:36 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail header.i=@wdc.com; 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=fail(p=none dis=none) header.from=wdc.com ARC-Seal: i=1; a=rsa-sha256; t=1588185729; cv=none; d=zohomail.com; s=zohoarc; b=Za3hxj+u2npPBYhCKSzbWt6BP1UVmbNj61ZGjnod5LOjM0dSoWgWljnMSMYRpXOv37WwYgFQR2/RkGTRNWzU8XAIXpu1ml9JNIWcm47QdMzPkqe+89fr8VpRAwArPI7r76KbTJqzb9azgFI7sz+oRm9vcJWqMNNbglvezkQOeqQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1588185729; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=3mN2GwlTRO5SDDQUkpqgC1v4tKh0KyZ5uWxqwTFkOfc=; b=auMErhB1OSqkSs7b4caoQJnuiGSw6x5+PMuwI08R8LBFSUVJLtU6HM2k6XmiN3JdOejkO6YkT0Dm2ZE14zrUXnYYHNljeL33m7AgXLVHIvwKnhz1qBCtEeoeh+cKU+XM0JOIHGX5VLuyrofY19+trxJoO3I/SDsVuwa/Pb2SmkA= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail header.i=@wdc.com; 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=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 158818572921531.29245363895427; Wed, 29 Apr 2020 11:42:09 -0700 (PDT) Received: from localhost ([::1]:42058 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jTrep-0007qd-U3 for importer@patchew.org; Wed, 29 Apr 2020 14:42:07 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:37428) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jTraC-0008LS-7d for qemu-devel@nongnu.org; Wed, 29 Apr 2020 14:37:23 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.90_1) (envelope-from ) id 1jTra9-0003UR-GQ for qemu-devel@nongnu.org; Wed, 29 Apr 2020 14:37:19 -0400 Received: from esa6.hgst.iphmx.com ([216.71.154.45]:2035) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jTra4-0003PL-1G; Wed, 29 Apr 2020 14:37:12 -0400 Received: from uls-op-cesaip02.wdc.com (HELO uls-op-cesaep02.wdc.com) ([199.255.45.15]) by ob1.hgst.iphmx.com with ESMTP; 30 Apr 2020 02:37:05 +0800 Received: from uls-op-cesaip01.wdc.com ([10.248.3.36]) by uls-op-cesaep02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 29 Apr 2020 11:27:09 -0700 Received: from cnf007834.ad.shared (HELO risc6-mainframe.hgst.com) ([10.86.55.253]) by uls-op-cesaip01.wdc.com with ESMTP; 29 Apr 2020 11:37:03 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1588185432; x=1619721432; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=7VGekjimGFhnrQH5Hz5SIJjCxpJHUdEtoAbd78NbRG8=; b=GAM+082ffK3aQuuTeOouB/Glv5hH2CCS1/hC9f8HQ55gO1H13CvVS3hJ ZeBYO3TcodZPd8powFfTyA3bWLaRzZ9zmDKCr0+3gsXHiZ1TbBYahst0S we9f2mI73GhHXuwzuZLSHKlFLxMcEn4PLCmHyXCkxiw/cS9ny9l7cav9p P0AvQzBDY+Iex1unsarFC5+9/KDVJuINy0xi3iEa9vxyN02zMqCDVRXKm reV+O1UDkJ90A4lyYEXYRMrIRZ/w0wB8enDuw2/yrIxov0QKbkXgRdP4J ZMqt4V4qd6JM/XvCDbMBxRsJ1QtT5LkfgfA3v87fxTgh9NrnE3UPXTm/y A==; IronPort-SDR: xzr0QQRPZnPhio7n/HT7FZ3IjJwutYxSqnELfX/zUFBhwwWSHLKltR61iznfc/bhh+fy6mdwk1 E+mS2EmnlYp2+VfqY3pzszgL9JA96zzLwO8fJdv7DJVb0Wyoe1Flk2UZfJW3BjbWwZUsjqrSEB RBUUfbyb/oMdE2jtxnIlZRxyx0oOoukWy4a5I25f1QNlzFHB5LD3X+MnmeFEVTUV0tgpeYdYsp 1mdagGPlIXqVady9U/L9e12kr/VzhmrXh8lTtOhMVJ1N1k+ONygYLClC2zDV7FGKVTlh+ImOXm VLQ= X-IronPort-AV: E=Sophos;i="5.73,332,1583164800"; d="scan'208";a="137935133" IronPort-SDR: a9ynhORNhhTXgl9LKkbsu5JDIfzD+Vt7JpQnY5k6liVQQV5SMK3cuMbpTcg59z7EkGyPa41BCh 5va+J+QRezdZ2zDJ00fpym3/EvH5mgPMA= IronPort-SDR: CcUvOX2SecHENtwkcMGXJ1efoTTs/22a46qxexE1kGCh2W2cR8lifkPlrOSsbe7DMW4HtYiAKm x+QeJZdweUXw== WDCIronportException: Internal From: Alistair Francis To: peter.maydell@linaro.org Subject: [PULL 03/14] riscv/sifive_u: Add a serial property to the sifive_u machine Date: Wed, 29 Apr 2020 11:28:45 -0700 Message-Id: <20200429182856.2588202-4-alistair.francis@wdc.com> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20200429182856.2588202-1-alistair.francis@wdc.com> References: <20200429182856.2588202-1-alistair.francis@wdc.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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=lists.gnu.org; Received-SPF: pass client-ip=216.71.154.45; envelope-from=prvs=381fbd49e=alistair.francis@wdc.com; helo=esa6.hgst.iphmx.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/04/29 14:37:03 X-ACL-Warn: Detected OS = FreeBSD 9.x or newer [fuzzy] X-Received-From: 216.71.154.45 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Alistair Francis , palmerdabbelt@google.com, qemu-riscv@nongnu.org, qemu-devel@nongnu.org, Bin Meng Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" From: Bin Meng At present the board serial number is hard-coded to 1, and passed to OTP model during initialization. Firmware (FSBL, U-Boot) uses the serial number to generate a unique MAC address for the on-chip ethernet controller. When multiple QEMU 'sifive_u' instances are created and connected to the same subnet, they all have the same MAC address hence it creates a unusable network. A new "serial" property is introduced to specify the board serial number. When not given, the default serial number 1 is used. Signed-off-by: Bin Meng Reviewed-by: Palmer Dabbelt Reviewed-by: Alistair Francis Message-Id: <1573916930-19068-1-git-send-email-bmeng.cn@gmail.com> [ Changed by AF: - Use the SoC's serial property to pass the info to the SoC - Fixup commit title - Rebase on file restructuring ] Signed-off-by: Alistair Francis --- hw/riscv/sifive_u.c | 20 ++++++++++++++++++++ include/hw/riscv/sifive_u.h | 1 + 2 files changed, 21 insertions(+) diff --git a/hw/riscv/sifive_u.c b/hw/riscv/sifive_u.c index 9bfd16d2bb..eb0abcae89 100644 --- a/hw/riscv/sifive_u.c +++ b/hw/riscv/sifive_u.c @@ -34,6 +34,7 @@ #include "qemu/log.h" #include "qemu/error-report.h" #include "qapi/error.h" +#include "qapi/visitor.h" #include "hw/boards.h" #include "hw/loader.h" #include "hw/sysbus.h" @@ -326,6 +327,8 @@ static void sifive_u_machine_init(MachineState *machine) object_initialize_child(OBJECT(machine), "soc", &s->soc, sizeof(s->soc), TYPE_RISCV_U_SOC, &error_abort, NULL); + object_property_set_uint(OBJECT(&s->soc), s->serial, "serial", + &error_abort); object_property_set_bool(OBJECT(&s->soc), true, "realized", &error_abort); =20 @@ -417,6 +420,18 @@ static void sifive_u_machine_set_start_in_flash(Object= *obj, bool value, Error * s->start_in_flash =3D value; } =20 +static void sifive_u_machine_get_serial(Object *obj, Visitor *v, const cha= r *name, + void *opaque, Error **errp) +{ + visit_type_uint32(v, name, (uint32_t *)opaque, errp); +} + +static void sifive_u_machine_set_serial(Object *obj, Visitor *v, const cha= r *name, + void *opaque, Error **errp) +{ + visit_type_uint32(v, name, (uint32_t *)opaque, errp); +} + static void sifive_u_machine_instance_init(Object *obj) { SiFiveUState *s =3D RISCV_U_MACHINE(obj); @@ -428,6 +443,11 @@ static void sifive_u_machine_instance_init(Object *obj) "Set on to tell QEMU's ROM to jump to = " \ "flash. Otherwise QEMU will jump to DR= AM", NULL); + + s->serial =3D OTP_SERIAL; + object_property_add(obj, "serial", "uint32", sifive_u_machine_get_seri= al, + sifive_u_machine_set_serial, NULL, &s->serial, NUL= L); + object_property_set_description(obj, "serial", "Board serial number", = NULL); } =20 =20 diff --git a/include/hw/riscv/sifive_u.h b/include/hw/riscv/sifive_u.h index a2baa1de5f..16c297ec5f 100644 --- a/include/hw/riscv/sifive_u.h +++ b/include/hw/riscv/sifive_u.h @@ -61,6 +61,7 @@ typedef struct SiFiveUState { int fdt_size; =20 bool start_in_flash; + uint32_t serial; } SiFiveUState; =20 enum { --=20 2.26.2 From nobody Sat May 18 17:34:36 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail header.i=@wdc.com; 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=fail(p=none dis=none) header.from=wdc.com ARC-Seal: i=1; a=rsa-sha256; t=1588185837; cv=none; d=zohomail.com; s=zohoarc; b=QPCRjJen2Gncne1SURZdw/8zVTTVFBXp8xawUCE7HSRq26y3Z2ZiJEyzfa90iA8UNXapvh38wqyO5+ICvN84bNyoOarPIiqA9gTNQ33wMFQjgJURji4I/Zu88ZRgMeK+nVIxsBRcqSc11MdHpH0+tjMl0mjeW7+JNYjrip814bo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1588185837; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=iopKmEUlffccM1o3d8HmFte4DqI1Dz3E5c8xHQteNuU=; b=TtX4jjfcNEO21iqDvr+E2V/epq3bC89NZtiZCB/BJVTD0m1Ix1H06cx/XKZNn87n+cHCyJt5160gOtfq3Nc7DEobV3ZJFZUosp0hLURcwH3NGX2PEbfR49GBcOogFToLCuinqHx2DLMHp3QE8epX3+qIs9GdcqHEe8sefn/LsjY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail header.i=@wdc.com; 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=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1588185837507341.16428964198565; Wed, 29 Apr 2020 11:43:57 -0700 (PDT) Received: from localhost ([::1]:48592 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jTrga-00027s-78 for importer@patchew.org; Wed, 29 Apr 2020 14:43:56 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:37438) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jTraC-0008Mt-UH for qemu-devel@nongnu.org; Wed, 29 Apr 2020 14:37:23 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.90_1) (envelope-from ) id 1jTraA-0003Um-9r for qemu-devel@nongnu.org; Wed, 29 Apr 2020 14:37:20 -0400 Received: from esa6.hgst.iphmx.com ([216.71.154.45]:2041) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jTra4-0003PZ-0V; Wed, 29 Apr 2020 14:37:12 -0400 Received: from uls-op-cesaip02.wdc.com (HELO uls-op-cesaep02.wdc.com) ([199.255.45.15]) by ob1.hgst.iphmx.com with ESMTP; 30 Apr 2020 02:37:05 +0800 Received: from uls-op-cesaip01.wdc.com ([10.248.3.36]) by uls-op-cesaep02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 29 Apr 2020 11:27:09 -0700 Received: from cnf007834.ad.shared (HELO risc6-mainframe.hgst.com) ([10.86.55.253]) by uls-op-cesaip01.wdc.com with ESMTP; 29 Apr 2020 11:37:03 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1588185432; x=1619721432; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=XLpDvnqj9bkxM9N2CIUAMQTvObl1PtMILsBu24h494E=; b=je0Xkv9ViJ/uVmeZlI3wtclSsHDidhQnSOyxoM7SFOkMZMmqsxdpFq1/ ZvadbW+9pNZfXktLRgdcW9zfWTo/udDY1NHkikhk1At50uVEsSlQBZLsE Ni1iD7QBzHvJhWOUiRsaBsqSpvJq8LC1jMXJeV0z8HrFXxdPWiiKhLpw1 hTJ4GGBKgBwNPqPhIR6aM+wYcoYL6cgeEAtjpjI6DgUH5vVoks94MBVtC HbP+ybhtWqhmtrLRp9L6qayZgjxfpAwAUCxJR1DBz+u15zXAmHALLn4PH eoH7Y2P+O1idWoXikSDlNGl7rFvSsvZxKSuUU16yy2giyuUKIckLRkt/2 w==; IronPort-SDR: 8ae9a7ukD/32AfHjJHy8JPinavPAZbi2IHaNK2UfJhQOWYQxMiwijlgleEZBRFiqWqt0ZvzUp6 X6w0NiTldYqNiGZPBtKWHmOTdCebNt1ZDSEqRA3zUNVzhp6k5bRMwaexBjDfjF+q87xvmBIIH9 fNZmOtr/Yi+9rraYN8jA/aQOZFF5n4PkIhaaVloMQS51RsvF+sMufUZ3KC7OcLxcI1tHf9FNFE Kx7iM2LPGGwtbozmCD+ZZK94rXsb0mqp5yacnHfjfsAxkpGBCWWllDTU2mgtHlwJedMDbUBt65 MiQ= X-IronPort-AV: E=Sophos;i="5.73,332,1583164800"; d="scan'208";a="137935137" IronPort-SDR: PNxSYnsoDEkEDFpxnLHip78/qRSSJJTHgfjco9gMG8ybw7Dhgp2oSmHCkX8RIs+QNfbUurzaOW cYv1Daw2S/baYaBzWjMXkyxtkUyKn3suY= IronPort-SDR: qvNtRoU4NEt4HH3UQ+Y4pS6N1/+TYSKNXajx5zJt6+slGiJJm2P7kSrWF606wuPdEI0TJ+5SCI 0lJf6+1O5YOg== WDCIronportException: Internal From: Alistair Francis To: peter.maydell@linaro.org Subject: [PULL 04/14] riscv: Don't use stage-2 PTE lookup protection flags Date: Wed, 29 Apr 2020 11:28:46 -0700 Message-Id: <20200429182856.2588202-5-alistair.francis@wdc.com> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20200429182856.2588202-1-alistair.francis@wdc.com> References: <20200429182856.2588202-1-alistair.francis@wdc.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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=lists.gnu.org; Received-SPF: pass client-ip=216.71.154.45; envelope-from=prvs=381fbd49e=alistair.francis@wdc.com; helo=esa6.hgst.iphmx.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/04/29 14:37:03 X-ACL-Warn: Detected OS = FreeBSD 9.x or newer [fuzzy] X-Received-From: 216.71.154.45 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: qemu-riscv@nongnu.org, Anup Patel , palmerdabbelt@google.com, Richard Henderson , qemu-devel@nongnu.org, Alistair Francis Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" When doing the fist of a two stage lookup (Hypervisor extensions) don't set the current protection flags from the second stage lookup of the base address PTE. Signed-off-by: Alistair Francis Reviewed-by: Richard Henderson Tested-by: Anup Patel Message-id: 931db85d6890ed4bc2b527fd1011197cd28299aa.1585262586.git.alistai= r.francis@wdc.com Message-Id: <931db85d6890ed4bc2b527fd1011197cd28299aa.1585262586.git.alista= ir.francis@wdc.com> --- target/riscv/cpu_helper.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/target/riscv/cpu_helper.c b/target/riscv/cpu_helper.c index d3ba9efb02..f36d184b7b 100644 --- a/target/riscv/cpu_helper.c +++ b/target/riscv/cpu_helper.c @@ -452,10 +452,11 @@ restart: hwaddr pte_addr; =20 if (two_stage && first_stage) { + int vbase_prot; hwaddr vbase; =20 /* Do the second stage translation on the base PTE address. */ - get_physical_address(env, &vbase, prot, base, access_type, + get_physical_address(env, &vbase, &vbase_prot, base, access_ty= pe, mmu_idx, false, true); =20 pte_addr =3D vbase + idx * ptesize; --=20 2.26.2 From nobody Sat May 18 17:34:36 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail header.i=@wdc.com; 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=fail(p=none dis=none) header.from=wdc.com ARC-Seal: i=1; a=rsa-sha256; t=1588185675; cv=none; d=zohomail.com; s=zohoarc; b=RTuPc1XG2EbJrk4aiz+Ix0U3S5yJYpdGiHSDt+kZqS8Sb55virjudY+iHr6z8cetLJxlxNxI+58KCHdq+qGlxY3O782Pkj8wGeDxkD9klyOioEJGXGrvj8TDgZSZq7H/MOQ4jXh884dLd7ZYEicNNWaUBslVBpTQkK3QCC0guUE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1588185675; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=FNTWOrexj3TgOHtr4RHZ+vsltxgLLc0t9zGeCHthLpc=; b=YRhDKIHNh3GvbpukZSVduapvLLrZzl3LAcM6Z3yleD3FZOwBflzBTaP1llc3EqktwbHPKHxdxi78sE4I9AQy2KaHqkXjmX1qiUrvzX/cfjqZMgZtvwjYz1OmwO2sGHhEl4VSxzMkOAlJ5pdqfdHmw/ebqLUhsfhQYaDeFhBYxms= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail header.i=@wdc.com; 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=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1588185675419508.7520408046954; Wed, 29 Apr 2020 11:41:15 -0700 (PDT) Received: from localhost ([::1]:38402 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jTrdy-0006O2-2b for importer@patchew.org; Wed, 29 Apr 2020 14:41:14 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:37418) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jTraB-0008KM-Jy for qemu-devel@nongnu.org; Wed, 29 Apr 2020 14:37:21 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.90_1) (envelope-from ) id 1jTra9-0003UH-2B for qemu-devel@nongnu.org; Wed, 29 Apr 2020 14:37:19 -0400 Received: from esa6.hgst.iphmx.com ([216.71.154.45]:2049) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jTra4-0003Ps-08; Wed, 29 Apr 2020 14:37:12 -0400 Received: from uls-op-cesaip02.wdc.com (HELO uls-op-cesaep02.wdc.com) ([199.255.45.15]) by ob1.hgst.iphmx.com with ESMTP; 30 Apr 2020 02:37:05 +0800 Received: from uls-op-cesaip01.wdc.com ([10.248.3.36]) by uls-op-cesaep02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 29 Apr 2020 11:27:09 -0700 Received: from cnf007834.ad.shared (HELO risc6-mainframe.hgst.com) ([10.86.55.253]) by uls-op-cesaip01.wdc.com with ESMTP; 29 Apr 2020 11:37:03 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1588185432; x=1619721432; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=V4JMB03R57xU/l231U+ZmY2qS+gGKlGPiocloP9j6yI=; b=XF99wHMhgFy1GmHhQTWWFEUPa8TH/Vz1/CvEnDGcZq4wDnzlNM6YInVS u234OMWd3IkWLrK13Kn5ZLeCDz7noPInu4kqB6dbH/q6doaQiGarZlNt9 JLh0NR2Q/dmjOTBMwR96hUmr29bj0citxP2Wt64yUrtH83MDQMHErBekt 4UQI4UMPcVI6ebcPtSfhTKBmKOA+gS+88qQbp0x1dTCw7X/uxsogLRpLZ EJe4zuNJnB/taoo3pQJ3PAX7hC3Nk74X6Wkd2mrs61cXe/2eNZLU0Hui3 HNTI3a06ekJ0Nnf4uQwT0GC1oiwT5Wfr34iUzVvgByTVDMWR/DI6saJG9 g==; IronPort-SDR: SfMcyCMQkKxBjHuYR6Acg08w8qIZMLWcsbgJSQBpXfMPEtk3bE6hNrpnVowOg9uDEV+vQ8M1nM hd5cKECxRi9917A6AaKypxGp2wx1Rkil8hr3Ivtn9ayW3iaa7y9qDHMf6PDSEXQ4ZgfZQhZXVy KudC48TxhD7v352M2tsQ5qKc8mU66p/UZzVcb0oRMj/QcBiBUzqSsNnU+Pf0R/0yZeiOvwdxtz Ag9KAKrJjDL13obt3Wsdlxmr2aj9Fclq+U5Ms6y6QzLUR7XBSzumALe6P6KeTx3C0vAQ5Gx+Td CWQ= X-IronPort-AV: E=Sophos;i="5.73,332,1583164800"; d="scan'208";a="137935140" IronPort-SDR: SgFEKWjHZ5FwDFTOdjRF/MKvSTsnfSrGgZiyuYYLbKfL99E5DKUOs31tt7i2nr/4UpfwJdgPcU c3k9GtoerLkjZdU/w7qXyN/pYIA1fhMOM= IronPort-SDR: fETdQyidHjnMHYlUrkY61gFLkGOW8y0zGJIF4cSrpIpK1ArQaC7GFNiEBuxZpB9/jdGgVsWT7p 06eSB16oKD4Q== WDCIronportException: Internal From: Alistair Francis To: peter.maydell@linaro.org Subject: [PULL 05/14] riscv: AND stage-1 and stage-2 protection flags Date: Wed, 29 Apr 2020 11:28:47 -0700 Message-Id: <20200429182856.2588202-6-alistair.francis@wdc.com> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20200429182856.2588202-1-alistair.francis@wdc.com> References: <20200429182856.2588202-1-alistair.francis@wdc.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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=lists.gnu.org; Received-SPF: pass client-ip=216.71.154.45; envelope-from=prvs=381fbd49e=alistair.francis@wdc.com; helo=esa6.hgst.iphmx.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/04/29 14:37:03 X-ACL-Warn: Detected OS = FreeBSD 9.x or newer [fuzzy] X-Received-From: 216.71.154.45 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: qemu-riscv@nongnu.org, Anup Patel , palmerdabbelt@google.com, Richard Henderson , qemu-devel@nongnu.org, Alistair Francis Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" Take the result of stage-1 and stage-2 page table walks and AND the two protection flags together. This way we require both to set permissions instead of just stage-2. Signed-off-by: Alistair Francis Reviewed-by: Richard Henderson Tested-by: Anup Patel Message-id: 846f1e18f5922d818bc464ec32c144ef314ec724.1585262586.git.alistai= r.francis@wdc.com Message-Id: <846f1e18f5922d818bc464ec32c144ef314ec724.1585262586.git.alista= ir.francis@wdc.com> --- target/riscv/cpu_helper.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/target/riscv/cpu_helper.c b/target/riscv/cpu_helper.c index f36d184b7b..50e13a064f 100644 --- a/target/riscv/cpu_helper.c +++ b/target/riscv/cpu_helper.c @@ -707,7 +707,7 @@ bool riscv_cpu_tlb_fill(CPUState *cs, vaddr address, in= t size, #ifndef CONFIG_USER_ONLY vaddr im_address; hwaddr pa =3D 0; - int prot; + int prot, prot2; bool pmp_violation =3D false; bool m_mode_two_stage =3D false; bool hs_mode_two_stage =3D false; @@ -757,13 +757,15 @@ bool riscv_cpu_tlb_fill(CPUState *cs, vaddr address, = int size, /* Second stage lookup */ im_address =3D pa; =20 - ret =3D get_physical_address(env, &pa, &prot, im_address, + ret =3D get_physical_address(env, &pa, &prot2, im_address, access_type, mmu_idx, false, true); =20 qemu_log_mask(CPU_LOG_MMU, "%s 2nd-stage address=3D%" VADDR_PRIx " ret %d physica= l " TARGET_FMT_plx " prot %d\n", - __func__, im_address, ret, pa, prot); + __func__, im_address, ret, pa, prot2); + + prot &=3D prot2; =20 if (riscv_feature(env, RISCV_FEATURE_PMP) && (ret =3D=3D TRANSLATE_SUCCESS) && --=20 2.26.2 From nobody Sat May 18 17:34:36 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail header.i=@wdc.com; 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=fail(p=none dis=none) header.from=wdc.com ARC-Seal: i=1; a=rsa-sha256; t=1588185787; cv=none; d=zohomail.com; s=zohoarc; b=gBh9ZZlTmtrcETx7ZCIBV5zqGT1kOLjK/9K1QPUoW/RQxNk3FA5sUzpAr47wtejwGjnSIhTOG96eYOyMA6y8zIcYW5Dne6pzzHv1KOZuFip5Rcr/pDZGokGG6qL+bscbHXecnYFEHGWdJ/N5knoPT5mAUlMHb/wZLPghf6ZxIJ4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1588185787; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=zHurqTxpa2A85blyvLiS+6E1VJ8YKYX8bNvKfkd7O6w=; b=Ebcmx9h/m/s1kg3UNnHdlHq2KZQLYSranRpFQmvZbaeIZuHkfbIKD9DkMoTN/umcgvBMuU/sra9c/aJxJcWVDWw/t9uNoV2lFLdYS/pVF2fLdF8v8Ij0Wo4glrjGnpvipgMCElASS2nyufq310XCKNM8/gMiIcJOuCb4eBzLrAM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail header.i=@wdc.com; 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=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1588185787895117.09734612931561; Wed, 29 Apr 2020 11:43:07 -0700 (PDT) Received: from localhost ([::1]:46144 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jTrfm-00014e-EB for importer@patchew.org; Wed, 29 Apr 2020 14:43:06 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:37444) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jTraD-0008OA-Ez for qemu-devel@nongnu.org; Wed, 29 Apr 2020 14:37:24 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.90_1) (envelope-from ) id 1jTraB-0003Uy-3X for qemu-devel@nongnu.org; Wed, 29 Apr 2020 14:37:21 -0400 Received: from esa6.hgst.iphmx.com ([216.71.154.45]:2049) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jTra5-0003Ps-8D; Wed, 29 Apr 2020 14:37:13 -0400 Received: from uls-op-cesaip02.wdc.com (HELO uls-op-cesaep02.wdc.com) ([199.255.45.15]) by ob1.hgst.iphmx.com with ESMTP; 30 Apr 2020 02:37:06 +0800 Received: from uls-op-cesaip01.wdc.com ([10.248.3.36]) by uls-op-cesaep02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 29 Apr 2020 11:27:10 -0700 Received: from cnf007834.ad.shared (HELO risc6-mainframe.hgst.com) ([10.86.55.253]) by uls-op-cesaip01.wdc.com with ESMTP; 29 Apr 2020 11:37:04 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1588185434; x=1619721434; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=H3Rf0GK2uIFQ8+W/s2BSGxfdGYDmRN5HO2AJN6YT9+s=; b=gLvfl+mUoF6QViAfi0TQRNW9BxVhhhwwSqTPVcl7QXNxoZNkT+Ds6MFO AHon52DbrAeS9OURcv+oHsZXBheX6BSGut2JHMZ3ocIPgSg/Cji/nlkrI V079Z/iKZ2LshAIuawMD2TGAbeVwIowSRDpx2WLWjjDvnypAK7Z0yYYpB JCtbpW46mAJv6jepSj9ycaIodfeRHWnpZJdUEJyOWX5LA2k/6oojHmhN2 lTrA23zJDsydjKcPatVZNGZiY/7ZsWTFQ3v5u0gYazizCqYLacdbKRPWq b2MQUMrdBRJue6QRQt4m4M1mgozIJLDrhie6xp7HKwKUUBguQGzZO/Kvb Q==; IronPort-SDR: Odtz9RtK4yukYFjLkl7PPCBAXAcQYRKgeiGfVWnvO4Btfsl+ZeIhicSJ3OrJfEwkFTWUtijMAP gXXY2OWGcEmrWRBN/CZbZJd8Ma0ZEekr8y4MRaCbWP99Y/QKhqaBFQolPoKetc3fpv3S5wJ+bB 8Cf2iUjk5EjRW+5OB6YGzE9IAu8fhAF8lsM9nRZd8+1Bsqqb6817T0ZgnvQVA265We2uaF20B+ tVObTrLV9m5MhAqVee5Rbjl5qYmL4FraOYxz2KsbBnuDyfpBKqOXmfOXWz6dYtUsKulyUATwJ9 qZ8= X-IronPort-AV: E=Sophos;i="5.73,332,1583164800"; d="scan'208";a="137935142" IronPort-SDR: UXb1/ASlPfPPHstv3Tk3GT+kdTbkLEcq10ZQkC4eQsFmPBN1sntJkXq0PNg9UNJ33lzVeF9Pm4 wR0F6HqOKrP4pRLB4oEJffI/oUOY96uSw= IronPort-SDR: oacbIocZ4C1rRt/d5AjOi+jHqCXiVXYBwKJrxI1Y2JpdI9i3/LTVFOhvRzjRQM8jQQvhX+Kbke MNy5oH+WvOiA== WDCIronportException: Internal From: Alistair Francis To: peter.maydell@linaro.org Subject: [PULL 06/14] riscv: Fix Stage2 SV32 page table walk Date: Wed, 29 Apr 2020 11:28:48 -0700 Message-Id: <20200429182856.2588202-7-alistair.francis@wdc.com> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20200429182856.2588202-1-alistair.francis@wdc.com> References: <20200429182856.2588202-1-alistair.francis@wdc.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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=lists.gnu.org; Received-SPF: pass client-ip=216.71.154.45; envelope-from=prvs=381fbd49e=alistair.francis@wdc.com; helo=esa6.hgst.iphmx.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/04/29 14:37:03 X-ACL-Warn: Detected OS = FreeBSD 9.x or newer [fuzzy] X-Received-From: 216.71.154.45 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Alistair Francis , Anup Patel , palmerdabbelt@google.com, qemu-riscv@nongnu.org, qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" From: Anup Patel As-per RISC-V H-Extension v0.5 draft, the Stage2 SV32 page table has 12bits of VPN[1] and 10bits of VPN[0]. The additional 2bits in VPN[1] is required to handle the 34bit intermediate physical address coming from Stage1 SV32 page table. The 12bits of VPN[1] implies that Stage2 SV32 level-0 page table will be 16KB in size with total 4096 enteries where each entry maps 4MB of memory (same as Stage1 SV32 page table). The get_physical_address() function is broken for Stage2 SV32 level-0 page table because it incorrectly computes output physical address for Stage2 SV32 level-0 page table entry. The root cause of the issue is that get_physical_address() uses the "widened" variable to compute level-0 physical address mapping which changes level-0 mapping size (instead of 4MB). We should use the "widened" variable only for computing index of Stage2 SV32 level-0 page table. Signed-off-by: Anup Patel Reviewed-by: Alistair Francis Message-id: 20200330082724.120444-1-anup.patel@wdc.com Message-Id: <20200330082724.120444-1-anup.patel@wdc.com> Signed-off-by: Alistair Francis --- target/riscv/cpu_helper.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/target/riscv/cpu_helper.c b/target/riscv/cpu_helper.c index 50e13a064f..bc80aa87cf 100644 --- a/target/riscv/cpu_helper.c +++ b/target/riscv/cpu_helper.c @@ -559,12 +559,7 @@ restart: /* for superpage mappings, make a fake leaf PTE for the TLB's benefit. */ target_ulong vpn =3D addr >> PGSHIFT; - if (i =3D=3D 0) { - *physical =3D (ppn | (vpn & ((1L << (ptshift + widened)) -= 1))) << - PGSHIFT; - } else { - *physical =3D (ppn | (vpn & ((1L << ptshift) - 1))) << PGS= HIFT; - } + *physical =3D (ppn | (vpn & ((1L << ptshift) - 1))) << PGSHIFT; =20 /* set permissions on the TLB entry */ if ((pte & PTE_R) || ((pte & PTE_X) && mxr)) { --=20 2.26.2 From nobody Sat May 18 17:34:36 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail header.i=@wdc.com; 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=fail(p=none dis=none) header.from=wdc.com ARC-Seal: i=1; a=rsa-sha256; t=1588185999; cv=none; d=zohomail.com; s=zohoarc; b=NyPy4LONEBndbb4GYUxIJjYK28D94sPRXnoyOXQkF+qkM+azqMj1eAF6Qb3LhUiMB/z2Wy+OI5Cm5W+KdslPoia8AQktRxFJvKxfOThPVkBRtrUUqLYidIbXaW6gc9hY9zfpnHnOn7XkK9IF4D2xzf4KBo67BQui0/LXa+HsQGg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1588185999; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=jn+ZoYnTuKI6ziuAi7exMM4iE4LPWkR2jvCAPR/TrEw=; b=ew0213Pkk9ZmDbj9Q/xo20qjZAcFHQR/tdgFw+JNxsgJaJwey/BFDwljBR73Lm3DmPKjuTfbxlxBeS4iDtJJIojiK9Wdm5oPN4cwWDh7AAaF1HRUxHMUp6NWhPvE7LTrS4ckkCopT87ldBdHgr1iSsP88JVY56nmFZ3hc/kKxsk= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail header.i=@wdc.com; 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=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1588185999151331.4449230320637; Wed, 29 Apr 2020 11:46:39 -0700 (PDT) Received: from localhost ([::1]:55188 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jTrjB-0005ah-TA for importer@patchew.org; Wed, 29 Apr 2020 14:46:37 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:37450) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jTraE-0008RB-JK for qemu-devel@nongnu.org; Wed, 29 Apr 2020 14:37:24 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.90_1) (envelope-from ) id 1jTraB-0003V4-CW for qemu-devel@nongnu.org; Wed, 29 Apr 2020 14:37:22 -0400 Received: from esa6.hgst.iphmx.com ([216.71.154.45]:2041) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jTra5-0003PZ-AX; Wed, 29 Apr 2020 14:37:13 -0400 Received: from uls-op-cesaip02.wdc.com (HELO uls-op-cesaep02.wdc.com) ([199.255.45.15]) by ob1.hgst.iphmx.com with ESMTP; 30 Apr 2020 02:37:06 +0800 Received: from uls-op-cesaip01.wdc.com ([10.248.3.36]) by uls-op-cesaep02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 29 Apr 2020 11:27:10 -0700 Received: from cnf007834.ad.shared (HELO risc6-mainframe.hgst.com) ([10.86.55.253]) by uls-op-cesaip01.wdc.com with ESMTP; 29 Apr 2020 11:37:04 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1588185434; x=1619721434; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=O7jL6iWlSIEmOeLlTVLecE6kMsdHolcxkpW6c3HjIWE=; b=APeewc8SLinXzReE31C3ZVzUmdbDlZ/WSVbV/Ub/ctjt515duKD5o+PB L7AW0iZuiw3vWcE2UIBoNUIIHJ+gD81HMG7lVzl6WJYP1MVVEeUjb4drD i5JihxrG6OA2NeNzPhYp7cOId4b6O/b4fwdbRdi/h6z5C93gzpb1dxO7N Mb9r7lAX33iC62SuKLTIP/6crOlLX6vIM0iivsSNUc1W2IJGlcJov250W KSX6Wry5Eo2MEzK3HPGOLvq5wY5fMnKSIGfR/mbMi2CIn8N3rrm73uhPT Fa/5ogfnXgvtW4oAgq3RW81IY4cVSltyrhC4Exgkw1AqnXPpbZ2CDYPxN Q==; IronPort-SDR: LOCm9Not8pjUFJhyBPd+z89woasG4fV87YetsjEVZ98CSClOLamz8nbnBQSLicC7/fktn0Td1e TTSOMUcRZnyxBlRP4sZP+ttZ1Ly+g+MfqgWu8Sm3vxnM4yNfoPkgxNef2K5UrYxNLbXc5kFWTE D/oL6Oo35M7KP2GbBtKndGMtSaAypB2lZeVY3HfnR17/SAByRJyc+Xi7+XJWwFWSay9/GiiTVK 0/OdvV03tqFgXL/OAmtRyiPdD6S4r3TU+JLwbGaOIbP6t5cF8/923bFK1EHJvIhJV4KW+2YLDJ lfY= X-IronPort-AV: E=Sophos;i="5.73,332,1583164800"; d="scan'208";a="137935144" IronPort-SDR: 79Gem3mkFByogtgz/CvaPvjnpmN3c6MBM7Yi61e5YUcQ6N+Hb3JVGRxunVa7ZNAdYAAop5Iyi9 1wfE3aRsWh4QzISv4kw3MxCbn9eCLndZs= IronPort-SDR: v8gHI1QJExYs2uLQ0iBbeX557HXKLtOlZnxdDaJjhApS1nqkNXXPQfFwZB+NcqbFvcj4o+Odg7 S0XcFGsyZKqQ== WDCIronportException: Internal From: Alistair Francis To: peter.maydell@linaro.org Subject: [PULL 07/14] hw/riscv: Generate correct "mmu-type" for 32-bit machines Date: Wed, 29 Apr 2020 11:28:49 -0700 Message-Id: <20200429182856.2588202-8-alistair.francis@wdc.com> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20200429182856.2588202-1-alistair.francis@wdc.com> References: <20200429182856.2588202-1-alistair.francis@wdc.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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=lists.gnu.org; Received-SPF: pass client-ip=216.71.154.45; envelope-from=prvs=381fbd49e=alistair.francis@wdc.com; helo=esa6.hgst.iphmx.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/04/29 14:37:03 X-ACL-Warn: Detected OS = FreeBSD 9.x or newer [fuzzy] X-Received-From: 216.71.154.45 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Alistair Francis , palmerdabbelt@google.com, qemu-riscv@nongnu.org, qemu-devel@nongnu.org, Bin Meng Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" From: Bin Meng 32-bit machine should have its CPU's "mmu-type" set to "riscv,sv32". Signed-off-by: Bin Meng Reviewed-by: Alistair Francis Message-id: 1583585319-26603-1-git-send-email-bmeng.cn@gmail.com Message-Id: <1583585319-26603-1-git-send-email-bmeng.cn@gmail.com> Signed-off-by: Alistair Francis --- hw/riscv/sifive_u.c | 4 ++++ hw/riscv/spike.c | 4 ++++ hw/riscv/virt.c | 4 ++++ 3 files changed, 12 insertions(+) diff --git a/hw/riscv/sifive_u.c b/hw/riscv/sifive_u.c index eb0abcae89..0dd0efaa68 100644 --- a/hw/riscv/sifive_u.c +++ b/hw/riscv/sifive_u.c @@ -160,7 +160,11 @@ static void create_fdt(SiFiveUState *s, const struct M= emmapEntry *memmap, qemu_fdt_add_subnode(fdt, nodename); /* cpu 0 is the management hart that does not have mmu */ if (cpu !=3D 0) { +#if defined(TARGET_RISCV32) + qemu_fdt_setprop_string(fdt, nodename, "mmu-type", "riscv,sv32= "); +#else qemu_fdt_setprop_string(fdt, nodename, "mmu-type", "riscv,sv48= "); +#endif isa =3D riscv_isa_string(&s->soc.u_cpus.harts[cpu - 1]); } else { isa =3D riscv_isa_string(&s->soc.e_cpus.harts[0]); diff --git a/hw/riscv/spike.c b/hw/riscv/spike.c index 5053fe4590..98697a244e 100644 --- a/hw/riscv/spike.c +++ b/hw/riscv/spike.c @@ -102,7 +102,11 @@ static void create_fdt(SpikeState *s, const struct Mem= mapEntry *memmap, char *intc =3D g_strdup_printf("/cpus/cpu@%d/interrupt-controller"= , cpu); char *isa =3D riscv_isa_string(&s->soc.harts[cpu]); qemu_fdt_add_subnode(fdt, nodename); +#if defined(TARGET_RISCV32) + qemu_fdt_setprop_string(fdt, nodename, "mmu-type", "riscv,sv32"); +#else qemu_fdt_setprop_string(fdt, nodename, "mmu-type", "riscv,sv48"); +#endif qemu_fdt_setprop_string(fdt, nodename, "riscv,isa", isa); qemu_fdt_setprop_string(fdt, nodename, "compatible", "riscv"); qemu_fdt_setprop_string(fdt, nodename, "status", "okay"); diff --git a/hw/riscv/virt.c b/hw/riscv/virt.c index 85ec9e22aa..c621a970aa 100644 --- a/hw/riscv/virt.c +++ b/hw/riscv/virt.c @@ -229,7 +229,11 @@ static void create_fdt(RISCVVirtState *s, const struct= MemmapEntry *memmap, char *intc =3D g_strdup_printf("/cpus/cpu@%d/interrupt-controller"= , cpu); char *isa =3D riscv_isa_string(&s->soc.harts[cpu]); qemu_fdt_add_subnode(fdt, nodename); +#if defined(TARGET_RISCV32) + qemu_fdt_setprop_string(fdt, nodename, "mmu-type", "riscv,sv32"); +#else qemu_fdt_setprop_string(fdt, nodename, "mmu-type", "riscv,sv48"); +#endif qemu_fdt_setprop_string(fdt, nodename, "riscv,isa", isa); qemu_fdt_setprop_string(fdt, nodename, "compatible", "riscv"); qemu_fdt_setprop_string(fdt, nodename, "status", "okay"); --=20 2.26.2 From nobody Sat May 18 17:34:36 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail header.i=@wdc.com; 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=fail(p=none dis=none) header.from=wdc.com ARC-Seal: i=1; a=rsa-sha256; t=1588185921; cv=none; d=zohomail.com; s=zohoarc; b=i5DlvajKEjSojDdubmKmKGHn6IIahXnPmsSGmn/+TZns4nM5mRermqsA3BWfBrK9+aQX7SUzS/uNHobh1Ixzf/g7r+u7Oj1P8l0PyJV+ks9JUQLginU3FwQdXFhEXUW+KOMCBAw9Sc4nRPBn28Mn2rGdtVJemHiBQ81M7UVH9Vs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1588185921; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=+lyPpbjfSt/tnhgD71G9ed8Rl/BG7RiS4qywvh9DYhM=; b=Q5Hm9uvYE+ECZkxfKOQ38I5TT5pIFeCPDz5hu8NM40PNIGapS3ZRCbOUwSftymOgmPlpBtL70T0tfNTQm7oOBCV+dp5ez+BtVXdvMbRlcfrOiqVhABEflD7/u8RzFTkSXIWuLul5XEg25cbRxa10bpjnLi1Dc3YWBBFdcDXT4P4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail header.i=@wdc.com; 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=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1588185921631658.1607817311499; Wed, 29 Apr 2020 11:45:21 -0700 (PDT) Received: from localhost ([::1]:51974 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jTrhw-00045u-6Z for importer@patchew.org; Wed, 29 Apr 2020 14:45:20 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:37454) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jTraE-0008RT-PN for qemu-devel@nongnu.org; Wed, 29 Apr 2020 14:37:24 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.90_1) (envelope-from ) id 1jTraB-0003VH-R8 for qemu-devel@nongnu.org; Wed, 29 Apr 2020 14:37:22 -0400 Received: from esa6.hgst.iphmx.com ([216.71.154.45]:2035) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jTra5-0003PL-F1; Wed, 29 Apr 2020 14:37:13 -0400 Received: from uls-op-cesaip02.wdc.com (HELO uls-op-cesaep02.wdc.com) ([199.255.45.15]) by ob1.hgst.iphmx.com with ESMTP; 30 Apr 2020 02:37:06 +0800 Received: from uls-op-cesaip01.wdc.com ([10.248.3.36]) by uls-op-cesaep02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 29 Apr 2020 11:27:10 -0700 Received: from cnf007834.ad.shared (HELO risc6-mainframe.hgst.com) ([10.86.55.253]) by uls-op-cesaip01.wdc.com with ESMTP; 29 Apr 2020 11:37:04 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1588185434; x=1619721434; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=uth3SOy7J70UXYgMlMkEumsDQFWDBmDIt0wImRmilQQ=; b=UY4GTyPgobkdf/2b5gmBg+q9tLK/Nz5thcHTOmObrWNCZoNAGx/5W7uI srVeR/BxkxoLFfiqalF7XHLBlacF1w2YfNeTklVLSCSN0MUVOCw4ANmhY NPBB3HNTh6hOg16XYjQQ+7xOvgjsU6Nr7gOX/ryC9pde27/JR+ESU7V6g LI4lHqfPtA/lMo6WQJH8gvMjk2WrdvVtW5LnGWT/Got4TUna2MBjN+FaL FTxwP0J06ua6OG94ufzX0K5XBzQvppM6EJNniHljpWS5UGyAN/06o9BZ/ 5P25jzY1luPcbFrgxs68b+nOhFYwu9aiQZJiR3YqK7yAIwZSwmI0kB9Jg w==; IronPort-SDR: 7wVa8qGSN35GJJM8a2kecfPF8uTylSr/EQX3+hGY4r19IUnabMXPS4rwFMQg+FWXkk6T4EmXG5 AJz30k31fN81ExhxcV7bvL6tuqDKHn/6DckS+PtMYO3QCPzwscQTK6GwO6sCr6y5/IPt16pwlx G7RnVgwKuVtGl6uISmQxwHtP9l43KShLaepbf0ECatpo9FvOvT56TXlvuxQsqoN8mU/wHpHlfd FzRlGutB32RiYx9aDH1GJMrFbHv/G2MJchyWOKD6kXW0EwjI7NIwnuFJIeNad/0cYPPHsV/1ZE YrY= X-IronPort-AV: E=Sophos;i="5.73,332,1583164800"; d="scan'208";a="137935146" IronPort-SDR: /zRL849gXteY/znLM78iVERjyJ5BR84DK/W9wRnq3LELcMgxIxfO8LtIPQv4JIlE0V/ZePf4kn adjDSV2vD9bqJ9NwkrWOCcTLEYXMk68ac= IronPort-SDR: 1dgaDGiAqqODlBTSFMFfNB6jSrEMkMF4WYn3AsXp+NkSV89OQFg9rGumJ1YBXM/8YaELiHUgFv ewwHpgjFyMuQ== WDCIronportException: Internal From: Alistair Francis To: peter.maydell@linaro.org Subject: [PULL 08/14] riscv: sifive_e: Support changing CPU type Date: Wed, 29 Apr 2020 11:28:50 -0700 Message-Id: <20200429182856.2588202-9-alistair.francis@wdc.com> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20200429182856.2588202-1-alistair.francis@wdc.com> References: <20200429182856.2588202-1-alistair.francis@wdc.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable 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=lists.gnu.org; Received-SPF: pass client-ip=216.71.154.45; envelope-from=prvs=381fbd49e=alistair.francis@wdc.com; helo=esa6.hgst.iphmx.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/04/29 14:37:03 X-ACL-Warn: Detected OS = FreeBSD 9.x or newer [fuzzy] X-Received-From: 216.71.154.45 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: qemu-riscv@nongnu.org, Corey Wharton , palmerdabbelt@google.com, qemu-devel@nongnu.org, Alistair Francis , Bin Meng , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) From: Corey Wharton Allows the CPU to be changed from the default via the -cpu command line option. Signed-off-by: Corey Wharton Reviewed-by: Bin Meng Reviewed-by: Alistair Francis Reviewed-by: Philippe Mathieu-Daud=C3=A9 Message-id: 20200313193429.8035-2-coreyw7@fb.com Message-Id: <20200313193429.8035-2-coreyw7@fb.com> [ Changes by AF: - Set "cpu-type" from the machine and not SoC ] Signed-off-by: Alistair Francis --- hw/riscv/sifive_e.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/hw/riscv/sifive_e.c b/hw/riscv/sifive_e.c index 646553a7c3..b53109521e 100644 --- a/hw/riscv/sifive_e.c +++ b/hw/riscv/sifive_e.c @@ -123,8 +123,6 @@ static void riscv_sifive_e_soc_init(Object *obj) object_initialize_child(obj, "cpus", &s->cpus, sizeof(s->cpus), TYPE_RISCV_HART_ARRAY, &error_abort, NULL); - object_property_set_str(OBJECT(&s->cpus), SIFIVE_E_CPU, "cpu-type", - &error_abort); object_property_set_int(OBJECT(&s->cpus), ms->smp.cpus, "num-harts", &error_abort); sysbus_init_child_obj(obj, "riscv.sifive.e.gpio0", @@ -141,6 +139,8 @@ static void riscv_sifive_e_soc_realize(DeviceState *dev= , Error **errp) SiFiveESoCState *s =3D RISCV_E_SOC(dev); MemoryRegion *sys_mem =3D get_system_memory(); =20 + object_property_set_str(OBJECT(&s->cpus), ms->cpu_type, "cpu-type", + &error_abort); object_property_set_bool(OBJECT(&s->cpus), true, "realized", &error_abort); =20 @@ -219,6 +219,7 @@ static void riscv_sifive_e_machine_init(MachineClass *m= c) mc->desc =3D "RISC-V Board compatible with SiFive E SDK"; mc->init =3D riscv_sifive_e_init; mc->max_cpus =3D 1; + mc->default_cpu_type =3D SIFIVE_E_CPU; } =20 DEFINE_MACHINE("sifive_e", riscv_sifive_e_machine_init) --=20 2.26.2 From nobody Sat May 18 17:34:36 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail header.i=@wdc.com; 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=fail(p=none dis=none) header.from=wdc.com ARC-Seal: i=1; a=rsa-sha256; t=1588185549; cv=none; d=zohomail.com; s=zohoarc; b=KeuC+woG7mzRIopOaJ3Pq2Iz2lfUgGz2gRe0KjfTishcTIk84LR1iEgfQYZroDQbvssdk1CAPyCqb0K7piTnJTGHbFIzOXbUO4rhDtOnkES2er3ZjQDxh1GabulsSbARji8UEHNfY4p2dDwYXEjYW5eahKWRA/pNs5KGrG0Q/dQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1588185549; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=fuBeiyomBZUfTSOkoV77yWuGlN2Z/tnQyG/L9Bxqmbc=; b=eu+WQcm38fAEdk+l466f68lu/Pg95K0dXeLD7kBbVPlarUo5CSc21CTKos6EwBa7AjyN5LhcMJfc8poLSeZJ5bUpv2yWij2ZO2IHmgwf6PNM7wzA+wSgDNAhNatu38PYqTKB3l2+8iKa5BkNcuZyJLeUXnNpJiESN14JzMDfYAs= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail header.i=@wdc.com; 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=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1588185549040178.8198272519528; Wed, 29 Apr 2020 11:39:09 -0700 (PDT) Received: from localhost ([::1]:57842 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jTrbv-0002hd-FW for importer@patchew.org; Wed, 29 Apr 2020 14:39:07 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:37588) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jTraU-0000Zc-SX for qemu-devel@nongnu.org; Wed, 29 Apr 2020 14:37:40 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.90_1) (envelope-from ) id 1jTraS-0003uN-Qe for qemu-devel@nongnu.org; Wed, 29 Apr 2020 14:37:38 -0400 Received: from esa6.hgst.iphmx.com ([216.71.154.45]:2049) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jTraQ-0003Ps-M7; Wed, 29 Apr 2020 14:37:34 -0400 Received: from uls-op-cesaip02.wdc.com (HELO uls-op-cesaep02.wdc.com) ([199.255.45.15]) by ob1.hgst.iphmx.com with ESMTP; 30 Apr 2020 02:37:07 +0800 Received: from uls-op-cesaip01.wdc.com ([10.248.3.36]) by uls-op-cesaep02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 29 Apr 2020 11:27:11 -0700 Received: from cnf007834.ad.shared (HELO risc6-mainframe.hgst.com) ([10.86.55.253]) by uls-op-cesaip01.wdc.com with ESMTP; 29 Apr 2020 11:37:04 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1588185455; x=1619721455; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=tbkmc57R+L0aN9VLZbhIXSvamug7nnx7kvOn3zmvZfk=; b=mz31XhIY5E/vWsgAFLOomn2VzqjWolHd362+qrIAmoGibhJUQjuN07SQ c+wkQzcF1IbPJKL/kqYuKedH1xPkpHArgIDWecADwuU3uAa+ydmA7jzl+ +xL/5zXjXDCz39Guia2jPwPZ9UeWC16hwsA6sKpgjoL2O8iRh+HvIwkYZ xWZqGK2eMFW+2o7Eucel9Gyh55T/iY/lMefW4DRrdF/VprnsnrD1QN/U4 BJK2FUFZF0In0IxBAwIWnLD3rGqigwIQ8LSJFh7irhkKJNx4gmxJZcPl+ yDqBNe+zMriy8f7QronHvSiRDEj1aQIlYAICjq+qaZFsBvAf/RSHITvxt Q==; IronPort-SDR: tAFnAgZBtRfSAbsQHi7cpkZ5W1Xfoto/qyqkl75xVRx/lrfCoFil2Vv7twW4vb/qhF7bruV4qk 3a+CuSCAz0e3urcruwrOyzcAjnKZ0trye7gs8gBzPfYbsv/aFDpehpnMki5ZPl+JGl4Evs9uYa r1g7lJHFm4NcyX2ozzdyEhMrUU1SUrTCN+P1ZTnhbBlWk+URUIbH3eVr9ryseoa4lQ8v4VdB+N aGCy32SZGopSGbzdA/xioPEg6Ak1ZF0YO1IAPxWsAQSea8j91DA6/8kVMRvBz9oXFUrna7aWxz erk= X-IronPort-AV: E=Sophos;i="5.73,332,1583164800"; d="scan'208";a="137935149" IronPort-SDR: imqoSWRzhUVgNpwXzrNF/djgQwWMqMKJ6YFMbbQLRSSfd226rRzpzMJe+Uc8mmp8T4wEOaps3j toD5e0A6fGLC6LREiSru3mKce0QZjUkUg= IronPort-SDR: 7wl+mEfBXH9Bh9GC/LqFxh6jl3RugCiQg0KxEwWpjGnY62k6F0CShiq9cbp31kpsME+nkrNdMa 2q0T6OOpH/Lw== WDCIronportException: Internal From: Alistair Francis To: peter.maydell@linaro.org Subject: [PULL 09/14] target/riscv: Add a sifive-e34 cpu type Date: Wed, 29 Apr 2020 11:28:51 -0700 Message-Id: <20200429182856.2588202-10-alistair.francis@wdc.com> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20200429182856.2588202-1-alistair.francis@wdc.com> References: <20200429182856.2588202-1-alistair.francis@wdc.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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=lists.gnu.org; Received-SPF: pass client-ip=216.71.154.45; envelope-from=prvs=381fbd49e=alistair.francis@wdc.com; helo=esa6.hgst.iphmx.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/04/29 14:37:03 X-ACL-Warn: Detected OS = FreeBSD 9.x or newer [fuzzy] X-Received-From: 216.71.154.45 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: qemu-riscv@nongnu.org, Corey Wharton , palmerdabbelt@google.com, qemu-devel@nongnu.org, Alistair Francis , Bin Meng Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" From: Corey Wharton The sifive-e34 cpu type is the same as the sifive-e31 with the single precision floating-point extension enabled. Signed-off-by: Corey Wharton Reviewed-by: Alistair Francis Reviewed-by: Bin Meng Message-id: 20200313193429.8035-3-coreyw7@fb.com Message-Id: <20200313193429.8035-3-coreyw7@fb.com> Signed-off-by: Alistair Francis --- target/riscv/cpu.c | 10 ++++++++++ target/riscv/cpu.h | 1 + 2 files changed, 11 insertions(+) diff --git a/target/riscv/cpu.c b/target/riscv/cpu.c index 4e578239d3..059d71f2c7 100644 --- a/target/riscv/cpu.c +++ b/target/riscv/cpu.c @@ -164,6 +164,15 @@ static void rv32imacu_nommu_cpu_init(Object *obj) set_feature(env, RISCV_FEATURE_PMP); } =20 +static void rv32imafcu_nommu_cpu_init(Object *obj) +{ + CPURISCVState *env =3D &RISCV_CPU(obj)->env; + set_misa(env, RV32 | RVI | RVM | RVA | RVF | RVC | RVU); + set_priv_version(env, PRIV_VERSION_1_10_0); + set_resetvec(env, DEFAULT_RSTVEC); + set_feature(env, RISCV_FEATURE_PMP); +} + #elif defined(TARGET_RISCV64) =20 static void riscv_base64_cpu_init(Object *obj) @@ -610,6 +619,7 @@ static const TypeInfo riscv_cpu_type_infos[] =3D { #if defined(TARGET_RISCV32) DEFINE_CPU(TYPE_RISCV_CPU_BASE32, riscv_base32_cpu_init), DEFINE_CPU(TYPE_RISCV_CPU_SIFIVE_E31, rv32imacu_nommu_cpu_init), + DEFINE_CPU(TYPE_RISCV_CPU_SIFIVE_E34, rv32imafcu_nommu_cpu_init), DEFINE_CPU(TYPE_RISCV_CPU_SIFIVE_U34, rv32gcsu_priv1_10_0_cpu_in= it), /* Depreacted */ DEFINE_CPU(TYPE_RISCV_CPU_RV32IMACU_NOMMU, rv32imacu_nommu_cpu_init), diff --git a/target/riscv/cpu.h b/target/riscv/cpu.h index 7d21addbab..d0e7f5b9c5 100644 --- a/target/riscv/cpu.h +++ b/target/riscv/cpu.h @@ -36,6 +36,7 @@ #define TYPE_RISCV_CPU_BASE32 RISCV_CPU_TYPE_NAME("rv32") #define TYPE_RISCV_CPU_BASE64 RISCV_CPU_TYPE_NAME("rv64") #define TYPE_RISCV_CPU_SIFIVE_E31 RISCV_CPU_TYPE_NAME("sifive-e31") +#define TYPE_RISCV_CPU_SIFIVE_E34 RISCV_CPU_TYPE_NAME("sifive-e34") #define TYPE_RISCV_CPU_SIFIVE_E51 RISCV_CPU_TYPE_NAME("sifive-e51") #define TYPE_RISCV_CPU_SIFIVE_U34 RISCV_CPU_TYPE_NAME("sifive-u34") #define TYPE_RISCV_CPU_SIFIVE_U54 RISCV_CPU_TYPE_NAME("sifive-u54") --=20 2.26.2 From nobody Sat May 18 17:34:36 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail header.i=@wdc.com; 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=fail(p=none dis=none) header.from=wdc.com ARC-Seal: i=1; a=rsa-sha256; t=1588185642; cv=none; d=zohomail.com; s=zohoarc; b=GhMbxBghsVs32IukMIUWT7EPr9vayHrjLtd2i+LkDLsTeBoPp05ZQUdJ/vVknF71SDr+Tfay6aNoknU8ouL0JLI6SzvN/aoKnP59tY6+LMtcfJKCfvGe6Uu63J7BbKW2U4ug2H2XhYMfS3vjQrrNE6JPek+/xbtwTg6N7QTvGjM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1588185642; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=zG1AOyABAF17joJq0S8XwgUGOdewCU3cbgnnuk13Za8=; b=IhzY2EWeJQqgDE8Swt/rH4we/mwxcJ/XpgSK4ZJOZLp+J6SHk46ozgXJsBfn39LLwB6mGoJSRKMXk7rUoqm2FEfi11TsrwqKUXO2N8buleb6vaI44AafM/XTxyj1DX4oEsbSTOBVSDIbQwv+32Vj7Tgqs/Y68HkHUknS7NeDcRo= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail header.i=@wdc.com; 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=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1588185642021970.8109296803701; Wed, 29 Apr 2020 11:40:42 -0700 (PDT) Received: from localhost ([::1]:36478 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jTrdQ-0005Xy-Pk for importer@patchew.org; Wed, 29 Apr 2020 14:40:40 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:37462) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jTraF-0008SH-24 for qemu-devel@nongnu.org; Wed, 29 Apr 2020 14:37:24 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.90_1) (envelope-from ) id 1jTraC-0003VX-C1 for qemu-devel@nongnu.org; Wed, 29 Apr 2020 14:37:22 -0400 Received: from esa6.hgst.iphmx.com ([216.71.154.45]:2041) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jTra6-0003PZ-JX; Wed, 29 Apr 2020 14:37:14 -0400 Received: from uls-op-cesaip02.wdc.com (HELO uls-op-cesaep02.wdc.com) ([199.255.45.15]) by ob1.hgst.iphmx.com with ESMTP; 30 Apr 2020 02:37:07 +0800 Received: from uls-op-cesaip01.wdc.com ([10.248.3.36]) by uls-op-cesaep02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 29 Apr 2020 11:27:11 -0700 Received: from cnf007834.ad.shared (HELO risc6-mainframe.hgst.com) ([10.86.55.253]) by uls-op-cesaip01.wdc.com with ESMTP; 29 Apr 2020 11:37:05 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1588185435; x=1619721435; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=xAP1D28Ruxk2F1O9NmhqCbS55wsbO5b1VBkOLwbfPLU=; b=EN9nbLdJeSEOe39GPcLtxViEyZVWvSSQGFJ0vc6mQH8tUZGTD0ZmuCe9 cyldnd805BqsrJtAJ3/jFX6ajBjUIUBX54XKdEyzcCieRG2ViuIK4TWev BqnL7yIj6bzyWSkldL4bo/9LKAWPHz62chu7Pgt9fCrUST2PaxrCTBtfw 2uEcatY65yUfbckyuGY8N2exzlwkxBdQwJYvx9tg29IQCxbcrIey8YfYy JEan6SeAX1IrZegIXJ6t7lcV2D5futi0eVZD2V7MsjxLy7guRaxmJuEJd +HkTpbeIOVzLC13fMtpDoOlcN/PLqPVQtb8CDlth7mlj8cVekWEqkHH49 Q==; IronPort-SDR: mr8Gi2ver2QV83FVQYSTuph3RzVFhhL/PbXdkTPQ2tMCeOKIQV65sn/AU+s+gfiUvSPGfcR8E2 tzCMOA1Ioo2TcPbftyeQQeBfNxyyiS+GJU+fpZu7zt2FDQ6e1B7mi99JokHx90TKH/S8dIsf84 R7el5h7bvZkWygE3IYjlcM5C3a0UyR9TQdcKaQ5ielWSrJIOqkxUIAkLNDzn6fBHyY2udc7c6j ghn/nOiDSxztyrlA8Vp+GtIvatjmNaOLXb9RhhLcAx2391fK2QgkF3ruNA9ugo1V3xRyz6SFoH vws= X-IronPort-AV: E=Sophos;i="5.73,332,1583164800"; d="scan'208";a="137935152" IronPort-SDR: MI8C4XM7g4JeIk3ppcnjznctMT2pgzLBJmE7lYw8h9yapS3N0sAI1e5EGCSWVk9ExKQLhCNelg ZeJpJ6iQ4+1a3e0JMLAlx1dlZspTN7d9M= IronPort-SDR: spjpOaVPflTp66IWzQWIONik1mO5SVONUp1DXi70MoZa+humlSkje7dG9TNDYPiCe/XQBMcj+H 31+deURj8FSg== WDCIronportException: Internal From: Alistair Francis To: peter.maydell@linaro.org Subject: [PULL 10/14] linux-user/riscv: fix up struct target_ucontext definition Date: Wed, 29 Apr 2020 11:28:52 -0700 Message-Id: <20200429182856.2588202-11-alistair.francis@wdc.com> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20200429182856.2588202-1-alistair.francis@wdc.com> References: <20200429182856.2588202-1-alistair.francis@wdc.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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=lists.gnu.org; Received-SPF: pass client-ip=216.71.154.45; envelope-from=prvs=381fbd49e=alistair.francis@wdc.com; helo=esa6.hgst.iphmx.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/04/29 14:37:03 X-ACL-Warn: Detected OS = FreeBSD 9.x or newer [fuzzy] X-Received-From: 216.71.154.45 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Alistair Francis , palmerdabbelt@google.com, qemu-riscv@nongnu.org, qemu-devel@nongnu.org, LIU Zhiwei Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" From: LIU Zhiwei As struct target_ucontext will be transfered to signal handler, it must keep pace with struct ucontext_t defined in Linux kernel. Signed-off-by: LIU Zhiwei Reviewed-by: Alistair Francis Message-id: 20200412020830.607-1-zhiwei_liu@c-sky.com Message-Id: <20200412020830.607-1-zhiwei_liu@c-sky.com> Signed-off-by: Alistair Francis --- linux-user/riscv/signal.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/linux-user/riscv/signal.c b/linux-user/riscv/signal.c index 83ecc6f799..67a95dbc7b 100644 --- a/linux-user/riscv/signal.c +++ b/linux-user/riscv/signal.c @@ -40,8 +40,9 @@ struct target_ucontext { unsigned long uc_flags; struct target_ucontext *uc_link; target_stack_t uc_stack; - struct target_sigcontext uc_mcontext; target_sigset_t uc_sigmask; + uint8_t __unused[1024 / 8 - sizeof(target_sigset_t)]; + struct target_sigcontext uc_mcontext QEMU_ALIGNED(16); }; =20 struct target_rt_sigframe { --=20 2.26.2 From nobody Sat May 18 17:34:36 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail header.i=@wdc.com; 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=fail(p=none dis=none) header.from=wdc.com ARC-Seal: i=1; a=rsa-sha256; t=1588185862; cv=none; d=zohomail.com; s=zohoarc; b=kvPQKjR+esX6rcclNqjVTfPlW1TrNn58Di7fvD9uD/mEPeuw/bsL3o9ehmxmrFFqRMcJFumwu+2bBWtGDHEyHTkRkgtQLw22jpp5W0HJHPt7wFiWM4xyeJ2UIQGBOMfLpWOJ3Mk2gjTRFjTdOFS9DZ1c1nT6o6MAJze5M5um6dM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1588185862; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=Sd2xIuoPipxRjPT3A5Yi8V4ZnSWsTBAoO29LUTmeoMM=; b=TkKUBDvJpAbHGhH9qpk3ok5lQfRPZhOnXdEYF9NygAwzSKKwUBGbjiDPQYMA2waUSw1gWO7HUunRMaguzzyJDsIH4iqKoB2mTdwxWAMtYJpXn0pwmtwBk4U9CQYbmzEXCBDZ4xbqf1QdmB5aAxw6wQoM6V6j/NW+kDsyKG3cVk4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail header.i=@wdc.com; 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=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1588185862026843.6987290218934; Wed, 29 Apr 2020 11:44:22 -0700 (PDT) Received: from localhost ([::1]:49424 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jTrgy-0002cY-Aj for importer@patchew.org; Wed, 29 Apr 2020 14:44:20 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:37796) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jTrbc-0002jr-4r for qemu-devel@nongnu.org; Wed, 29 Apr 2020 14:39:07 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.90_1) (envelope-from ) id 1jTrbH-0004TW-PI for qemu-devel@nongnu.org; Wed, 29 Apr 2020 14:38:46 -0400 Received: from esa6.hgst.iphmx.com ([216.71.154.45]:2035) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jTraQ-0003PL-QW; Wed, 29 Apr 2020 14:37:36 -0400 Received: from uls-op-cesaip02.wdc.com (HELO uls-op-cesaep02.wdc.com) ([199.255.45.15]) by ob1.hgst.iphmx.com with ESMTP; 30 Apr 2020 02:37:08 +0800 Received: from uls-op-cesaip01.wdc.com ([10.248.3.36]) by uls-op-cesaep02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 29 Apr 2020 11:27:12 -0700 Received: from cnf007834.ad.shared (HELO risc6-mainframe.hgst.com) ([10.86.55.253]) by uls-op-cesaip01.wdc.com with ESMTP; 29 Apr 2020 11:37:05 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1588185455; x=1619721455; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=735TbRYuTKYGak5NOIyMGcIpP5d9w5k1mZirCxrcMvQ=; b=bsDMXAZXrIJ4TMLrKhYioAUmxF7ubeGOc4cKmB9sgtt1ZgiNSW93Ymme u4AdykLmC4ZTxDaCeKujFJcID0aZA9bGMPsl3bSCxtnq6s1x7tyEpiZ66 wfFGHq4hPyOM/k0iLuD26A1NblsP7scNYl0B1fjmn7nSmNTSTo6yd1naC b8CZTmhnrsA+HiGFcmulgWBRxuU07LNMIu6akGmmkHhjo0VaIcIXmGBLw MyvU5ODSw23+ijTzSsXfRp+LYhvDpN/PlMqGXEiUfeJ82jm121VC16RX+ g3tP/k21R+sBvanKiQXZMDaqvS0td979zEmo0NAhs8cGdpKNcL2z7WL/m Q==; IronPort-SDR: Rk2klgROimt3w0Hvt+pEzcOdv/4f3IHjijSKq6eGdeq52reATDCNjXjmEgA57HP5dXf+DHcF2m rIhv+XDRh9EOnDYtt8VzyPMf5tSs0wKO9UqNDaJiMYoynW4PY3pJIJMRbX+KNZjaJLhHxFVdXl 6No2CUSkf82WH1fKAGvPl1PMeh7H/SyBNeMErHuJl/i26Vtsf9F0aZnUhu8DU1j9ORuxMPRM+l 0lZOsqxo8r383WfhOvBXNkm9ioEOgJoPIQTToCzst7+YOaFneUs75HTUFWh/gthNy/E02rCkbk VUk= X-IronPort-AV: E=Sophos;i="5.73,332,1583164800"; d="scan'208";a="137935154" IronPort-SDR: 1Fp1FqikdHTcDBcdpLL+kDj+3ntqLOTdLcrvidUrCF0EKdMQ9Eh+TwZXvzgZ+r16UsdEuAaNR8 OzIWVJzsWezCqqyAUWMcGwH96W+54wqG8= IronPort-SDR: gyXJkq5CSXcIUXbYPfJqN4tBFPkfUwKzzqP0mYoXBYH6jr9SEzBj2GqBTrdB4SZCj4zf8Is+1q DlGuBrsqAwEg== WDCIronportException: Internal From: Alistair Francis To: peter.maydell@linaro.org Subject: [PULL 11/14] roms: opensbi: Upgrade from v0.6 to v0.7 Date: Wed, 29 Apr 2020 11:28:53 -0700 Message-Id: <20200429182856.2588202-12-alistair.francis@wdc.com> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20200429182856.2588202-1-alistair.francis@wdc.com> References: <20200429182856.2588202-1-alistair.francis@wdc.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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=lists.gnu.org; Received-SPF: pass client-ip=216.71.154.45; envelope-from=prvs=381fbd49e=alistair.francis@wdc.com; helo=esa6.hgst.iphmx.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/04/29 14:37:03 X-ACL-Warn: Detected OS = FreeBSD 9.x or newer [fuzzy] X-Received-From: 216.71.154.45 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Alistair Francis , palmerdabbelt@google.com, qemu-riscv@nongnu.org, qemu-devel@nongnu.org, Bin Meng Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" From: Bin Meng Upgrade OpenSBI from v0.6 to v0.7 and the pre-built bios images. The v0.7 release includes the following commits: f64f4b9 lib: Add a new platform feature to bringup secondary harts b677a9b lib: Implement hart hotplug 5b48240 lib: Add possible hart status values e3f69fc lib: Implement Hart State Management (HSM) SBI extension 6704216 lib: Check MSIP bit after returning from WFI 82ae8e8 makefile: Do setup of the install target more flexible e1a5b73 platform: sifive: fu540: allow sv32 as an mmu-type 8c83fb2 lib: Fix return type of sbi_hsm_hart_started() 00d332b include: Move bits related defines and macros to sbi_bitops.h a148996 include: sbi_bitops: More useful bit operations 4a603eb platform: kendryte/k210: Set per-HART stack size to 8KB 678c3c3 include: sbi_scratch: Set per-HART scratch size to 4KB 2abc55b lib: Sort build objects in alphabetical order 6e87507 platform: ae350: Sort build objects in alphabetical order 650c0e5 lib: sbi: Fix coding style issues 078686d lib: serial: Fix coding style issues 3226bd9 lib: Simple bitmap library c741abc include: Simple hartmask library d6d7e18 lib: sbi_init: Don't allow HARTID greater than SBI_HARTMASK_MAX_BITS a4a6a81 lib: Introduce SBI_TLB_INFO_INIT() helper macro d963164 lib: sbi_tlb: Use sbi_hartmask in sbi_tlb_info 71d2b83 lib: Move all coldboot wait APIs to sbi_init.c 2b945fc lib: sbi_init: Use hartmask for coldboot wait 44ce5b9 include: Remove disabled_hart_mask from sbi_platform 2db381f lib: Introduce sbi_hsm_hart_started_mask() API 61f7768 lib: sbi_ecall_legacy: Use sbi_hsm_hart_started_mask() API 466fecb lib: sbi_system: Use sbi_hsm_hart_started_mask() API 9aad831 lib: sbi_ipi: Use sbi_hsm_hart_started_mask() API eede1aa lib: sbi_hart: Remove HART available mask and related APIs 757bb44 docs: Remove out-of-date documentation 86d37bb lib: sbi: Fix misaligned trap handling ffdc858 platform: ariane-fpga: Change license for ariane-fpga from GPL-2.0 = to BSD-2 4b2f594 sbi: Add definitions for true/false 0cfe49a libfdt: Add INT32_MAX and UINT32_MAX in libfdt_env.h baac7e0 libfdt: Upgrade to v1.5.1 release f92147c include: Make sbi_hart_id_to_scratch() as macro eeae3d9 firmware: fw_base: Optimize _hartid_to_scratch() implementation 16e7071 lib: sbi_hsm: Optimize sbi_hsm_hart_get_state() implementation 823345e include: Make sbi_current_hartid() as macro in riscv_asm.h 9aabba2 Makefile: Fix distclean make target 9275ed3 platform: ariane-fpga: Set per-HART stack size to 8KB 2343efd platform: Set per-HART stack size to 8KB in the template platform c= odes 72a0628 platform: Use one unified per-HART stack size macro for all platfor= ms 327ba36 scripts: Cover sifive/fu540 in the 32-bit build 5fbcd62 lib: sbi: Update pmp_get() to return decoded size directly dce8846 libfdt: Compile fdt_addresses.c fcb1ded lib: utils: Add a fdt_reserved_memory_fixup() helper 666be6d platform: Clean up include header files 6af5576 lib: utils: Move PLIC DT fix up codes to fdt_helper.c e846ce1 platform: andes/ae350: Fix up DT for reserved memory 8135520 platform: ariane-fpga: Fix up DT for reserved memory c9a5268 platform: qemu/virt: Fix up DT for reserved memory 6f9bb83 platform: sifive/fu540: Fix up DT for reserved memory 1071f05 platform: sifive/fu540: Remove "stdout-path" fix-up dd9439f lib: utils: Add a fdt_cpu_fixup() helper 3f1c847 platform: sifive/fu540: Replace cpu0 node fix-up with the new helper db6a2b5 lib: utils: Add a general device tree fix-up helper 3f8d754 platform: Update to call general DT fix-up helper 87a7ef7 lib: sbi_scratch: Introduce HART id to scratch table e23d3ba include: Simplify HART id to scratch macro 19bd531 lib: sbi_hsm: Simplify hart_get_state() and hart_started() APIs 3ebfe0e lib: sbi_tlb: Simplify sbi_tlb_entry_process() function 209134d lib: Handle failure of sbi_hartid_to_scratch() API bd6ef02 include: sbi_platform: Improve sbi_platform_hart_disabled() API c9f60fc lib: sbi_scratch: Don't set hartid_to_scratch table for disabled HA= RT 680b098 lib: sbi_hsm: Don't use sbi_platform_hart_count() API db187d6 lib: sbi_hsm: Remove scratch parameter from hart_started_mask() API 814f38d lib: sbi_hsm: Don't use sbi_platform_hart_disabled() API 75eec9d lib: Don't use sbi_platform_hart_count() API c51f02c include: sbi_platform: Introduce HART index to HART id table 315a877 platform: sifive/fu540: Remove FU540_ENABLED_HART_MASK option a0c88dd lib: Fix sbi_ecall_register_extension to prevent extension IDs over= lap 9a74a64 lib: Check MSIP bit after returning from WFI 5968894 platform: Move ariane standalone fpga project to its own project ed265b4 platform: fpga/ariane: Remove redundant plic address macros fb84879 platform: Add OpenPiton platform support d1d6560 platform: fpga/common: Add a fdt parsing helper functions 040e4e2 lib: utils: Move fdt fixup helper routines to a different file 4c37451 platform: openpiton: Read the device configurations from device tree 4d93586 lib: prevent coldboot_lottery from overflowing 550ba88 scripts: Extend create-binary-archive.sh for unified binary tar ball 160c885 lib: utils: Improve fdt_cpu_fixup() implementation 1de66d1 lib: Optimize unpriv load/store implementation 626467c lib: Remove scratch parameter from unpriv load/store functions cb78a48 lib: sbi_trap: Remove scratch parameter from sbi_trap_redirect() d11c79c lib: sbi_emulate_csr: Remove scratch and hartid parameter 5a7bd0c lib: sbi_illegal_insn: Remove mcause, scratch and hartid parameters fe37d7d lib: sbi_misaligned_ldst: Remove mcause, scratch and hartid paramet= ers 7487116 lib: sbi_ecall: Remove mcause, scratch and hartid parameters 40b221b lib: sbi_trap: Simplify sbi_trap_handler() API 7b211ff include: sbi_platform: Remove priv parameter from hart_start() call= back 5b6957e include: Use more consistent name for atomic xchg() and cmpxchg() dd0f21c lib: sbi_scratch: Introduce sbi_scratch_last_hartid() API 54b2779 include: sbi_tlb: Remove scratch parameter from sbi_tlb_request() 9e52a45 include: sbi_ipi: Remove scratch parameter from most functions ec0d80f include: sbi_system: Remove scratch parameter and redundant functio= ns 0a28ea5 include: sbi_timer: Remove scratch parameter from most funcitons 648507a include: sbi_console: Remove scratch parameter from sbi_dprintf() e5a7f55 platform: thead/c910: Use HSM extension to boot secondary cores f281de8 lib: irqchip/plic: Fix maximum priority threshold value 6c7922e lib: Support vector extension 615587c docs: Update README about supported SBI versions 66d0184 lib: Allow overriding SBI implementation ID 9f1b72c include: Bump-up version to 0.7 Signed-off-by: Bin Meng Reviewed-by: Alistair Francis Signed-off-by: Alistair Francis --- pc-bios/opensbi-riscv32-sifive_u-fw_jump.bin | Bin 49472 -> 49520 bytes pc-bios/opensbi-riscv32-virt-fw_jump.bin | Bin 41280 -> 49504 bytes pc-bios/opensbi-riscv64-sifive_u-fw_jump.bin | Bin 53760 -> 57936 bytes pc-bios/opensbi-riscv64-virt-fw_jump.bin | Bin 49664 -> 57920 bytes roms/opensbi | 2 +- 5 files changed, 1 insertion(+), 1 deletion(-) diff --git a/pc-bios/opensbi-riscv32-sifive_u-fw_jump.bin b/pc-bios/opensbi= -riscv32-sifive_u-fw_jump.bin index bab13f597ac9da31518f0a2bb22c2a1dbd56380d..3e0da54080ef4dbf3fbde6205c9= 83fb25c82e114 100644 GIT binary patch literal 49520 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 VUJpdEf>!}_fBa!qfHaBM{~whEiEaP@ literal 49472 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 z�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%0DMiNGf_$WkVuRX&6)lQo8YJYsn*8)V^6}pe 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­RXiwaXIAQ6O-;;7 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 literal 41280 zcmcG%3tUsjwlF?BJA3a0AAkX)J=3D!9XP-v@YRIYloyg~#Y^@SX4?Soykwzm&2_4s*u zyd@?(F(86QjI`QAeSqeiS}Vo0-m5%AM5|IO_-M6iM2fAAFF?@1e@*rd1Z%b5z29Gd zVX|k>thHv%%$hZ8)|#lq6e`tINF}Awm@t(DzENUS%88MRmLm6GSn&{o9Zt#Q5`<(D zNdh-*^wW?NBpGB8A!J^i9xo^14e7k6C`v~{UYu^52nqSIq=3DG~iC}Y-bkI`)>k!s+) zm?uABb^kHQG7xgtjT%(C?muHTeZtnxquK9Su^e(`1K*j#s{a$Q^WH%dck?;x{_M>e z^Qn;2A@_%}{{92KZ;tI@)gMBwcTrO@Yp*8Q@0>)(9&!(f6h&3UdeM5)c_h7S^*Z+Z zDvGDcIf1p$L+p3e#G*ZX4%w5FQY_@$=3DJDh)-m*)JS@kP`=3DL8W8c>V+GUnaKhS@z^I znNBefDMB(4kB8?+=3DruXdqbSS^)|9T~;j*KJwklNvUyga=3D6K)pyIf)3*e`oTK-J*4T z{mah^^`GtKrSlog%hJ{9F`sOp;xX_2Q530-88JfT)1##(8mask^jw5*ua+95NX7Ue zxdph#IHGmWFckT$hLTsovncMzQezG|b%Sc42yyX5yh=3D0>l`{V>Qi*QGm>Cp+Q#pfc zmi%CGKo1(je<)p@LvFGZ<|#rhBSq*fXY&sB*!ICSx=3D@j5@DW_=3Dc4)x3!Iik);A)W_ zo}m7JK>b08b|?6}PQ zLE}DxzoMuIX|&?pF(>0fV>3}m6whz}0ECEGZ7dO|jU(c<@kD|)L7PZuv>IZXb{dhS zO(K%D$;5Q+bYg~f1~F4RlbEHQMZBPWA#*kww>oQ8%4$#ltj^-$sVIc-_h>3)HBRO5 zETbrqB$h8nsrl4f4xt#_&nRu#wo}C?kJK9)j~_qz4RGl2h1#qkR=3Dq3c)f8RrMuM!> z6QpAYp>upmY@@$j7ssUJU1rYaMVdZ6K_0eHr2RBSRvRguy@b*oc2Hz(GetUVl&-d& z3Z=3D~QHK??C396!08NoyxO-)k`d73z%o3zd>Hxe?7fjE{oC(pd#Zft2gLoClboA*UC zrK=3Dyb*8%e87H=3DR&h5E$<)_k8tokrsCC%R#qz&>uQJ6WUZ7Y9TBw7F_HFdov!w@ zh^%#pNJq0s=3DV%xCzALO=3DZCP}ahkL_sj@$DsAS5lRgU^flFt%0rHff4G88Frl!}Jte zHpUa0WR9aZR_hK25#-@hNN3-ObX8(#(?~*hq6U$*R}gtZkD#4McYGW{9>0Ug>MzkY zNvLESRoc`YP=3DR7I=3DaxC`8@VvgmNUL8za9;jMO6X^rZ!61dMUO=3DkF$I*GO|(%_*UN;dp+9I|os}Py)w_W;*{wT?5`lRV;K4 zrmnHN|2g+e4j73Rr;NJFW2*S8b2xRy^F82Vf>SPhNA+(y1F0*nsP~4#`^$XUs4#ec zS?5R)aXITx@V!|dfjPXF#%(Yg9dB=3Dmf9)W7WFv4?4`X%*j9nNleyTUmp(>`dSwm>m zvL}qh&_p?KLPn|IQoY%UTv0{w{4@8KE9zpLE2Ltfm1E}@1yxQj{rI2AEDaEw{lp!z zetW4|oGT=3D2Hepv}O(HlyPHOJx@ON%n+O5d)LoDMr&`f0`9+v%YuBecyGFsemf#Y*_ ze&C8iQ%KDd6q)Ep=3D`@j)E^!hC^dQxnM+Ew09~lTt(@Ad~fKoB>i11_w2p9j2bOa$? ztr$khNEkumP$tB2$UR=3D@K^)I<gi1=3DA9fazQAw(4wM|0CkH}8UZi05V>Y1fFQo!lesT7CwO zzM`uQ0!btWNi-59(YOaBkp-lJ5s{7(=3Dtmp!<;HrDL@@f%jksh^tI#8y1*l%O&$mU z$qQv0%o>KMqR)FIc0(RWMxe(5^fUuK?Z2T1xE=3D#Cb`GZNy@|aqS9tj~`8Ec=3D-@xCO$v5Ed75Mu~c{XEqw0FC8?ghj1 z*mY+S`|r_m)zFEA*>R`4v^|_)H!_1u?~Ek0N$gtjAlb)}h?hbo&$_2i{aF4lkTCs! z8OhCvDB`j>DVr@0Ft-Px*6+!>tstLrK|Xy3^64NEDpf5#>zV)IglwphP%Z61&gK{0 zWMn_&B>nEQQmL4nR!EWRvmiCKrRb-*H-4 zJ&Rjy(S;|AoNJk1-{H8d)fP_b{7C#Oq23>(OxTn_C*4X*UwCq1+>85O41HKk6MhmsEIOU5pZ)Vlf$CXEt52FB5QvmXU z139*n&?S_CW|ER;DF!TtM5>A*chkV{%i{BEt)|FAS5#EY)^8p&+kuNl;9?1I(bk8H zc(!ZRFt0*F##!~jmGa#%zN9S_9#dSF_NXpgie_&tfO!m~x(iMiaW3C?)xK8!UAQ?3Xr`6ahn zUVztn>PFI3r<&@-EmV}0TnjEwNm*JxCnc?Xc}h|_i~(U)vFbD5ONfe?@~BpBJ@M#P z%EiC|F>pW(91#1?1>86MT7^e1?h}3_&8nSSv!DtEWZ2Cs#v`j<>oC7>?_MvKgLDL4 z_#$W>O1^I#KjOZU!A_rlNBvmJ6e9Mmc8RCOquPIfvSBQe`rVE|<35m55&7?l7?x)q-29`-~38=3DR?tQv*1c0L~Tvk8pnNcyv1-p$YV~ z(zlI|YTx5($0sT zvmjqUT=3Df-YSe-3t2HhJ-@}f-VQ`;!Bro+7b_1 zTEUE1N$i8~nm2BVpIXqrQW5I2Cim22%=3DqmL(D86R&$ylDD+@}m(uCLY;MpP2q}_Lg zsq5K4fPN|_?GE5XGjO6EIMMr#b6_ctHP2DpJ{T!rEfr<%)r^Bwl3ApQ@=3DAvX^Sv5| zr`%pml;?es#z&h43z=3DsxF$&hyZ!huOaByql)9lIuY|$Bp+YNH~_t#BA{kUJu}FiN=3D9;sm2?c!CU9@E1Eg@qQi$eqjT>Rd9qPO`vU_L|w%PgWCHzVj z6#JLh(&nq^<_UKy+rPa(wRjm=3D=3D=3DY<{EN0NY0_V?7T{mq3vGZd~moy?fl8=3D!;FIAOL)p5=3D$U$J z_9!lQynfo(hY7H1%0C8;rr*!=3Dhwd`VI|wf8{90MsQ0Rw|1m#z76l=3D3hr%&RYM^wym zT|_@*E#%aodj!;rGu*$eap_*)9uZB)+TzM(p{J7T=3D|<&AG=3D$fhN@nWgBTd$gLyMBR z-Orn;8aJ#HA@zU5-&Qs3n;i=3DFUQwF*p>>;+a9v!|x)IlUZ^h8-_$iqqdLTvpRocYo zwN7~un)2kV<8!}RaAe_Ox-q%_o_sPn zZu-9IQ#stGh1_$|Ck?X<7d$( zP3q;_`SF6S^WT@B^_4dK+D0AQTK5+<+}&l=3DOu%6;r$S~ z(+}yw{E)qj%4o8Y@Xd82uL|e7ZunP`Vg2xP<=3DKOC(&`STq;-_xoH=3DQ(8!uGUmEltO zdtNzT&cA$>M~3w7iBNzpF-1ZqswJc*L!#3xm-wy#pXp@n;fPG;By0c^W!1~5EU~O3 z8tpN;P}E;#3;%{-<&luJdI>A10!YUWu!w)z2ZF4=3D1MS@|%3BodV81=3DNS#Dp^Qql0uMQb^^HCP5k=3Dl&PE@psSrP(b*Fuq~mqK z@;+ecwQ9=3D#VnDJKumh$Th?Og3O#8cvtQyJoEU{Ff-67eo{ZhgucH~h@Smtb~jA63Q z=3DE+XO`A8$s)yNQv)j*N%ie&rh8VPQ%LU&36w7Q2@o0}Ptto?L%ZwpTQLknc@QM>rzpmf)N6OBADdpfFDOaE7q^X~7hoe`)nvGk1B9xJ>U;=3D<% zc{nn+Ga+a5fD4k$eCAbMNgeK;*P(Za%>0tqO$YIt9xTAohxcv%JfUAl3jGSHr(Z`x zzlJ=3DjUp;;KA?`W8*UY$||3VWo=3Dx1{S-+Q^7G-W;$HI5(EH{vOKX5`*+wq%i*`vO(0}$=3DWmt zoZCrshm$1aVJVE^r7+hbVBSrXkoJ|5P_QI%VF(5lMOH*Y&{f z;^8;R0RBj_wh*L58qys$A<~`%`}y4n;3D$y*KlgG5_w_Pt*c_>mx7%zf`m4Z&<67HZD@A$7>eCq4C;$K2JWsa;62z!oCOSpfT0dBm;gfy zVAu^9Isn7he*lB#E{}n}>%|auj>nL3%M}pwA+$jZZ4g5nU>7Qd)pIGVq7h&;l5C1BMR3@bw?Sz+C4s)c)ed z&~%K)5O&oSfHI*CaGo_3&bgA{bYBX)uBEX1ih#4Pm2l=3DYk$QX^mNfGil+9iYb_b7v zy66hH`0vmLz)%Pn>HvcYFth-M-GHG3Fns+7FgPyp7z~%Z7MbhH45iHy$P@dq$y zj`A4jqh1VQyLk*5l`tP>K^p)=3D8Ut+r3`q>M0Wd6OpbdawCG+?;l-PL;i|t+v)OH?& z`oCa4Od}m<8M3wxAh!Uf4#w*lf;}7-m>1&P~7r^`Vp7*m~=3DHJ)i z_v^+SfYmUh;w>0;p4E!1l}b1rmt#KxV-VJ>iG4KCsm7E#nNfp=3DRrY9csaRuZ0sXK} zqR^fN{jfulP^lQ1K`4}JLh*D8@!D6t6clE z@6F;AqwaJnLN?x4gud=3Dpj7)GVl=3DIzSJ3TD4HP{AzwLNopuqB`L&y z+>F+rpePPx1lVgJ*C}lWtEq}=3DkHL1Xu?d96`<<_;gEHC^S`Ejjm{zF4pjG#JPmb~F zKd#qXwxC+8(KZd;#de-Xy>&_rtud?Gz4f%3^Vn_%yG=3D}m>1d>pVmNBMe|r~xZUy+g zFsUjM@}wssH(8A%itzWL4vyKL*WATX&O(P^@$JQLI%;lh^=3DFN(h=3DOw$3c2qQ!hV=3D9 zgWHTt1fL)@6jRDHfv&M=3D?af60FBGF9U zU;t`=3DSJYk!(PAzLLNY@z0$Ws6$lo8Z#CYgfwwTgr6J<0VVhbAvK7l9zY~SgEEk2_UKg>!BV z0d^3eZAG6m$zETCUfQrvCQuA=3D0#2K2;rzU%L?T~;tw_eDe$*uJLOKAJ=3DghDhlX;1e z8Fq2<`SQ%L`pI_qTQT{%Ei-KIIzFh2}am>-NO%%?Dg`QtH#`C*vC{9sIBJ_QuQ4z#(XKeped*I@f?a=3Dq7fitVPd zwO6}4H0)2tetY!h;PJ?Ok0Y>ew`^e;Qpr~kCe4JLeI}Wo-z1ronru!6DX_YYp38kU z-rS@oN(+_~&*hf>Erq}{y!6NcJXV*fL2U2iv3(OCDKaGzT>>!D76}q#C-ESUOp? zayL??EhS_tOvELPl4I$1(HxZ@Wzr~$A_zr@6)b(751dwrz~+kW2474D+rOk$B-6BZ zn^(w@$&st^qb}L@87ZCluX2zra@2ZmRjO*R11-y4&-hWxZJ1+(I>pl-egsKk{ZWyh z@7mYD(jU#Hd~-ezFQZ|#=3D2}tj3R%kRjrlyh)st`Yk>pk*)b<~}lL=3Dyj%h2c&$FSwX z$_o4f4k<#v?9zoNbSXyOfmGiGFa|1=3Dce=3D>1ny&vy!0q~fUCx}^8f$K}5$+rn(}1j& z*uYge1;)_Y;5;PBW+=3D5PxCtF97`=3D06BHw0jd0g6^W3{Zxi46?SD=3D<>((AsP`W8}-r z)UDl6XK~*;|9|4}_80WT_#&U4;55KP3B;v{#wN(h#6E>i4!?IIbY?gmStKc`_^o6(|Rb95N2mAvjXHh~kgFl>(o z+x?fDx3qnmdOp^$819~3r)=3DNc%18MQ$-++!RoLCtPd+hzINb8 zNMrEo;m>B}CXmF^md_$IRz3EWVkJ%D$DO�V4w#!vSM-AB=3D_7N;pCGU3*)<*TFgm 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 ON&dImSPkgfnDHNtwd)oD diff --git a/pc-bios/opensbi-riscv64-sifive_u-fw_jump.bin b/pc-bios/opensbi= -riscv64-sifive_u-fw_jump.bin index 77f4dc8f8322212c437e7f8d7f2ddf63bae1c2cf..1acee86dc7cabc1437018a69900= b1c3e7f7a7d2b 100644 GIT binary patch literal 57936 zcmc${3tSUd+CP3~CX*ptLjwkiwMqmkyKC77wbibRXo%3&+6!8{Z(C(R#a>;sF74|U z7(xsP=3Dti2NcB@#mvb(L@h`iRdRuCh)UfOD@?Y33I#e1-VhywnUa2BIPl<{!M!bjDXnhFL z_?$^HO}+m%!$qN8C~C*`u9D!ugLY33f_A&-WLtep`N46vdv=3DM@9=3Dyh zle&5Cu(=3DvZA4qg@SwybKLyvP>H;trtN((V3?LN6&=3D>bn$WAuT~Cfxle({yeRM;P~i zXUcas*%Ht5ah~Vn`e`}&eo9MwURuJR{>V?Jv=3D1V2TyBDk%t_D>=3DvBK#N%Xz~dUwv` zfjw(4P!YZ0OSBE3pwK#AdS2kU7mU1?Wr&7t{MK$R;wJu4AIK8ZWM;CS4J3Bq1y;{~ zpJ19#KeYmVZvH=3DQ0z<6k*01e(MckXV@=3D{$~BhkfwPX=3DOek@XMj9;~>9vj$zCpnLdV zULUWEt6&G>m+OxS)x|fmavQdc);)-0H?G!Ux`!KCT^y?zSdSjpK!>r(rFcp)u(V-T z=3Dc8GdwVkw0F-L9qwwkw0(8UR4gy5Xk**mZl7fHBZ&)qssL{pz`?yP0(&d>4ZWY$>4r?Uw6F$?ai1*ebToGDqomPDCzoPN5vC)^w| z>OJqdjlPtdJlytXS}*0D^+U7N332#~muWgb+{+iz!)9gH&k`<+CH{mlO0E7xG|y*N z`SXG^W$Ddjv-Exf5g&Wq&%-|-$@~MJ;re+dOU=3DgX8O#jsK8o?lQqPLJ5;G&tIjplc zD~iNp2D)eGdm3`be>tABo^QteZTs9kuLMbrlX=3DO>@pj3cV3(d?wH&yZlRg|~HHmsY zDi8jz^tmA|>^b(7vMKPwU2S(?8`fQMYI9TNnfEVz*tVnnqiY{` zC!S7fPB}aM;^UWRc0AqnY)|9qmgaM3FJ1ip^3{&(UA;Yeo*}N`ak`2*jdR)GC1y2d zDbqKnCuOu`C|}+DYSPk{rM?R)7o=3DpK%k+J%^0k!L&%GY_!uu~wfAP|bfq!`a57Xbc z^u{04vR2*|{~~w)=3DF!|ovu2R^yqsmJc{!9`Ub^Xd`8a}CGn&vU z#(Q3i^BSIKedfyd^9K3bdp{w=3DJ^eLiQRG?W#pvdg(?_~LyY@xbnX-h zzA`G|vQ=3DmkA}lH*o{xEgGlp`N`I3?6I71XC)x~q%{wZ9f@Jy++|4A;9pIt0D(z!;S zb1dfSi`gO5N-BnYT2iAuQJSWGrd0G5rb|YfQc5x_x#?S!+~jJdG}WQ35KfeGQ?)#2 zXiz2wO49{iGQ{v)Qmaz`QZGs4q@;1YWb9Px#abpWEYin*W&w!|)!2AOzu-$opApI=3D z4zXtlOrus~D`4#NHj`6;^HU^82->AUyGC--ezeaqg{u$_mr4iGKIJndjY`_WPfNha`xkSm zr4@JE&z&PRT6^m(#(H-FXFqqHT=3D_Xh>YOQYa@huxD{jVfn*Yg6uxcMB+HTb6zoKN~ zI%%9g(cZu>zdz@h9M_Y55$S7H+4Hx%`J z?LPCggu6RFr=3D?gA-MDG*T*_#hXbw7;PxAZ zNFQncEJ45E3`s<}^96kd&ouIqW2w;J=3DicYbYg0^lHtl(LJF_Te(JYK+k`9`pO|Ch^ zUli5+XtBU|ULVE-cfjbQUvQ1cDDBNWb0?hA0WIzj2zMZc04D)XQbBPN`x)T$0ZyV{ z5GLa!w3NXu&2{A2#BhG32iuHouZVZ?BY!$B8)#(axdU53`)bhM!Bbofycbt1@5R;0 z{~)e=3D_`7orpcpwOidxUHdgV)Eu=3DiL^#0Wl2G!N+Q|Co|CP|^%aZUH5$K}m<3k_~;7 zZ0)0D=3DMPgdgjdtvrv1Fx_Lj&CZ#i9a5+0F`gs|L^)eKh~!f^W)th7HL{i$H2gCkk) z;JXZ0Ka!DZ<5{U@J0l&9XSkzNSn0q%hC48YsR)b=3DjO6T>ju8Dz-x9reg>ZFGvQph~ zhI2g0)c7X)CaUb`zGCzX4>J19Od{=3D1XSw}NC_kNPWLn9|(#BzF z!>pkarzumhjM3f#H1m#-Z;F{!t~u*NwRLnH*3EV$tp5XkYot2NDULyN3ja+p=3Dblrh zmAL0jrBt`rJ+GveM&7MoD9?vp&@KFKrgjh=3DCDyyLi+$5UPZcyf<> z^u1@?lfH3JZXfp+2UZ-LGnjAlpqjC5g7a?v5_mWvVW~5ezx2})dPY`V|Hz^U8!(<^ zgcw<#nW+=3DA+u-r;L8#_iOzx2tHyZew+{fy+2c03_<2fnLVSJ-2A#Pq}p);Is{4d~^ z$5&nd_;Ta!qb$ak7xxcSHiZ95a^x#aMPh*v@>4iWUNxHU?&Gt#Ig3q3Z7U(V2Rp-T z{{+9SSP`c2Zxd{o#jQn$B7eDF+Tu@4v0~$_fC!T>ajLfVI_LkTcWuMMgc9Lf+d9$S zFpDu2o&C<~@7vwSg;Vdqh4Req=3D0o?)eg{sJ4%n2KkCd2?Fh;7Cn2(h18C2OfgDU%G zQ01Lw(5+wR*>+Yt7oN>2-szp)kKN_;;VX;(CbypVbH$ySm;3P#(NQ`?SAXwF{j`L` zSY@$7Rz%p(pLehROBs1&W+<%@CQhCKqLlXYHwgHBqW8BeA?H`F;WJ*ZG&!GL|M$JW z*|qL3Smo6UjlbfmCSV(nm3?^I0;Wz!e#7woe5~fR>p{*Tl{a<7pUCAm_lo&`m;s82 zTxLcn%70L!R9tN_$!82hTnWR+9rXNa*5dkDt}cXN2Eu$k67zXHX2vNb66?~F{rZYzQhzX87lX6OVA-ajEV=3DYPs56ZrL@Oi4k*! zVIm_8yG?o(I)_r}b$>6Apbzs=3D>$|9HJ7kM}9=3DYzgN3Lt~$aU>^lIyT)3Jg~l!$4lb zT5M$8^E+f}&-@O_+9TI7x6hudYV&LkuETzsGs3){Ndc58T(pTZfn!dkc;o?YM_$?ejh-8mpPri=3DX3uB}ebG4l#4|9;p^5 zYL!ZamfZQl5}p@FesY+21Q`#-XA zy9Dx~MfC9twA%Oq*XB2UWP87Gh1gXOErq4`OVu&|SD9}w>L9_6nFXvZwoshJ`+jSh z4t*s777aBcaw^Cm<&Z%vkU_RW2H6Q2q+aIHq?0m_8qdl+YV5iLk9ubQy8fBpy;5Sn z_pI3)(l@7RYnTr0v9~()6L3F<6yEF=3D9O*CHkKrZ;2a( zWjCzaF=3DXPK{*7|~MW&~wdi#;~pxl=3D;FXZ@qXc=3D30C6>hZ%wm$ovJRz{&%c53Gvk$j z5zW%L{2K@J%Ugf7-X!TBZoh6)l+|iFwdBRG*TUxeS;6#znI>1;8{g9VObYp)<|`VN zO5rUWp zUxXTYRbP$IHPHLJ_NWdI%`QLWrIM@dol9OCErCr!=3D3&?hIPv@z!iFx%m3gXl{lqd| z98YA*c%RNq(td&2JUZ!*uD0(kddrc^$a=3D*)4hG*HUFvGPdCq%x_M*r(Wqb66lrz(t z9zR9Gu8bn_k|P{*t%~F7FuT`bcHf^2?VW16vtgZ}nl5H{%*5FPtP@mIwKajCw~s8M z8t;+SSy2g>KXpLvz??8xbE7f`l`-Wxf^)Qjd)<<5M_8hp;cVUrLtHLU%=3D?o#C*-Sa%j&vU%3M_p{Ic!gcun4Xwfk;yJJfD0(SqAyHuQnsg@q4atmTp^b8YVAq%#6y{{ zi>zvh)`8=3Dg*5AAP@l0!o{Cmq%v9UEIx?C5h!g?P93PYDUFcMUj?LRVwAt8D6^mHx_ zG+xZnvB?fecH4j`l__=3DW9hg65y51tU(-G~at9#a!=3D}IjUw^J3*gQ{j&B(}gJQ4NcP z!)=3Djh=3D(9+)_E{u4?_iP0bxg-hz%)|}4PzKgC7WBnGOd7qMG}5#gAHD{d&`1Y%R_s$ z2iydY!$N2cWGm*beDX9DTmbCh+ z)YQlJJeE3X&yv(d)ePj4=3DqBX_qOQ!(dSyzStL?eZ`zTun%hO=3DWx_Osc)+k+XpXpB4 z{&cEpVIvWIAP@LJ9`J!Y;NzAD(5D`Gz{fk+F7>$`0p+^JIf>~N=3D{$Iiu3+Bv>)EC> ztY&l-%kh!i(ig0UNw6L!VGT1HxC&^(Qc9{UUt|4(h0U>r$a_Am>;ED_tSvhDu0hA3<|CsC3&X>+Z%%|CKTk ztEQ81M|^o{e=3DI0^PT7cdj|W#?hfcA8uwfN$n@l96vO1a)DJ8ALdc6Yc^_GE?q(@^K%{6#ipAZ6xtK$8J-{K8m?B`!24FSF`oNKAf|cpm5ecZ zVGR*4v?yQ?8on(^^z&8NFtV(LDGx|nd`YpxhQ760GM{0RrD_%7M@1Lp8uTV3Q(g-> zGmPG|LFE*?dK+I!TwJl3&2G%BSopXpap4HG6tko+lk!b9lX94@=3DUC1A)*T!}dVJKQZX2_`<{mb)lU%OPt=3DN04al0EdO5_MRJzVK5zH&GeqK+FYYa z(DSG>i6=3DeRcbLWOEf_-`WLYRJ$r-VwSCp#BtXFuVgWoNq0l;wkmQQ$kIp_U8OtCin|N;OCdkQEkdx~?a`FkctO5JCvDqtY z7&~s0HDIS#0gnpvw+eVvz@u`{->Sa(TP4rmbX8rd8f*~x1Wpw73c{K|ZicFX9b6ouh8u|b_;+lLV zrUO@;1NnwhR*TZ1=3DU@5AcA!?iMoW{7TC5lXX44qVrsFV&86nwmNwYx78qA^dIcRPK zv#D_@mlvv^AI6+4)@Tb@{k&?Tfg16cTlzTsUyL4N5yy71Zvi@=3DA5B zpt+6jkjgj_GbQ867 z5H*$do15uu%Z=3Df`TUHD@>cdhqTuA#+#I@bRTay65jDx z>e)RqO(;b$3&Ly3L3id1kURcg$W~~%;ES<|mP35pZ}g3%dH~w%k*$3DWGml0%T~AW z1Nz_FpWOc|Y0(cY@}yy$j{v(zrGgv^|i?F&MoSf7H^j-{9i0LiWjQyvh6_s z7R>ubV~c|CcIf0Cwmh@+5a#!XOz@PBV#IvmuAW)kc%Bh`y6(!IVp=3DE$s1PGnP98UX zvD%d|!{2#si|W{4Yoy?(xqQ^RD{m8u^S9U+IObh*_w! ziQUj&5>CC=3DQANM!{QgAMLyMH%k=3DLkPmqVi4sciT3DXWTSp_#N;dEx`B&hS$tLd6pr z4$=3DWjIcqS!vebxT8Uq ze5s@>Kb7NC&?G;Vzp`?5-~IE#FVg!lQ(X3*JC?3$me2j#BR|tpC_l!s|JGI)?c5nOR1xHLzgW59^JkLH}X`X3v)(X9h;c_)v-uCOm z%Tnt-I;1@3d+N=3Dr%#SU1Q^}QUpw`(LhDvj^srl=3DHbLOb}4fWpjXXuN(F}6T7x3XJZ z>t0kDR=3DGmb!sc=3DR$CGs#V{J7yG2=3D^CY;0ACl9KbTOmE>n=3DiQyXVGGw~I)`-jc2%no zTjD(3+6%uVJK6;6n2$!OWL@fQGa18KTs>L6`gGVltC?pfn%-*mUjG>QRzAraGWslU z9~Nja-nr(b0nJaGF@Z4l?PtbXReSW&BF_UuO zopn_%ITap}L?yMfPNUHveY$F7xIXi&+ZPnWj4)`*O`NZxjiUJ?#8RrXJr{39L zX%UUQudN#E-})`jia|fw?h0Fg89MP6*aE6y3vjq?0S$e&fYv@+K<6E70sQ=3DOSOa3s zu#^z4%9luE{D|8^vb|;I?%n+S=3D4uXSTx~&{=3D~c9C6E}u_2W@(L_ouUqcb}NOyNaIq zbhfMQ=3D*HqIdKWzo+9=3D;wTCuY#dyq8?^0ON9vl{Xi}O=3D@bH zYFE>>X|R-IJqby%a}*Kp782jKYWN(*=3Dt51GmcYkxKj&DjMx=3Dt;+Vv3axuNj5sHM8? z?m8mj@q!OQ?T&uh-=3DwBmG&=3D;|1T~_cpvl)jgYKD?ru`EvU_IKdQcYOP4Fr?=3D>6sfhd^Jt`?St_WXDYa^2h_zD~4qslY;FGmdm?MoV zWU^L{OGodpSu3~DZ~8lg_Ey$PExrr!9TSpu-wZW8Olo+T)C1ewM^m>=3DN^UQu>0ph* z`s{Kv9yq8*`2a>vH!6Z_G_s>+(W^ zH|C+W5?UzjQ=3D5{yO8NO>$;taPf{=3D5vRMSb@(%BPUi?*t-g=3DcYfNyd7sanSD-kszOZ}^r^)@ZX?^xsq9il@-hRJ3>|xMHTjMWmXU zxmGt%p!7SJ?Bxrh@bvFUPygcE-M=3DHRM9&!R=3D4;x&2i`>=3DZwF8BQ%Az0dK{dSh`6yP zHI?VmU>TFg4E2V2EmSn3uWPB*-1)|`Qqz2^+1*2*n~4=3DX9PuUk1AJ^ff&QR;{8a(5 zey(KJepbL(zk|=3D|y8_nwt&-DxTR{6N2b`QU1$?kry)pMm@IgEHpea}<9S;T{1ncrC z{lFh4^rw3Spw$=3D!I`ckvUxM$4gD+g->QM|hLwzfsbgTu}53d+t4QC7n%2+~_p7|3Z*-=3D0CSuJW{>dEq z?*01uJ%}Ssaek_}UZAj^3?aovXK7c`+eWdh3$yM0Yg6}l%gs)`GBV+E?#NiPZ4=3Dd~ zOpiwwXmOT*&k5WrhcVb?CNX;4Q)si7u9T`*+sDIf-?3a28mvmAsCCyeR2Er=3D)(j^8y zV1_fE#q*i!MxQizH4nhAx`0U2v(?i}n=3Du-ciQ*m&XQb)nu%)ON$!H`o(Aw;X z@$^@W7xSj^GUlil*YKRXftdwn)Td&BnE_@Nm>FPZftdkj7MPhqm|0+E24QA_nHhu` zWp^<@7PBy1#;hFf#hh`!jJY`i{1OCCP=3DFH@oYA6?j4A~w zk`=3DdNKB)jFC~n1k7G-2AZpGY%va=3DOG7PBMNL+4O0=3DBSY}=3D1pqXaH0Ta9+=3D(UYGCGp znFnSbm|>NB2p;TuSmu)XL6~`9<_BR$8JYYb%qTmX|FM|Oelq3)KQHFyFb_ZTF7>hB z1G5sCm7p^uQWc`Aw<4-~6r!qkDuEesEcK93la+%oBLaIi;#B%aoMb$UGBV)@=3D^t?z zZ74fi`C~B~85wgD0L%g~3&1P@vjEHjFbjh)3&1Q4 z!i+L9g+Z86cDC?iF$a<xSSv3f=3D3Yb-cFr$o2)ga6$J6rW*F`FAb{M_ip+<7$#!0ZRie!%Pp%znV^2h4uJ><7$#gE0F6v)>@hC?nHv5N4E}?e}9b z3r9Tse8h`6>EY*{Ud+uOd-(a!;OAjjyE&}gSa((M1zT9G-5l0# zR+@^~l&L#e&X5dGMm>8g=3DGpLcoMdmsoC#m~S@u@U*(ke<{jr#hA9(or125)Hb`L+V z2S00o8GCTbQJ*Rhm^ok$1ZH?%9ts3z*wB*$fteeGIS`n+L6`%9nHz)|Wp{Bu7PGL) z!_S+%m^0q<@bhZ$vkx!_0W<1T1p#v)Fb4s1ATS33b09DW0dwFW%t62$I0$nPFb7i1 zRO*CG7epmcU=3DIATm>p|8{Jh4CIqGc>KU-XCvWzp7Q>?(XHHb^v2`u$NG!m6Fo(z&B zQO^dYA?BDfbOjBJ$<=3D60+%u&fzAN*Vonh;zN5WD>;Q1e+ktZd?MuHKdK3SSbr55!w#f{i&m94(rW{(K6t`rj@)2`{_R$te} zPr0Fc@W~sxhtqGkPCeHu*HV!Fa+|BFUvo(y@_A+E%WW@jcOAR=3D?#pdK+n+Xn(Wgx` z7ir6=3Do{_N#c9!Sy^e)&Y-F|z1fbTW;;@ifdjnvKxKZs(e)9a63mfF0>d;dUR?EufM z+oQ?U^GRifaXevN32pa{35HDA5iTpgNZ8__*AZkec?7GQ8 zWVnx|$mFcfID8Lmr!yAKgWYuaIG#}hbp=3D{-^d|MPseu9T*f_AOG^2D^jCvD^V88!1S2v)IQ<6XA=3DWk62pgzPV2J_Hn+dFUGS!4uI}D zrQY4{`)7SZ$LXXA7D_(}LwkI$s%$3Nzd{J90GYamji*pD=3D8Wyb_hjKRug zigo1)igjfj#k#VJVqLk3VqIBAv92^xtSgsLtSd7p)|IIg>q-N~x^fJ~x-yDlT^UNT zuH-4!m1D*O>&hsKb!8~Ux{?Rh-A1u-OCa@FJ$*)w5SF98X{@)^+;USRoZ`k7iD{kw z@8_=3D#9YfYW9Yw4+OdR}gL2Co$RT5@9}eEA6x7J-NbElL_I zd~dV0IiInYEn)0as))X8BtvIUeezDylPWSdSd$@pf_`lVV?8;F=3D#_IOS$XUu?W!lH zTzm5vcqHt5ZL%{*_UD zX-gpW(TolI(KbHl8q15#{5^ z+I(RGqJv!(izh-zPIVNM&PP1x59f90MNzPv6jmZ5%>;3VC)dPFaI zJv@z>Uf(agXrIH6%62F;#*UlTrCRbgCofrF)sl$?CZXpm-e^bC0lUzaaJIBikjuMH zf|Z~?=3DRD)Mt{>t6(t46wEno9REtz}hu~kdkaGi{B*Zo-alGJ4UdE+;H<_3}Vz5`=3Dk z{7(mw8T`OAAH-BCBh&S!4$>brV;8n1d=3DS&&K40yQW}@Q}5$R?;9dv({5F&0H@b}SI-Z($r>Fk^ ztw*M|&s_A&nDqnt#bgAPe30RTl`(0?gbujM8;8#Ax%oj%v-^(Rn2Wc>>S2!r7nx3@ z7#1Jy?!TztX7jz_OI+fj{4u#Df!7ppj3=3Dvr7kH~J& z!dT&RW$~Mv^vCeVz0s2-&8wY3;f))jN6;e@-nc3{7)Rr9WQkTud=3DY3EC+e9G~;t``G%{8YE!gZ!t!EraP(@7 zoj1MD{wLV(aomc{f9|rGdTeNzR_avTTKcrB(}1krBco~>GKl7C2WQoyok#4-4#NE( zBwFkynNYAlp=3DYN3i~YoYRmtRDszjcG)#5U3dCO^S26}n4n-10nC40A^;oG=3D!XWo!y z2K>g+q%k#0YeNB!=3D8mbr(S95)8uLdSwcsdwOrcV&Rgz_6usg1-e?AejcKB*$%_EiO zKtZ!a*{yl?D)*7iQv8b+4f=3DG_A-l4QFz+FfS7A48Mz8YSV~)D_x-?kPtGR#7HRjS@ zMf4heb9?_--nchr66Vj&pz_8IF(c>^DQ{dA6O5yAII8g+AY*)tx> zim&hRwW2k#=3D90eFOr)(jM>({vwr8fkzdiis1bVjKF;qkj8FND~omH%F(pDi4M@z01 zyvE|UyH%57_Da^Pv{fTwHqaxqB{*gkj%ce?F&4>Gw93iHjQ6(cLBXw~ta=3DCi*>Dvx zAZ?tz6>WQE2kTtdaBW0?>#F-&_vuh^*)02zYI35~xu*5%=3D(1FIyC7%vB9>xlXOLBS ziWjf6un~gcCZb+&hBt`6Zzd6@r8hN8I)XG~qC7inBGYBPNekZsH%>@<>?ksBz(#F` z4IA>d0rIxNfyh!Wsey<554p4zvF@^5N+oUm{5#8~kV+MhDix3_6_6?wkSY~!sZ!A=3D zRVwoJ)-Nay4wPY6}#33bJ7mube)}=3D8dqEH~8p0~cHCCE2Ia#O5+gdMYfm+#Y) z=3DvDmUHXY)NW)}X!wQT&eh;M?QvTaYh^KRc>m5jHHEqOrtxFEtDNJQ*^+iDbr zUf+#Ditd0G%sregsJ)v>wkn!>9&$z(B%0BJ3oWlCE#AC%0w2XFvsI9e=3D=3DJuVO~#1Q z1>O2rYq>QgJt6uhYB}+WgS_@;gi^`ra`qADl_NL94^1*!&Fwcu#U&Q=3D4Y#qhsrTc2 zr$Ti-cfWP%ePn~vDjZ`smbUjY$vq*H_GkpPLR@i1fp4Yrtux&kbJI;_Un?yD7v@@ z71w&khVJo{g*bh=3DEYlvE6X>&R-mE|aa{|58O@bvOxS~*$gr7f9^!|z+7Gx?)(Wqvy zR=3D;DcHGptY)2xaJBEAz7%q2yT>?5KoTEk2gwXZT<($9!h@iW3twF+^p=3DyNqt4Br8} zMF`O>xDWm9^xJWBty0-z?YtT!&g}`wHPUMlwivSWowYVCsd|TA)!-`b&AQmD5#j_f zpe0ZvBq&9n7JrSfQYk9vcaDJXA^7G+wq>YBm?4N9{U*r%QhHBCK1LsFl=3D;_MU`Nv_Lb^686qJI85qXOpC=3D>kuLRQ7*-V~LHZ$jjZ zE=3DM5e=3DA@)oru$~LWGB70`8DP1EzfU$LHT0ivNTiD3jyE`xt&wd&QaBy&0LZn`6_>6 z5iK8jO)dX(S~9x*!jfv0-^FTfvx-=3DK2*(?@Cdv2QdxF+$Vphdc%=3DLS?9V)URc7y7% z{fXv}3*>v=3DsHJz%>(ln+8tbY!lxZ!o5HS$DeU&o=3D`i#59s)j%-_-8|`sBBQ;hzF;1 zT7AG}EPfBDSNEWz6IQ>g&;k!j6Z5ZvYdWD(bkcgRTFzE+Efl9($r$%0ZP=3DqNz#Ohr zF6l?~+(%wSe6^!Y9 z*ymeQBGmB_j#Nt8?G?PPKeryyw2=3DU2>bYCY|1Mq#!r;s-{7eq9VYRhd&VI*XmsMq9>Y)f^ zn%tGYiSQ}m?}?LnU-7Z)zVwfE4+iYJOv1iPx-U8j`!3;;&T!i%spWqOcPFY-X;Sx4=3Dilp({ud-49?}@> z(lN07j>CRTBTwbXS$$c1=3D6kaCxc4dDw$F(%+{r$Pl^2%rNgmI^t)2kY06#)xI`uYS zU(8?nH6iR%f(28zV@qZKIoWFwUA-<%ENUQcJuhZ7leb?QBLU}>jI1F=3DrY~{l5s>Rp9hNPvj=3Dv5S5wT4~pAL$qZ|B`m>}DA1 ze5*Aw-RHDVGi}Q+7Db+mZXtK2G#=3D^stm})8uP%RkvGFW&9iCQRdZ~v-$%bN_DbNoi z(GSQ_vVRI6iQahf-i&&mCy;u{T#SCyI3sD=3Dte1+I<>@Z;EvfhFs=3Dq<9)cp3Pcu% zz(zk3Po}qVN2d5hDidLA+jm(y@}!S`-ezVtM&fZ7cQoBc_h6GtI=3DUElw!5Sw`8-Pe z9%H#(7mvRO@%OO%8|U7=3DDrfizK|UK~YB{37KHz+%^pAIW?jIwS(jjDRIfVQq2ji98 zL1b^K-^X+HQmqs(1aQIxtDcbDL-;>BNX`JHwM&#o7J;D0rs<}J0#D30~q4ojp z!TihIuNAIH&8H>Ouk$Z)V-=3DTaCYHod+gn(5mM_oMXYRzlJjAn>mB1U3K^h~{BBW{` za=3D1i4KZdb}1|d(04@W7ifBv_~zjl_KDAt4*aMm|VIbGah$hGNRG~WJ1u~?*K=3Dmqtbk#v@XDiYFTUNknSH%j!sXM`~lg+ij7{tAu5G;dRzfLLGk^Z$J0Mdzbo@n z_Vm}@e=3DYF!OV3Y7{?Wh}&n;sNp_uL0Ewy~E5%RBCm5M7gGZf9hxWOnk#RT+G<-i@N z0)HFLvPkJdsdA@vVA`yY3q(b8$SOf|(u{~+0TI1sMDz-X=3DtWp{*A=3D4eg=3Dl*b+78ME zS99oD%vy+9?r(!91F1XCA9*C)ZQusA!JCEj@T`vtVE6Y47Ob-oTRj_Xcmi#B9MQ_p znOV(q0%v^|ZFts1G*9r%TC_p)6pzSt6WYOZ)|n;_e1Aok(}bAic(h|AdVeuumY+oL zw+HK_Cd4cs57xQcv5(hT(!l}f%R=3D-e+M+AkhjtuSFjerUUx}s?;P%}3kSfcUbjZJ=3DX2FZ`R(6m4%Pe!Gus>n4x2P=3DDT) znBkWh!@9^f>=3DoKyMU<)`GcGNzD){*%@7=3D+&GVhpT-O5up*_QV;h% zxd$GPwv;m@jOLobD$_mM!tedi^kKeh`0yp`(u@$HII1VLsjA=3D#z#Lu8%JO zMXnv5g>`<&TQ96kU%h~~y{TLG;J)kN8bn~g9x)1QUpGaip}X=3DPjR{ygvuo1YFE%q1 zEYVEFtjq+A|DHhM0h?OXWOs2BR3{VkF_T%0vAx?FAn%_K?)C=3D zARdh2B4%|>ikP*9nV^bc)&ePJtDX{Jhi$b7>DdI{s1FC$v%tCy(G92(t+|0(Ke_j9 zFFuNwGayI)sdsjH&&ilwr*3}WJwxy6M|rOkC<8jkTj}c-xbZ#M1g!0#sG@tr9`7^L zQt49+GVh!U&rYqYvRw3zP)ak`n{;H#k|yQB{;U4;aD7|pW$(zPS84xmZkpa*aDj5b z`}rSQC>InPHRcmH#oktek$B3+%45)BDpY*5dR+n?dG6@?W8bxAT+UA2yt zH*MqFudkx~;6@HUaMM}Q{V%B7{jaDiRavlC3$_8J;yUQt*Z+;#lnThi!Ad(+sNI6v z+pm|QX3Bwb?a7!)P(P*Lb-CZ$ukWs=3DNGW3X8Hy8#DMzf@gDWgFcSeHg2s}-xAGZ(J zQ6hSwzb%xfol{~u@4(aDKg`qj>=3D{faOCOz1?;hNe;#*phvAcgRc|SjEU{uHC7(~D! z&%@OIyaS1d)0^+kz}D!_JAe$b?nsj}M9w@QF#VYa>JLfYyhpcW0{$`iq&SByK-zB( zK;%pSB4+{+ITH|x-8u~ckjo*5w+7JC(jZZH1|VhzIS{@nw$dC3E!Bv9Q6hI8jd{s6 zhS##TO7pr~=3D07@bO2#m>(TC$6y$_Lv4;E;(kGDS>EjL{(gzt6zh$8DLsXzrVnrCu!jl;0&IaHvi#w_f>~+cYH)47yR@`G$+6U3+7FdAny5Yn|EA$IVI&3QRhx!4r^2<_$*-AKK1hY6q9s(3gbHU!3Mg%CQ<}4#&Ry+}F!OrSakG?I<8pTLYCNtAbZ?ABjy5DUFux<|_G=3DCSh2N>vF z6s)`;drOGAzqZnHZ*51{(Awxz{WU(c*ZUMvr=3D044>i##S1_i@?F_Kw62l;iBS6N-9 zf?z(cpe?xnO?hoZmIZel7}c(+m!RObtb|dA-?voNYy4>2pEf;E=3DsH!pQfipOXY?{lC+WAvViP<#nM3wwaHNB&>NR@nf&#w;4t2AAsDP>1nb{?kG zt<0y?ec4P=3DNNB5A(4e45cD^I_G_c$k3bg*9X_s)-UH`-~*S24;ruR-anPPNn+OevX zn)=3DuFicH!IW$&CuJV!@0E%^f}HTAGNx+A%6FoLT3J_N^}yGcvkaFo_4q5c(fQcSxL z11PuJwe7nV^epE=3DX^N@QE*rPks$0`UbZgrQuoBdE?7Qy4SafR@nvR?wakmODlJ8qoR{ z-fhdK)=3DA4hwEv6W{{HvaUdQhuzoA-uYyA8oY`D)_=3DzI61ufsG_w2TyBC8JWqbx2fQkTH+#sfK;I>vYk@&!LlEhkko~GwiS*zS%Pb^r)rR zG@XLaGYyDqI`v(R{98*>Kc~F*-Cp^33`zd(S^E1E`g>K;-mlZ}>*k)h)q{8ERlLsr zZw7c~fCX+cEO0b?=3DhOifIN0Vg`qmLx;4u4XLVchYhcXpI>ao8~&YdUIZL@oZzgt{*mPlh2-S$o+Gu9@G zG0du?&eicfx5jtT5k|-Si>Vi@<=3DUpV7c`|@d%P{jr!pV@zqBs zWU07P`M}62lqP$SnT!WnF{PWPDEa08u_~nS@9r~AA9tI$f!c3pOjrzD`)Vk zgJf3+$!hn$ONYu$MyqjnqD;;l}ib4v&|VW#{vL^dEX zbBM73nrd*81Bf_B0}%Zms4vyEx)G((eA|vru8*5SPZl>KM=3D@+Z-88GVXAZbA-NeVz zObo$iG0$~lzU!98I$v1Re*2hrj|=3DR*l}8z8=3DpSXWx8S70%>(XHMn~A~ zaURqDhEa?$RJzU?#@8?@W4yoD;`hN%cgh;g2Wy-R|97}`X@0;J+NH3+kMDe7*^b>) zmh5Jd&hA>0`nD&3Ul!hbLjRigP!CpgyPS9M=3D~FZxNDeU>cjQ+VjxPMrGQLPOU1f`n z;)<*6s{Q>>Y4{nKJwCAVrw5*+Gs??<3~uf}moFC>FPq@}{hnvkB%81!fd7)AX4s3-9~EIW^9O;2ix9 zYp(8@^(QU%%XiwBc9CU!@Dd;V%Oac8FxTRHz2}?vd=3Dt<2=3D19+V&o}S+Cis@uZM6F0 z7R3Lsq1m}M(9&u)Z<|=3D=3DGl}{Dygmdr)CLO=3D-Unt}k~^_%=3D-lGI$aiWX;>I-J3+d;W z>x5gYjiOHmWB&I(Wu78GWpa2WWcex6Q2JEqXYx}^LcP(CbnT!z@4-{l>M_0h@oO{N zpKg2hLfV;mO*v{U)^=3D`GvW6eUhHGZ4SQ_Iiz80mj3tJQD-0^-Pq6?nyRDPCkvjDSY z>%+Dc_+Igs(11rwk63LAlP~Mt{K!>p~&pY#w>zay7JPPNO0U=3DantjmLYa| z35~;YOH!12Qnfi?Vp%|vh0Z?*m?(=3D;9MVC&G88OxCn%4mv{4_cH$UcR%dcu|kie`a z!>SPm*ZO<^K}*tAZ}AaXK7=3Du9mqVWMSw3362X;oSfY#N(3St+|CRnSrgpbh|Y$gT5 zs+ysV>n1tdT9F6n_ITzyXRG<9SVF!U_nQl-WHumMO+~of|2|J|sd-8hk zKgrAMgeR}J<4$?KwQ^qMx)=3Dd7FEm)AJA?16z6`$e`!e|6>77E(9HEWcw3~N7mimob zWB2Cxm!_9tkGzSM9)-Vi`X=3DnVq5(A{5Y$S5dHSpuE71N%qtHW<-~x5ZQpfv*DEZY16c zbE1^yh_%6%C+$c&@7|>{tTBYaia54Rf3}yLTmkxRVxll#;H6L!-rHd*vbfmtE66mh z%>W1R8L#9j(7Gk8@)o^6vy>Z3aoyjkdJOc*yc6tv_)ttgsN&oG7?T@>lwr(-P>7!L2s zvWEGAMm#)KPjc2TeONiCU^-XgW5YaSH8tOae+=3D)=3D*k6_miBQ_fV~+J^P11xfcT0rg za#gfve)$5DtwEJEy=3D+Gz#`h{F3UggR$4I;bX=3DHHHXRs3^d(gqkBGqA8Po$aMWlix} zle|9xa{J0(|5NjnFS9nakkQQag(sqr)y(qctg{L^>*s~U`Wdc$hil*A+PAp&tuLqf z9M_&IB)a9ZnT^Y{iOw>cY_xPSy27)}#=3D?_~uBe{bSd>Y0E0URwE5aFFv5MJPyp!lk z>dD5ElSEf~mTWBTBHYw+C-zwHpfxcHra<8T*Y0jWNnN{{xSg*!F zX8jZ~tb$@y?PGP$KvmmMlrQ8rsr-le^qnQbnWr)C9@`DiDl66HV{g&Bc!Se+>^IuS zM!K^{9%mEXZv$y!@fMA`c2<`CE3jtP;Ef|Ok(SoBrFUWWODz87HXRz#&@{uuaP z0NE3THv`D;V1T57IDlL8h{KwO41{JsWRpY|!fIq7bof<3dTa3O%O;6jg!C;Akd)lH z2nUx??x1a{EIMiL_-(zt>$l5x?fvbGyQmgVbEMO}@{c1+dZpz`Ov2?nE#5bRc^mtj zKBw7CgAZ#9v4)K=3D{LABIqb;sa-e{yUAb7K=3Doh(VM7?5j*S`7H4VuRk4%(y#rB3zUY>Cl-)Uym_w0$3h&c85CyN- z81?&Ry4TGBpXMyJZ26n7_FDdyB4bY&)4yY`25)mo)5aF0mO>-!o@jzCG@kkp+Tk_W z*A1&}FRZq`u5I@pqH7Axd)BX;KYgvBoo2Gh36mUkYU}Je2MW2L*Fy# z%oi?wx?BF$N}R>Qg_G`U)`QpOyYqz$sk^;BNG&RwrDI4ya;5qGd@(eJ(;$WtnsAVI zKIP>tca61$iJMImO{~q^QrbT5Kq%Z9V zf368#&Lx+Y)zWuMP#c8G-A-^Ed_ZWY+gIh<_UOBl_KY_n3uBjytegb9L|3Kxm#q}5 zGbpBmqy1es*u$HQw>Y47Hx5KJz)Q`6!nb&-LsN^>w8^E9RsWP8qNva}54K-Jf0Q>@ zEm;(KdUN-|Ye(8YYg0CVap9{o-!?U#n%7NK)}=3D$phxwJ3(S>6zBHq?xT{xCl{qsBD zp07eatWLq+c^$ggIPAx3h%TO|DHuz{Vux?|JS&f*{ObGOR*L3^=3Dz9b)uk}8Det;mZ zXuU6#eiygiw{w26`+0G>BU+`zbIRcPqN(-1;Q1;+w6qRa&By0`I4)?7{3*M-X=3DG=3DM zX_XN>yW_C4J3hWk_u!N+-NUQVdY9$!d)9{6FiKB;H-f&8^pObP8#k?5Ulw~L3d8Y! zFvZo0YmVecn_BP=3Dp!KiY&GD0=3D5~zbW$(0EIymPDnz1{dNh?S>(=3DUV@c>u=3DR^FF98T-v&RT@ka#w zBjvkC7)Af{M5`raqOFzP^6aABv=3D2>>jM?oyH-FjOs$h4&M!CODk03(zt5{;a{uXpJYgSrR<3KWJ1d&k(p%6jXGObZ+(<&0=3D6Q@8 z-~2A?tO!QaVGe>Gh{!gKA>}xhj>EU*(X{jiGSfEX&pIgz9_Y_qv%*FZylxyjUbvO zrl1iim>x-`tu@c_Tit{2Ui;;Hn$(|>dn_aPK;C;L=3D4pCmM9Q-9?A@BDAu%d2R|_Fs z6W7=3D+KXJj-s019-Wj^4_s)I&?{K*0^$A`M*L?k7;BfCuKQM#b zf6UwHHJP`+0B@g4r!9^x0v|TsxxN1$Z+{{4_BGe~@Ag{u1gAW<+e>|8BojsHADl9& zN|jQz+dAuK-}&O-r{H&=3Ddns7@@&9WIY6GCx2SBff=3DYL!P z^!fm|ULVk>*9Y|J^#Qj_o_!R|`R)>>;G+j+3d%M_?E>gC5Bhwq+s>15N|x9QpqZO_ zk`?w8-UP3V`~TYe`nafy{r_`zIlF+G8Y0?SZLWZNOU=3Did-b&2f74j)zB`rfdtb_q7 z50zc}%DODLprWlrN?yH|SbM);Z$`?mx`il6T0V6{)BE#guHZu!Xdr?-{NA54=3DfFaG zyZ6uE_Z2nH&N(x4X67^Vna|UF23$Y9!b0lV=3Dh;z%;{qCP^(GmiciCyD?^^a*@3JPx zl)$i!-Aljt_q&$%^)7vT=3DVf=3D%l_WGtVuej>^-uV_ujR&qwd^VvVCVhJfM-zVq?5!4}HJH*I$~K(wxNj zsx2Chc!u;Kzf0=3Dq5N?WgV!kp*-?okeH-3q;m_ZMy0;S)IRsA0G+tnMc5IhFQIlO+K z?D!42d}yDsZ(T?Y)sKCvCN*@_*tf14{-z<{6e@btSDV@=3DXsjgV|3$vk&=3D1DG^;2r- z_OWl>=3D$e;}3;7V}oC|Bd_f7?9jNE`JeCVLC!YnN}Xo@YAw2WA9`5M>?@EaGb^D0@! zZ`>%XDf2E*(trD|T}9&S4Y+}EG7tGZJt@h4cLk*W4)dTp0hfKx^L-{|y3Bgssu9ihA4lD3ut<=3D>FX-@HTlJSxvhn{)15x^lf#y7iKZdV>3K)@|+3jwtQW=3D6bhd7j`g7 zQzD&6VLo;C#1FpseGuo{H{M+^yrAG^jLn{#YovJRJ{EsglqHSTo=3DaK14iso1Mai!G z2XXMYpE-l2cl{$M8tFeY{?}mHCQ)94XjyEN$Sn6EZBc zuRW1Z_4MpIkEJY%zsi~*dD|?G`NxN zvZh^((5Q4lFDqr#8mY{k^HPmsg`mX+JPyC5$-fA}J+c+KS z5W`Swz(L9tAmxfwt0uaha4ETdh7^&(gtgB2qUQz8&4!ZKVY4AaRFb%v;;EMbzS9=3Dd zd^WsWxp?gX!>IST{4$4`Hx1mb9_K5qT{>k;y`Grgr|hjMj!;ipBQOtx2uYN>`nD#E zoyFIdT$X%Xlbz%jvNrt-S(|P$a_X5DNQ}&C$Yl>l!>R@HqnYWP`Y9`iGiQ~soP?zE zf}rc4#p@op2R4DPK%-4JWsO;Uh(EW!FwhRGMJH}>I>i@XIgOjCp&NrG;shS&s8z1b zYt(KBX{+Gl?m^Kg^eeEC6xG@Q`!#*WM7KkHTDTX#`%L}=3DJP8 zv!p)gIi!2MRKM=3D&zS9ey$FsE$*9R@YvtIvG@6wbv&4Emk>eBnKIBE|qZ~Fc?c$^J+ zg^*_A?R@#|WZ&2_dMmcx_80Bhd|zQu7$gl`;hWjK?i9SB!&gI@{p5OGkd}v!^4@3G z7eWDuyZu7MTt9zk(IAm`;*`?+I8pR5ZYw-2-z7Z|x}P&0cS-v}3p5N`peve1uvvHv zGVP|j-X%RnzDqh>x=3DZ?G9v}MW%3+o47U_U2GdH>b_nob~q}o9D6b?GoCiSw<{)gR} z9*a=3DdojW88rVEKvl1MJ-`Jtv|F~*>Go=3DzLc6*+3MmSkasMoo@lbz}@h9g)JdbjfBu zVHaP#C&69_J*Ug(4%NcovZ)&8mwB*rPp2@R?ikon5P9MmtQPV?0 zVRR!b{0dJ8P4>*X*}OxN#*-ZWndLjKAGwm%Q1s)m>aV|_+d9ALg@#4f7yr2AN^*6^ zK=3D^9E(>!ML7giyPUO}0+_VQQmakzd)Yl{ zKgG>V*qw0ClB=3D&p{L%eK|CLu0Ba+-nBOFO+C44f%Klwaph*ofrDRDG&XpPKUZ;|HC zg7rrn?p&;aJ~Z~*m*OsYv(U_Dzwjl^*zNv?vG3jx!-WS5ojtfhpB~r)d~QmX);GlC z@jBRl{p^74xd~^SVaI(#{Q4E$rUQ%rLH!&2);i?f8m$o;eUZKB$BDhII4 z!MeziVCg#R&p*SU+1%V4(A<*46)%YfB%>N#r`B=3D0Q|owL!8(@rbT2tC>{x!Lm83v_ z&;jx6N;PCLQv#xMxWb?uzHlzId02ON##iOh_yxSy-1|(P?!Fvu%vCdQ7;NGLPCL26 zQ%>~RDdlyY@ssnqnwpTeaI=3D#uzA}M_MB@hJ)7K%_yvcfI+5^ek_6dCLsQp9G^KjvU z@Q7oGCo|InTf+v7N&~p>dd%$)YCo_~$gC&ZJL})K=3D3Z|{T@C7q$a7k&a-G#qDO{)J z3jO>!&$+}ao*vrEKV{GD81Kc!UgNzl>@<i#PUs=3DF(2R2^q(Y?hy2py;9v&YBRDH zhWxiQ_D`X85yH1!;j;KI63hnD32$k36y)-{s$ATj;pCpkcAfI$;a}$En>1SeH9UD* zAn2XMDAGzJ>26=3DMJPx}s4nrY<95uNg*0vALGuNq1PB%AKf>>b?YK498NeRLP52}ga z(Y>akca)m8_ZH0pNBIn6Kf3XLvD-0g9n+NvVe6HDRAfG zGgKT7pRrir<+L0NDmg93f?7_?vEU=3D8Xc>IW5P6R!+;Y;47!)Sn!k6axD1E zX*m{p$Z0tiddg`z7JA8PITr4b({e2ImeX>~33b%}zsqqXFQ?@=3DQYEM5I8rUAZqFl+$t?*-K8#apXO6 zT8<-o%V{|V{4dDxXR*M`X*m{Da$1fBwVak?!ADNZu^`B4ITkc>T8;&+oR(w3S5C{Z z;3uc$Sn!wAaxC3{pQYs(@Mmc`2K-rCjsbs`mSe!5rR5m# zXK6VG{8?I#d7J`N?10n<^P#J8Kx4iW8uPu-*HrWw49cmh&lvG%Sen`^tD!M}kt|Ki z8~T9iv<~2p;?84szMXdOfYTpwy>hp180~bddDQcB$ihC3_<(Hl2V$@4e&W-+pmUhL zP}ElYiqGuwab-{VKzgfkjv=3DI(WACyy2%Xi$OA9<7vz^ta>eNI-Vbevzy856BMPFZQd}Y|MGTrZp;| zl)ml}8g8YAOuk-VBpNt)F76%<3BqsO-!iB6gHq}Kx2C9Wb@iD>c|+4DeS{hwQEGrsG1 z-`S?JoONf>_dC{$QN81s)Ml*8o+tT6Vdqu}Mu3HXbsuroE{!yzy&C$s2v&g&{{Pvm zAnwEkxeIBS2gCaK0Oa5_GhCP%>v9D%G)J1P8ysu?=3DOVmmWvqIG;H{kV3Bb6C_f%`7 z@zqtsjy>c9dT*Pm zQfg1_qv=3D*FYWu|#Q@8pV*Qmyw(P~J0?PeoqH(J22jl(TH!MGzQ9W<$x(W3*_fN}y=3D zo)2yfHcUsc$7gY4;^R3`s<@dm2(;8Qc_o^APVk|wtW!UMLf4#z@0=3DSWU0ET0#RpEq zzRswE-5qYONykk!R`Ac@mq2kmlSlM@7H0w95`27umdgk*UuqY{Mh(d!7{80M@FZp7 zQID7OW&IUz&EWQofqxsKN;;!bV5aU4c1xPyu( zdY84ab9BU@(}VuKKDo2!S;X5l{haVGj`sMS=3DHN?++EZTxA4M6k#meT@6$Lm|SHi0g z?c(t*o@CyK*Gq7z(eNk1c^XY(;;DY(lGFXbox=3Dt{8n*baz|tSkLtZN5ou6cn{6<|C zBofxW_li$x?zJC+tsnf3!}B)27Ru`e_)4XUQNJ$G!4=3Do^M-8?R-5P<5wTPa5{$lJY zfBT^V*!^d7>VqXXS+ENnGVTL=3DYYk7i3-hVeVt9WjGlDbzv05Wu)@a4Wr@$RoBKK*u zvJtX`OB~HOg7=3DKP@Q!(c_P`5x5G>L{RqBHiRQP6sRxQTYs0s_R@C{#{W@PcDc$9W< zNAqy{>k9m*T+;Gm#@*z`2-_#eZkA_Or5QCvqo#P&^oq(;t!ej&r`qU?RL_|BAOu#=3D zjJ$E%Jl4}Ku@=3DuFZL4QtP0Pm8c@}Hw0*j>-GfAF7n1NVL`B+VRF%NcfG*(m_t(pZ=3D z4~pYYbCcGTaN>*q$Ny8!7o2!e(*v^s>kVs<c$jWl{6sjQe# zi5XAl)pi#=3DA^8ziWJ6^0%&eW6Zz;Mh_50`#or4baH4V?%odeGUwU3t#3bRBTwqM~S z*~ljJrb9MTwN{ahNZkC|b8Brw;6X3fpVK)bII*TcRbaxdmUZZd0Pv?Bw*Z4rI9Ykb zA(+T}+NvwUu-6-QP7QyruSvT1pf2We(wPBac5?*o$C?kjPt3b%uK^D%;S2lY>(4?m z11^Vfn4}W|<_WV)^EU6~dg4`dZ(>GbhA_^@lK1HEY@v^vCi(rqVJw#1KPpWCpX)U&V8!8f!}ei3S=3DFglFu&8Pmw=3Dxo8#|&^$g`6n z!IeDMEbE)qxNw%?fC`B4l zvf-s$aYI_>)RC6iFv6$V?HuhC{~`F=3DrWQHyWtz8(Gw;VasYYn@=3DwLSU^3 z|B#UGK?6|U28-(cjS{Uzqx3pPi7YtDdXqdhILz)$k}3(|k8QU@HY7e@$BDV2JZfqs z{&Ce$;E|(*w%0psHc3vT)G+hnobx2Za%YZq&>6ehWvjj`^b6$1_&pXDvRQn2Gk5=3DX zSUAOQR)sibW_|6z`$lWi4#=3DD6)UIlYa&DKNT!>@O*xiGjUtsm`1}xC)HR4P`Wv`qH zi_a)vyENeBI8K_QkYSw31Ml2Fi#tj3uGl730A%_68$}MlZCU$O-q`sS>H|)KcFY$S z%`5JM$A^{KL(1DW!cyv{50g^r@-hEAR^l`3l$AJd9j(O$>tL<=3DV-ftXE3?phMusyv zGt<^!g$8Isb^$WC{Eot}I(!?Gri1oHikT0taGaVAQ@or=3DB{c8AOIgD&^9#~W%1)5X zY*EgR&{>i>w=3D(*S&JAMU+wRWU?cA3;(fPz$_&&Lgn^_0EJ|EIvUt3UX$y0`yI~b_B$%rZw7qR4Eg2M&+|d^`J>(epgHHR zg%^Oe9LX#LURVpCI6YxezE&0RY)|-+S{4O!IL~BF3m4wouwY=3D_p98QbgD&@;C-eg#8D*qcx#Qexx_1>I7Oom6RWfR zT-3851hhbh9%1%SPdN0VFMLNxy?BQka$7Kep6}^jUC+vA3*If)p{0dNOSyM4(6Wuy z+}09z=3DFU&||@%&BlR_)Ji+z0#JW@Iryz8~9i6*JaJDNv5D0WQX$2dMB|FbIUx7`F9zyun=3D%=3D%3< zQ&pZKjU&9;b=3DA9Zg4+}5*Y;z{oiR-B1EdwPSAHX%>r~?mr~S}Hv;`1=3Dg!yD1PHuPV9t^yu-kTc(ijL8&}HC)B z`KYM@)aXvsv{$aFLaM2%qo(SAQPbP!y>}Yb654B)TUxu^M(@t#!{6WD@jWB^-huu& zg~cs`j72@I0$iHfRK?M`5WA@wl!Mgnpf%mvZTnIfM&6*XQ~%A_6g!Xhp&fA%4)~?O zciD=3DjTT|$i645o%8KrRa^J(-m0)2dXFEA0E53Q}6^#*XiFFP|d^0GLC*5p*olqgVu z&;u0qfQP+wa7}4s+fE+;c+y7@wxLxw#%jUJQw3tqLmy2mrC2cXyElO z^y6r5jyz}B{yx{0-q``lk5N1p%q7oizc$Kqz0@Vtfp(}}_SYI~mCGj(_oa09iJiTg zdkrV(J4>7<_!=3DIDU1@}P#K(v5R;EO`9sk}Qnt2<0UxeTz9?|-ET+!`B zu}Snn-L@a+U=3DK++1B&Uk$7F6D<7eb+m*riHy>2)AadWc3P5R7tI6Pfjt+d%wrEP1C zsw$xpE}YK{Z&0I@=3DibI!Wu@-S>%cY4`ziBkGTb>D-m!K&k^8Gc;DQj@-}kl~U2zo; z8kl+QB6)uArL)lalXKXZ~rH0b?Zu-k$zgx%*u%Y1tdZfZtl#f-pC(16Fukv^Du$B zzy+$GLS55P*IVGqQJ2E|63#dIZY-V7ZYhE>0qQ-+%qc>dXEEGX@d=3D7){ z@!fN>y`dX(s}s5mD=3D-{KRJco94sWBN45}X~Q`Vfa&Xo1V^g^_*Xhn&MjVhwo_h`4~ z=3D2zZ*C!`T#W$rhNFE(Z8?u0HH>m2UpQbl4>ZgQz%GHw!=3D(MWvsJ7od;IA96YzsX z+XLfZCk1U^$!L4Fr+1b?Pm&tBJwD!RQCW#)K0lU-S^nUw%5NLCH*>bBS3q@iuD2t>P8KYa28-}VV~l0!~0t;x3G^mSx~th$Fd@_LL5A;!J|sgc1V7PI#aBt zojb$aYqa07-3}ZO)pvf?yErpHS%AC@K47$Usxi*7JRc$AIv$rFY%gkt@J`}YdvC@Z z^uejJ3GKx_Hcx&5n4j%Hwd;rH23HjK$e;YRqcE!nu(rfA6`)q506+DwmnO~cq=3DK0* zra2DPYeWmr?5HI#$L+kotjIAbYx86(-(Kr>#8%-Kw~#-UIXs8jl3yB;yS(&>^9uOW zPJdRzog*B(Giw*dT+w0HN%kal4@%x2cffy^fUn#s_o|xC+)rL%y9UcmJA$$sERuaM z&TPr(L*61ruN|L@J1aM02f&^KZg79Ry5Tv(*hOBv)s(~+92Z^+#+MC4e41@f+osyW z186M6UhAPAn%OMI{GNB=3D7KRH2u*&9I$F>G}28Fica)|!FZ$ID^tNher@7IKX(hl8> z5jbCZ$(`$&BeY<~aSfX5(VhVfx2m2?D4`tXl%sCs&u+&<73z@k=3D1;Y6a-Ng%tz(3@ zx!Q&8S81Pd4BNTw^UMncjv)S$Ec*?Rf_BlW5Venp+<2xxc!(D%w)|c}_*i_2~2xwyLgj;?z+7 zRQ7VLw%9IG35hCh7+CEsSMW?1B&pX73qjo*Ke-^a;Z30DfV;Qd2>c$UTE%dI(`g#o zZIJsBo%rB&W!=3Dy^g#AOClAd9qCu|idI|9*I#0QSZ{m{8DXCg+WwiYy0xZuN^&Jvw) zKISW=3DpA)#p-y@7dPoDe|Po@bfV3&ofK9?~b(OF~*RrlS7*mH!PJ)6y~5>>G9$x|z? zd*kvc9kd|zjh!?mpJlr2hW3VNvHFtFZs%~U=3DvkNW9TT_-Q>!Jy@z8s2iEepvr#ssg z%Gx4=3DOGA4OfY+YG`svM?T#0Hec?`1Ikot%^MLwGW-)f`brHxiv>4$~>0_;x$Iq|zF zzSnzra;$ai7{B1KPcw&v^(qUXH^-v*Bj_1qtP4vIyR$>kN1L(fwqWeL{Z3veI=3D`2} zX<9lc!G-OAk;kb;p$2EQ4J%U*D{paU+QNr#78eKey|z1siS0x9Vqx=3DSKyqQsUkYJm zW(cWo`FxWnb#q(AJjLt9OviB}VlcmXyXf@uX?+ai*3riA3UnG+=3DVcj2lsA94$+K*8n<)6J zDxwW~&fk*AZS-5^1Mut2A52=3DejaKFvRx#aksk*;=3DeUU>HjBXyHdteV`KOK`OHX6k|dM zf7mINAxVY!Lz6GT>-c){1#mT)cV7SM-%Y)3iwKS=3D7zWC~c~}h4OufypPVH57=3D+xVi zBx;)0M~rXga&V>l+fN;XPuQbTGfKs5Ky2c~+@=3Dzb-M_gi%2)z9AtdyftbE;HPxL)X zHB8J+FL4a_?Dub*m^-87`>36zpJe8j+K2eu{!F$J9-d9IIJHp#&j4#TQz&WhB$?b{ zi3efwAX{jFuuO$>0?^fxCZzyUgc43|+yyNjG>jyT>!$nrY^z`toAz~RNd-xwYd2S- z^l6lCgl6;-lY&uc@Fm2jF#Vh@bljgj7b{!TM(FjXL9b^rqf|7sVG}^9L&x{jD;R&$ zR)SKLHGGBreIbD&k9oME(OMzZBx&j(F`u!{lK1%5Lamk?vv-$teutNNPx9Rf&ICRy zMKfrp!;m0VLV^StfE_Xb-9V?r_mPJZ@G0+PlmF_zAUcuae51r$kg>RZ5 zGc;i>VDG+esfKqO$PytBtt^K;6!OS}kc)m%56%dF=3DOB}mbjq@>ms&J%=3Du5y(RC&iEq30=3DCS3P7Hhb&w8=3Dt#KypuE$Af z$ur8r=3DhSDmW}lb`7>EPpmoHFQ=3DM5n zZnBWE5%rgRI~~oNw|;fdB>#E5&86yJ?5M{%?{J=3Df1M|Nao`g7EG}=3D25ZEa+B#|&p^ zCCg*-A}6&9w`~}Th5@&*cBl`r?{`Xl6v;lx-brUorwAlH_33Qrr>pV^u7&+c2Oz;T z4;pn<=3DZ>n}Z9EV++ZELxyY}_vQy0&k&uTeR_d?5}TZ`+L)FofzcxW?0Uwi^u_jtkZ zTyd&!uljH~IPh<VYcbwS3Pk4*K2k_z9!8M$k;mNYpVlo z8_(t!WV*F45`V5Rn{1A=3DablHI_cxU|LeNH&=3DRUSrht5&r-FknG1tgym$I__$|E%c`> z-c*ziza(Sfm!xjhR(Gy#y5~OOs`p&7e+g({4paR^j}#W>0)xN8f0|u_H3S?&bNnC5 zIf}cD&D$rEq01g4ywBGzoMndv`z^=3Dx!dxx4d9P=3DE&!4~v%zm)e`>V8qI=3D@PNAc6Em)06`ta`@euq1;FOw?b z`{$Q7+0FOy_No4myG?{m$8f%IQzm+?<~d!9(Y34l-7DBOxHo;h$zj6C!N)In zvo~in1$+yQs0I4ozvC8h((x7`!0H{EQrzv~#|ON6t2f~q!pTzx5OfX%O1fdRpYYD$ z{<^>8#K5SkUe zADDA4&%H<%H|lU`RU?44BcN4%dK^|cNjU#{ec<7)_(Am&(cD-`=3DX+O+XWv&920{0+ z#UDF z%es$~v|+QiowZ6D*BRaTrVbuH=3DR@L~AnTuX0UD^I-mU25xm}>K=3DVE?SOP+j#JSGe~ zsty6I4P0}5ORtdSTUD|0CF88`n`CcpLEk5SrREWMCx&wEfLVI)Xr}If?(|Z&Kp9c7bE@#k}pU( z#^+4Lycl`nUysmCW^r)-!3-K9@SGSS8kf0_PyIr88mnF**S9R+LgNIk^e1{WmJtb|7D zNS6Hlx@|6Z=3DCD@u6nVdPJSx=3DAe)5y|z4%b_jz;nz((lzC;JxNL&GI93+6;Ur&Gw~` zt@SE{Y^^24VKWh&A4SV&c{*3eoq193k)*jk|1$G{4Lt&_uTR-*@06TPc`25@oHYlK zq3@17D9#o90qOf2;Fr7nw)FHw`&vf?$pPp|hyyS@@m+5EI8URy&3>fo-UuBeMh)B% zynhv6JRHpTKlJlE!CtX&y-<6uC+1 zPo0>Va1t+ZRAhfo92H6EYTqAN;mzkr(g05Xw8td0{d*L^k^D)T;4s?tY$o`5?8-HH zd5~v*g*s29s;3*F{k1>~Y~|E5(rJc}2KdCt4~IJ;BOf5aCI8nnQMw+1n5%_@p5|kci&08H2+IZihsp3DA>#%J;70gFOR++aZ~05-0oJ8nw=3D7Z!t89-q}+IZQjg#9;#Uc}V(k)MtglxQUe*m-E8QJeeANvdHTLtXxKU1m zebE+i;rxML=3DN!pe4DBQOR5$D3eEcHJ+V1>!&$pEXwfzXI{&OVZA>Pz5T#EY`22bP- z4>uEk27dS(=3D*8>74P5lnQ2xiX>WHfx^fJpdX*F?*?;+)MX@tX+V8tu~2M(Gt3iM?f zEJVOjg9@d6U811D%P@-cFvkyLV{8~PqzO0w{Oox^xJ(v!7=3D;t7pxp~^#m>^?s&azn z!ERl}DCxp)K~3W%dzoGLE%t5VD6sRB)hAJAM42d@1?|{}rPG!(B%3>C%}%3pmNN`) zRv89g`9+wLKE2XxpN96(|J1rD=3D@w-leC*T zSX`-A_p@!FohSr2d?f5cehsIlTbjDi5QI|+w~o&NzP>#?cenGyOzcwU^FD-6{Nd0y zyggivQJkGuNf>DE8eBPNCOicHlCU16eZD*Xg-j7L)^ynB5MCmjgqqtx^SA=3D(v~k;> zP)IahZQv%rnqfd$U%`{yAn6=3D<>9!M;?y$Qh+LWxhaQD{;pBC{rN%OGo$$InzJkL5v zgM=3DDeJ*Tv?reTC6S)|cpyE)0@q@^3qq5x$v3cQ87=3D=3DvdoNPy?S}nhzaz|f7UWHjrS*D!4E_-P;*Xxk zu(#4rf4zPrlKSU=3DkyCme6SER^>7S>%VpjU=3DSK>eVhpM1QR2ThRsUJ$e>CG_xN<^Jm z^`TTdK7xOxpU+dy=3DcRi8KqaKC^dbC5rK#GHlt2=3DH^hBvO2F<17F(X&%M^G+GtfZp& zmpzyMm42gQ`48_qf1?}HAYq)0DJe@+^uclZcxzf(LUO!*MtEeH{@LlqnJmZb#MrdO zOH-2cGh>siN@aTeL}i>i-cJjg6QwsE;gp{OLVpFX8DY2I?y^lZ(X_V)iq7#-Q({taRc;wKQNAf%P8GY$mFikEOFUP5mvht~;SR5;-W0mw6`T1x$h7}zB#g3I@37a7e z8$|1r7T@8$SW)_~MUSp(AK_N2+}Nt5eOlj~2D>ra#G zPm}At%XrApL^~HH#L!%gkpRtcaLdN=3D2$2b{Q0iweou5wEBU&|&3|C|d>?1=3DR}K)8lbgK!?|E`%l6jP-Z;BD1_k% zLl7Q77=3DUmuLQez@0*BCyy6X{sLb#0ZPlTb#K(w$Ac{j7YeILSC2>(Q=3DM_7rl0pSl> zD4*Tl-XCE$elJ4EKnOwlgrmLvdBiWQ0e(eTi*OCW*V*1)j^|I{H;wg-aBL1nGd2(f zEwQOS!+7WCvuDi4P9*I(N`Xg|ANrwT+{4ou1RtIw$I){9EQ@LT^xmM1bLLFcn%1#Zb{0 z`hfg=3D?4R1(v$nRk7a=3D}?KR1kl0*moBxn>EsG)4{%-EN_yjkI=3D@M94GJRBSAG;Q(m^lJ(6TiTAH## zss#UZf1DDV9B)Mf45^@l9ucjHiPRdTW8>nGH&uC*l(aO?8nY~ES#aFs;8!0GepSlF zab2HtT=3DLRKl41e;l!R3A<%gFgCWs6_EBHPkj;I}FR*9)8G0Evkv;~4Dqd&s?)}(Y$ ziPji;n_`WPyVLVmQWDZ=3Dq!P=3Dp_7E;3ER$n;<{hMWjJ)6y6Oz+keR!Fi;<%BZWc7_lSUps3TG;fcUo9YKND1sL z2mbG_#a4#0e1nIwn3L1g589h)kM=3D>Rlj&L|#-lEOedLr9D=3D*`om+Ms?$nlKGY0@tx zR$f26;LiD#_rA&xIX-rm{Nb}1N>*Z}*atCpuK%f-CW#VKVkQ5vyW}^{2$x`?#7h1* Y?vfwx{U}d+d%G0B8q3!zCXP7?Ad!Wh%h?9NSY}lai(lBXn}%KSM7gJ$F6~wk&;4nvktKGNu}N&S z|LLfqe-fqN548K^?)nD@I@bR&YV)7Oil=3D$;8&R#tU7i2zDWd6*M11-cGIob@XXo#{ zcOLjaxwF1qAAqs}0sh`!m>r_&E!29IgnS^Dmoeg(E~a@W`x#3NyGof4R3EUeBk`SS z>&0(MIR#VMc(MFxB7RxMoZPA0F?8Lj-0s1BLwQb);4PcDT{Jz9=3DNxBJc8cY{NBtV+ z$(@UbF4jp#e`1J8CdzX>{J5fb^GJG_@=3D>_H>jd!~qL^ajV0gOwNN>4e6B z-sSV}|C#chHie+jr}Uqw^Xm^*82V z_Po_V;sb17N{r)%i#S|mjKlRM{<)ZUZQ`@Zg#Ao~@mGeiKAd&UOzzB#R>n@5#t`we zdyI_wv-h6lL&uY6ylsx}q@yQwaI!Wk0{C?8)Zbe^+ zshfFu_76{8pV$0s`*R&N7cSOaxqR)1AFsDG|J2^uVdNNcgK}V4ME` zmRM${WhV2OcOA#6d=3D@L^IFoYqmLp`C(r>6s$jarR7q;Iz(#F>vYdY0<_UhM{zN;mgqV$G2 z8-C9^16ip;%}UM@tW+M!h6-%ObT%%hRFEp>vgdMYIM$iKew(cdmYgftS?ddePp*&F z$K}-M&*co(aAb#5s<3lxg%#xrIkvonlggc30gqCkRK>;R#B)+bJ+~k`Er@lta+TRO zeTM32PHFJB>*MvZd7nL;iOXrv`OEjRNnb}>6}F)viV)c>lIBo}qN`N1Yz5F&M6#@N zI$Iz(>c=3DzDyi_@tUAVr6mw@l&dX=3D87SOMGxA&$$JNvWQeIU?IaGT4!_<8nLEUjc33 zD_ISTK7T@68w1X-AvEk;8@HMhUp%P|kT}Vzcrof_+H&RXdFD-!W5eSVU&hHf^_W5_Lfu z6=3DRn9O)jY-P{mekV!%U2I;>W)htnCUT+Oh@N2sJ@A2QPM5sXwBsbVWXVWhH1rhu19 zr>jDF_Shk&Kw!(JGmeYFjByFi9LdrTj9Kf`f~E2m7$Kn;wWS!f!%aH7%-V~w zTFHq?j-*!XK)dGHs|Yca6u#i%xbI{-D#)C8*L~bSIM2Ay{+nwM_Yd5UY8>v;asT)q z8zbd?#t24E6=3DsVvLMq+!uJ8EBbYi~SU0Uw6g7m~t*FD@R_h)V6W3E8&=3Dln&kq1=3Dgv zIr#zj{e)6hE8_PPk~3W`uibduJ?0mE{v;hkpNCN%*sO)mY!w&oquj-4=3D`-_=3D=3DCDWR zveA6^yko&z6*wDuk8#-*_q;PR7E?%!?jD)dgU6W9bB)V>A`MX|)XMjd<~BrW)eRBD z-YSyCf6EU(_}IQJ|4wWgt=3Di_RZq@bM#m$x*BBEYq$_=3DTL7}-}IWovH_aBWVyZAkSc zVt-$)jmshmt;B?esHnHTlXbkhRk>qIY=3D|26N7j4~C&l=3D3l6f>InI^esUn#~$4fk!f zCCq~hB~#x#B75pBX^6^y1Fa?)Qv_p*U`!E=3DDbh8jFz(!Aig?Bp=3D^j%xLEmO8bjn3M z|8>ke&`3x94?*t}A~_F{P^=3DQASW8Z$UOZNVG>pXp)ccyVGwX%yVRmtnsup48Nwnrj$&4sv+w0SKaHC-u-vTz5DI%5naC6g99b{8W?99(qQq5E!;R z9P9OXhOIC&?%f0E<}=3DF5u#{0&hE+`Oons?*4$Niku!r%Ne7+KU09JK1kNwk)Lubn% zZ25HFrso->_%vY;&*hD-r9?WMz}xIH(pl#X9fQX!M_sl&)LPlDi8naJ^X9^8U8iQX^d%@qg_Dxn13(j zW7Oj2lBokiYl%r8eunNRbpwdcPAg;9@kBj5p9>fJ zJIN;T1EJ$5n|?g`EO*U?(1b}ctsj~YH(&V_vb>;ed()A|V^`1CE^8!A#;sGAzOH`m zR(#u%rdO^SB5T`5XYWkkow+9qsOGMouhJ*wjLsB;g-{)M&=3DJ!SR~powop<5jxM-mx zuEzcO!njajb=3D>cRQnEuXTpu?OpWkqQZXf3>h|>hpF>dvIG5azR>&M;a*c8d=3D%Y-EVD#GbB}I|ugW&>8)l0Yr_yh*lK1PUw)Jad$8FL71K<4qqs0)>)b>!m zZb1l<`-}dXVB6~<AI(YA7qW5K*`%14Svr1M z(`qVF2A*738eG2K7AUh@GW(M=3D>sY`!fE;nm42WQ1A!U>YA4|SW!n?ZG0npVc*KQ3kNhu zhot0v(LH+KI$f|xpNGJ^5LgE~d;|bE`O8wm7%GN!M|1)DMjXuc=3Dnl;OtzGq*`V|Pf|`% zF7ZvXYbmE5%q&V5?VMKWCF_1^uRz50nm~oq&VBDpbN8jIK2XsfEd6xQH1TTv!0ma4 zT^g+P|N7alvW#`=3Dv1$t#%i$Q?O zr%r{Zs9Pl{b?XI>^xKD@7UxVk&Cb*%FPa{~nEG-^k%H<@4mV-l*14tnU4{QqlsWOB z{s`syk^jI+iOoI!l#CJkp=3D&C4iyfcE+bbabZ{PmspfY_qN^y06X=3DprO;ELvcqI@%i z7jADaj*ENpz>{%P53Gz^Ucz)qF-7UguT76=3DXuSR9-EedN@w?-u9xIXHgPy>8G9D|5 z*{7=3D~d^|njX-lLO_G)4NNve(4rp>6!FkxerjXJ38l(!APKBJ!NpwrV9QO1C&| zE9BcBsP)+CbezeK(L7ukXVzR6<4y-Xr1G1b>k#sY_)@E{n|qJ6zTFV<`7n{u_}v%{ zS<`tBP8Pm6S&U|-ib+&fbIxRO#>9#KSy+^Y zNX@~Lc_mBFvOV=3DD=3Dem3SFyyG7a|r!8AG^UNy0bVTMPX-A=3D22`f4GcyN&KLsZw{XaE z<8fv&6Wa6GS1RV?M2-5;WGp4_eTB|L(ia0`>fQ|=3D#JuvZ$!INfO8qJ@QM zVF_C3>}p|ER}1UATG)CQEtE`m_94#U=3DtH;Ej~?tjcg{KQa@PLqa(>qi-m}Mg_SXN` zZMh4X`)AvdvYcLl{eo`3$kpyoXy1G z6x{f6``xU;2k&-A>xXgL4?9{v>}dTkPWyS+;HrL}9j%{dN9)&n9OaeK9gVgi=3Dk1?s zcf=3Ds2-NOQZzTIQ4{BO2f?}ru0k1Y@Plgh{YVFmK@wtK#xXYcXz>^*+J)b0SuBQu6+ zKUdaPsgDduB|wiRrjHEBniLsOk^AC<7G_Ik8QQIb$DgbO6&{i#&&~+rF(YsiG4Yg& z6cfis)72SkY#Yv#l6fVs$Zx$7VtzxnDQM6-4O#~cr&-h0I*q4w8c*vqz3VcjjXyiG zlhH;+hrwSRSxdBcGizC=3DRZV3VTSmpu^muM<(WWPlpLDW^aXNSQk<7Ywl<2M?STg6b6^jYjVU*mMG{2~n4Do)Au z!`Zp-FG~aHFOMJmpV^O(cCY9E@_uZ`c(H1*TWPRcfs0P}c%l1omBzat*K54{ajT~9 ze*9h;cv4L@3v@SzZC91N%N&WTPjbFF!n-^7z2ALuL%Ch%2>0*#W{<8ykyaIb89gy{ zT=3D2+kH`jVh`oSW;nD+DuPSzMj>^*R#6xX)l%AdyNA0`rY*5UAF|g zpMc#j9J}9m?0)91-EY2U_gm`O{Z{qa{r;;Hh~LY3X7OstK>K#O&hafedl(sKA2Mx^ zJJA?3m9^;uz7VeV}E!yiDw`f#*yfc}hOJsUfO*xa-P@+adYX zHcO@Z-m-n*;z5ay`itcH@s9bTU#lOtWchiAbq`5S6$b9kb$wsgdA&rtI55$%^eiby z8NVbkt;Nq`<`U0*Z4_EaGAS8YWOsdE)frdP6V*YKbz@Ss`%+9UR@3H?BN+u#elW$9 zeV}KJkII0+zg=3Dya&MkBKX_|~^!6}MA*!BI0+j+gHXH&HO+Ewndyyi!5*q|!G$yDPpEcJoJ4qB%D)}1_GxV)fxW?M$>$XltNmA>AQE{@JD+B7^LbsG<~+PL(a zkc%QB-lU&ap4q;LPpDZDow6A7`_9_JE?S$GEZRhComkcX0{up5-Tu)_>$TSh)Oqi| zf4wiok+)_yJ=3DHkx>a&+JYG<}RSDWgyCw=3DtVommfOHAL)s%d>9&`JIHVB9+O+mU_}L z->^$fw$_Rnv4ZFKLV6z7^WZ&yQL|m1mq&F!a~5jMvf2Lc;N05pkBUN_%KPks6xACw z%c5T_cyWqMTlOsF^pB@9W@mgy&#=3DRG&D$a!22*9Q3jrQ)CtURjK;dzw@%jbgyfJxM?Z- zH;%lMxO;Q7U0iioB_>socb0EWW=3Dson-nl*?Ut>~s+)XI&+H$dT(~IvUx$GA^&y|R8 zR*?-CHZ6T;IcM5bw>6oTKY73v!gm~`XJ_}$W-kE`tc7onvu>K!Q2poz@2;kdJ7v^S z?ZdOxsn9$8rA}#A;oDn9F861praUWGA6YXwC#I}9d_jm{TD#i@5Kz! z5868S&h*i)#ioYp`!2gn>@G}K=3DF|~M4B-5g67t77js!MTpTFoX^Ph#OiVn-yvihK6 z!>h{xg>6Nd;&jf}UWg|Z75+i=3DgZF|N-U~6%k(lAVU~+pe#CW_HVm#gpW{>xR`DeTr zu;*H#O)7*osRY_2XO}jq%A-xH_h^$^`)HH6M7o;O{x$ry@O5c?Kf)IK5^1b2`Dj0v zSXaX0Q$zLb@9Eu!>bJgU$M&P&ugLpPE+{TOv*4p*dgtVVhUx>C|GJ-+qMvVHQp&w` z>4Rdb0qvx=3D8v@OjAAX-!IWzi9n2Z6qJyc^dUY_(+P?CZ?OX}bwT>cU zpz!#6wxV<$m#Wsa>&b&z4O%T{Yo7=3D$=3D_aih!VQ6KP|KEosD*7%3(Fv$6qh48Piv!L zt(PilwN#p>k~HgV(iZ4Xx;9$}hyr?)0UQh|FR_n1~YJ1C1w&!H{xpB6mZZEVJJJ6jd6Y9hXJ2O-}}k*UEjkSYvP{c_2&F z^V+-Z>qQG)eq8nPeBGB;V#9bD{FRl_fq%9$R*V}uW(*nLF@v6v(G!$|;GV&HsK=3DP8 ze&*o5yTy_}*Tr*R-3TX(=3D=3Degf91j(As|4`NrVl5!R$zqg2_($a zGda3v!S|;HX3J9;bU7MJ720ipQiTco|L$debl0S>?*Y&XWXKed%3x+GY_j=3D2xf04`dy=3DCkL}R1Wuvsx;k{b+@I;J( zN{oS6%6;bK-z*0m_{t3c609bHQUM2{bN~ z-sn<5ryX|LJJFTuqp|1c2CZk~b#Xa#zcVg%5xbpATGp8!zR&E!JH~@I7I^OmUKQ{% zz^ejY26$D#3$MY6@EY6;Pl{L-@WLyw3opu@WBT9)jmu0Qyr9z#i}tU>D@;@H^3%HT zj_}}}0=3D$^*d20A)s?qyusY0Vh@2k=3DKYV^Juy{|^^tI_-FZoKDEZh^Wt-pinor0$Kk z9duIEzZ&mE58jDgctbpRjldfOyx4iEwJH-QdkqJ?9Po0$3y+409Pq-!A(rcb7v&ak zeei-t64wVW=3D%jGJ8t)hn-Z5Qx{XKYp1H8V#iybfoI-E>c*|5tU+ra}bychPudto9h zRh6*##zK?o9S`SFZUNs1FK8t3eei-#3jeF|hI#OYb>U?_c<*h{&Up)XVM7eTdY_4% zTq6Ll0K5Y5!fHPeR_01rnPagQbm2w01wtRZpphi>!3#Pm!mq|V*n@X)7v44x-hsfo z0(hx^F(m6u>`jo?kL~aQULWA~0bWSnm5{t+eR|+UxdlFb@PbB?PanLXlj8HM@ec6d z9ngjM2M=3DBWc$0t^y5JCKGc%#x)M$WL1H903?uC|fB6P%+&=3DJRKdf-L51)4s1K_f}i z2QTQPXnr+b!Gl-m!dv6Pdkc7<172U?g+474`ZbL&@cII;FYrRYI1&1`O6c2SeS6?V zxdpy`@PbB?Zy&s%lj8fU@pgFdc68yb^5DG=3DyiWsfKj4MdEE8HZO+Vo62fY1&w;%9A zt5ylET5P`_cu{Uazdm?DBdK2>yr7fP?^ol!;lX>O3-8}OcrOC)4B+(xUO(W4?MLGW zynevz2fTj33tLbnY(cSpJ@BI30>3_ZK_khp4_?qo@%zDfww>K_6OenJ@BI3g8qH*f<{vRK6pVVrT?$Sd)|Zhd>7t5 z9=3Ds=3Dj_hHEy0?+n56JES44FFz$ z;6;o>rGF2+D0j}k4_?r??B543=3D(PL)YP<(Mcn@~r&Gq2@7+7s`S;y21 z81AXR9`!#%{ew6UL{#^eoIA9#B(J49ddx((%q}@0ua{4x8k>q(kCtMAM@y09(Nd)J z(NavYiVQbUXEl=3D{7j#eKj0SDM;Ae0~>!}f#PtReOaSlt;8Z05uRcHnn()Mb%rB!MT z(mCiV+O_IB!-Pb}@Q8^qM8vVLHjXLoZb_cIB^x|4bA=3D@Oa=3DU4XzPKrBssp0_;r|ux z_zY;A+h)s#$fh>KgiURRM-ti%5z}uPBIn+Oe(Mw*oT+VNm8j z=3Dvg+Fo@L$7S_n;!rJ0DnC8R?SD?D)xZtfJ>5@IoXQ5RWV_mp%V^&mG2f$%}xB;#y8*Yfb~8I z7`LU?6W6;{y`Fe)DQz+3kvOnbHG1>J{I2is)`K75*r0OMU`$F+PnPSWy1B*lX&Z;M_kQP`nx;f(Q$It}MO;h2q<%jpoLuw4Wcmi9e zdWg&01FPfeJlykQP|ElC=3DC(92m0V1&X*@?%uxyP9xqxV)QC@2UYPidUlzU55htLwK zf!-2K?>LiT`Oj}bB)6#3s4Q14rq%Ocg;_LbSWm0U;LU+#3)gb{+mfId8#jl=3Dll>YN zo%rqYj*iCmF8fD`K(vU^R&AXYK!*8bu9aOSiAV3X$=3DsafOLROxY&^$k5k)k{i=3D*Vs zyOZ&2{?U?<3)Cx*#&hy@G@`RRp0lQU$*pB=3DuQU-2bV!kGIgNu5pk)ZhseU}P3y2}% zq(d}*q!iKo|b(&pnYOFXF!K$(LY^)~P zFTbM4RoDNASM2NXecjd9^tkH$URrL?!uPCYuh`e(y7v25f*zZhaZT27>edEr>OD4G zK`m-SVv$^wxh%s%{k)=3DHn>;$}qO7TeRc}v?d~Z4R<$Zq7y$4|{YkX_(V2ruvGLFe- zGboPg{)oj;Sxjzjgo5~s|FQe2>JU=3D>9k2MeRw98PxnASfcE34$i7xY+} zb^H=3Dqa?vo&NLi_wxU6AO)T*LIz6lps#H4Ib;orEpEat`SFY+(d{2_XE!D_}73vHJ| zHSFISv?S=3D;{qTN?sH;!z6K%yJ+DbC@j<$+-M_W-HPFfI+wxU`nCE5zM3i#M4(N>K4 zs1u$#IHe0XnZtkdFye5^&AdBq3ujA2;avI({-06>{6`U209sB&;kY$g-I`BOfSf5n zwhV`^XFT*gW>psjRTl+S7X?*c3b|b#E8V_`gN5dsa?E7=3DMZ`o6whCktqPA%JHy%g) zc7$%5itucP%2uEvMme4&9fgN{>K&Xh{S0RiJF=3D8r2+t$Rm&)urxpKEYnRaNltdOt^ z!HE)Z#;Nl9dsV4CUVJLWBcoN-+k*0Q-d;40o32cQIj(~E3>L79n8okwaYAP{>a7@A zf)!DUlX8bl{S@8|$zhF?m0c(~ta|dd2a>~1OfJXY&nN#-k{q^c@)`WipWKc+8zx`C z-_*&K`1{)A>$tyY@;UsSGx;F?MooSh_ai39;qS1?t8qs=3DIT3%!r$|G<%V5sG~?XoS{fJlvAV|iYd|!A5o+m zaw*acGDW&!B}KX+ks{p?N0DwYQKTEjQluNgDAEl<6zK+zBHb{SBHa*1k!}d0NH=3Dgm zy5B5T7y8?*7jNr?YF1p<>bG$D$Xh$pw*-wP^R7NuyXDz1V!J7`h zK3lSUC+)MZVr)NMxovZ{-qx7Mt=3D*kz89msSn>;uZkrVPoo~|MH)!FLO8At9)=3D7DTu zN*F`;9%JlY(h(;zH&wDJWwLQgB4ax@3OQL8O|@}1Z#&v6iEMGyjfGza{1(2SCm+G} z(eLlH@G~ZA;ipeI@SUwr-Qy|r3AQt%$ZA9wq@|*jmka&c%a>PNu2AgaUZ4DDtNB~7 zi(3cBg&~UyPtaqN2Iq}OmIGnal&<~hl@bDssuvj(wUA?-{SqE0KFunf zx%swjm7Ziev(3KTxsu&hPO`nOC%OzhY5sckd}FYaEYIF3_;N3oQ2sHdStZ>OMm~!J zNWO1RiOcUo0GY$}yz_B*F&~;>l$%MnWZ@8YMSUFJ?7m;pL*gj1qISTTVj)lrDkft} zoI_T6WIx!8o5&!;BcI%o#;126Vy#meukQSKe6v4f@lJMZdS~bgYD2+Z4{tC-=3DqH_0 z`1DRoxM2iJhNt5bp672EiLzmbI^z?VFzQ?O-=3D(@`e)H5VRfWv&-kUl=3Dx2l;P9G4gs zT6^#N#K)hL%?_kBDasvF+#CbBC5*PRyF4vDb-=3Dyv(;BilwAP;^K1z9AdF$;l#UCxX zv(Eo}&!B4<@$p%V{urCzqd#ObxZ{INH>%JCOSrCB-{UvVJY;dl?T^Fj+`n7Gf9NHR zBeISSO`tJl-rn6JaGk^l)~*1|Yfk)qt7@=3Ddx~*H)8X%j+)_SsVtZpSF%JE@{Li3&) zWY4L=3DW9L}@j`-vkQVjOQ80?8=3D?1?7qi6+mU2+x4|JS;eL58*v~2;!6O+(QsS3VVSS zc7#IM5lUcZaH_j@0kvlrP{!1zMkv*LrP&%?^E*|B7lxhP#4uOXsOozLBR zpX-5G0OD{U9uLIkF2wUah?ja0uj+$1uWTedO?yhQ&EMQ*T*JSN~IQKD7jV}m0LGPuM(kiRc8a;j|=3Dtg^VX-^r~#mj1i%J0hRUI7@xs8gDl>x3MuA z5_Du=3D=3DBTOiD0+AD+EG|}pTEIr=3Dr5~V#Ai3Cw`X?OIdHwXZJ%Z`L-&f=3DGWBlj_6MVT z1)ij`#I7!(*Qp0A)9H0q$+2|ivAFLnv5ODv$&?R#omp9;Sba}jQf$72(IwA-7fVs* zZkaJ?oRcy~nZ=3DxozS{)#t$VNN1i~7G+FMMlOAjc3oO#N;~id;4HPp!RR#x^bpc^kd1? z7@f80wwPX_vhjr7mUFuE({xvVO`FB3TlE`)BpSjA)wZ14PA0Y^Ft)_TYt>@LS87~& z*E?U`vSrlX*72!041(_%?Qe zx~*e;{{x=3D-oVR}Q0eWgW)#yDpDOqs3Pfe1UC!@1OtMJ>0*X_*OlZmW6kLfgXRJ5Nz znq^ZDA)+l@$HojHt4qcHBXu^QXJ(1|7Q)8-me|z4CEP5V5TO!%Tl~e4*BKdeP)&3% zKR{glUcWt9;5%$s$t<%)SBFYgZ?Qi}=3DKm8k-B!~em{x%_s z7kyg%Y{CX!RMTs!AgWq|apgqPGQ=3Dj#5k!Vwi6HXsD<^U-Lv6z6yl!0}vSqYD%dW=3Dh zIf57OZRMpx4OwPw$PD#*fsbPg$qTi1TIgZz*Nh`@)r#B^tjUO4#ih zV)G&FvNbJM&b%W=3DDfj$o@3SfH_7ZlFh77;|1I^S5idQM~XcIGuw;Vixi`lrx+RY!I-}uP|krDw{)X<{!=3Dd+uEg^UcX>*a*73Bzg3`8GM-W=3DN zCcQIr$~yX#zj&XaUVfnW({{vk6w}u9e7-{KzEXup!|$gpec4+|efhwh&)*RPk}SY9B^wxyqN0dmq4E@X4R`G z@5Jas_m%zY)gb&>9NUrBG?*WI2S zG1m_q%V6&B%$(XQl2*|;e$>>^7;uX%SCf!(S&iOVM?bG__vj;kq`xY=3D6_v!OY&^4( z#;kfHR+ZhgveCV>rV7FCGxA{p)@aBBWsnCBQ+dE~k!PY|9iES@9PzN8;EW8fi?l&3 zJtJRw0eTQ*zPO}kXiSTvUSMccixgv5voow}$y}&rr55-r_rUYeI$d8&NTZz>)ffXjXPRs?wvb5xQnvt zO74Y6ChwN9KfI-_4y=3D7JqaZ`ar6X(Api4upVtr-}k%9P^-iiIOumIjmVdyt+EghRq z43B(xE3nou`jcCZ|Wf{|N4ce{(jV#t5j30+84#Ta-w}zT)js%NOXl%byAv_D9sfD ztI+hh;8VACN#F&>Jfv=3DoD>T6ly^7(}!oPX*tgQ6pSy7&-IjVQ-U7UM{h@!O~vUfAZ z)}?VDf;f;Nu6OD~6DVDJHhExq=3D#`Nd$-tR4$2v~6pKbp7`gcFnTt+Uz3;eZLI#^RM zdXwka86!E#G>+Sy9?G#XG0?HjAdv!4>|VlBY5eH z4|(>BPdMpFB+nlC1kwA4IJR;+FO?nQ3w%O-pl>cc%}K}SB16z=3Ds*8k&9lY!k6G^FG zv|njI=3D~yj1p^)LHtd@6N9l{u2@?#v||2v8ASK}KGUyUX_c?F)_#HWR*Leg}`7q>8u zD_M+j*&B@U`y{4dpkvtrrrUXRZLAwi+hPZN-|@B9(3u z3Rt!>9V+nzfj#~qJc>TSo^eQUxQq;Yn&2_ugjAeX{@@@5&t~A`5dl4672sCj+$qXON&MisD|q7f{J}q-2nOZx+DG> zjFnKGL;NENy+@j$zAinQer?uz2lC_@mpw~L@3H0jtD=3DMSYjB42c_E86rZ-9ttFIZ8 z!kLrVIy?M>gL72ID>Ko$l_Y+!?cGdP8t+3+W*e7=3DGrG+ItS%3^oL>BQ;-F=3DgUPd-E zU5Lcma?@Bt1gw&gbK5DZS?k4h0<$NR&bP~Sz9okv3e%M*+=3Dk=3D@PjfYVEJtXi@<{k# zPKU28Vrnbq!WVvFHtS4q`@&1k723Y*+eTsa{D1C0+oWxuZ&=3Df$-j)h4SxX?Sw`y2# z;U${}-)4B3Z<9`Ix2>sF8!~Iv+wjkjg)9CU*5ZnP7V|&#HC_kG>jF7Lwwl|P{h`{h z{uA}K^@r4koYQKYMbtkodMaUe!oZ|!DYM_$`G)_S*It~Be4qX=3DUx7wH2=3D7; zd>XN@+|UW?8#Z3uas;Ok)jJ=3DUS@1=3DwP;13&h=3DFq|ya|QfcDl#5J=3DbH~PVm^aSM;%M zADsv5w*Q%d8wK4tShl}}_wgxMw$H=3D+_&mIizk~Pjckn)bT87mde)`YAPd^TR`t#tY zKM#KT^JSdA-~pdH;+MUT*L%YjzSxKW3nB^2UWdocZ3t zoz`&~Me-DRPkO_!{NHX($ZRk~>>!M(r``v4D*qo!X2mr_rYpF#z4l1;>|0N@rD`*- z7G>^CAD1~LtAV^0Fx-sY;wSNCd$9g>@Rh&#_bm19P47f8VGr9?R@RtFqzM{^osfxD zPlG(JMtdPSg%hXxCwf|Mx`h??C+uK1vCqK&p%yaPTg^x3i(IoWR>_}ieELsJ4BGzr z^Y2|;6oYKMd{RwH^cz%Wr1a=3D7AAivE7sfFsTxS}FM^`H@B5?kUH3IN&5G;!6#8tml|XX$w3pK9L**v+ zUQkhk%7KfZGNie2R@}=3D6Sd#|PPw#)$lb+HVM0GiO-lb2mm}nax{VpZ0u2^%;JGR%w zgCFh)Iz=3Dj@ec!Y9GOng-cSGMbF0+B;C+n=3DIZ)cm`k&B)1-+(2>uF|hUFAC1xS?W(W zZH=3DOKD7UA5^_b$s>nU+Te`aZKj?ZM+ap+lhk2>(3bOj=3DV>J|)8f(+df0NyF8?6#gqD*}uTeCoc7+)IEwe zEWtS1^>KlBZKR{9S7bc08?iG?$Z(`Y*3s-nHSX+2-khK-*@9qW;vgn2J6a#>&IWqs z3zlYybV3vFu}-t)W}aq=3DM07*Ne7+P>7l^n(PJnnHYF)-z1fJnEI;SAGvMa|lvP;9K z)Cw(DA$&ti;A86a>ps0#`6;LOdOz>!z18oRPVW|T|1!EN(i7f;=3D<`FJDmyzaz0;?L zu7Qk+!yFq@L)T|%Mi9$R^PJ*lBmbNaJKKcpr!Nqk;ikp8v!B-ZOEVH#$2EUOHI$u! z+)l`A8S2h!NwZPDK;j3{Hi>>dz7NW~<#8FGX0YZ#yfnjymuCNlXJ=3D2~*=3DaM7FU`1A z&y<4JGc-RYiT7vCFYuI>O2^LlztBmPF$HdV(Rx~vQoTf^8H4(>(|r1~PyD98G2G}XK8E6Zp+9K4@%`Wazle``SCT1K)jK`=3D|6!|wOlOYjG%_hlN91yK!1y5SpX{wPM88_Ud=3D-&@yEef%E<*!ygs z1d@?*bW%-1L6QlznF0J&#jZlM-A^0ymG^0{x?`S|THYs4Jm{@Ov@@%_YaKr=3DRjC>F z>0C@BK6VEdE=3D&imgguq^c2U-#$K^;YNvNE#$pFQ4H%AK`*RI z(_3tx<*MF=3DU5pg1b=3DCcJ3vuDqPyC(Q37-2IJ3;1S-{&Hhe?;CVw78!?CAZ1q- z8gr;;G$rkY-1jfIZM(GJo+yorJ6iI)qs2#m`RQXmqZIcZXVF#(&tA7^QpP@Oy$TYJ zyUh(J4s4+JSr0}zyi~t>{6U-H-CAPU(nNri$^q3m`}!g=3DY*CYMyRhW!HN}-97MUPB z!}fTL7F_c^SI%=3DKp6m8d&+ncq=3DeZJGF$ZA%gkQyVug%pvD{h2EMCcQ#bXgvSnB}uK z!iIUio2KIX8Sl(cD8TnIM(559D+^+VlNjwS#Pwn!{OA;WX0H|3^y_kwNyr4Wajhr` z+6BuC8n<6Pa_Ly@sp@&Ro^5-sDZVkIDRq!#y3V(ewI@MR&AdE8kE>3TbYA}wu6{2~ zw!cXIuU?#_#}#qv6Yb0JJ!{znE??KGCt=3D^yNW=3D#kHm*JCqO;+?!}5rOW-+zNhsps| zwu9{54j-u#2byq-ZNIR#?n`!j`cD?Kn0N&;Ahlex z7r`~0ct4*t=3Dc%QbOlXdGs3p^0*k;+7O0}|=3Do>RLcv(1;)N|w3yK3dpO<+@fYc?elS zk~b_xzM6lX(!sSBr<+Pd@|-9Sw)30C0USO@sT)q*w^?Mlh#TP~B4jCYSzCmMEoL2j z6&aH~hLF!T*QfF0J`h}a^_|IcBH#fCo;lTsL>R%c6_N1nmnxX~k& znfFheU(X$t%$aJPW&>i21(n75K$1?Ar^LLUxVQ)}R&!4d zv)-C=3DrHpyzRxz)vZ#FafUL5+b?f{i36psZeO;G7#c2la4Y#x`XWTE+Vt+*C)LTR=3Dc zS5_+vo*E1Hk>$q zW8F;>f6{-uE_s6*bM2l;*^G=3DtL>#0c$=3DYWL_@%}QLY|e+%E@@&4en`iFA(?W zbx>VN$J{>!+R~d^9Zh*;C34g#QX0|1_TtvXBu>Q4->;lJ!zToabce8$Gdaqy^7tVx z>?HdYiHk~!cTzBoMTxx%1tHQ)fqL~dd#HpNDV68<{u~wMIov}HC*CSn`o%d$xmP|W zU4+b2tVpSfjOyL(k!u9@JsJ64Kf-CK7}lNgt`pH2Prlc>u6(b}z4E>4ayb>X{4pE5 zy<~r0e(bU##lVI%y*v9gb|PdxT)4gly9jd7tV;`KV^$)sdZ^x!P(`}mW{`VGstAP5 zM~(S20?`?fy)xtCEetKqSVxf^r?mv~kayheL@oflX9_u$6+W1Tg1_7JZ$KLG%^E^I z0qk#LjIVuc2=3DZKnOk|`z{SaZ^PAK;bj{19YYwRd%%Q|uo_VN?AKcJN9r?=3DjhO8SxJ zDi#!M$THvV=3D^fJ`+INO=3Dt-;uL-cQy(Mzfb8idg-xzB2)~M4>5$Ftwi#Pnu9ql0 zPsMH-tYr`L$k8xT%a)BpZig5xwTW>|DQqzFv`4A6y?lw*V{Lc7uBGR0yio|}?ozx_ zh+}H-79qogL$|1X8S?3^Ng3m41Qy;Rr|yKlr?X+#6E`WY;pl1aJF;j*#n+dpUl3n+ z_9}f(mgKC^+7^_PJ?XZV%z*8i-;+iokH*7Ulh#W6c(UdHn3#=3DU$mTRXWR%9sIpc*n zT5%2aK~cAUoiQ?_MqYvlxQM5UvXXwVwWkpK63mi}i*lA`PaX?z9NYYM(y?|NG^d}f zea_mW#;ddH*ztHD&VpE?OUVovnP-T&Ol7XSu)X|K%ZS@{5D41=3D^2k__TPE!j*jx_5 z<^p?*RI8;vK=3DXda2gvRJ15}u~=3Dqbf|Ky4l#O%ZHDisbZ5R*z??)*dk)u+AgSWIF6m zBif+_M1&l?l6F0Dp(txX3FU+Bi`LtYo8J@H8sXZ7{q&CGdwjD9*De<;-|C4gOSrny z{hRFz_+-=3D47UAm4#oc|&*AdNbYyYh5>BxnWDGu7K(rwlg+scdp{XDF6{E}B5+{{kk z3AF7QQ()EUj_^?YoPuHT!iYSK5qWr=3DHWb#$7+7&iVY{7&(Wkt{0V5J45K`RX*WI~h zyl-*P<*vcrP>#5^Nwm#B(XmK%jw7J)Y;tRd@%>iAu7FcXB{)&FeJV%Gh6$$;fm7Rp zH&i_gT~%9=3Dl^vhnDveXOK6FL*`dH#(HaD@JdBRqV1Tvt4%|FKdWb7E2C$Z~mkWpZX z8y_;ZR$!h$rlRxYZzS5SZ;QuUx3-hNl&}?^_R$#!O0;$Ew^U$Fou@@+S6G>8>l7Ka zck619eFV`uZSFaS_kuL+$|$Rqnhemb z)FZFp!&y@@qt}WYH`Mmxcw+NSZ+&m6W(njI!O?n?*tl^-%qaOycA`!mOT?T)-;hL| z4?d*}_rJ%9){@`c%Zq8w(cF^$ytvLeI*4Agoul_I&34xp*A)In!=3DWBOV2LO@M-Nz{ z;l)g6sAdWNj>hK<=3DLj|iv6dzcGKh^r1~KH0F(Iy#zMDgkObe7&$0T`MZBFUcr?k~) zQWCUw5UI(;f6*;b6{wmo)3Y9YMp#CwE+uJ`k9*{U8R>{!f&R%?K` z!EcZ;=3Dp*Kc-MH{0#;~i9!J3auXi7Vf^Nq&U#(3gtV?6PxW=3D~u#TG8|TV!Jt+WXGJ# z(U?WsH)MeMQ~NLFjH3CPwlO=3Dj2GXwGMnVP{7{u195L>H4Y%Pn}TJ|zdi&qxSOejk5 zO}dy8^Tzf!_%|=3DU81vHhm-v_aW1Tfb)V3HRPq#=3D;Jvfa$a0a4)ftF$|5Gs+ai3Qi` z7^}g)n1r!PeUsQ36me+Kli8*E${adMbU|wn2c&SV5uS?bwxYF=3D_glcX7FUk&bzg2! z`d;nzKj+4|oM+*0sPt&Vt}%J=3DC3W|pYn||q0gvnY!y6ZVb;He~-&KN_`j9F1dX;s0 zY%%R$`Ejn;d(SNHFCO6T^M~A5`SAh8wr}o7Y|5MDgMNSNr;La4eHu!WwLJc&&n#aq*fX=3D*bY})Lx|MQ(L)ZbI z7tAtl9Nx&<)b`#|?|c)pONL^utr@F=3DCP}c#D^;RgGEB$6uEH!E$}Q3H<8a40Y~m7| zFpkg}Dz0@7!#t9lp${z)vz$Zm+2Z`os3l^$bI2$<+un5!)8!5(^tr=3Dl+QF|PdwrU9 zsv+XTwgLIWXRe;4x<~gc-ZTU+RGSdkHsxJMW?mFMDbrl0XEUD7z^s^x{%yxRct_B> zbnkZd?c4vok>0&Ocq0JmJ^_0eR_(hU<83|1c>YtA2ktRW*M?T?bv1qY@Gp#U>N%Z% z`%2h>0W;s*@9mvJfeCZ>&&=3D#%-I@Ezy_v%~f6n`>Gi>-w`fFaXW@cuwt?GXA-r5g@ z^}-SRR&fA+X=3D)qW=3DPoVZ)E2T|nMeB@{)blFu2}j=3D#L}Ps$q-rlQ$zlv-xcHO%8F~V z4@UMhYd|-$*nK_kDY*9UW88L&?)=3Dy^lFAT?e~<(WkKkVfui8yBur}sMC4!11Zx?V{ zQR6JkN6`2B*jBU#G&CN!C}&2mo#DStwffP{E~-`CR6k9JZP@MUS{it8L$}4`zfbo- zTNhnxH(fW{>f0^ADRT&Fa*Y*I5@POGQ>D~R9!p^J85H|;HIyf3@@ z{P(>P_qH!kd5%WI89u?kzv171;@>V_wMTwf-VJQG>nY_M=3Ds82`DC8)lJqLYt^;;JU zdihlRI;!v2bWz>Vlj?mJ?uP24-*!>W?@9H*H@&I;_ea8gUv=3D@dzAs;&KiiwHJ*gt^ zbLP*_2Fkkwr@E-ZZ&{fQBjri3FWq;N(!~375|mu*zmBVq9_?yBA`-j%>cAJh+dtLg z-$UbWyq1>U_Qai;qY?i?{Z23%`p#%NzbeM#o$IsZ>=3D=3Dv5V!jbBL`Vzp9`=3D@VL<~Ml z*m{gc0NA8qqQ+F zFuS|#nuE;7jog}pJ?q<-Qk|t!y>*)S$7Z~VJc?276soq0s-P6hlw9~J{Y;HQrf&`F zZEp=3Dr&l=3DV4_ank$>7m>4j(G1EdOQ{Hx9=3DD_+qPUWJNq#Z6_k7mfAORx#J9{N}vaO;I@SrAU#%7P?5~ z9v=3D$7{<<`@_JW@H3|LxZA8n_42gAOW8u#_%J<7FYdkv*(*jHcOztk?cIq{VqJTpvb z{Yv@nRK7pl`c-djwjTA+j~9lBN)`*-W*Rc&|2ng;*%C+L#`6bM*0lH#KNyX%eBOa7t4v`Ou1@HM)U3NvAXo! zJK|y?u#Db$N3_ID?fNXo4EKEAD*jd21Uy|M1oKKVbBq)d#IP}Aac&A@wru7Rhh=3D5X zn4#bs59PfgRm%~@;M6D$eiw2{Yn6a!lAdE%q^G)$-PSsmWN;RY- z<>nG;#G#umbzH}4Sli>`uDfj*N*;Y`fA#uB;2lm`yECQ7$_X2LhDbB(2>VzwX&Cle zoEXFfLT7}w&m~**8fMFuwG3On0{lq8n;lkB{<>R-_r)?>-pwL$>uDct;h^uVpU=3Ddu zU$Fi!@6#+3%t-MqC$fmC30sc$IK#>&Rg55mgWxTT9*fP{vN;1fYXR?@zxPiiy#I;8 z98Z{VRj@7N>^0_XQB}p4@IQ{RWsDpk-dp7-F7QPLKs9nf1R^s=3DB=3DSOxP`P^^^kR|! z75=3D%P7nd_xsE!g{bv~1Qqo#^4AMthjFl=3D&57rP$Ki7OY^YIrW&kiUZz=3DZjDHs$p41 z7TCGSuDXJeDiYk-yrW4$s0TtO{9ugh=3DEa}f2o47#KSvJ)J;t7bfe9Bc)~S}qS*DBW z8bY5%dkUU1DK#s4N0ZJ%|Lo&Rq6S+z;(D{NNw=3D9(F>n91AfWjNXap^dq(%QtEXthvgA$?k{E=3DA)SWLS;F-`$PW#BFhf7{^shYw_YD#41Ti-l-MOID3@RTH$y7|D^)-6f zT~I=3DbIfMS!LzBgt>+nfn(t@B9=3D8<_FQQo2ONZ(pbwYxp@{8LTu^#wn8qRteFzbKuF z-I!0GCB@|8Ie3=3D&BOtB;;$qmO=3D+j_h0e$+!b2-qV;d#BEWch*{<$jlXvzwXCVG|SGg#ucu|xLXoN6y^@IB`A{_ zJh&gS7AG=3Dn#R_BqO2Frp?m6RKAslsaSS8Ye=3DnS%KJehMY=3DTz>_O_uQAnK!D%H(H@z z)wF@~u7*Q&6d^8`YgDdN*#r>agBg%hS!R7|Hj zSfF&Ar&ezw7$}4UlZZ&PV+c8vrVN8ZVKmVeEUK_TMH>;3q@}$P4Sioa2_5;OH&#p- zqBo??fHrw;JCt*4#EvL)z27=3D#9~m?+xBs}`_rCXqWV>pgv-diC-fP-xf5c|FJiqC5 zHQ8B&z)pB_K5i;D`VF6XBk(azn-DD?*Jx-}k?!FzZd-{n@4-3kVzi(UkLxs^!bqI+ zt!|fYxMB0~faRso=3DdN1u@saC)lF|w})9r@4RYi6%q z-stzDXof8owS1HJkJQJqey~rfgzi*(-sw*Da1Wd6MYoqUIj_G6+g#A6dDHU_xt_?! znaWn&=3DDI}So-31E!`+7X(}I?~^HJ&MyjhWtwrY!Zh*|xhpUKAxS&B98Fm{YTa-~J` zj?uWKLE16srhC{{?~iM=3D2UoXwiX+<>K&}P(@~1JkL`^>~&{)cmMd*tT#m0K?>#8@- zziL8D)-TL{%Ck}56>ROMTBMy)-fd_U(afOz^6^M<-Q9cEgs9DS zW%b}A_}a$!QJ<1!j)ZF-a6JiJ^BAsOKDgH#`{?jZz_wh%2z>Lz^)2`CW#fk7N3Qq4 zSO<)s5yqZ9y8w6MQr}L`lY6&d*Mi)h{hQFz-M>9=3D)a8b2Zx`ySJ3-4exi5}8s>~>5 z7Ado*L81<5)=3D2eDzN(fhRbGmx>lD7v>-m{mYuTVe1h9Cm8r(n7SOUAMdZPdR8^qoI! zlnmP13-UVbK0mldjlS6)DXQ*jp;sfOz)Wg}4-EpG*dfr>Y8#gI-_wWgohU(jQYQH&kU+@ zcTB!xpnDG^UmDRZvaM?c=3Dtkf(8fS*&jlBU{g)9qHQ(RMd_zlz+>YG&JrO|wL8DzHu zOE9i9oF{*Vx3XVJ=3D!;m(rJbeB+Yyp~SX&fI9w-($#Qyzo=3D6l2Lki745#Bk6k%YM~K zV{E|#EMDovkBr0JQsEj!_jK44>nKF$4MMhNS^*8tZP19uFhOS_KXW0eJvW#C(li>phvKq zwutq5Uucocu&#c(uwRo3KAu$Kg1>1*$2S`jRL`hj@A`l9>~wmkZ}!anTLro2sQ%@vMc)~kc6TMz4Ya-MIO zw@-1r$-!Ro6lQa)@YudRM{+JfzaNc^+!M9k=3D9hH}>{c&;QQ- z0d@MO7+<=3DyBQQ(DJzTYF$$%<#NOkL^UaOt+!lLW2&LpbAH62t#*${9k7saJ|+^W@k zhnH{03LKAfJCXHEa6^TL*197!JJeTI;+EU0o5oL8;2x{_0w-3#t-{=3DIS5kNeU+p@Q zcgwv#UesOWR>gY^7uy=3D*BdTu2uX2kT__#1$<2>_%TTkZ7H+vITU#P9_A{scMdBjC< zKV8(f0(!yov>^SCiKCb@%cT87TiwZv(Uabsne4R;BNJZA4(83G_EBM-sPDVx%G3{U{*I^w<4a3GHT*{4uDZ(| zyqTVaF2-tM7CNx5lx^70);~~O^P#uIO0zBTH2SvPQxe%JQ3z#T_u5;luwv7>{vg~o zPnP)sxy|0@c-$SYk#;3Nzt<~r^v9_5z3lO^szp0~d7wg~SI)extYOg(%=3D=3DE1|5=3Dn| zfn4jJ`K~Tp>YjN&kAa;W7W9~vkGx4|mP+$RaN>!nYT*FNUAEz)DSA^_=3DhVYFqr*nv ztie!D{9-D99GX;cuVwB^y7xP=3DQ-~N`hEs0$-S^l1wJc8CagQD>+fc;Xr$eC$2X&1- zsvcX7T{t@`q(oe1;s=3DyD#){t2e5FtlinX)MyQ367BjF>g#K z@B6H~uW1fAFDz(MN&))0%)43XC#4((&Et+$!ta@kQqCF14LysPX; z4$9OOtX9h8&L=3D;Xf#WZqtEN+0zz_e{G;Q@aCLkLnPl~PrVC@VH!~k4vQplDVw0s03H6*iDu9y z$+I)<%!qossk&o6d>|#9>K-$OX+t^cMa<|Pw;0kBW&YF7E>ktqe&{!GUPbO;X?7@k zvrH8zGty|R$blE&P@!x6l1XLQKOe!I#mc43$vL;N4r1@ey!kS+{o)VhxpC6ENwi_N zC=3DBwQq?5dYEYL%aWk0`WxwCvT|5 zK~MDXK}Bt@{#AH8AH6TScqV8F*Vv~G+VJ-8hzs(YxK5&hd0YF zaf(ocWPSatS^3A@9>KRQZgCuZJZZ2d=3Dg4`R{&GS%O1Wp{N4SL$PpEI#to)@_F^fNR zCobOSp5-cXtH)~EKbE{way}usu)O2d5dydd__H+!^CTf78thmBaUdiIX#fRg5LT*0 zNKWnMT=3D4S6kR9O8_=3Dx=3D+-b*q&^7}$GTjix;{IRXsK_9;*M2M{iA+wVub%Ny0!X8nF z+^3NHE-2{BGNlcv3t1zO^$aLtSb}Gprv2V?p{BzgsZ-hK`Qw|B$Q942=3Dg&~7&A}@5 zldnORuw0VP1r+&E8Kp8T-BNj3%fpwRrACq+63;_C!gE_13&y>b9X#d3{gPKadt?o8 zH2{YITtijrXPQx>i=3D2J_G!;CIsE95P_{Bh3f@DyGhpK}-lK7{~eCe)Dkh7d(Je9vB ztNdtBMX?yE)lS)3!-<|cop^4acFLyO&?k0@$ptoM(!VUkxHQiOZ z(+vN?W}HX@?RjhIMSC6OpP!Tbvl^Cv-*W2DAP4>YHoRoL4IbnIM-sBqB7yNQPSjP$ z*Kd_t4$@cZO=3D`i}`k7$?Bch1g+B(}A%+JmZ;tkI`xxzTe3;oghv5+JV%jHYqGv2VK zWl-2g@=3D_gUm+;^VhShfl5ia@?c^;&%kaV|Rk~k99H>$kQ^?Ao#7^Q?bR_3EwuL0nvea3b{f%45?se(bjYDVqF6OhhtA$?05O=3D8F&q1QCmGH+EPz_PLvQ}01zBPBn-W9Y<$tS{OZiLQ)9lt`S z!j@fMaV7NvxDnXk9dsR{`z|MjY!<_Wht$W=3DHg(@(F5ZS@3F8z!6)?hu8eBz*sTR4o zQ&~FgRF<~UUIQ6<9a<1&hXtrgkwd9QG;T30)~jS`R8Yz3Efx6-oRW0H&+o~#^|Sk# z!o=3Du)xG5$FU!$3i8IQ9!^tJoPMfTY9MWxP}TzS#0-GT2N;@%J9&9rkRd>*p-@rz{p z%>T*|pU+ikIrWau0v6@-rT+QS95(!>AFS1JlPF|2X#F?ZadSpMKt4C+AIo{eDHm!3 zsp&}fo1Epg$T#0-p_=3D{#|1FF%k=3D+bi*DOE$NLcdh7qCuoBrs{JFs56SoZLb&$R<7akm6<@drBWMw3k3U9G`yH%%Ulo*=3D z_LFK&bC`53keZ)J1t&g5c!$5aZB9!-et+(rk9lZ26>kzDpfilKOc(9pQIIGt#$LRZ zhov50x+4eWhfHKMjgN-Sr#ENQ8NoZn8rUVNkP`djT4=3D7UDw<7{vfFPwA9OT=3DXvPiM z!nqpg)o*iHH3kQUv~s<8>bQFMb8(%LY=3DgLx1!svrfy58|^kl5LXPRY>M4`EeqXI8* zHX&ObIg+=3DB`=3DYF~P}YzhWo?j3dwTQ6ArA@J+bVW^y~AN9$_x46?IWhu@K+bs9~Wo% z#-%QN-laAaBb?Oph5m>y(o4Gttwgj-&K*ut%uk2XszfuCbVQF13;4#x8~&!9Zf_UfVO&{tY#@Kde^!wPgNANXh4_Mm4Q5U)e4Ih|xs?o}o(&K?deXf#&!XcMn~ zY8t$hy3dU`)_eVsZ$?JnoV|HnYnl^k5PPU#T;Xw|qwLFQujdV-G3$@{GWDiQ`jrWuUPJO%0bW|M_ z-WK5M$CYYlasz^H?OwIJP^jUkG$gs3;GKEH5RY}m-^G_MLf?aqK>uMam)0Nj8`hr@ zE{=3DK(CtBMA_sZ~nUEstvZl7Ci3U7m4Wn?p?nmKKMhXthc^`iA1-H>>!6Fy!5s(pa;6C_drlmw=3DcqS>9ICZ@ZRf4D7pSM@bVNhjadX>-Lw(6XcF-gF9_~Sc0T1)buE^FVL_I$wi81d9XkoCK%+u;2j+2#Qlb3u+tDEXjs-E%~0)BE^Br6s#P57QZBaG%iiV9)xaJnH-M zSzkLBDc?OVE)smv(+@Y}Ok;JsR2sj~M;%ebPt%hi$8qpq#$RSm^W1%>%YLl)9*X@+ zT45`%Ud6s8@7Q#fXyXX%ZmNKO(cE!(ivKTfdC4z-^&NJTFD0E;!8hZY1GFP)?d1z| zqPPKCvLaZuThe83ODH1Q0d}2jXLf#9f;6hYcU!xn9S_6b(12d@eOU)1X<)W($dcs( zvVP6|eQ(;C_LU&!65@r`{i}=3DlT5eb(k;2mZm(!cy^i~F(L`y_D6CDSwtc6oQoypzgo_z|^<)h>i zdA_6Erd@l^SlbsyU6eyfoH!J#70vxhhTCoe|s9#N?);l(?*{b&s*JB!L|uS;I_h$5=3DIwu0X{ zvhX`!Rrzkwws=3Drw?rwgHE{Ydly*uQ4=3DL)&^nz(Aau!Z^syd$9+)1kAXX=3Dt46zhi*~yW4&#DEcY}`j z*D2uftz5~+fkB#8->G5Whg{ z74aa2ueE{mh?1>Th!!e%t^jl?=3D$S??@X@QPz(-rTn8VGB*H`u)|5y{RhPdJ`qO2z# zxnr*l$C$vlsKvObOM>kQz7GjPqjcBKS6ffxwjD?SgNTck?%ZiAcpI%Kb2Y?Iz-~q6 zHZRCr4eVE_MHPD(D(SI;81PF@d5nSDAR2>iBz}Akt;s|u61_+ih(s%bQl&b|TF}OV zzkNb;tJ}&mOtM)F7+S*>N0Kd>E{p5}XXuO^zkOEG6GddD)&FQO%P^b=3Dz`5!5Z;JG; zw8+H4GGS;Yr(X_^YUrUNetSjHk)mxZkIZS4kF@cS?ULQyoX<%=3DUICvH(EkOIEYCcK z=3DHW9RnU10tJB3JBZs7Ra9pd7?(jdFD=3D=3Dyp9otDc72;;|p__uTme-aq{oWD`6+Oy19SA^Urg_ z81cB^8(@bvz(0c{35sj^6UEtPCYMafo;M0NVubRCiUZ61d53ne&T~cU6{EGPQXky# zQM{%{9{$Phw97dqE#Vex1XY0HGkD5Z8K~6_v1-+iJSxyuyaA%iisW><{ zl%c@0ID>+U#TgXTEY6^yVQ~fpfyEgVv@Fh`pkr|c1s@h?P|&kDgMu%MGbr?9aR!C{ zEY6@XfW;XU2C_JV!XOrBkQ17y{@*Yd%dUz)`!IzjMcL^gR#CW&R}dm7H2TFKZ`RMJAlO*j2+1048{&(aR$-<=3DUM;D5Qlf=3D zID*Oi!&(nV{rzB{w&U* zFo4Aw6b7<5gTf#dXOI*A$@*V{=3DzlrRAo^d9Gl>3|;|!wzu(|`d^MSi2j%3 z45I(#ID_baInE&ZUyd_~{+HtnqW|SMgXn)b&LH|fh33hRHL4E((m+UocfNugj3&z6;vzCSCer%u9Zb<%P}}?}?g*hs3{@YYUyaPeiW4PdriHztHLbiKuPpUzi*G zi8!oTTi7y>6F2+#{t#?@FFSmchgN#>5Ke17!y+^c6dTG_5*EIpzj&rxBVo}s_()g` z%_=3D4LG2DI>I$2aT`{AyJmjH2x!^Fw(K{+ra_g$yFXE~1)n`o^Rj?RU4?=3DMyK#ny$& zHw$wk-}8)Y?)V`%^gX#W+2Ot3jcRTyZ1Lee+k9aC=3D5iOdjNv?+eY$W0wPUWM@r#=3D; zZD<7V)afJDq(|PC;js4e0bcHYye*q>n%bugzDw_WM|d5Pp22r+zXkj^U-Ejou`A_5 zzR7*dit^w0?B+}Eqm;WyvdGk454ynl39l6T{Q5ny-%#CjJM{TqAAqLc=3DM%Aijn<$Y z^NGmU_!xZVy(ek~{kzU5a^)7h^hdb`FaF0!wBVoqo#+y3!M&2s-r$2C&-ixKn+q|nx8wm8LrCNH5pOSXJB?&{&+tY>!cyIKw{3A; zOx4o3wQftCmHF8Lj+OgW6}kFI1Mc)B|LtM;6{-^9OG?q;t&%i&I0qwSsYs_Mw}m>A z+5znmF%4}(7F;^XuAF4(PWWMp1BE{D1RqSc;Nq}Tqfmd8F^;!KWTKpqa}g~J$!&Lf zKGWe#d38-O^d?o{Z1zj^JJH|Awi4A% zI*YHMgN!hXubvztT2BqJ*Fu9>0}bNm&>Yr6b4VJ)`_dbBYGJc2S`I!Wex`j$U8@6r zf7p}Hz_)^>T1ocg5?A8jrYsu<8~JP#ACwq}Jiel*)>mB%&FJU3(6UwGTl*!MH1vBs zr6nuODa)22X!)>tu&GbIq7|(Nwc_Pkt-7ub%=3D;^j*!(!rJPlC3>uof}zv>d5=3DxmCIaZ)g7)<*A!}K&h^T@sjiCz zrg&gl4ot79JeGr99#3tTG-`l{EXhgoDwP=3D}n6$@}RM(Lh=3DQ($&W4n7XeC#fTkETRO zA(a{7K<^hpOZy>a1S}};%?L@;hp|eQodKH!?yye_CtmdFci8zkC!QPD595I&?Wp>J z+R?gu+EG~IuQ;VeYTnMQTskaY;2>i*KZ9)yM_CZX9&U-E&Sk z8KC5(T%xrOqn-5keNUK>q*uNNMfO^=3D1Zq_slpK;Lr}p_OZhCs`0bc3-4;C0JePPaX{X{lRhR zF30ET4i&%oBzX>|73ZtEa))3h`MLLsWAyrFQ&iZ2!HPuva!TXyFneS)w24c21M!%{ z@O9G0LS`OjSI>JLGj4@6(?}01an$G|ngd@+{PZ!*RO+kJoeuETeDI`S!4lVeSo04~ zTmipW(oJ!OH{Rexbw6(V=3D-JMNVe-j@IcH6$w~W5Ei!7Q+dIzr6rdoU6N;)!G#?3<( zMV4QXvUG``397=3Do)3}nGkR9Oe5%)FTH7xn~Qu3g^=3DPZ@CgK^CtM|dO$9c z50V`X+5H4{$kJA_ZL5GDLu?d$VEZCTz)7C$J+FU?H|>jtB|UFZi-Y0>v0sFm&fJh3 z5E3b*ai4``!(j1x1U;-^U_Cd3*3?J4Z0R>nnAaZOAC4h%?CN z;yv4LcX@uH@913E=3D!T5^`@r#U!y4TaC){addo?_+qHQ2)p}Sdr5T6n_b#QeTT4~r_ zNoym3UZRs|GS@EK?mBSe9r5Er6mFCTS1rEK1P=3DniJTSpF3HA8C!r@s6tC+aGpn*t- zK~$H5LDu+iq_Kn-)5&=3D^vkDHC!tQGdwEnPzT3y0DOqQmJC8{9Uwtelmnf1&!mR7=3D~ z*qX^UvI_3KR@DmGy7m4qK%+#nCI7!?O9NTK%Wd!_qr1~^v3ENzn zq1~2AhjL&q)p5i%*LCwmLGjQUv`NQoT?r>%yR6zcBzqf4>Vt}a&E3<6?ZGnV%(zyj zYmx29mt3LI72PsDzYybuX8#8{km8>x*e}$R6j>ZKQ;jyydZwHtw9%Ws%Y`K{BzuzP ztC_|}U->k~KCHnq;~MUb0ATLI?eUw2lC-7k{b1OatZC+E;Oxclqk{!cYO^#~c*$dK z&zVE*O>&%|>lpPN;wJ*^8pp~b;wJyt@E`p{DCiO4 zqMz%GW9T=3D%8Eaez(4Ev6OxW=3De{44!@fl|I8;r%ztAtj{`;XlevXeUqvQT)*p1#1F| zOW6}9tTT?MR1{f9S@Ey@T>4k~4aDpZ@4J7a8cIV&q^GB)8%;^Z`20U_~J(-!FZb`Kn=3DOw1wx<5nT$&|ihwx*}NmY8la&P~kdRgQ^k zOv!6}xqI(pt*`fbkE%U2*Oyz6nQF751~gO_S<*ACX{q!X`o1)5;!ndJiB(BdkOCGoD>Rh)P|Zm~2fl+LB*3E=3D$hL zc*U4*S(RzYuo-P@S6Ym}F(qd%rHZ_Q`k9hu8D%IZw=3DPRFF3U_#ruX#yg-_2-h+RDY zNh*U9H%FPD=3D^IaoiHM!tAeYckvgcnINTJR?Z&UIe6|q*b01%y`+FU`tP2 znP8y-!Ey8(g-lIKwxk=3DEC0dg$Nz!+$$;p=3DGiOEK5YKAR6Q?yY#J|G#FV$DE%EKjv0 z8I#izlkQ8?<9&uL4gJ~&iA79IPVV~rK7*yt zVCgfI^stbZ^8K2@Npb-)Cdmb`vGUkhd29^7jp4U3{5FQ)#_;|~d$8W*I4wTMBg9(G z*3}lHIo)DON=3Dq@uO`FO-Bp2r=3D|9zaL5C|GM?wnWtJ5bAI(WAb9#?S{p@0+gU2|1nb z92vg7QHCcN{5yNTl|d!{vMf2>E(VkPynl?vL$l>{6$~z8a9*GEvshe#%6AkPZdq*=3D zEyjgtKckqK8f-JZY{3*;iIoCV-Iiv=3D+)PPJO0-#wsg~D_scA_TDeDArWo8Eb6KYDL z2Pr9;<7j16@Froscv)Fw@KBxv81L2$arI*vtEaGWqr|7O@iReuB`w2}%1y{f6DMR? z(yfWfp_3*~#Qzf~&YCo7+T@9H|7O^d(lTx1RwmkBkv=3DKoS($7VCvwJhUhhbRAqWEz zg8s$egY+tdjyJsCI|xk(*AOls{2k%12wx+7fl!O^3BnB%Jwb3MGZ106&ui4j{EKJyj~~5R)n1hUm~nPup#U%^m@~Gc)gnu zj^Ou6gf@g(h?@b+0JDlvH-t8XxjV7fAl%0D>4?*JVxq8_Mnq!cRhCnEipE4d`1!Lj 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 Z{D(gPk9a-7`2Bv-ADJfQJM34I|39KtfIk2L diff --git a/roms/opensbi b/roms/opensbi index ac5e821d50..9f1b72ce66 160000 --- a/roms/opensbi +++ b/roms/opensbi @@ -1 +1 @@ -Subproject commit ac5e821d50be631f26274765a59bc1b444ffd862 +Subproject commit 9f1b72ce66d659e91013b358939e832fb27223f5 --=20 2.26.2 From nobody Sat May 18 17:34:36 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail header.i=@wdc.com; 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=fail(p=none dis=none) header.from=wdc.com ARC-Seal: i=1; a=rsa-sha256; t=1588186152; cv=none; d=zohomail.com; s=zohoarc; b=k562wWlqutr/LnakgdF2uuTcuE1SO5sKYvpooMNfVuy18aVR+tlt1lAMvgrshDlT8gwa6vGVjDDOtIMKYaoqX04wdWQ5FYBjI3BZqroPnnpyAQm2ttjNY/Z8ZzZrsW9xEu/QmQQtR08PEaarCtwBSHQoS9T+CWWwN9MgWVnD+q4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1588186152; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=zaN9qodHa2eXlV/Yhcfk0KjxpemZeVweT8+7C9NmSlI=; b=Arwx/QyxBrsWKsv91h6HyfZd4Q7/AWjZYX0+V/2fvLWHSUgA3k1yt15zF8CrMvA16xU0Dhis2bFJWIu1votnYXvPAgINDSeT/slzLA55w8JOy8Q9oHBK1OA5FzNdgJNDiN5G+B16ueIccMKwazvQCxXwYpouZmKWVVdtojoh0VQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail header.i=@wdc.com; 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=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1588186152659888.4434449536138; Wed, 29 Apr 2020 11:49:12 -0700 (PDT) Received: from localhost ([::1]:33652 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jTrlf-0000fm-5p for importer@patchew.org; Wed, 29 Apr 2020 14:49:11 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:37606) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jTraX-0000eg-CA for qemu-devel@nongnu.org; Wed, 29 Apr 2020 14:37:42 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.90_1) (envelope-from ) id 1jTraV-0003z7-FD for qemu-devel@nongnu.org; Wed, 29 Apr 2020 14:37:41 -0400 Received: from esa6.hgst.iphmx.com ([216.71.154.45]:2041) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jTraR-0003PZ-UK; Wed, 29 Apr 2020 14:37:36 -0400 Received: from uls-op-cesaip02.wdc.com (HELO uls-op-cesaep02.wdc.com) ([199.255.45.15]) by ob1.hgst.iphmx.com with ESMTP; 30 Apr 2020 02:37:08 +0800 Received: from uls-op-cesaip01.wdc.com ([10.248.3.36]) by uls-op-cesaep02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 29 Apr 2020 11:27:12 -0700 Received: from cnf007834.ad.shared (HELO risc6-mainframe.hgst.com) ([10.86.55.253]) by uls-op-cesaip01.wdc.com with ESMTP; 29 Apr 2020 11:37:06 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1588185456; x=1619721456; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=y2PxtJkBDcgg6/2XLAnv6fsOHXzs6BDrOSXRANlXYzY=; b=mn5GPnWahF0SSYMB+KJTYX+Bz0X6KTpe6P23EaK/wLRQ9XjhTPoYbeTI cwzsqmGJ+lMYcn8oKQyusgF0AZovfP1CwXBVipCdJId9ER4NHzQYp2Qm3 G6B9bHHqxcj8YxmhjtsUYN1JJNghpzDenzsF6YSupnbBueDb/6B6Auyb9 BCJYXPW3E8f1i5ZDQCXBe/I2I3/BADU8fQvm6YZEjVj3YDdGuzZDkLxE4 nyVRefoHyFQSWQsP4PeIa6bN/tSWx9lxZkCLPlP/4w/W4lZafKUxJm0Su f8rWdqeKHjZ+fra43KN3AN+T8X2lWZhd0/+NZSo0xHA7d9Ddky5vFlPMQ Q==; IronPort-SDR: rb87Y5vK68j6vVbTXfNhyxM8FSo2lCNhZCQObX3qgm7s0cqktVNCICRFvreHalMz0L+YPSgsZ+ tvD8uKJnDT6feR4xfgRRph7KnCnJvqYuHj2NWUYqxZtH6dGfCt6UHesa2lOsESjWwIVmeXhvRx mS3+TALbOgbToTQM2zr58p6aItFmyCbrfWzmz15Z4vRkxyM2uQQoUX/BqvT2KiJ+/2uIv0FWnp o1CcQWZjHngowoQP6o9qxDU7p4I4W1WYAnNldaIUB3uLJK76RuVel9xmWVWGM7hHMfAZbw+fT5 928= X-IronPort-AV: E=Sophos;i="5.73,332,1583164800"; d="scan'208";a="137935156" IronPort-SDR: /pKT4rYuVgi5xIK10DKDcNZPHR/dCwUuVmf0o25JXK2MOCCc5JgT8OCJTZDx0DUqqvjA5n5v3w S1ObzZGN+4DTSfS9a6nfQ1Q5nucr/T/y8= IronPort-SDR: /ylXJcU/lduVDPmJK/b0Zxt1cLPHkpVDjXJR40jSeY39WHzTbIJh/pC+gljo5TJm2gUHCOfCZA wwQ7imovOTLw== WDCIronportException: Internal From: Alistair Francis To: peter.maydell@linaro.org Subject: [PULL 12/14] hw/riscv: Add optional symbol callback ptr to riscv_load_firmware() Date: Wed, 29 Apr 2020 11:28:54 -0700 Message-Id: <20200429182856.2588202-13-alistair.francis@wdc.com> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20200429182856.2588202-1-alistair.francis@wdc.com> References: <20200429182856.2588202-1-alistair.francis@wdc.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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=lists.gnu.org; Received-SPF: pass client-ip=216.71.154.45; envelope-from=prvs=381fbd49e=alistair.francis@wdc.com; helo=esa6.hgst.iphmx.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/04/29 14:37:03 X-ACL-Warn: Detected OS = FreeBSD 9.x or newer [fuzzy] X-Received-From: 216.71.154.45 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Alistair Francis , Anup Patel , palmerdabbelt@google.com, qemu-riscv@nongnu.org, qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" From: Anup Patel This patch adds an optional function pointer, "sym_cb", to riscv_load_firmware() which provides the possibility to access the symbol table during kernel loading. The pointer is ignored, if supplied with flat (non-elf) firmware image. The Spike board requires it locate the HTIF symbols from firmware ELF passed via "-bios" option. Signed-off-by: Anup Patel Reviewed-by: Alistair Francis Message-id: 20200427080644.168461-2-anup.patel@wdc.com Message-Id: <20200427080644.168461-2-anup.patel@wdc.com> Signed-off-by: Alistair Francis --- hw/riscv/boot.c | 13 ++++++++----- hw/riscv/sifive_u.c | 2 +- hw/riscv/virt.c | 2 +- include/hw/riscv/boot.h | 6 ++++-- 4 files changed, 14 insertions(+), 9 deletions(-) diff --git a/hw/riscv/boot.c b/hw/riscv/boot.c index b8e765277d..726300a171 100644 --- a/hw/riscv/boot.c +++ b/hw/riscv/boot.c @@ -36,7 +36,8 @@ =20 void riscv_find_and_load_firmware(MachineState *machine, const char *default_machine_firmware, - hwaddr firmware_load_addr) + hwaddr firmware_load_addr, + symbol_fn_t sym_cb) { char *firmware_filename =3D NULL; =20 @@ -76,7 +77,7 @@ void riscv_find_and_load_firmware(MachineState *machine, =20 if (firmware_filename) { /* If not "none" load the firmware */ - riscv_load_firmware(firmware_filename, firmware_load_addr); + riscv_load_firmware(firmware_filename, firmware_load_addr, sym_cb); g_free(firmware_filename); } } @@ -96,12 +97,14 @@ char *riscv_find_firmware(const char *firmware_filename) } =20 target_ulong riscv_load_firmware(const char *firmware_filename, - hwaddr firmware_load_addr) + hwaddr firmware_load_addr, + symbol_fn_t sym_cb) { uint64_t firmware_entry, firmware_start, firmware_end; =20 - if (load_elf(firmware_filename, NULL, NULL, NULL, &firmware_entry, - &firmware_start, &firmware_end, NULL, 0, EM_RISCV, 1, 0) = > 0) { + if (load_elf_ram_sym(firmware_filename, NULL, NULL, NULL, + &firmware_entry, &firmware_start, &firmware_end, = NULL, + 0, EM_RISCV, 1, 0, NULL, true, sym_cb) > 0) { return firmware_entry; } =20 diff --git a/hw/riscv/sifive_u.c b/hw/riscv/sifive_u.c index 0dd0efaa68..cfd6416b19 100644 --- a/hw/riscv/sifive_u.c +++ b/hw/riscv/sifive_u.c @@ -352,7 +352,7 @@ static void sifive_u_machine_init(MachineState *machine) create_fdt(s, memmap, machine->ram_size, machine->kernel_cmdline); =20 riscv_find_and_load_firmware(machine, BIOS_FILENAME, - memmap[SIFIVE_U_DRAM].base); + memmap[SIFIVE_U_DRAM].base, NULL); =20 if (machine->kernel_filename) { uint64_t kernel_entry =3D riscv_load_kernel(machine->kernel_filena= me, diff --git a/hw/riscv/virt.c b/hw/riscv/virt.c index c621a970aa..daae3ebdbb 100644 --- a/hw/riscv/virt.c +++ b/hw/riscv/virt.c @@ -511,7 +511,7 @@ static void riscv_virt_board_init(MachineState *machine) mask_rom); =20 riscv_find_and_load_firmware(machine, BIOS_FILENAME, - memmap[VIRT_DRAM].base); + memmap[VIRT_DRAM].base, NULL); =20 if (machine->kernel_filename) { uint64_t kernel_entry =3D riscv_load_kernel(machine->kernel_filena= me, diff --git a/include/hw/riscv/boot.h b/include/hw/riscv/boot.h index df80051fbc..474a940ad5 100644 --- a/include/hw/riscv/boot.h +++ b/include/hw/riscv/boot.h @@ -24,10 +24,12 @@ =20 void riscv_find_and_load_firmware(MachineState *machine, const char *default_machine_firmware, - hwaddr firmware_load_addr); + hwaddr firmware_load_addr, + symbol_fn_t sym_cb); char *riscv_find_firmware(const char *firmware_filename); target_ulong riscv_load_firmware(const char *firmware_filename, - hwaddr firmware_load_addr); + hwaddr firmware_load_addr, + symbol_fn_t sym_cb); target_ulong riscv_load_kernel(const char *kernel_filename, symbol_fn_t sym_cb); hwaddr riscv_load_initrd(const char *filename, uint64_t mem_size, --=20 2.26.2 From nobody Sat May 18 17:34:36 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail header.i=@wdc.com; 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=fail(p=none dis=none) header.from=wdc.com ARC-Seal: i=1; a=rsa-sha256; t=1588185673; cv=none; d=zohomail.com; s=zohoarc; b=ja6/o3XmM0mDzSOrdTmz1boQnPj4WKGSv4QTgMLZjK5uTNY5Cf1RlBJ96OVsX/Hizp55Z2IBFfwiCxVOByrin54CpheK5O6J6mSfpadx4NAC22LBcw+0scyBmR5llT9+flFe4wbs8/ZTt0RkanHjldSSQPlHIcKxS6mhfwwfaho= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1588185673; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=OU+hmEnrHivqggTMlAPdxraTPfvGymwo1upXvhT+/dY=; b=PqchEG8eCpD33IRv99u73oF2XN0AoSohv0vPaGYkMBBVmJDxTjp1NnzfbIh8ofH8o8x5RGhSljLIkUC5QB3sPOiSZdWMfCND/ssjPTqYGceOdLdqPhug4hRKH/dAe0E0oy1G8e27tHjuEyFL0vzgDPmLzDXgckK+eELZU1sQ7Pc= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail header.i=@wdc.com; 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=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1588185673608352.65078913711113; Wed, 29 Apr 2020 11:41:13 -0700 (PDT) Received: from localhost ([::1]:38224 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jTrdw-0006JL-8Z for importer@patchew.org; Wed, 29 Apr 2020 14:41:12 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:37614) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jTraX-0000fL-Qq for qemu-devel@nongnu.org; Wed, 29 Apr 2020 14:37:43 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.90_1) (envelope-from ) id 1jTraV-0003zK-U8 for qemu-devel@nongnu.org; Wed, 29 Apr 2020 14:37:41 -0400 Received: from esa6.hgst.iphmx.com ([216.71.154.45]:2049) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jTraS-0003Ps-4A; Wed, 29 Apr 2020 14:37:36 -0400 Received: from uls-op-cesaip02.wdc.com (HELO uls-op-cesaep02.wdc.com) ([199.255.45.15]) by ob1.hgst.iphmx.com with ESMTP; 30 Apr 2020 02:37:08 +0800 Received: from uls-op-cesaip01.wdc.com ([10.248.3.36]) by uls-op-cesaep02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 29 Apr 2020 11:27:12 -0700 Received: from cnf007834.ad.shared (HELO risc6-mainframe.hgst.com) ([10.86.55.253]) by uls-op-cesaip01.wdc.com with ESMTP; 29 Apr 2020 11:37:06 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1588185457; x=1619721457; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=BPQHeYhW0+8Gd1YdWGKpS99M5X8zYqkIAis4E32nD/c=; b=IxgYORL3KyGsN0K/ihrs2qGaHknkEGe0dP7w7abO7o0yaiVZe0P3To5v NFaUvFqaC/CyA/enLBp/sluW/iEW4aUv7qa7SfMP8Qh69nWgMByovAzeL rBFCReqgvXOBqcO2dld1EXKbUj5HZ/wVBChHda5PAxY48hLXIgLt+fwln ysvw7c4v6bOps3pzR7t4BECjBmaaiUKgreVeeMpyVmMsF4mitRJGISN1d yAYuvJwLPZNy2Ry4ChysZndr+/VdmuAAkPtpB+F6wmObmF86HjBFjWbta nAv8PU2LqmYyQD9NXfMNSpFpmMQoGhNqfSUAfCnsFLGsdEgHTp+tUFaM2 A==; IronPort-SDR: GD+kiaHD9TiISXimsKslZgu2Z4rejFwPZRsZrg+EiHqvFkgB/5QSMYi/xzR5qyGjVSCYxhk8LB sR6xsl0QStmtW3LEXaTkehKXPvDPNZkl7BRchDSqQoWnXGiGjjD9p73LbEs3azwhpWC20RS1Ev vztnfsFmNGt8ovM9T5neAOYMxnbe9I6KMzYRk+NIyhOPIqOxfLVBntO2mlfgsg2buTbKMqFNZo /N+P1LboaFRGNsw7vfG9rLv5XMdEWlDNbaDLL/x9JWc53W6f/yjo6O8+phglgwn1huanVFEIrV N+Y= X-IronPort-AV: E=Sophos;i="5.73,332,1583164800"; d="scan'208";a="137935158" IronPort-SDR: yz62U3AD2XWTbk+d303+HyUwcVxT6MrpFTZg0pQAvK75bmKvIO17nsqy1j4po1JwYUehj6Oh++ +xhWvKQeOaP5/9615QUWGdGZD5ANzKgp4= IronPort-SDR: 17OGOyw7LHB3vRJc40YxRHVDy/e+uUBcGlwJkMNaRsIWJ7F4609RoBvV/h/E0VNOgJOmIy2hx6 ZiXrP6+EFZTg== WDCIronportException: Internal From: Alistair Francis To: peter.maydell@linaro.org Subject: [PULL 13/14] hw/riscv/spike: Allow loading firmware separately using -bios option Date: Wed, 29 Apr 2020 11:28:55 -0700 Message-Id: <20200429182856.2588202-14-alistair.francis@wdc.com> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20200429182856.2588202-1-alistair.francis@wdc.com> References: <20200429182856.2588202-1-alistair.francis@wdc.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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=lists.gnu.org; Received-SPF: pass client-ip=216.71.154.45; envelope-from=prvs=381fbd49e=alistair.francis@wdc.com; helo=esa6.hgst.iphmx.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/04/29 14:37:03 X-ACL-Warn: Detected OS = FreeBSD 9.x or newer [fuzzy] X-Received-From: 216.71.154.45 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Alistair Francis , Anup Patel , palmerdabbelt@google.com, qemu-riscv@nongnu.org, qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" From: Anup Patel This patch extends Spike machine support to allow loading OpenSBI firmware (fw_jump.elf) separately using -bios option. Signed-off-by: Anup Patel Reviewed-by: Alistair Francis Message-id: 20200427080644.168461-3-anup.patel@wdc.com Message-Id: <20200427080644.168461-3-anup.patel@wdc.com> Signed-off-by: Alistair Francis --- hw/riscv/spike.c | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/hw/riscv/spike.c b/hw/riscv/spike.c index 98697a244e..e7908b88fe 100644 --- a/hw/riscv/spike.c +++ b/hw/riscv/spike.c @@ -45,6 +45,12 @@ =20 #include =20 +#if defined(TARGET_RISCV32) +# define BIOS_FILENAME "opensbi-riscv32-spike-fw_jump.elf" +#else +# define BIOS_FILENAME "opensbi-riscv64-spike-fw_jump.elf" +#endif + static const struct MemmapEntry { hwaddr base; hwaddr size; @@ -187,8 +193,24 @@ static void spike_board_init(MachineState *machine) memory_region_add_subregion(system_memory, memmap[SPIKE_MROM].base, mask_rom); =20 + riscv_find_and_load_firmware(machine, BIOS_FILENAME, + memmap[SPIKE_DRAM].base, + htif_symbol_callback); + if (machine->kernel_filename) { - riscv_load_kernel(machine->kernel_filename, htif_symbol_callback); + uint64_t kernel_entry =3D riscv_load_kernel(machine->kernel_filena= me, + htif_symbol_callback); + + if (machine->initrd_filename) { + hwaddr start; + hwaddr end =3D riscv_load_initrd(machine->initrd_filename, + machine->ram_size, kernel_entry, + &start); + qemu_fdt_setprop_cell(s->fdt, "/chosen", + "linux,initrd-start", start); + qemu_fdt_setprop_cell(s->fdt, "/chosen", "linux,initrd-end", + end); + } } =20 /* reset vector */ --=20 2.26.2 From nobody Sat May 18 17:34:36 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail header.i=@wdc.com; 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=fail(p=none dis=none) header.from=wdc.com ARC-Seal: i=1; a=rsa-sha256; t=1588186259; cv=none; d=zohomail.com; s=zohoarc; b=fPxUeK5fLaxB9uqkl7qQHQUdE6QiyTQ63/WWrkBX5bsq5kKvwsT4NuB4wLtu5xwYnFro+yzFtTENQikU3I9aVIBBjQRb33OCyh5grZO1cksdZRmBHtgXf5JoXtryDaFpwDNmfN34xL7epnSi4YCdBd/JaiXUVAXvN0bp2jk9uB0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1588186259; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=AbrwqBSDq3mtd4BPIXy1uhnK6oyyTW3A7BvDxEc7Hf8=; b=DiwVB8zHWy+Pqe/QqkNu+XSWEWpxXmiZ7BlVXYYwEzB7SqYp0cCulDyFptCcybm3ytUzrGWMwgC5QrzAvHiVARXqlZBCP/+rE3YKhwRDhCqwRiXy7Z+inlMxGhwZvwwbth1UTv7cCMkiIND0cm/OGb//EzxY4GEnlUgmLKh7GDM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail header.i=@wdc.com; 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=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1588186259286838.197788720654; Wed, 29 Apr 2020 11:50:59 -0700 (PDT) Received: from localhost ([::1]:40194 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jTrnN-0003MN-Tw for importer@patchew.org; Wed, 29 Apr 2020 14:50:57 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:37734) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jTrb5-0001Zt-5d for qemu-devel@nongnu.org; Wed, 29 Apr 2020 14:38:17 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.90_1) (envelope-from ) id 1jTrb2-0004Rw-OT for qemu-devel@nongnu.org; Wed, 29 Apr 2020 14:38:14 -0400 Received: from esa6.hgst.iphmx.com ([216.71.154.45]:2041) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jTran-0003PZ-Nc; Wed, 29 Apr 2020 14:37:57 -0400 Received: from uls-op-cesaip02.wdc.com (HELO uls-op-cesaep02.wdc.com) ([199.255.45.15]) by ob1.hgst.iphmx.com with ESMTP; 30 Apr 2020 02:37:09 +0800 Received: from uls-op-cesaip01.wdc.com ([10.248.3.36]) by uls-op-cesaep02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 29 Apr 2020 11:27:13 -0700 Received: from cnf007834.ad.shared (HELO risc6-mainframe.hgst.com) ([10.86.55.253]) by uls-op-cesaip01.wdc.com with ESMTP; 29 Apr 2020 11:37:07 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1588185478; x=1619721478; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=rEa05vt184m1FjxLiRpnoXbu3gIO1YzdoXIlsoD8Ghw=; b=aya0Z+osyOiBetpKqCRqpsuFT8M+Oq9TIS/IgqLN8ILDjAjsoajjf0Wg whUMxrwUJVNq+tv0ZS8XRmumMRWEtPXhcQ4D7kJYkgQW3JmVpTZ8f910/ Jolv3UhaSJdW6yilCUI6WVThuOJM3sKEN3VdtlBoN1rjvz/BK9OYlCZqt 8wNMzK0mm+yNyxndfjU9PuDd+SkFvoZ0jO3rsV7ukcK0nFo0A0ltQA/22 7gadQ9YKD2w/xR3X8ZuCdXFjuS2N5Tpwx2yV5FMfhm9wMcQkHjfl38n0L i3lTMtthyQJ/f1YaKEAvbCoFe+rxFMXeKUXcquYxg+Ag4stSGp8xNdwBc g==; IronPort-SDR: mUuX3HczUtlzAjpeCXBlhd4s3Js+IQqeMHSrspC7vA1X8VU6kXio8jCRMRFScpRphkY75wl4H8 IaFPFXJZE6rSoEF93S1baZBuGh0OLAPegUImSgGkqO5j6Dk0nuPXhR3PWAddsNUHM/NSjjMGaN /Yo/yEBBg9/eCmKr6BHUOWsYS32nb2LFJ3oun4UuavjWhOjcCpLA+tp/vmrQPkBYTyL+tutGAv tTdtO8h96H1L2/QTyTwFosMvclpTUh5QI8woT/wyIzR/A73IK36l85l6jx3QC2zDjaa3DI1FDm WRU= X-IronPort-AV: E=Sophos;i="5.73,332,1583164800"; d="scan'208";a="137935160" IronPort-SDR: 7RUyg5upHtGhhbjXCYURvMFf0GwnjV+9gAxKPr7BOWi/MptV23W/sqxlEJSPVHJTiZo2YGESM3 tbyG0bt90ml3sOUFJ1ZGJz840pGV60IBw= IronPort-SDR: abJWyOyJ6BNYSBvUsSxLDDwR8YpQLfbv2ZfqzL2qa4UIsuCBqbF34ApmgizKlJmz6LPGK6Gqj6 aKn4ChKuLK4g== WDCIronportException: Internal From: Alistair Francis To: peter.maydell@linaro.org Subject: [PULL 14/14] hw/riscv/spike: Allow more than one CPUs Date: Wed, 29 Apr 2020 11:28:56 -0700 Message-Id: <20200429182856.2588202-15-alistair.francis@wdc.com> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20200429182856.2588202-1-alistair.francis@wdc.com> References: <20200429182856.2588202-1-alistair.francis@wdc.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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=lists.gnu.org; Received-SPF: pass client-ip=216.71.154.45; envelope-from=prvs=381fbd49e=alistair.francis@wdc.com; helo=esa6.hgst.iphmx.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/04/29 14:37:03 X-ACL-Warn: Detected OS = FreeBSD 9.x or newer [fuzzy] X-Received-From: 216.71.154.45 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Alistair Francis , Anup Patel , palmerdabbelt@google.com, qemu-riscv@nongnu.org, qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" From: Anup Patel Currently, the upstream Spike ISA simulator allows more than one CPUs so we update QEMU Spike machine on similar lines to allow more than one CPUs. The maximum number of CPUs for QEMU Spike machine is kept same as QEMU Virt machine. Signed-off-by: Anup Patel Reviewed-by: Alistair Francis Message-id: 20200427080644.168461-4-anup.patel@wdc.com Message-Id: <20200427080644.168461-4-anup.patel@wdc.com> Signed-off-by: Alistair Francis --- hw/riscv/spike.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/riscv/spike.c b/hw/riscv/spike.c index e7908b88fe..d0c4843712 100644 --- a/hw/riscv/spike.c +++ b/hw/riscv/spike.c @@ -476,7 +476,7 @@ static void spike_machine_init(MachineClass *mc) { mc->desc =3D "RISC-V Spike Board"; mc->init =3D spike_board_init; - mc->max_cpus =3D 1; + mc->max_cpus =3D 8; mc->is_default =3D true; mc->default_cpu_type =3D SPIKE_V1_10_0_CPU; } --=20 2.26.2