public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Wu, Hao A" <hao.a.wu@intel.com>
To: "Gao, Zhichao" <zhichao.gao@intel.com>,
	"Philippe Mathieu-Daudé" <philmd@redhat.com>,
	"devel@edk2.groups.io" <devel@edk2.groups.io>
Cc: Bret Barkelew <Bret.Barkelew@microsoft.com>,
	Michael Turner <Michael.Turner@microsoft.com>,
	"Gao, Liming" <liming.gao@intel.com>,
	"Zeng, Star" <star.zeng@intel.com>,
	"Wang, Jian J" <jian.j.wang@intel.com>
Subject: Re: [edk2] [PATCH] MdeModulePkg/CapsulePei: Update the debug code to print 64bit data
Date: Thu, 11 Apr 2019 08:12:00 +0000	[thread overview]
Message-ID: <B80AF82E9BFB8E4FBD8C89DA810C6A093C8BDF70@SHSMSX104.ccr.corp.intel.com> (raw)
In-Reply-To: <3CE959C139B4C44DBEA1810E3AA6F9000B7C1722@SHSMSX101.ccr.corp.intel.com>

> -----Original Message-----
> From: Gao, Zhichao
> Sent: Thursday, April 11, 2019 3:47 PM
> To: Philippe Mathieu-Daudé; devel@edk2.groups.io
> Cc: Bret Barkelew; Michael Turner; Gao, Liming; Zeng, Star; Wu, Hao A; Wang,
> Jian J
> Subject: RE: [edk2] [PATCH] MdeModulePkg/CapsulePei: Update the debug
> code to print 64bit data
> 
> Sorry for missing this email.
> 
> While I change the code, it couldn't pass the Patchcher.py because of the
> 'EFI_D_" version MACRO. So I change all the debug message in this driver.
> Maybe that is a redundant work.

Hello Zhichao,

For this case, you can work out a first patch to replace all the macros
starting with 'EFI_D_' with 'DEBUG_'. And a second patch to address the real
issue.

> 
> Thanks,
> Zhichao
> 
> > -----Original Message-----
> > From: Philippe Mathieu-Daudé [mailto:philmd@redhat.com]
> > Sent: Tuesday, April 2, 2019 11:36 PM
> > To: Gao, Zhichao <zhichao.gao@intel.com>; edk2-devel@lists.01.org
> > Cc: Bret Barkelew <Bret.Barkelew@microsoft.com>; Michael Turner
> > <Michael.Turner@microsoft.com>; Gao, Liming <liming.gao@intel.com>;
> > Zeng, Star <star.zeng@intel.com>
> > Subject: Re: [edk2] [PATCH] MdeModulePkg/CapsulePei: Update the
> debug
> > code to print 64bit data
> >
> > Hi Bret,
> >
> > On 4/2/19 7:50 AM, Zhichao Gao wrote:
> > > From: Bret Barkelew <Bret.Barkelew@microsoft.com>
> > >
> > > REF: https://bugzilla.tianocore.org/show_bug.cgi?id=1677
> > >
> > > For some pointer and UINT64 data, the debug code print with '%x'.
> > > Which would loss the upper 32bit data. So update '%x' to '%lx'
> > > for these data.
> >
> > Some are UINTN. Per Laszlo answer on this thread:
> > https://lists.01.org/pipermail/edk2-devel/2016-September/002093.html
> > for those, casting and changing format is the accepted way.

After a skim of the patch, I think there seems only 2 cases that are
handled in this patch:

1. UINT64
For this one, the change in this patch looks good to me.

2. Pointers
I think we can directly use '%p' for pointers.

If I happen to miss other cases, please do follow the above link to handle
UINTN.


Best Regards,
Hao Wu

