Hello,

My local test shows that the results between the old (SourceLevelDebugPkg) & 
new (MdePkg) CRC16 implementation are different:

UINT8  Array[16] = {1,2,3,4,5,6,7,8,8,7,6,5,4,3,2,1};
UINT16 a, b;    
a = CalculateCrc16New(Array, sizeof(Array), 0xFFFF);
b = CalculateCrc16Old(Array, sizeof(Array), 0xFFFF);

Result:
a = 0x0af5
b = 0x2778

My take is that for the SourceLevelDebugPkg case, the CRC16 result should be 
the same (at BIOS host side). Otherwise, the target side will have issue for 
the CRC check.

Best Regards,
Hao Wu

> -----Original Message-----
> From: Pedro Falcato <pedro.falc...@gmail.com>
> Sent: Sunday, March 27, 2022 8:58 AM
> To: devel@edk2.groups.io
> Cc: Wu, Hao A <hao.a...@intel.com>
> Subject: [PATCH 2/2] SourceLevelDebugPkg/DebugAgent: Delete the CRC16
> implementation
> 
> BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=3871
> 
> Deletes the CRC16 implementation as CalculateCrc16() is being merged into
> BaseLib.
> 
> Cc: Hao A Wu <hao.a...@intel.com>
> Signed-off-by: Pedro Falcato <pedro.falc...@gmail.com>
> ---
>  .../DebugAgent/DebugAgentCommon/DebugAgent.c  | 35 -------------------
>  1 file changed, 35 deletions(-)
> 
> diff --git
> a/SourceLevelDebugPkg/Library/DebugAgent/DebugAgentCommon/DebugAgen
> t.c
> b/SourceLevelDebugPkg/Library/DebugAgent/DebugAgentCommon/DebugAgen
> t.c
> index a1e61a6ef90e..62c6a235d425 100644
> ---
> a/SourceLevelDebugPkg/Library/DebugAgent/DebugAgentCommon/DebugAgen
> t.c
> +++
> b/SourceLevelDebugPkg/Library/DebugAgent/DebugAgentCommon/DebugAgen
> t
> +++ .c
> @@ -126,41 +126,6 @@ GLOBAL_REMOVE_IF_UNREFERENCED
> EFI_VECTOR_HANDOFF_INFO  mVectorHandoffInfoDebugAg
> 
>  GLOBAL_REMOVE_IF_UNREFERENCED UINTN  mVectorHandoffInfoCount =
> sizeof (mVectorHandoffInfoDebugAgent) / sizeof
> (EFI_VECTOR_HANDOFF_INFO);
> 
> -/**
> -  Calculate CRC16 for target data.
> -
> -  @param[in]  Data              The target data.
> -  @param[in]  DataSize          The target data size.
> -  @param[in]  Crc               Initial CRC.
> -
> -  @return UINT16     The CRC16 value.
> -
> -**/
> -UINT16
> -CalculateCrc16 (
> -  IN UINT8   *Data,
> -  IN UINTN   DataSize,
> -  IN UINT16  Crc
> -  )
> -{
> -  UINTN  Index;
> -  UINTN  BitIndex;
> -
> -  for (Index = 0; Index < DataSize; Index++) {
> -    Crc ^= (UINT16)Data[Index];
> -    for (BitIndex = 0; BitIndex < 8; BitIndex++) {
> -      if ((Crc & 0x8000) != 0) {
> -        Crc <<= 1;
> -        Crc  ^= 0x1021;
> -      } else {
> -        Crc <<= 1;
> -      }
> -    }
> -  }
> -
> -  return Crc;
> -}
> -
>  /**
>    Read IDT entry to check if IDT entries are setup by Debug Agent.
> 
> --
> 2.35.1



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#88079): https://edk2.groups.io/g/devel/message/88079
Mute This Topic: https://groups.io/mt/90054844/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-


Reply via email to