From nobody Sun Feb 8 12:32:56 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) client-ip=66.175.222.108; envelope-from=bounce+27952+83742+1787277+3901457@groups.io; helo=mail02.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+83742+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=hpe.com ARC-Seal: i=1; a=rsa-sha256; t=1636948559; cv=none; d=zohomail.com; s=zohoarc; b=WuM5eQzWTjVzgnA2ElZUbuSmb52Fy1MuR2pWenSVQue+RHVMUzwAz0YU4qPBgPoR7SYhBktwhTcdQIekxY0Z9Clc+c1Ie7SZRprdhvL0325vbBg4Kr8ADfhnz45clfKc/ow1pGuJrgC4X+A3vbh0n13aDkordfXW+y05RBLD5T0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1636948559; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:References:Sender:Subject:To; bh=juDVRXIG/ZE2NsLAobjyVC8BImMsjd83cLgsBfGtRkg=; b=BfP0k1Shf2M7GP8WbQusJafhwpUoCD4ji4FirE/8YFuRo16EG1FkE8oCj6dWI0nSqdyXtdm4u8lT5tHe7Bp9LOoaQ2Q/Uj+s4O7lxk7XjDx1z3jD4/jILvglA/bVNYo3c+javK9j82L+iJnFcU1pqi2vBhH8ZUe4SS9EEfFj7eg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+83742+1787277+3901457@groups.io; dmarc=fail header.from= (p=none dis=none) Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by mx.zohomail.com with SMTPS id 1636948559469150.61112762788764; Sun, 14 Nov 2021 19:55:59 -0800 (PST) Return-Path: X-Received: by 127.0.0.2 with SMTP id xOy0YY1788612xd0CjK5mIVR; Sun, 14 Nov 2021 19:55:59 -0800 X-Received: from mx0b-002e3701.pphosted.com (mx0b-002e3701.pphosted.com [148.163.143.35]) by mx.groups.io with SMTP id smtpd.web10.17941.1636948551872071330 for ; Sun, 14 Nov 2021 19:55:55 -0800 X-Received: from pps.filterd (m0134423.ppops.net [127.0.0.1]) by mx0b-002e3701.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 1AENWMoe032299; Mon, 15 Nov 2021 03:55:50 GMT X-Received: from g2t2353.austin.hpe.com (g2t2353.austin.hpe.com [15.233.44.26]) by mx0b-002e3701.pphosted.com with ESMTP id 3ca2vf4byg-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 15 Nov 2021 03:55:50 +0000 X-Received: from g2t2360.austin.hpecorp.net (g2t2360.austin.hpecorp.net [16.196.225.135]) by g2t2353.austin.hpe.com (Postfix) with ESMTP id 110E06D; Mon, 15 Nov 2021 03:55:50 +0000 (UTC) X-Received: from UB16Abner.asiapacific.hpqcorp.net (ub16abner.asiapacific.hpqcorp.net [15.119.209.229]) by g2t2360.austin.hpecorp.net (Postfix) with ESMTP id 0375536; Mon, 15 Nov 2021 03:55:48 +0000 (UTC) From: "Abner Chang" To: devel@edk2.groups.io Cc: abner.chang@hpe.com, Daniel Schaefer , Sunil V L Subject: [edk2-devel] [edk2-platforms][PATCH 05/14] RiscVPlatformPkg/U500: Creates opensbi firmware domains Date: Mon, 15 Nov 2021 10:56:31 +0800 Message-Id: <20211115025640.12897-6-abner.chang@hpe.com> In-Reply-To: <20211115025640.12897-1-abner.chang@hpe.com> References: <20211115025640.12897-1-abner.chang@hpe.com> MIME-Version: 1.0 X-Proofpoint-GUID: n6CziG5FxDJacd0CrZKCTamY7WhatlBR X-Proofpoint-ORIG-GUID: n6CziG5FxDJacd0CrZKCTamY7WhatlBR X-HPE-SCL: -1 Precedence: Bulk List-Unsubscribe: List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,abner.chang@hpe.com X-Gm-Message-State: tB4rAeuWiGc03dO5TFN36U1Ex1787277AA= Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1636948559; bh=EWBbaqdYzoKiCKEPCRzEHHcBJeOFw8Q2gP0XPS/yw4w=; h=Cc:Date:From:Reply-To:Subject:To; b=tNQk74NUFXCKl84Yb86u2RSWghhYjpm6SyhyrmmBUvSOKw2kFQhOXsqP9cM4j/W141W PDtGRIaRQlQRs6MVn4cm/EnEWpEA0lLpQjptmvxuiJ0SwV+0MUaAN5/oSVjPwqVnGro+x VXSAVwuL2JfW5rJqFJh58LEBKma53BuU01U= X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1636948561144100023 Content-Type: text/plain; charset="utf-8" Incorporate with opensbi to create three firmware domains, - Addjust the ROM layout. - Boot firmware domain, which built with opensbi library as M-mode access o= nly region. - Firmware domain which includes PEI and DXE regions, the PMP attribute is readable, wriable and executable. - EFI Variable region which is readable and writable. Signed-off-by: Abner Chang Cc: Daniel Schaefer Cc: Sunil V L --- .../FreedomU500VC707Board/U500.fdf.inc | 73 ++++++++++++++----- .../FreedomU500VC707Board/VarStore.fdf.inc | 6 +- 2 files changed, 57 insertions(+), 22 deletions(-) diff --git a/Platform/SiFive/U5SeriesPkg/FreedomU500VC707Board/U500.fdf.inc= b/Platform/SiFive/U5SeriesPkg/FreedomU500VC707Board/U500.fdf.inc index e88aee8c02..abfb013a92 100644 --- a/Platform/SiFive/U5SeriesPkg/FreedomU500VC707Board/U500.fdf.inc +++ b/Platform/SiFive/U5SeriesPkg/FreedomU500VC707Board/U500.fdf.inc @@ -10,35 +10,70 @@ DEFINE BLOCK_SIZE =3D 0x1000 =20 DEFINE FW_BASE_ADDRESS =3D 0x80000000 -DEFINE FW_SIZE =3D 0x00800000 -DEFINE FW_BLOCKS =3D 0x800 +DEFINE FW_SIZE =3D 0x00900000 +DEFINE FW_BLOCKS =3D 0x900 =20 # -# 0x000000-0x7DFFFF code -# 0x7E0000-0x800000 variables +# 0x000000-0x800000 code +# 0x800000-0x818000 variables # DEFINE CODE_BASE_ADDRESS =3D 0x80000000 -DEFINE CODE_SIZE =3D 0x007E0000 -DEFINE CODE_BLOCKS =3D 0x7E0 +DEFINE CODE_SIZE =3D 0x00800000 +DEFINE CODE_BLOCKS =3D 0x800 DEFINE VARS_BLOCKS =3D 0x20 =20 -DEFINE SECFV_OFFSET =3D 0x00000000 -DEFINE SECFV_SIZE =3D 0x00030000 -DEFINE PEIFV_OFFSET =3D 0x00030000 -DEFINE PEIFV_SIZE =3D 0x00080000 -DEFINE SCRATCH_OFFSET =3D 0x000b0000 -DEFINE SCRATCH_SIZE =3D 0x00010000 -DEFINE FVMAIN_OFFSET =3D 0x00100000 # Must be power of 2 for PMP setti= ng -DEFINE FVMAIN_SIZE =3D 0x0018C000 -DEFINE VARS_OFFSET =3D 0x007E0000 -DEFINE VARS_SIZE =3D 0x00020000 +# +# SEC + opensbi library is the root FW domain. +# The base address must be round up to log2. +# +DEFINE SECFV_OFFSET =3D 0x00000000 +DEFINE SECFV_SIZE =3D 0x00040000 +DEFINE ROOT_FW_DOMAIN_SIZE =3D $(SECFV_SIZE) + +# +# Other FV regions are in the second FW domain. +# The size of memory region must be power of 2. +# The base address must be aligned with the size. +# +# FW memory region +# +DEFINE PEIFV_OFFSET =3D 0x00400000 +DEFINE PEIFV_SIZE =3D 0x00180000 +DEFINE FVMAIN_OFFSET =3D 0x00580000 +DEFINE FVMAIN_SIZE =3D 0x00280000 + +# +# EFI Variable memory region. +# The total size of EFI Variable FD must include +# all of sub regions of EFI Variable +# +DEFINE VARS_OFFSET =3D 0x00800000 +DEFINE VARS_SIZE =3D 0x00007000 +DEFINE VARS_FTW_WORKING_OFFSET =3D 0x00807000 +DEFINE VARS_FTW_WORKING_SIZE =3D 0x00001000 +DEFINE VARS_FTW_SPARE_OFFSET =3D 0x00808000 +DEFINE VARS_FTW_SPARE_SIZE =3D 0x00018000 + +# +# Scratch area memory region +# +DEFINE SCRATCH_OFFSET =3D 0x00840000 +DEFINE SCRATCH_SIZE =3D 0x00010000 + +DEFINE FW_DOMAIN_SIZE =3D $(FVMAIN_OFFSET) + $(FVMAIN_SIZE) - $(PEIFV_O= FFSET) +DEFINE VARIABLE_FW_SIZE =3D $(VARS_FTW_SPARE_OFFSET) + $(VARS_FTW_SPARE_S= IZE) - $(VARS_OFFSET) + +SET gUefiRiscVPlatformPkgTokenSpaceGuid.PcdRootFirmwareDomainBaseAddress = =3D $(CODE_BASE_ADDRESS) + $(SECFV_OFFSET) +SET gUefiRiscVPlatformPkgTokenSpaceGuid.PcdRootFirmwareDomainSize = =3D $(ROOT_FW_DOMAIN_SIZE) +SET gUefiRiscVPlatformPkgTokenSpaceGuid.PcdFirmwareDomainBaseAddress = =3D $(CODE_BASE_ADDRESS) + $(PEIFV_OFFSET) +SET gUefiRiscVPlatformPkgTokenSpaceGuid.PcdFirmwareDomainSize = =3D $(FW_DOMAIN_SIZE) =20 SET gUefiRiscVPlatformPkgTokenSpaceGuid.PcdVariableFdBaseAddress =3D $(FW_= BASE_ADDRESS) + $(VARS_OFFSET) -SET gUefiRiscVPlatformPkgTokenSpaceGuid.PcdVariableFdSize =3D $(VAR= S_SIZE) +SET gUefiRiscVPlatformPkgTokenSpaceGuid.PcdVariableFdSize =3D $(VAR= S_SIZE) + $(VARS_FTW_WORKING_SIZE) + $(VARS_FTW_SPARE_SIZE) SET gUefiRiscVPlatformPkgTokenSpaceGuid.PcdVariableFdBlockSize =3D $(BLO= CK_SIZE) +SET gUefiRiscVPlatformPkgTokenSpaceGuid.PcdVariableFirmwareRegionBaseAddre= ss =3D $(CODE_BASE_ADDRESS) + $(VARS_OFFSET) +SET gUefiRiscVPlatformPkgTokenSpaceGuid.PcdVariableFirmwareRegionSize = =3D $(VARIABLE_FW_SIZE) =20 -SET gUefiRiscVPlatformPkgTokenSpaceGuid.PcdFwStartAddress =3D $(CODE_BASE_= ADDRESS) -SET gUefiRiscVPlatformPkgTokenSpaceGuid.PcdFwEndAddress =3D $(CODE_BASE_AD= DRESS) + $(SECFV_SIZE) + $(PEIFV_SIZE) + $(SCRATCH_SIZE) SET gUefiRiscVPlatformPkgTokenSpaceGuid.PcdOpenSbiStackSize =3D 8192 SET gUefiRiscVPlatformPkgTokenSpaceGuid.PcdScratchRamBase =3D $(CODE_BASE_= ADDRESS) + $(SCRATCH_OFFSET) SET gUefiRiscVPlatformPkgTokenSpaceGuid.PcdScratchRamSize =3D $(SCRATCH_SI= ZE) diff --git a/Platform/SiFive/U5SeriesPkg/FreedomU500VC707Board/VarStore.fdf= .inc b/Platform/SiFive/U5SeriesPkg/FreedomU500VC707Board/VarStore.fdf.inc index c287bb4336..d7d75fa494 100644 --- a/Platform/SiFive/U5SeriesPkg/FreedomU500VC707Board/VarStore.fdf.inc +++ b/Platform/SiFive/U5SeriesPkg/FreedomU500VC707Board/VarStore.fdf.inc @@ -9,7 +9,7 @@ # ## =20 -$(VARS_OFFSET)|0x00007000 +$(VARS_OFFSET)|$(VARS_SIZE) gUefiRiscVPlatformPkgTokenSpaceGuid.PcdPlatformFlashNvStorageVariableBase|= gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize # # NV_VARIABLE_STORE @@ -56,7 +56,7 @@ DATA =3D { 0x5A, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } =20 -0x007e7000|0x00001000 +$(VARS_FTW_WORKING_OFFSET)|$(VARS_FTW_WORKING_SIZE) gUefiRiscVPlatformPkgTokenSpaceGuid.PcdPlatformFlashNvStorageFtwWorkingBas= e|gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingSize # #NV_FTW_WROK @@ -72,7 +72,7 @@ DATA =3D { 0xE0, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } =20 -0x007e8000|0x00018000 +$(VARS_FTW_SPARE_OFFSET)|$(VARS_FTW_SPARE_SIZE) gUefiRiscVPlatformPkgTokenSpaceGuid.PcdPlatformFlashNvStorageFtwSpareBase|= gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareSize # #NV_FTW_SPARE --=20 2.31.1 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#83742): https://edk2.groups.io/g/devel/message/83742 Mute This Topic: https://groups.io/mt/87062617/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-