> >
> > However this is a change,
> >
> > > Change the DEBUG PrintLevel from EFI_D_ version to DEBUG_ version.
> > > DEBUG_ version is recommended to use.
> >
> > and this is another change.
> >
> > Splitting this patch in 2 would make it more digestable.
> >
> > >
> > > Cc: Jian J Wang <jian.j.wang@intel.com>
> > > Cc: Ray Ni <ray.ni@intel.com>
> > > Cc: Star Zeng <star.zeng@intel.com>
> > > Cc: Liming Gao <liming.gao@intel.com>
> > > Cc: Sean Brogan <sean.brogan@microsoft.com>
> > > Cc: Michael Turner <Michael.Turner@microsoft.com>
> > > Cc: Bret Barkelew <Bret.Barkelew@microsoft.com>
> > > Contributed-under: TianoCore Contribution Agreement 1.1
> > > Signed-off-by: Zhichao Gao <zhichao.gao@intel.com>
> > > ---
> > >  .../CapsulePei/Common/CapsuleCoalesce.c       | 90 +++++++++----------
> > >  .../Universal/CapsulePei/UefiCapsule.c        | 46 +++++-----
> > >  .../Universal/CapsulePei/X64/X64Entry.c       |  2 +-
> > >  3 files changed, 69 insertions(+), 69 deletions(-)
> > >
> > > diff --git
> > > a/MdeModulePkg/Universal/CapsulePei/Common/CapsuleCoalesce.c
> > > b/MdeModulePkg/Universal/CapsulePei/Common/CapsuleCoalesce.c
> > > index 3575a94d0f..2a527054bd 100644
> > > --- a/MdeModulePkg/Universal/CapsulePei/Common/CapsuleCoalesce.c
> > > +++
> b/MdeModulePkg/Universal/CapsulePei/Common/CapsuleCoalesce.c
> > > @@ -258,7 +258,7 @@ ValidateCapsuleByMemoryResource (
> > >    // Sanity Check
> > >    //
> > >    if (Size > MAX_ADDRESS) {
> > > -    DEBUG ((EFI_D_ERROR, "ERROR: Size(0x%lx) > MAX_ADDRESS\n",
> Size));
> > > +    DEBUG ((DEBUG_ERROR, "ERROR: Size(0x%lx) > MAX_ADDRESS\n",
> > > + Size));
> > >      return FALSE;
> > >    }
> > >
> > > @@ -266,7 +266,7 @@ ValidateCapsuleByMemoryResource (
> > >    // Sanity Check
> > >    //
> > >    if (Address > (MAX_ADDRESS - Size)) {
> > > -    DEBUG ((EFI_D_ERROR, "ERROR: Address(0x%lx) > (MAX_ADDRESS -
> > Size(0x%lx))\n", Address, Size));
> > > +    DEBUG ((DEBUG_ERROR, "ERROR: Address(0x%lx) > (MAX_ADDRESS -
> > > + Size(0x%lx))\n", Address, Size));
> > >      return FALSE;
> > >    }
> > >
> > > @@ -280,14 +280,14 @@ ValidateCapsuleByMemoryResource (
> > >    for (Index = 0; MemoryResource[Index].ResourceLength != 0; Index++)
> {
> > >      if ((Address >= MemoryResource[Index].PhysicalStart) &&
> > >          ((Address + Size) <= (MemoryResource[Index].PhysicalStart +
> > MemoryResource[Index].ResourceLength))) {
> > > -      DEBUG ((EFI_D_INFO, "Address(0x%lx) Size(0x%lx) in
> > MemoryResource[0x%x] - Start(0x%lx) Length(0x%lx)\n",
> > > +      DEBUG ((DEBUG_INFO, "Address(0x%lx) Size(0x%lx) in
> > > + MemoryResource[0x%x] - Start(0x%lx) Length(0x%lx)\n",
> > >                            Address, Size,
> > >                            Index, MemoryResource[Index].PhysicalStart,
> > MemoryResource[Index].ResourceLength));
> > >        return TRUE;
> > >      }
> > >    }
> > >
> > > -  DEBUG ((EFI_D_ERROR, "ERROR: Address(0x%lx) Size(0x%lx) not in any
> > > MemoryResource\n", Address, Size));
> > > +  DEBUG ((DEBUG_ERROR, "ERROR: Address(0x%lx) Size(0x%lx) not in
> any
> > > + MemoryResource\n", Address, Size));
> > >    return FALSE;
> > >  }
> > >
> > > @@ -312,7 +312,7 @@ ValidateCapsuleIntegrity (
> > >    UINTN                          CapsuleCount;
> > >    EFI_CAPSULE_BLOCK_DESCRIPTOR   *Ptr;
> > >
> > > -  DEBUG ((EFI_D_INFO, "ValidateCapsuleIntegrity\n"));
> > > +  DEBUG ((DEBUG_INFO, "ValidateCapsuleIntegrity\n"));
> > >
> > >    //
> > >    // Go through the list to look for inconsistencies. Check for:
> > > @@ -333,15 +333,15 @@ ValidateCapsuleIntegrity (
> > >      return NULL;
> > >    }
> > >
> > > -  DEBUG ((EFI_D_INFO, "Ptr - 0x%x\n", Ptr));
> > > -  DEBUG ((EFI_D_INFO, "Ptr->Length - 0x%x\n", Ptr->Length));
> > > -  DEBUG ((EFI_D_INFO, "Ptr->Union - 0x%x\n",
> > > Ptr->Union.ContinuationPointer));
> > > +  DEBUG ((DEBUG_INFO, "Ptr - 0x%lx\n", (UINT64)Ptr));  DEBUG
> > > + ((DEBUG_INFO, "Ptr->Length - 0x%lx\n", Ptr->Length));  DEBUG
> > > + ((DEBUG_INFO, "Ptr->Union - 0x%lx\n",
> > > + Ptr->Union.ContinuationPointer));
> > >    while ((Ptr->Length != 0) || (Ptr->Union.ContinuationPointer !=
> > (EFI_PHYSICAL_ADDRESS) (UINTN) NULL)) {
> > >      //
> > >      // Make sure the descriptor is aligned at UINT64 in memory
> > >      //
> > >      if ((UINTN) Ptr & (sizeof(UINT64) - 1)) {
> > > -      DEBUG ((EFI_D_ERROR, "ERROR: BlockList address failed alignment
> > check\n"));
> > > +      DEBUG ((DEBUG_ERROR, "ERROR: BlockList address failed alignment
> > > + check\n"));
> > >        return NULL;
> > >      }
> > >
> > > @@ -354,9 +354,9 @@ ValidateCapsuleIntegrity (
> > >        if (!ValidateCapsuleByMemoryResource (MemoryResource,
> > (EFI_PHYSICAL_ADDRESS) (UINTN) Ptr, sizeof
> > (EFI_CAPSULE_BLOCK_DESCRIPTOR))) {
> > >          return NULL;
> > >        }
> > > -      DEBUG ((EFI_D_INFO, "Ptr(C) - 0x%x\n", Ptr));
> > > -      DEBUG ((EFI_D_INFO, "Ptr->Length - 0x%x\n", Ptr->Length));
> > > -      DEBUG ((EFI_D_INFO, "Ptr->Union - 0x%x\n", Ptr-
> > >Union.ContinuationPointer));
> > > +      DEBUG ((DEBUG_INFO, "Ptr(C) - 0x%lx\n", (UINT64)Ptr));
> > > +      DEBUG ((DEBUG_INFO, "Ptr->Length - 0x%lx\n", Ptr->Length));
> > > +      DEBUG ((DEBUG_INFO, "Ptr->Union - 0x%lx\n",
> > > + Ptr->Union.ContinuationPointer));
> > >      } else {
> > >        if (!ValidateCapsuleByMemoryResource (MemoryResource, Ptr-
> > >Union.DataBlock, Ptr->Length)) {
> > >          return NULL;
> > > @@ -375,14 +375,14 @@ ValidateCapsuleIntegrity (
> > >          // Sanity check
> > >          //
> > >          if (Ptr->Length < sizeof(EFI_CAPSULE_HEADER)) {
> > > -          DEBUG ((EFI_D_ERROR, "ERROR: Ptr->Length(0x%lx) <
> > sizeof(EFI_CAPSULE_HEADER)\n", Ptr->Length));
> > > +          DEBUG ((DEBUG_ERROR, "ERROR: Ptr->Length(0x%lx) <
> > > + sizeof(EFI_CAPSULE_HEADER)\n", Ptr->Length));
> > >            return NULL;
> > >          }
> > >          //
> > >          // Make sure HeaderSize field is valid
> > >          //
> > >          if (CapsuleHeader->HeaderSize > CapsuleHeader->CapsuleImageSize)
> > {
> > > -          DEBUG ((EFI_D_ERROR, "ERROR: CapsuleHeader-
> >HeaderSize(0x%x) >
> > CapsuleHeader->CapsuleImageSize(0x%x)\n", CapsuleHeader-
> >HeaderSize,
> > CapsuleHeader->CapsuleImageSize));
> > > +          DEBUG ((DEBUG_ERROR, "ERROR:
> > > + CapsuleHeader->HeaderSize(0x%x) >
> > > + CapsuleHeader->CapsuleImageSize(0x%x)\n", CapsuleHeader-
> > >HeaderSize,
> > > + CapsuleHeader->CapsuleImageSize));
> > >            return NULL;
> > >          }
> > >          if (IsCapsuleCorrupted (CapsuleHeader)) { @@ -395,7 +395,7 @@
> > > ValidateCapsuleIntegrity (
> > >        if (CapsuleSize >= Ptr->Length) {
> > >          CapsuleSize = CapsuleSize - Ptr->Length;
> > >        } else {
> > > -        DEBUG ((EFI_D_ERROR, "ERROR: CapsuleSize(0x%lx) < Ptr-
> > >Length(0x%lx)\n", CapsuleSize, Ptr->Length));
> > > +        DEBUG ((DEBUG_ERROR, "ERROR: CapsuleSize(0x%lx) <
> > > + Ptr->Length(0x%lx)\n", CapsuleSize, Ptr->Length));
> > >          //
> > >          // Sanity check
> > >          //
> > > @@ -409,9 +409,9 @@ ValidateCapsuleIntegrity (
> > >        if (!ValidateCapsuleByMemoryResource (MemoryResource,
> > (EFI_PHYSICAL_ADDRESS) (UINTN) Ptr, sizeof
> > (EFI_CAPSULE_BLOCK_DESCRIPTOR))) {
> > >          return NULL;
> > >        }
> > > -      DEBUG ((EFI_D_INFO, "Ptr(B) - 0x%x\n", Ptr));
> > > -      DEBUG ((EFI_D_INFO, "Ptr->Length - 0x%x\n", Ptr->Length));
> > > -      DEBUG ((EFI_D_INFO, "Ptr->Union - 0x%x\n", Ptr-
> > >Union.ContinuationPointer));
> > > +      DEBUG ((DEBUG_INFO, "Ptr(B) - 0x%lx\n", (UINT64)Ptr));
> > > +      DEBUG ((DEBUG_INFO, "Ptr->Length - 0x%lx\n", Ptr->Length));
> > > +      DEBUG ((DEBUG_INFO, "Ptr->Union - 0x%lx\n",
> > > + Ptr->Union.ContinuationPointer));
> > >      }
> > >    }
> > >
> > > @@ -419,7 +419,7 @@ ValidateCapsuleIntegrity (
> > >      //
> > >      // No any capsule is found in BlockList
> > >      //
> > > -    DEBUG ((EFI_D_ERROR, "ERROR: CapsuleCount(0x%x) == 0\n",
> > CapsuleCount));
> > > +    DEBUG ((DEBUG_ERROR, "ERROR: CapsuleCount(0x%x) == 0\n",
> > > + CapsuleCount));
> > >      return NULL;
> > >    }
> > >
> > > @@ -427,7 +427,7 @@ ValidateCapsuleIntegrity (
> > >      //
> > >      // Capsule data is incomplete.
> > >      //
> > > -    DEBUG ((EFI_D_ERROR, "ERROR: CapsuleSize(0x%lx) != 0\n",
> > CapsuleSize));
> > > +    DEBUG ((DEBUG_ERROR, "ERROR: CapsuleSize(0x%lx) != 0\n",
> > > + CapsuleSize));
> > >      return NULL;
> > >    }
> > >
> > > @@ -515,7 +515,7 @@ RelocateBlockDescriptors (
> > >          }
> > >
> > >          CopyMem ((VOID *) RelocBuffer, (VOID *) (UINTN) TempBlockDesc-
> > >Union.DataBlock, (UINTN) TempBlockDesc->Length);
> > > -        DEBUG ((EFI_D_INFO, "Capsule relocate descriptors from/to/size
> > 0x%lX 0x%lX 0x%lX\n", TempBlockDesc->Union.DataBlock,
> > (UINT64)(UINTN)RelocBuffer, TempBlockDesc->Length));
> > > +        DEBUG ((DEBUG_INFO, "Capsule relocate descriptors
> > > + from/to/size  0x%lX 0x%lX 0x%lX\n", TempBlockDesc->Union.DataBlock,
> > > + (UINT64)(UINTN)RelocBuffer, TempBlockDesc->Length));
> > >          TempBlockDesc->Union.DataBlock = (EFI_PHYSICAL_ADDRESS)
> (UINTN)
> > RelocBuffer;
> > >        }
> > >        TempBlockDesc++;
> > > @@ -552,7 +552,7 @@ RelocateBlockDescriptors (
> > >          return NULL;
> > >        }
> > >        CopyMem ((VOID *) RelocBuffer, (VOID *) CurrBlockDescHead,
> > BlockListSize);
> > > -      DEBUG ((EFI_D_INFO, "Capsule reloc descriptor block #2\n"));
> > > +      DEBUG ((DEBUG_INFO, "Capsule reloc descriptor block #2\n"));
> > >        //
> > >        // Point the previous block's next point to this copied version. If
> > >        // the tail pointer is null, then this is the first descriptor block.
> > > @@ -651,7 +651,7 @@ GetCapsuleInfo (
> > >    UINTN                          ThisCapsuleImageSize;
> > >    EFI_CAPSULE_HEADER             *CapsuleHeader;
> > >
> > > -  DEBUG ((EFI_D_INFO, "GetCapsuleInfo enter\n"));
> > > +  DEBUG ((DEBUG_INFO, "GetCapsuleInfo enter\n"));
> > >
> > >    ASSERT (Desc != NULL);
> > >
> > > @@ -673,7 +673,7 @@ GetCapsuleInfo (
> > >        // While here we need check all capsules size.
> > >        //
> > >        if (Desc->Length >= (MAX_ADDRESS - Size)) {
> > > -        DEBUG ((EFI_D_ERROR, "ERROR: Desc->Length(0x%lx) >=
> > (MAX_ADDRESS - Size(0x%x))\n", Desc->Length, Size));
> > > +        DEBUG ((DEBUG_ERROR, "ERROR: Desc->Length(0x%lx) >=
> > > + (MAX_ADDRESS - Size(0x%x))\n", Desc->Length, Size));
> > >          return EFI_OUT_OF_RESOURCES;
> > >        }
> > >        Size += (UINTN) Desc->Length;
> > > @@ -707,7 +707,7 @@ GetCapsuleInfo (
> > >    // If no descriptors, then fail
> > >    //
> > >    if (Count == 0) {
> > > -    DEBUG ((EFI_D_ERROR, "ERROR: Count == 0\n"));
> > > +    DEBUG ((DEBUG_ERROR, "ERROR: Count == 0\n"));
> > >      return EFI_NOT_FOUND;
> > >    }
> > >
> > > @@ -787,7 +787,7 @@ CapsuleTestPatternPreCoalesce (
> > >    UINT32  TestCounter;
> > >    UINT32  TestSize;
> > >
> > > -  DEBUG ((EFI_D_INFO, "CapsuleTestPatternPreCoalesce\n"));
> > > +  DEBUG ((DEBUG_INFO, "CapsuleTestPatternPreCoalesce\n"));
> > >
> > >    //
> > >    // Find first data descriptor
> > > @@ -803,7 +803,7 @@ CapsuleTestPatternPreCoalesce (
> > >    // First one better be long enough to at least hold the test signature
> > >    //
> > >    if (Desc->Length < sizeof (UINT32)) {
> > > -    DEBUG ((EFI_D_INFO, "Capsule test pattern pre-coalesce punted
> > #1\n"));
> > > +    DEBUG ((DEBUG_INFO, "Capsule test pattern pre-coalesce punted
> > > + #1\n"));
> > >      return ;
> > >    }
> > >
> > > @@ -823,13 +823,13 @@ CapsuleTestPatternPreCoalesce (
> > >    TestPtr += 2;
> > >    while (1) {
> > >      if ((TestSize & 0x03) != 0) {
> > > -      DEBUG ((EFI_D_INFO, "Capsule test pattern pre-coalesce punted
> > #2\n"));
> > > +      DEBUG ((DEBUG_INFO, "Capsule test pattern pre-coalesce punted
> > > + #2\n"));
> > >        return ;
> > >      }
> > >
> > >      while (TestSize > 0) {
> > >        if (*TestPtr != TestCounter) {
> > > -        DEBUG ((EFI_D_INFO, "Capsule test pattern pre-coalesce failed data
> > corruption check\n"));
> > > +        DEBUG ((DEBUG_INFO, "Capsule test pattern pre-coalesce failed
> > > + data corruption check\n"));
> > >          return ;
> > >        }
> > >
> > > @@ -873,7 +873,7 @@ BuildCapsuleDescriptors (
> > >    EFI_CAPSULE_BLOCK_DESCRIPTOR     *TempBlock;
> > >    EFI_CAPSULE_BLOCK_DESCRIPTOR     *HeadBlock;
> > >
> > > -  DEBUG ((EFI_D_INFO, "BuildCapsuleDescriptors enter\n"));
> > > +  DEBUG ((DEBUG_INFO, "BuildCapsuleDescriptors enter\n"));
> > >
> > >    LastBlock         = NULL;
> > >    HeadBlock         = NULL;
> > > @@ -904,7 +904,7 @@ BuildCapsuleDescriptors (
> > >          }
> > >        }
> > >      } else {
> > > -      DEBUG ((EFI_D_ERROR, "ERROR: BlockListBuffer[Index](0x%lx) <
> > MAX_ADDRESS\n", BlockListBuffer[Index]));
> > > +      DEBUG ((DEBUG_ERROR, "ERROR: BlockListBuffer[Index](0x%lx) <
> > > + MAX_ADDRESS\n", BlockListBuffer[Index]));
> > >      }
> > >      Index ++;
> > >    }
> > > @@ -1022,7 +1022,7 @@ CapsuleDataCoalesce (
> > >    EFI_CAPSULE_BLOCK_DESCRIPTOR   *TempBlockDesc;
> > >    EFI_CAPSULE_BLOCK_DESCRIPTOR   PrivateDataDesc[2];
> > >
> > > -  DEBUG ((EFI_D_INFO, "CapsuleDataCoalesce enter\n"));
> > > +  DEBUG ((DEBUG_INFO, "CapsuleDataCoalesce enter\n"));
> > >
> > >    CapsuleIndex     = 0;
> > >    SizeLeft         = 0;
> > > @@ -1055,15 +1055,15 @@ CapsuleDataCoalesce (
> > >    if (EFI_ERROR (Status)) {
> > >      return Status;
> > >    }
> > > -  DEBUG ((EFI_D_INFO, "CapsuleSize - 0x%x\n", CapsuleSize));
> > > -  DEBUG ((EFI_D_INFO, "CapsuleNumber - 0x%x\n", CapsuleNumber));
> > > -  DEBUG ((EFI_D_INFO, "NumDescriptors - 0x%x\n", NumDescriptors));
> > > +  DEBUG ((DEBUG_INFO, "CapsuleSize - 0x%x\n", CapsuleSize));  DEBUG
> > > + ((DEBUG_INFO, "CapsuleNumber - 0x%x\n", CapsuleNumber));
> >
> > This is confuse CapsuleNumber is declared UINT64 in
> > MdeModulePkg/Universal/CapsulePei/Common/CommonHeader.h and
> we
> > use a UINTN here. Why not keep UINT64 and use "%lx"?
> >
> > > +  DEBUG ((DEBUG_INFO, "NumDescriptors - 0x%x\n", NumDescriptors));
> > >    if ((CapsuleSize == 0) || (NumDescriptors == 0) || (CapsuleNumber ==
> 0))
> > {
> > >      return EFI_NOT_FOUND;
> > >    }
> > >
> > >    if (CapsuleNumber - 1 >= (MAX_ADDRESS - (sizeof
> > (EFI_CAPSULE_PEIM_PRIVATE_DATA)  + sizeof(UINT64))) / sizeof(UINT64))
> {
> > > -    DEBUG ((EFI_D_ERROR, "ERROR: CapsuleNumber - 0x%x\n",
> > CapsuleNumber));
> > > +    DEBUG ((DEBUG_ERROR, "ERROR: CapsuleNumber - 0x%x\n",
> > > + CapsuleNumber));
> > >      return EFI_BUFFER_TOO_SMALL;
> > >    }
> > >
> > > @@ -1093,7 +1093,7 @@ CapsuleDataCoalesce (
> > >    // Sanity check
> > >    //
> > >    if (CapsuleSize >= (MAX_ADDRESS - (sizeof
> > (EFI_CAPSULE_PEIM_PRIVATE_DATA) + (CapsuleNumber - 1) *
> > sizeof(UINT64) + sizeof(UINT64)))) {
> > > -    DEBUG ((EFI_D_ERROR, "ERROR: CapsuleSize - 0x%x\n", CapsuleSize));
> > > +    DEBUG ((DEBUG_ERROR, "ERROR: CapsuleSize - 0x%x\n",
> > > + CapsuleSize));
> > >      return EFI_BUFFER_TOO_SMALL;
> > >    }
> > >    //
> > > @@ -1105,7 +1105,7 @@ CapsuleDataCoalesce (
> > >    // Sanity check
> > >    //
> > >    if (NumDescriptors >= (MAX_ADDRESS /
> > sizeof(EFI_CAPSULE_BLOCK_DESCRIPTOR))) {
> > > -    DEBUG ((EFI_D_ERROR, "ERROR: NumDescriptors - 0x%x\n",
> > NumDescriptors));
> > > +    DEBUG ((DEBUG_ERROR, "ERROR: NumDescriptors - 0x%x\n",
> > > + NumDescriptors));
> > >      return EFI_BUFFER_TOO_SMALL;
> > >    }
> > >    DescriptorsSize  = NumDescriptors * sizeof
> > > (EFI_CAPSULE_BLOCK_DESCRIPTOR); @@ -1113,7 +1113,7 @@
> > CapsuleDataCoalesce (
> > >    // Sanity check
> > >    //
> > >    if (DescriptorsSize >= (MAX_ADDRESS - CapsuleSize)) {
> > > -    DEBUG ((EFI_D_ERROR, "ERROR: DescriptorsSize - 0x%lx, CapsuleSize -
> > 0x%lx\n", (UINT64)DescriptorsSize, (UINT64)CapsuleSize));
> > > +    DEBUG ((DEBUG_ERROR, "ERROR: DescriptorsSize - 0x%lx,
> CapsuleSize
> > > + - 0x%lx\n", (UINT64)DescriptorsSize, (UINT64)CapsuleSize));
> > >      return EFI_BUFFER_TOO_SMALL;
> > >    }
> > >
> > > @@ -1121,10 +1121,10 @@ CapsuleDataCoalesce (
> > >    // Don't go below some min address. If the base is below it,
> > >    // then move it up and adjust the size accordingly.
> > >    //
> > > -  DEBUG ((EFI_D_INFO, "Capsule Memory range from 0x%8X to
> 0x%8X\n",
> > > (UINTN) *MemoryBase, (UINTN)*MemoryBase + *MemorySize));
> > > +  DEBUG ((DEBUG_INFO, "Capsule Memory range from 0x%8X to
> > 0x%8X\n",
> > > + (UINTN) *MemoryBase, (UINTN)*MemoryBase + *MemorySize));
> >
> > Don't you also want to cast to UINT64 and use "%lX" here?
> >
> > >    if ((UINTN)*MemoryBase < (UINTN) MIN_COALESCE_ADDR) {
> > >      if (((UINTN)*MemoryBase + *MemorySize) < (UINTN)
> > MIN_COALESCE_ADDR) {
> > > -      DEBUG ((EFI_D_ERROR, "ERROR: *MemoryBase + *MemorySize -
> > 0x%x\n", (UINTN)*MemoryBase + *MemorySize));
> > > +      DEBUG ((DEBUG_ERROR, "ERROR: *MemoryBase + *MemorySize -
> > > + 0x%x\n", (UINTN)*MemoryBase + *MemorySize));
> > >        return EFI_BUFFER_TOO_SMALL;
> > >      } else {
> > >        *MemorySize = *MemorySize - ((UINTN) MIN_COALESCE_ADDR -
> > > (UINTN) *MemoryBase); @@ -1133,13 +1133,13 @@
> CapsuleDataCoalesce
> > (
> > >    }
> > >
> > >    if (*MemorySize <= (CapsuleSize + DescriptorsSize)) {
> > > -    DEBUG ((EFI_D_ERROR, "ERROR: CapsuleSize + DescriptorsSize -
> > 0x%x\n", CapsuleSize + DescriptorsSize));
> > > +    DEBUG ((DEBUG_ERROR, "ERROR: CapsuleSize + DescriptorsSize -
> > > + 0x%x\n", CapsuleSize + DescriptorsSize));
> > >      return EFI_BUFFER_TOO_SMALL;
> > >    }
> > >
> > >    FreeMemBase = *MemoryBase;
> > >    FreeMemSize = *MemorySize;
> > > -  DEBUG ((EFI_D_INFO, "Capsule Free Memory from 0x%8X to 0x%8X\n",
> > > (UINTN) FreeMemBase, (UINTN) FreeMemBase + FreeMemSize));
> > > +  DEBUG ((DEBUG_INFO, "Capsule Free Memory from 0x%8X to
> 0x%8X\n",
> > > + (UINTN) FreeMemBase, (UINTN) FreeMemBase + FreeMemSize));
> > >
> > >    //
> > >    // Relocate all the block descriptors to low memory to make further
> > > @@ -1205,7 +1205,7 @@ CapsuleDataCoalesce (
> > >          }
> > >
> > >          CopyMem ((VOID *) RelocPtr, (VOID *) (UINTN) TempBlockDesc-
> > >Union.DataBlock, (UINTN) TempBlockDesc->Length);
> > > -        DEBUG ((EFI_D_INFO, "Capsule reloc data block from 0x%8X to
> 0x%8X
> > with size 0x%8X\n",
> > > +        DEBUG ((DEBUG_INFO, "Capsule reloc data block from 0x%8X to
> > > + 0x%8X with size 0x%8X\n",
> > >                  (UINTN) TempBlockDesc->Union.DataBlock, (UINTN)
> > > RelocPtr, (UINTN) TempBlockDesc->Length));
> > >
> > >          TempBlockDesc->Union.DataBlock = (EFI_PHYSICAL_ADDRESS)
> > > (UINTN) RelocPtr; @@ -1256,7 +1256,7 @@ CapsuleDataCoalesce (
> > >        ASSERT (CurrentBlockDesc->Length <= SizeLeft);
> > >
> > >        CopyMem ((VOID *) DestPtr, (VOID *) (UINTN) (CurrentBlockDesc-
> > >Union.DataBlock), (UINTN)CurrentBlockDesc->Length);
> > > -      DEBUG ((EFI_D_INFO, "Capsule coalesce block no.0x%lX from 0x%lX
> to
> > 0x%lX with size 0x%lX\n",(UINT64)CapsuleTimes,
> > > +      DEBUG ((DEBUG_INFO, "Capsule coalesce block no.0x%lX from 0x%lX
> > > + to 0x%lX with size 0x%lX\n",(UINT64)CapsuleTimes,
> > >               CurrentBlockDesc->Union.DataBlock, (UINT64)(UINTN)DestPtr,
> > CurrentBlockDesc->Length));
> > >        DestPtr += CurrentBlockDesc->Length;
> > >        SizeLeft -= CurrentBlockDesc->Length; diff --git
> > > a/MdeModulePkg/Universal/CapsulePei/UefiCapsule.c
> > > b/MdeModulePkg/Universal/CapsulePei/UefiCapsule.c
> > > index 1131094c4f..f5ec1c20ec 100644
> > > --- a/MdeModulePkg/Universal/CapsulePei/UefiCapsule.c
> > > +++ b/MdeModulePkg/Universal/CapsulePei/UefiCapsule.c
> > > @@ -427,7 +427,7 @@ ModeSwitch (
> > >      if (ReservedRangeEnd < MemoryEnd64) {
> > >        MemoryBase64 = ReservedRangeEnd;
> > >      } else {
> > > -      DEBUG ((EFI_D_ERROR, "Memory is not enough to process
> > capsule!\n"));
> > > +      DEBUG ((DEBUG_ERROR, "Memory is not enough to process
> > > + capsule!\n"));
> > >        return EFI_OUT_OF_RESOURCES;
> > >      }
> > >    } else if (ReservedRangeBase < MemoryEnd64) { @@ -525,7 +525,7 @@
> > > FindCapsuleCoalesceImage (
> > >                             &AuthenticationState
> > >                             );
> > >        if (EFI_ERROR (Status)) {
> > > -        DEBUG ((EFI_D_ERROR, "Unable to find PE32 section in CapsuleX64
> > image ffs %r!\n", Status));
> > > +        DEBUG ((DEBUG_ERROR, "Unable to find PE32 section in
> > > + CapsuleX64 image ffs %r!\n", Status));
> > >          return Status;
> > >        }
> > >        *CoalesceImageMachineType = PeCoffLoaderGetMachineType
> ((VOID
> > > *) (UINTN) CoalesceImageAddress); @@ -574,7 +574,7 @@
> > GetLongModeContext (
> > >                                    LongModeBuffer
> > >                                    );
> > >    if (EFI_ERROR (Status)) {
> > > -    DEBUG (( EFI_D_ERROR, "Error Get LongModeBuffer variable %r!\n",
> > Status));
> > > +    DEBUG (( DEBUG_ERROR, "Error Get LongModeBuffer variable %r!\n",
> > > + Status));
> > >    }
> > >    return Status;
> > >  }
> > > @@ -734,7 +734,7 @@ BuildMemoryResourceDescriptor (
> > >    }
> > >
> > >    if (Index == 0) {
> > > -    DEBUG ((EFI_D_INFO | EFI_D_WARN, "No memory resource
> descriptor
> > reported in HOB list before capsule Coalesce\n"));
> > > +    DEBUG ((DEBUG_INFO | DEBUG_WARN, "No memory resource
> > descriptor
> > > + reported in HOB list before capsule Coalesce\n"));
> > >  #if defined (MDE_CPU_IA32) || defined (MDE_CPU_X64)
> > >      //
> > >      // Allocate memory to hold memory resource descriptor, @@ -746,7
> > > +746,7 @@ BuildMemoryResourceDescriptor (
> > >
> > >      MemoryResource[0].PhysicalStart = 0;
> > >      MemoryResource[0].ResourceLength = LShiftU64 (1,
> > GetPhysicalAddressBits ());
> > > -    DEBUG ((EFI_D_INFO, "MemoryResource[0x0] - Start(0x%0lx)
> > Length(0x%0lx)\n",
> > > +    DEBUG ((DEBUG_INFO, "MemoryResource[0x0] - Start(0x%0lx)
> > > + Length(0x%0lx)\n",
> > >                          MemoryResource[0x0].PhysicalStart,
> > MemoryResource[0x0].ResourceLength));
> > >      return MemoryResource;
> > >  #else
> > > @@ -770,7 +770,7 @@ BuildMemoryResourceDescriptor (
> > >    while (Hob.Raw != NULL) {
> > >      ResourceDescriptor = (EFI_HOB_RESOURCE_DESCRIPTOR *) Hob.Raw;
> > >      if (ResourceDescriptor->ResourceType ==
> > EFI_RESOURCE_SYSTEM_MEMORY) {
> > > -      DEBUG ((EFI_D_INFO, "MemoryResource[0x%x] - Start(0x%0lx)
> > Length(0x%0lx)\n",
> > > +      DEBUG ((DEBUG_INFO, "MemoryResource[0x%x] - Start(0x%0lx)
> > > + Length(0x%0lx)\n",
> > >                            Index, ResourceDescriptor->PhysicalStart,
> > ResourceDescriptor->ResourceLength));
> > >        MemoryResource[Index].PhysicalStart = ResourceDescriptor-
> > >PhysicalStart;
> > >        MemoryResource[Index].ResourceLength =
> > > ResourceDescriptor->ResourceLength;
> > > @@ -973,7 +973,7 @@ CapsuleCoalesce (
> > >    //
> > >    Status = PeiServicesGetBootMode (&BootMode);
> > >    if (EFI_ERROR (Status) || (BootMode != BOOT_ON_FLASH_UPDATE)) {
> > > -    DEBUG ((EFI_D_ERROR, "Boot mode is not correct for capsule update
> > path.\n"));
> > > +    DEBUG ((DEBUG_ERROR, "Boot mode is not correct for capsule
> update
> > > + path.\n"));
> > >      Status = EFI_NOT_FOUND;
> > >      goto Done;
> > >    }
> > > @@ -1016,14 +1016,14 @@ CapsuleCoalesce (
> > >        //
> > >        // There is no capsule variables, quit
> > >        //
> > > -      DEBUG ((EFI_D_INFO,"Capsule variable Index = %d\n", Index));
> > > +      DEBUG ((DEBUG_INFO,"Capsule variable Index = %d\n", Index));
> > >        break;
> > >      }
> > >      VariableCount++;
> > >      Index++;
> > >    }
> > >
> > > -  DEBUG ((EFI_D_INFO,"Capsule variable count = %d\n",
> > > VariableCount));
> > > +  DEBUG ((DEBUG_INFO,"Capsule variable count = %d\n",
> > > + VariableCount));
> > >
> > >    //
> > >    // The last entry is the end flag.
> > > @@ -1034,7 +1034,7 @@ CapsuleCoalesce (
> > >               );
> > >
> > >    if (Status != EFI_SUCCESS) {
> > > -    DEBUG ((EFI_D_ERROR, "AllocatePages Failed!, Status = %x\n",
> Status));
> > > +    DEBUG ((DEBUG_ERROR, "AllocatePages Failed!, Status = %x\n",
> > > + Status));
> > >      goto Done;
> > >    }
> > >
> > > @@ -1046,7 +1046,7 @@ CapsuleCoalesce (
> > >    //
> > >    Status = GetCapsuleDescriptors (VariableArrayAddress);
> > >    if (EFI_ERROR (Status)) {
> > > -    DEBUG ((EFI_D_ERROR, "Fail to find capsule variables.\n"));
> > > +    DEBUG ((DEBUG_ERROR, "Fail to find capsule variables.\n"));
> > >      goto Done;
> > >    }
> > >
> > > @@ -1064,14 +1064,14 @@ CapsuleCoalesce (
> > >      CoalesceImageEntryPoint = 0;
> > >      Status = GetLongModeContext (&LongModeBuffer);
> > >      if (EFI_ERROR (Status)) {
> > > -      DEBUG ((EFI_D_ERROR, "Fail to find the variable for long mode
> > context!\n"));
> > > +      DEBUG ((DEBUG_ERROR, "Fail to find the variable for long mode
> > > + context!\n"));
> > >        Status = EFI_NOT_FOUND;
> > >        goto Done;
> > >      }
> > >
> > >      Status = FindCapsuleCoalesceImage (&CoalesceImageEntryPoint,
> > &CoalesceImageMachineType);
> > >      if ((EFI_ERROR (Status)) || (CoalesceImageMachineType !=
> > EFI_IMAGE_MACHINE_X64)) {
> > > -      DEBUG ((EFI_D_ERROR, "Fail to find CapsuleX64 module in FV!\n"));
> > > +      DEBUG ((DEBUG_ERROR, "Fail to find CapsuleX64 module in
> > > + FV!\n"));
> > >        Status = EFI_NOT_FOUND;
> > >        goto Done;
> > >      }
> > > @@ -1091,14 +1091,14 @@ CapsuleCoalesce (
> > >    Status = CapsuleDataCoalesce (PeiServices, (EFI_PHYSICAL_ADDRESS
> > > *)(UINTN)VariableArrayAddress, MemoryResource, MemoryBase,
> > > MemorySize);  #endif
> > >
> > > -  DEBUG ((EFI_D_INFO, "Capsule Coalesce Status = %r!\n", Status));
> > > +  DEBUG ((DEBUG_INFO, "Capsule Coalesce Status = %r!\n", Status));
> > >
> > >    if (Status == EFI_BUFFER_TOO_SMALL) {
> > > -    DEBUG ((EFI_D_ERROR, "There is not enough memory to process
> > capsule!\n"));
> > > +    DEBUG ((DEBUG_ERROR, "There is not enough memory to process
> > > + capsule!\n"));
> > >    }
> > >
> > >    if (Status == EFI_NOT_FOUND) {
> > > -    DEBUG ((EFI_D_ERROR, "Fail to parse capsule descriptor in
> > memory!\n"));
> > > +    DEBUG ((DEBUG_ERROR, "Fail to parse capsule descriptor in
> > > + memory!\n"));
> > >      REPORT_STATUS_CODE (
> > >        EFI_ERROR_CODE | EFI_ERROR_MAJOR,
> > >        (EFI_SOFTWARE_PEI_MODULE |
> > > EFI_SW_PEI_EC_INVALID_CAPSULE_DESCRIPTOR)
> > > @@ -1163,7 +1163,7 @@ CapsuleTestPattern (
> > >    //
> > >    if (*TestPtr == 0x54534554) {
> > >      RetValue = TRUE;
> > > -    DEBUG ((EFI_D_INFO, "Capsule test pattern mode activated...\n"));
> > > +    DEBUG ((DEBUG_INFO, "Capsule test pattern mode activated...\n"));
> > >      TestSize = TestPtr[1] / sizeof (UINT32);
> > >      //
> > >      // Skip over the signature and the size fields in the pattern
> > > data header @@ -1172,7 +1172,7 @@ CapsuleTestPattern (
> > >      TestCounter = 0;
> > >      while (TestSize > 0) {
> > >        if (*TestPtr != TestCounter) {
> > > -        DEBUG ((EFI_D_INFO, "Capsule test pattern mode FAILED:
> > BaseAddr/FailAddr 0x%X 0x%X\n",
> > (UINT32)(UINTN)(EFI_CAPSULE_PEIM_PRIVATE_DATA *)CapsuleBase,
> > (UINT32)(UINTN)TestPtr));
> > > +        DEBUG ((DEBUG_INFO, "Capsule test pattern mode FAILED:
> > > + BaseAddr/FailAddr 0x%X 0x%X\n",
> > > + (UINT32)(UINTN)(EFI_CAPSULE_PEIM_PRIVATE_DATA *)CapsuleBase,
> > > + (UINT32)(UINTN)TestPtr));
> > >          return TRUE;
> > >        }
> > >
> > > @@ -1181,7 +1181,7 @@ CapsuleTestPattern (
> > >        TestSize--;
> > >      }
> > >
> > > -    DEBUG ((EFI_D_INFO, "Capsule test pattern mode SUCCESS\n"));
> > > +    DEBUG ((DEBUG_INFO, "Capsule test pattern mode SUCCESS\n"));
> > >    }
> > >
> > >    return RetValue;
> > > @@ -1226,11 +1226,11 @@ CreateState (
> > >      return EFI_VOLUME_CORRUPTED;
> > >    }
> > >    if (PrivateData->CapsuleAllImageSize >= MAX_ADDRESS) {
> > > -    DEBUG ((EFI_D_ERROR, "CapsuleAllImageSize too big - 0x%lx\n",
> > PrivateData->CapsuleAllImageSize));
> > > +    DEBUG ((DEBUG_ERROR, "CapsuleAllImageSize too big - 0x%lx\n",
> > > + PrivateData->CapsuleAllImageSize));
> > >      return EFI_OUT_OF_RESOURCES;
> > >    }
> > >    if (PrivateData->CapsuleNumber >= MAX_ADDRESS) {
> > > -    DEBUG ((EFI_D_ERROR, "CapsuleNumber too big - 0x%lx\n",
> > PrivateData->CapsuleNumber));
> > > +    DEBUG ((DEBUG_ERROR, "CapsuleNumber too big - 0x%lx\n",
> > > + PrivateData->CapsuleNumber));
> > >      return EFI_OUT_OF_RESOURCES;
> > >    }
> > >    //
> > > @@ -1248,13 +1248,13 @@ CreateState (
> > >               );
> > >
> > >    if (Status != EFI_SUCCESS) {
> > > -    DEBUG ((EFI_D_ERROR, "AllocatePages Failed!\n"));
> > > +    DEBUG ((DEBUG_ERROR, "AllocatePages Failed!\n"));
> > >      return Status;
> > >    }
> > >    //
> > >    // Copy to our new buffer for DXE
> > >    //
> > > -  DEBUG ((EFI_D_INFO, "Capsule copy from 0x%8X to 0x%8X with size
> > > 0x%8X\n", (UINTN)((UINT8 *)PrivateData +
> > > sizeof(EFI_CAPSULE_PEIM_PRIVATE_DATA) + (CapsuleNumber - 1) *
> > > sizeof(UINT64)), (UINTN) NewBuffer, Size));
> > > +  DEBUG ((DEBUG_INFO, "Capsule copy from 0x%8X to 0x%8X with size
> > > + 0x%8X\n", (UINTN)((UINT8 *)PrivateData +
> > > + sizeof(EFI_CAPSULE_PEIM_PRIVATE_DATA) + (CapsuleNumber - 1) *
> > > + sizeof(UINT64)), (UINTN) NewBuffer, Size));
> > >    CopyMem ((VOID *) (UINTN) NewBuffer, (VOID *) (UINTN) ((UINT8
> > *)PrivateData + sizeof(EFI_CAPSULE_PEIM_PRIVATE_DATA) +
> > (CapsuleNumber - 1) * sizeof(UINT64)), Size);
> > >    //
> > >    // Check for test data pattern. If it is the test pattern, then
> > > we'll diff --git a/MdeModulePkg/Universal/CapsulePei/X64/X64Entry.c
> > > b/MdeModulePkg/Universal/CapsulePei/X64/X64Entry.c
> > > index 40b7095194..2c309990fb 100644
> > > --- a/MdeModulePkg/Universal/CapsulePei/X64/X64Entry.c
> > > +++ b/MdeModulePkg/Universal/CapsulePei/X64/X64Entry.c
> > > @@ -174,7 +174,7 @@ PageFaultHandler (
> > >    AddressEncMask = PageFaultContext->AddressEncMask;
> > >
> > >    PFAddress = AsmReadCr2 ();
> > > -  DEBUG ((EFI_D_ERROR, "CapsuleX64 - PageFaultHandler: Cr2 - %lx\n",
> > > PFAddress));
> > > +  DEBUG ((DEBUG_ERROR, "CapsuleX64 - PageFaultHandler: Cr2 - %lx\n",
> > > + PFAddress));
> > >
> > >    if (PFAddress >= PhyMask + SIZE_4KB) {
> > >      return PageFaultContext->OriginalHandler;
> > >

  reply	other threads:[~2019-04-11  8:12 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-04-02  5:50 [PATCH] MdeModulePkg/CapsulePei: Update the debug code to print 64bit data Zhichao Gao
2019-04-02 15:35 ` Philippe Mathieu-Daudé
2019-04-11  7:47   ` [edk2] " Gao, Zhichao
2019-04-11  8:12     ` Wu, Hao A [this message]
2019-04-11  9:33       ` Gao, Zhichao
2019-04-11 10:33         ` [edk2-devel] " Philippe Mathieu-Daudé
2019-04-17  0:26           ` Gao, Zhichao
2019-04-17 13:33             ` Laszlo Ersek
2019-04-18  0:16               ` Gao, Zhichao
2019-04-11  7:20 ` Gao, Zhichao

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-list from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=B80AF82E9BFB8E4FBD8C89DA810C6A093C8BDF70@SHSMSX104.ccr.corp.intel.com \
    --to=devel@edk2.groups.io \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox