From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail05.groups.io (mail05.groups.io [45.79.224.7]) by spool.mail.gandi.net (Postfix) with ESMTPS id 0FE28941365 for ; Thu, 25 Apr 2024 09:02:13 +0000 (UTC) DKIM-Signature: a=rsa-sha256; bh=y5rfSOuJJTDxpEXwNBrkETlIJhi+iNGLF07T4AzoMoM=; c=relaxed/simple; d=groups.io; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version:In-Reply-To:Precedence:List-Subscribe:List-Help:Sender:List-Id:Mailing-List:Delivered-To:Resent-Date:Resent-From:Reply-To:List-Unsubscribe-Post:List-Unsubscribe:Content-Type:Content-Disposition; s=20240206; t=1714035732; v=1; b=1jbxuV2ebpcCIEo3roPYXC8iLz3ARi3Gh9dbqjqgEtdapR4/J59psB+U1OyAwUBHvpPFo9fT /Gs7/T/es2gJ/SHMbC9n2zSAFjbU7ChrWHkrwp0R8ycMPVEYQKbDHaog+alIarrzbqEnqyFhDwJ Rh1cO1BsB4Ip7Z2IDFlrlV38/UgzcgZ9liDI4tNdlz+Y7yyM4CrGHeMXVSIDpI1MoCfweaIWcyb zfbAYF/D1a1pNJbVxVz0g5YlYUb5d+3Mz9lQkxi5nCcKL0IjFycFgJAs/uKDeoi0BE/X1KcXo18 vUsh4qZxIi1hp7dyLAG7BfG8nRarzIBGE642CrCEgaHxA== X-Received: by 127.0.0.2 with SMTP id 6629YY7687511xt6yIXJqaac; Thu, 25 Apr 2024 02:02:12 -0700 X-Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by mx.groups.io with SMTP id smtpd.web10.12398.1714035731751792621 for ; Thu, 25 Apr 2024 02:02:11 -0700 X-Received: from mimecast-mx02.redhat.com (mx-ext.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-146-x1X4bX-RNBWGfEFq6TZZBA-1; Thu, 25 Apr 2024 05:02:03 -0400 X-MC-Unique: x1X4bX-RNBWGfEFq6TZZBA-1 X-Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.rdu2.redhat.com [10.11.54.8]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 222983C000AA; Thu, 25 Apr 2024 09:02:03 +0000 (UTC) X-Received: from dobby.home.kraxel.org (unknown [10.39.192.160]) by smtp.corp.redhat.com (Postfix) with ESMTPS id D74BDC13FA3; Thu, 25 Apr 2024 09:02:02 +0000 (UTC) X-Received: by dobby.home.kraxel.org (Postfix, from userid 1000) id 4617EF6CAD; Thu, 25 Apr 2024 11:02:01 +0200 (CEST) Date: Thu, 25 Apr 2024 11:02:01 +0200 From: "Gerd Hoffmann" To: Chao Li Cc: devel@edk2.groups.io, Ard Biesheuvel , Jiewen Yao , Xianglai Li Subject: Re: [edk2-devel] [PATCH v2 3/7] OvmfPkg: Add the QemuFwCfgMmioLib PEI stage version Message-ID: References: <20240425041728.1385891-1-lichao@loongson.cn> <20240425041821.1386403-1-lichao@loongson.cn> <3panc52jjcnvf7cml7wllbqirsr2bjnvn34ulonxp5jkz7hj5h@2y6deto2c5fp> MIME-Version: 1.0 In-Reply-To: X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.8 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Precedence: Bulk List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Resent-Date: Thu, 25 Apr 2024 02:02:11 -0700 Resent-From: kraxel@redhat.com Reply-To: devel@edk2.groups.io,kraxel@redhat.com List-Unsubscribe-Post: List-Unsubscribe=One-Click List-Unsubscribe: X-Gm-Message-State: 1PS1dXqSFwmoCNLwasFX3auxx7686176AA= Content-Type: text/plain; charset=us-ascii Content-Disposition: inline X-GND-Status: LEGIT Authentication-Results: spool.mail.gandi.net; dkim=pass header.d=groups.io header.s=20240206 header.b=1jbxuV2e; dmarc=fail reason="SPF not aligned (relaxed), DKIM not aligned (relaxed)" header.from=redhat.com (policy=none); spf=pass (spool.mail.gandi.net: domain of bounce@groups.io designates 45.79.224.7 as permitted sender) smtp.mailfrom=bounce@groups.io On Thu, Apr 25, 2024 at 04:06:13PM +0800, Chao Li wrote: > Hi Gerd, > > > Thanks, > Chao > On 2024/4/25 15:53, Gerd Hoffmann wrote: > > Hi, > > > > > +UINTN mFwCfgSelectorAddress; > > > +UINTN mFwCfgDataAddress; > > > +UINTN mFwCfgDmaAddress; > > Hmm, global variables for PEI? I think the point of storing these in > > the HOB is to avoid the need for global variables? Also does that work > > when running PEI in-place from flash? > I think it would be useful if some platforms(not LoongArch) could use the > global variables in PEI, because the global variables are faster. Performance isn't my main concern here, I very much prefer code which is easy to maintain. Taking the same code path on all platforms is good for that. It's less code and it also makes testing easier. The risk of breaking loongarch when changing something for riscv or arm is much lower if all platforms work the same way. I'd suggest to first refactor the existing DXE code to use a HOB instead of global variables. Have a helper function which looks up the HOB and returns a pointer to the configuration struct. That helper function can be slightly different for DXE/PEI, the DXE variant can cache the pointer to the struct in a global variable so it needs to do the lookup only once. > > > + UINT64 FwCfgDataSize; > > > + UINT64 FwCfgDmaAddress; > > > + UINT64 FwCfgDmaSize; > > First thing this function should do is check whenever the HOB already > > exists. Should that be the case there is no need to parse the device > > tree. > This is a constructor in PEI, that has to parse the device tree and then > build the HOBs. This is a library, so it can be linked into multiple PEI and DXE modules. So it must be prepared to run multiple times. On the second and all following runs the HOB will already exist. The DXE variant will need the check for sure. I'd strongly suggest to add it to the PEI variant too, even though it might not be needed right now because PlatformPei is the only PEI module using the library. take care, Gerd -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#118282): https://edk2.groups.io/g/devel/message/118282 Mute This Topic: https://groups.io/mt/105724970/7686176 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io] -=-=-=-=-=-=-=-=-=-=-=-