From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by spool.mail.gandi.net (Postfix) with ESMTPS id CCD95740056 for ; Mon, 12 Feb 2024 17:41:18 +0000 (UTC) DKIM-Signature: a=rsa-sha256; bh=WBndiTGN2MPFqTbgtdF9HptQIDopAreesmzk8FnPb3E=; 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:Reply-To:List-Unsubscribe-Post:List-Unsubscribe:Content-Type:Content-Disposition; s=20140610; t=1707759677; v=1; b=qaTlAbAVxx15/H3dOUm4maObOWTjemtBXWvHIS6WpT4YJ+359b9IXqiRYyC7MKRSBacJgcmN YX1GR5KmcsvoS/kPaYkcBunpnGrLyEEH70bCfpLkY9Jp3gFWq/Djmb7X9tybcwRYEO3kQB0l8xa mSbUrI9z0C4Uby3+DADGXlnE= X-Received: by 127.0.0.2 with SMTP id PPGeYY7687511xwmlGWGFPnK; Mon, 12 Feb 2024 09:41:17 -0800 X-Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) by mx.groups.io with SMTP id smtpd.web10.12809.1707759676920542957 for ; Mon, 12 Feb 2024 09:41:16 -0800 X-Received: from pps.filterd (m0279865.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.17.1.24/8.17.1.24) with ESMTP id 41CFRESa025507; Mon, 12 Feb 2024 17:41:13 GMT X-Received: from nasanppmta03.qualcomm.com (i-global254.qualcomm.com [199.106.103.254]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 3w7hew9145-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 12 Feb 2024 17:41:13 +0000 (GMT) X-Received: from nasanex01c.na.qualcomm.com (nasanex01c.na.qualcomm.com [10.45.79.139]) by NASANPPMTA03.qualcomm.com (8.17.1.5/8.17.1.5) with ESMTPS id 41CHfCgX007557 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 12 Feb 2024 17:41:12 GMT X-Received: from qc-i7.hemma.eciton.net (10.80.80.8) by nasanex01c.na.qualcomm.com (10.45.79.139) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1118.40; Mon, 12 Feb 2024 09:41:10 -0800 Date: Mon, 12 Feb 2024 17:41:07 +0000 From: "Leif Lindholm" To: Rebecca Cran CC: , , Ard Biesheuvel , Abner Chang , Michael D Kinney Subject: Re: [edk2-devel] [PATCH 1/1] EmbeddedPkg/Scripts/LauterbachT32: Fix EfiLoadDxe.cmm Message-ID: References: <20240129190136.1377641-1-rebecca@os.amperecomputing.com> <20240129190136.1377641-2-rebecca@os.amperecomputing.com> MIME-Version: 1.0 In-Reply-To: X-Originating-IP: [10.80.80.8] X-ClientProxiedBy: nasanex01a.na.qualcomm.com (10.52.223.231) To nasanex01c.na.qualcomm.com (10.45.79.139) X-QCInternal: smtphost X-Proofpoint-GUID: LzO0y9E_IkK_ijoEU2UEv3IHoWnbx0uP X-Proofpoint-ORIG-GUID: LzO0y9E_IkK_ijoEU2UEv3IHoWnbx0uP 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 Reply-To: devel@edk2.groups.io,quic_llindhol@quicinc.com List-Unsubscribe-Post: List-Unsubscribe=One-Click List-Unsubscribe: X-Gm-Message-State: 1CLRVIb5ZPDF7AZvAYVfo1Lyx7686176AA= 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=20140610 header.b=qaTlAbAV; dmarc=fail reason="SPF not aligned (relaxed), DKIM not aligned (relaxed)" header.from=quicinc.com (policy=none); spf=pass (spool.mail.gandi.net: domain of bounce@groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce@groups.io On Sun, Feb 11, 2024 at 16:10:32 -0700, Rebecca Cran wrote: > I'm guessing there haven't been any reviews because so few people are > familiar with the PRACTICE scripting language. > > If there's nobody who can review it, could I get approval to commit it > anyway? I'm good with that (after stable tag, of course): Reviewed-by: Leif Lindholm It would make sense to also add you as a maintainer for EmbeddedPkg/Scripts/LauterbachT32/ Regards, Leif > -- > > Rebecca Cran > > > On 1/29/24 12:01, Rebecca Cran via groups.io wrote: > > There have been many changes since EfiLoadDxe.cmm was last updated in > > 2011. The EFI_SYSTEM_TABLE can no longer be found by scanning memory on > > 4KB boundaries, so require users pass in its address instead. Update > > various offsets so that the debug information can be found and loaded > > with a recent version of TRACE32. > > > > Signed-off-by: Rebecca Cran > > --- > > EmbeddedPkg/Scripts/LauterbachT32/EfiLoadDxe.cmm | 77 +++----------------- > > EmbeddedPkg/Scripts/LauterbachT32/EfiProcessPeImage.cmm | 7 +- > > EmbeddedPkg/Scripts/LauterbachT32/Readme.md | 8 +- > > 3 files changed, 19 insertions(+), 73 deletions(-) > > > > diff --git a/EmbeddedPkg/Scripts/LauterbachT32/EfiLoadDxe.cmm b/EmbeddedPkg/Scripts/LauterbachT32/EfiLoadDxe.cmm > > index 1605a9b478df..06d307e12d8c 100644 > > --- a/EmbeddedPkg/Scripts/LauterbachT32/EfiLoadDxe.cmm > > +++ b/EmbeddedPkg/Scripts/LauterbachT32/EfiLoadDxe.cmm > > @@ -1,79 +1,22 @@ > > ; > > +; Copyright (c) 2024, Ampere Computing LLC. All rights reserved.
> > ; Copyright (c) 2011, Hewlett-Packard Company. All rights reserved.
> > ; > > ; SPDX-License-Identifier: BSD-2-Clause-Patent > > ; > > - LOCAL &maxmem &systbl &memsize > > - > > - &memsize=0x20000000 ; default to 512MB > > - > > - gosub FindSystemTable &memsize > > - ENTRY &systbl > > - > > - if &systbl!=0 > > - ( > > - print "found system table at &systbl" > > - gosub FindDebugInfo &systbl > > - ) > > - else > > - ( > > - print "ERROR: system table not found, check memory size" > > - ) > > + PARAMETERS &systbl > > + > > + gosub FindDebugInfo &systbl > > enddo > > -FindSystemTable: > > - LOCAL &TopOfRam &offset > > - ENTRY &TopOfRam > > - > > - print "FindSystemTable" > > - print "top of mem is &TopOfRam$" > > - > > - &offset=&TopOfRam > > - > > - ; align to highest 4MB boundary > > - &offset=&offset&0xFFC00000 > > - > > - ; start at top and look on 4MB boundaries for system table ptr structure > > - while &offset>0 > > - ( > > - ; low signature match > > - if Data.Long(a:&offset)==0x20494249 > > - ( > > - ; high signature match > > - if Data.Long(a:&offset+4)==0x54535953 > > - ( > > - ; less than 4GB? > > - if Data.Long(a:&offset+0x0c)==0 > > - ( > > - ; less than top of ram? > > - if Data.Long(a:&offset+8)<&TopOfRam > > - ( > > - return Data.Long(a:&offset+8) > > - ) > > - ) > > - ) > > - ) > > - > > - if &offset<0x400000 > > - ( > > - return 0 > > - ) > > - &offset=&offset-0x400000 > > - ) > > - > > - return 0 > > - > > - > > FindDebugInfo: > > LOCAL &SystemTable &CfgTableEntries &ConfigTable &i &offset &dbghdr &dbgentries &dbgptr &dbginfo &loadedimg > > ENTRY &SystemTable > > - print "FindDebugInfo" > > - > > &dbgentries=0 > > - &CfgTableEntries=Data.Long(a:&SystemTable+0x40) > > - &ConfigTable=Data.Long(a:&SystemTable+0x44) > > + &CfgTableEntries=Data.Long(a:&SystemTable+0x68) > > + &ConfigTable=Data.Long(a:&SystemTable+0x70) > > print "config table is at &ConfigTable (&CfgTableEntries entries)" > > @@ -82,7 +25,7 @@ FindDebugInfo: > > &i=0 > > while &i<&CfgTableEntries > > ( > > - &offset=&ConfigTable+(&i*0x14) > > + &offset=&ConfigTable+(&i*0x18) > > if Data.Long(a:&offset)==0x49152E77 > > ( > > if Data.Long(a:&offset+4)==0x47641ADA > > @@ -120,8 +63,10 @@ FindDebugInfo: > > ( > > if Data.Long(a:&dbginfo)==1 ; normal debug info type > > ( > > - &loadedimg=Data.Long(a:&dbginfo+4) > > - do EfiProcessPeImage Data.Long(a:&loadedimg+0x20) > > + &loadedimg=Data.Long(a:&dbginfo+8) > > + &imagebaseptr=&loadedimg+0x40 > > + &imagebase=Data.Long(a:&imagebaseptr) > > + do ~~~~/EfiProcessPeImage.cmm "&imagebase" > > ) > > ) > > &i=&i+1 > > diff --git a/EmbeddedPkg/Scripts/LauterbachT32/EfiProcessPeImage.cmm b/EmbeddedPkg/Scripts/LauterbachT32/EfiProcessPeImage.cmm > > index c3aab9d06a47..b0d97eec71b0 100644 > > --- a/EmbeddedPkg/Scripts/LauterbachT32/EfiProcessPeImage.cmm > > +++ b/EmbeddedPkg/Scripts/LauterbachT32/EfiProcessPeImage.cmm > > @@ -1,4 +1,5 @@ > > ; > > +; Copyright (c) 2024, Ampere Computing LLC. All rights reserved.
> > ; Copyright (c) 2011, Hewlett-Packard Company. All rights reserved.
> > ; > > ; SPDX-License-Identifier: BSD-2-Clause-Patent > > @@ -10,11 +11,11 @@ > > &imgstart=&imgstart > > print "PE32 image found at &imgstart" > > - ; offset from dos hdr to PE file hdr > > + ; offset from dos hdr to PE file hdr (i.e. 'PE\0\0' signature) > > &filehdrstart=&imgstart+Data.Long(c:&imgstart+0x3C) > > ; offset to debug dir in PE hdrs > > - &debugdirentryrva=Data.Long(c:&filehdrstart+0xA8) > > + &debugdirentryrva=Data.Long(c:&imgstart+0xf10) > > if &debugdirentryrva==0 > > ( > > print "no debug dir for image at &imgstart" > > @@ -62,7 +63,7 @@ > > &elfbase=&baseofdata; > > ) > > - print "found path &elfpath" > > + print "found path &elfpath with address &elfbase" > > ON ERROR GOSUB > > return > > data.load.elf &elfpath &elfbase /NOCODE /NOCLEAR > > diff --git a/EmbeddedPkg/Scripts/LauterbachT32/Readme.md b/EmbeddedPkg/Scripts/LauterbachT32/Readme.md > > index 51d2c8da5405..c30ec20a3d96 100644 > > --- a/EmbeddedPkg/Scripts/LauterbachT32/Readme.md > > +++ b/EmbeddedPkg/Scripts/LauterbachT32/Readme.md > > @@ -1,10 +1,10 @@ > > # DXE Phase Debug > > -Update the memsize variable in EfiLoadDxe.cmm for the actual amount of memory > > -available in your system. Allow your system to boot to the point that the DXE > > +Allow your system to boot to the point that the DXE > > core is initialized (so that the System Table and Debug Information table is > > present in memory) and execute this script (using the toolbar button or > > -'do EfiLoadDxe' from the command area). It will scan memory for the debug info > > -table and load modules in it. > > +'do EfiLoadDxe "0xGST_ADDRESS"' from the command area). 'GST_ADDRESS' is the > > +address of the EFI_SYSTEM_TABLE, and can be found by the global `gST`. > > +The script will scan memory for the debug info table and load modules in it. > > # SEC/PEI Phase Debug > > There is no way to autodetect where these images reside so you must pass an -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#115369): https://edk2.groups.io/g/devel/message/115369 Mute This Topic: https://groups.io/mt/104038273/7686176 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io] -=-=-=-=-=-=-=-=-=-=-=-