public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Zeng, Star" <star.zeng@intel.com>
To: Ard Biesheuvel <ard.biesheuvel@linaro.org>,
	Julien Grall <julien.grall@linaro.org>
Cc: "edk2-devel@lists.01.org" <edk2-devel@lists.01.org>,
	Laszlo Ersek <lersek@redhat.com>,
	star.zeng@intel.com
Subject: Re: [PATCH V2 10/15] ArmVirtXen: Use merged variable driver for emulated NV mode
Date: Wed, 23 Jan 2019 09:41:52 +0800	[thread overview]
Message-ID: <308fdc60-d9ba-4852-31da-c18cbcd22ebf@intel.com> (raw)
In-Reply-To: <806a1c89-90cd-84f0-5bd8-26b351f59556@intel.com>

Hi Julien,

On 2019/1/22 12:30, Zeng, Star wrote:
> Hi,
> 
> On 2019/1/22 3:40, Ard Biesheuvel wrote:
>> On Mon, 21 Jan 2019 at 14:36, Julien Grall <julien.grall@linaro.org> 
>> wrote:
>>>
>>> Hi,
>>>
>>> On 21/01/2019 10:46, Zeng, Star wrote:
>>>> On 2019/1/18 2:59, Julien Grall wrote:
>>>> I saw the discussion at
>>>> https://lists.01.org/pipermail/edk2-devel/2019-January/035405.html. 
>>>> Fortunately,
>>>> it has been fixed.
>>>> So I did rebase for the code.
>>>> Repo: git@github.com:lzeng14/edk2.git
>>>> Branch: MergedVariableDriver_EmuNvMode_V3_rebased
>>>
>>> I was about to ask a branch as there were conflicts in the rebase.
>>> Thank you for providing the branch!
>>>
>>>>
>>>> If you can help have a quick test, that will be very helpful. :)
>>>
>>> With your series applied, EDK2 is crashing while the Linux EFI stub
>>> is running. See the log below.
>>>
>>> My knowledge of EDK2 is quite limited, so I am not entirely where to
>>> look at. I am happy to help debugging if you provide guidance.
> 
> Thanks for the test. Fortunately, we could catch this before the patch 
> is pushed. :)
> 
>>>
>>
>> Hi Julien,
>>
>> Could you try the patch below please?
>>
>> diff --git a/MdeModulePkg/Universal/Variable/RuntimeDxe/VariableDxe.c
>> b/MdeModulePkg/Universal/Variable/RuntimeDxe/VariableDxe.c
>> index a8bb9cf25ebd..adaf6ccb48b0 100644
>> --- a/MdeModulePkg/Universal/Variable/RuntimeDxe/VariableDxe.c
>> +++ b/MdeModulePkg/Universal/Variable/RuntimeDxe/VariableDxe.c
>> @@ -236,14 +236,16 @@ VariableClassAddressChangeEvent (
>>   {
>>     UINTN          Index;
>>
>> -  EfiConvertPointer (0x0, (VOID **)
>> &mVariableModuleGlobal->FvbInstance->GetBlockSize);
>> -  EfiConvertPointer (0x0, (VOID **)
>> &mVariableModuleGlobal->FvbInstance->GetPhysicalAddress);
>> -  EfiConvertPointer (0x0, (VOID **)
>> &mVariableModuleGlobal->FvbInstance->GetAttributes);
>> -  EfiConvertPointer (0x0, (VOID **)
>> &mVariableModuleGlobal->FvbInstance->SetAttributes);
>> -  EfiConvertPointer (0x0, (VOID **) 
>> &mVariableModuleGlobal->FvbInstance->Read);
>> -  EfiConvertPointer (0x0, (VOID **)
>> &mVariableModuleGlobal->FvbInstance->Write);
>> -  EfiConvertPointer (0x0, (VOID **)
>> &mVariableModuleGlobal->FvbInstance->EraseBlocks);
>> -  EfiConvertPointer (0x0, (VOID **) 
>> &mVariableModuleGlobal->FvbInstance);
>> +  if (mVariableModuleGlobal->FvbInstance != NULL) {
>> +    EfiConvertPointer (0x0, (VOID **)
>> &mVariableModuleGlobal->FvbInstance->GetBlockSize);
>> +    EfiConvertPointer (0x0, (VOID **)
>> &mVariableModuleGlobal->FvbInstance->GetPhysicalAddress);
>> +    EfiConvertPointer (0x0, (VOID **)
>> &mVariableModuleGlobal->FvbInstance->GetAttributes);
>> +    EfiConvertPointer (0x0, (VOID **)
>> &mVariableModuleGlobal->FvbInstance->SetAttributes);
>> +    EfiConvertPointer (0x0, (VOID **)
>> &mVariableModuleGlobal->FvbInstance->Read);
>> +    EfiConvertPointer (0x0, (VOID **)
>> &mVariableModuleGlobal->FvbInstance->Write);
>> +    EfiConvertPointer (0x0, (VOID **)
>> &mVariableModuleGlobal->FvbInstance->EraseBlocks);
>> +    EfiConvertPointer (0x0, (VOID **) 
>> &mVariableModuleGlobal->FvbInstance);
>> +  }
>>     EfiConvertPointer (0x0, (VOID **) 
>> &mVariableModuleGlobal->PlatformLangCodes);
>>     EfiConvertPointer (0x0, (VOID **) &mVariableModuleGlobal->LangCodes);
>>     EfiConvertPointer (0x0, (VOID **) 
>> &mVariableModuleGlobal->PlatformLang);
> 
> Thanks Ard. I integrated it into the patch 10 of V4.
> Repo: git@github.com:lzeng14/edk2.git
> Branch: MergedVariableDriver_EmuNvMode_V4
> 
> Julien, could you help take a try?

Sorry for a little push. Are you able to have a quick try? :)


Thanks,
Star

> 
> 
> Thanks,
> Star
> 
>>
>>
>>
>>
>>
>>> Press any key to continue...
>>>
>>> [Security] 3rd party image[0] can be loaded after EndOfDxe: 
>>> MemoryMapped(0x2,0x67789000,0x68DF1200).
>>>
>>> InstallProtocolInterface: 5B1B31A1-9562-11D2-8E3F-00A0C969723B 7AB2B040
>>>
>>> Loading driver at 0x00065783000 EntryPoint=0x00066878664
>>>
>>> Loading driver at 0x00065783000 EntryPoint=0x00066878664
>>>
>>> InstallProtocolInterface: BC62157E-3E33-4FEC-9920-2D3B36D750DF 7AA54B18
>>>
>>> ProtectUefiImageCommon - 0x7AB2B040
>>>
>>>    - 0x0000000065783000 - 0x0000000002006000
>>>
>>> SetUefiImageMemoryAttributes - 0x0000000065783000 - 
>>> 0x0000000000001000 (0x0000000000004008)
>>>
>>> SetUefiImageMemoryAttributes - 0x0000000065784000 - 
>>> 0x00000000011CD000 (0x0000000000020008)
>>>
>>> SetUefiImageMemoryAttributes - 0x0000000066951000 - 
>>> 0x0000000000E38000 (0x0000000000004008)
>>>
>>> EFI stub: Booting Linux Kernel...
>>>
>>> EFI stub: Using DTB from configuration table
>>>
>>> EFI stub: Exiting boot services and installing virtual address map...
>>>
>>> XenBus: Set state to 5
>>>
>>> XenBus: Set state to 5, done
>>>
>>> XenPvBlk: waiting backend state 5, current: 4
>>>
>>> XenStore: Watch event 7B036698
>>>
>>> XenBus: Set state to 6
>>>
>>> XenBus: Set state to 6, done
>>>
>>> XenPvBlk: waiting backend state 6, current: 5
>>>
>>> XenStore: Watch event 7B036698
>>>
>>> XenBus: Set state to 1
>>>
>>> XenBus: Set state to 1, done
>>>
>>> Xen GrantTable, removing 38003
>>>
>>> Xen GrantTable, removing 38002
>>>
>>> Xen GrantTable, removing 38001
>>>
>>> Xen GrantTable, removing 38000
>>>
>>> SetUefiImageMemoryAttributes - 0x000000007BE60000 - 
>>> 0x0000000000040000 (0x0000000000000008)
>>>
>>> SetUefiImageMemoryAttributes - 0x0000000078AE0000 - 
>>> 0x0000000000050000 (0x0000000000000008)
>>>
>>> SetUefiImageMemoryAttributes - 0x0000000078A90000 - 
>>> 0x0000000000040000 (0x0000000000000008)
>>>
>>> SetUefiImageMemoryAttributes - 0x00000000789F0000 - 
>>> 0x0000000000040000 (0x0000000000000008)
>>>
>>> SetUefiImageMemoryAttributes - 0x0000000078950000 - 
>>> 0x0000000000040000 (0x0000000000000008)
>>>
>>> SetUefiImageMemoryAttributes - 0x00000000788B0000 - 
>>> 0x0000000000040000 (0x0000000000000008)
>>>
>>>
>>>
>>>
>>>
>>> Synchronous Exception at 0x000000007BE70698
>>>
>>> PC 0x00007BE70698 (0x00007BE60000+0x00010698) [ 0] RuntimeDxe.dll
>>>
>>> PC 0x000078AFECB0 (0x000078AE0000+0x0001ECB0) [ 1] 
>>> VariableRuntimeDxe.dll
>>>
>>> PC 0x000078AF0AC8 (0x000078AE0000+0x00010AC8) [ 1] 
>>> VariableRuntimeDxe.dll
>>>
>>> PC 0x00007BE7094C (0x00007BE60000+0x0001094C) [ 2] RuntimeDxe.dll
>>>
>>> PC 0x00006687E014
>>>
>>> PC 0x00006687C348
>>>
>>> PC 0x000066878680
>>>
>>> PC 0x00007F492BF4 (0x00007F48C000+0x00006BF4) [ 3] DxeCore.dll
>>>
>>> PC 0x0000783E6724
>>>
>>> PC 0x0000783E6A38
>>>
>>> PC 0x0000784BF888
>>>
>>> PC 0x0000784605F8
>>>
>>> PC 0x0000784602A4
>>>
>>> PC 0x00007845C608
>>>
>>> PC 0x00007845C838
>>>
>>> PC 0x00007845C914
>>>
>>> PC 0x00007845C974
>>>
>>> PC 0x0000784DFB48
>>>
>>> PC 0x0000786922D0
>>>
>>> PC 0x00007F492BF4 (0x00007F48C000+0x00006BF4) [ 3] DxeCore.dll
>>>
>>> PC 0x00007875B27C
>>>
>>> PC 0x00007877A2D0
>>>
>>> PC 0x00007F492BF4 (0x00007F48C000+0x00006BF4) [ 3] DxeCore.dll
>>>
>>> PC 0x00007BD1912C (0x00007BD0A000+0x0000F12C) [ 4] BdsDxe.dll
>>>
>>> PC 0x00007BD0BFBC (0x00007BD0A000+0x00001FBC) [ 4] BdsDxe.dll
>>>
>>> PC 0x00007BD0D5C8 (0x00007BD0A000+0x000035C8) [ 4] BdsDxe.dll
>>>
>>> PC 0x00007F48E564 (0x00007F48C000+0x00002564) [ 5] DxeCore.dll
>>>
>>> PC 0x00007F48D598 (0x00007F48C000+0x00001598) [ 5] DxeCore.dll
>>>
>>> PC 0x00007F48D024 (0x00007F48C000+0x00001024) [ 5] DxeCore.dll
>>>
>>> PC 0x0000400895C8
>>>
>>> PC 0x0000400897AC
>>>
>>> PC 0x000040082B4C
>>>
>>> PC 0x000040082C24
>>>
>>>
>>>
>>> [ 0] 
>>> /home/julien/works/edk2/Build/ArmVirtXen-AARCH64/DEBUG_GCC49/AARCH64/MdeModulePkg/Core/RuntimeDxe/RuntimeDxe/DEBUG/RuntimeDxe.dll 
>>>
>>>
>>> [ 1] 
>>> /home/julien/works/edk2/Build/ArmVirtXen-AARCH64/DEBUG_GCC49/AARCH64/MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe/DEBUG/VariableRuntimeDxe.dll 
>>>
>>>
>>> [ 2] 
>>> /home/julien/works/edk2/Build/ArmVirtXen-AARCH64/DEBUG_GCC49/AARCH64/MdeModulePkg/Core/RuntimeDxe/RuntimeDxe/DEBUG/RuntimeDxe.dll 
>>>
>>>
>>> [ 3] 
>>> /home/julien/works/edk2/Build/ArmVirtXen-AARCH64/DEBUG_GCC49/AARCH64/MdeModulePkg/Core/Dxe/DxeMain/DEBUG/DxeCore.dll 
>>>
>>>
>>> [ 4] 
>>> /home/julien/works/edk2/Build/ArmVirtXen-AARCH64/DEBUG_GCC49/AARCH64/MdeModulePkg/Universal/BdsDxe/BdsDxe/DEBUG/BdsDxe.dll 
>>>
>>>
>>> [ 5] 
>>> /home/julien/works/edk2/Build/ArmVirtXen-AARCH64/DEBUG_GCC49/AARCH64/MdeModulePkg/Core/Dxe/DxeMain/DEBUG/DxeCore.dll 
>>>
>>>
>>>
>>>
>>>    X0 0x0000000000000018   X1 0x0000000000000018   X2 
>>> 0x000000007BE7066C   X3 0x000000007BFDD998
>>>
>>>    X4 0x000000007BE707D8   X5 0x0000000000000004   X6 
>>> 0x0000000000000000   X7 0x000000007B036E18
>>>
>>>    X8 0x000000007BFFF608   X9 0x0000000400000000  X10 
>>> 0x000000007B036000  X11 0x000000007BA37FFF
>>>
>>>   X12 0x0000000000000000  X13 0x0000000000000008  X14 
>>> 0x000000007FFFEF5C  X15 0x0000000000000000
>>>
>>>   X16 0x00000000DEADBEEF  X17 0x0000000000000000  X18 
>>> 0x00000000FFFFFFFE  X19 0x000000007BFD0018
>>>
>>>   X20 0x000000007FFFF170  X21 0x000000007FFFF250  X22 
>>> 0x0000000000000000  X23 0x000000007F200000
>>>
>>>   X24 0x000000007AA54918  X25 0x0000000000000078  X26 
>>> 0xFFFFFFFFFFFFFFFF  X27 0x000000007FFFF150
>>>
>>>   X28 0x0000000000000000   FP 0x000000007FFFEFB0   LR 0x0000000078AFECB0
>>>
>>>
>>>
>>>    V0 0x0000000000000000 0000000000000000   V1 0x0000000000000000 
>>> 0000000000000000
>>>
>>>    V2 0x0000000000000000 0000000000000000   V3 0x0000000000000000 
>>> 0000000000000000
>>>
>>>    V4 0x0000000000000000 0000000000000000   V5 0x0000000000000000 
>>> 0000000000000000
>>>
>>>    V6 0x0000000000000000 0000000000000000   V7 0x0000000000000000 
>>> 0000000000000000
>>>
>>>    V8 0x0000000000000000 0000000000000000   V9 0x0000000000000000 
>>> 0000000000000000
>>>
>>>   V10 0x0000000000000000 0000000000000000  V11 0x0000000000000000 
>>> 0000000000000000
>>>
>>>   V12 0x0000000000000000 0000000000000000  V13 0x0000000000000000 
>>> 0000000000000000
>>>
>>>   V14 0x0000000000000000 0000000000000000  V15 0x0000000000000000 
>>> 0000000000000000
>>>
>>>   V16 0x0000000000000000 0000000000000000  V17 0x0000000000000000 
>>> 0000000000000000
>>>
>>>   V18 0x0000000000000000 0000000000000000  V19 0x0000000000000000 
>>> 0000000000000000
>>>
>>>   V20 0x0000000000000000 0000000000000000  V21 0x0000000000000000 
>>> 0000000000000000
>>>
>>>   V22 0x0000000000000000 0000000000000000  V23 0x0000000000000000 
>>> 0000000000000000
>>>
>>>   V24 0x0000000000000000 0000000000000000  V25 0x0000000000000000 
>>> 0000000000000000
>>>
>>>   V26 0x0000000000000000 0000000000000000  V27 0x0000000000000000 
>>> 0000000000000000
>>>
>>>   V28 0x0000000000000000 0000000000000000  V29 0x0000000000000000 
>>> 0000000000000000
>>>
>>>   V30 0x0000000000000000 0000000000000000  V31 0x0000000000000000 
>>> 0000000000000000
>>>
>>>
>>>
>>>    SP 0x000000007FFFEFB0  ELR 0x000000007BE70698  SPSR 0x200000C5  
>>> FPSR 0x00000000
>>>
>>>   ESR 0x96000000          FAR 0x0000000000000018
>>>
>>>
>>>
>>>   ESR : EC 0x25  IL 0x1  ISS 0x00000000
>>>
>>>
>>>
>>> Data abort: Address size fault, zeroth level of translation or 
>>> translation table base register
>>>
>>>
>>>
>>> Stack dump:
>>>
>>>    000007FFFEEB0: 000000007FFFEEE0 0000000000000003 0000000000001000 
>>> 000000007B04EFF8
>>>
>>>    000007FFFEED0: 000000007B04E780 000000030000030C 000000007FFFEF30 
>>> 000000007BCEA25C
>>>
>>>    000007FFFEEF0: 000000007FFFEF70 0000000000000008 0000000000040000 
>>> 00000000788B0000
>>>
>>>    000007FFFEF10: 0000000000000000 000000007FFFB000 0000000000000000 
>>> 000000000000070C
>>>
>>>    000007FFFEF30: 000000007FFFEF90 000000007F4974E4 0000000000000008 
>>> 0000000000040000
>>>
>>>    000007FFFEF50: 00000000788B0000 000000007BCF7008 00000000788B0000 
>>> 006000000000070C
>>>
>>>    000007FFFEF70: 0000000000010000 00000000788B0000 0000000000000000 
>>> 000000000000070C
>>>
>>>    000007FFFEF90: 000000007FFFEFD0 000000007BE70E1C 0000000000000078 
>>> 000000007BFD0018
>>>
>>>> 000007FFFEFB0: 000000007FFFEFF0 0000000078AFECB0 0000000000000018 
>>>> 0000000000000000
>>>
>>>    000007FFFEFD0: 0000000078B109A8 0000000000000000 000000007BFE0000 
>>> 000000007BFDFF18
>>>
>>>    000007FFFEFF0: 000000007FFFF010 0000000078AF0AC8 0000000000000018 
>>> 0000000000000000
>>>
>>>    000007FFFF010: 000000007FFFF040 000000007BE7094C 0000000000000000 
>>> 000000007BFDD998
>>>
>>>    000007FFFF030: 0000000000000000 000000007BFDEA18 000000007FFFF0A0 
>>> 000000006687E014
>>>
>>>    000007FFFF050: 00000000784D4018 0000000100000000 0000000000000030 
>>> 00000000000001E0
>>>
>>>    000007FFFF070: 000000007BFD0018 000000007FFFF170 000000007FFFF250 
>>> 0000000000000000
>>>
>>>    000007FFFF090: 000000007BFDD9F8 000000007BFDDA20 000000007FFFF1B0 
>>> 000000006687C348
>>>
>>> ASSERT [ArmCpuDxe] 
>>> /home/julien/works/edk2/ArmPkg/Library/DefaultExceptionHandlerLib/AArch64/DefaultExceptionHandler.c(279): 
>>> ((BOOLEAN)(0==1))
>>>
>>> Cheers,
>>>
>>> -- 
>>> Julien Grall
>>> _______________________________________________
>>> edk2-devel mailing list
>>> edk2-devel@lists.01.org
>>> https://lists.01.org/mailman/listinfo/edk2-devel



  reply	other threads:[~2019-01-23  1:42 UTC|newest]

Thread overview: 59+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-01-14 15:19 [PATCH V2 00/15] Merge EmuVariable and Real variable driver Star Zeng
2019-01-14 15:19 ` [PATCH V2 01/15] MdeModulePkg Variable: Add some missing changes for 9b18845 Star Zeng
2019-01-15  6:36   ` Wu, Hao A
2019-01-15  8:06   ` Laszlo Ersek
2019-01-14 15:19 ` [PATCH V2 02/15] MdeModulePkg Variable: Abstract InitRealNonVolatileVariableStore Star Zeng
2019-01-15  6:37   ` Wu, Hao A
2019-01-14 15:19 ` [PATCH V2 03/15] MdeModulePkg Variable: Not get NV PCD in VariableWriteServiceInitialize Star Zeng
2019-01-15  5:48   ` Wu, Hao A
2019-01-15  5:53     ` Zeng, Star
2019-01-15  6:37   ` Wang, Jian J
2019-01-15 10:13     ` Zeng, Star
2019-01-14 15:19 ` [PATCH V2 04/15] MdeModulePkg Variable: Abstract VariableWriteServiceInitializeDxe/Smm Star Zeng
2019-01-15  6:37   ` Wu, Hao A
2019-01-15  8:05   ` Wang, Jian J
2019-01-14 15:19 ` [PATCH V2 05/15] MdeModulePkg: Add PcdEmuVariableNvModeEnable in dec Star Zeng
2019-01-15  5:05   ` Wang, Jian J
2019-01-15  5:55     ` Zeng, Star
2019-01-15  6:37   ` Wu, Hao A
2019-01-14 15:19 ` [PATCH V2 06/15] MdeModulePkg Variable: Remove CacheOffset in UpdateVariable() Star Zeng
2019-01-15  6:37   ` Wu, Hao A
2019-01-15  8:04   ` Wang, Jian J
2019-01-15  9:58     ` Laszlo Ersek
2019-01-15 10:10       ` Zeng, Star
2019-01-15  8:15   ` Laszlo Ersek
2019-01-14 15:19 ` [PATCH V2 07/15] MdeModulePkg Variable: type case VolatileBase to UINTN directly Star Zeng
2019-01-15  6:37   ` Wu, Hao A
2019-01-15  8:06   ` Wang, Jian J
2019-01-15  8:18   ` Laszlo Ersek
2019-01-14 15:19 ` [PATCH V2 08/15] MdeModulePkg Variable: Add emulated variable NV mode support Star Zeng
2019-01-15  6:01   ` Wang, Jian J
2019-01-15  6:16     ` Zeng, Star
2019-01-15  9:53       ` Laszlo Ersek
2019-01-15  9:33   ` Laszlo Ersek
2019-01-15  9:52     ` Zeng, Star
2019-01-14 15:19 ` [PATCH V2 09/15] MdeModulePkg VariablePei: Don't check BOOT_IN_RECOVERY_MODE Star Zeng
2019-01-14 15:19 ` [PATCH V2 10/15] ArmVirtXen: Use merged variable driver for emulated NV mode Star Zeng
2019-01-15  9:37   ` Laszlo Ersek
2019-01-16 14:26     ` Julien Grall
2019-01-17  1:26       ` Zeng, Star
2019-01-17 18:59         ` Julien Grall
2019-01-21 10:46           ` Zeng, Star
2019-01-21 13:36             ` Julien Grall
2019-01-21 19:40               ` Ard Biesheuvel
2019-01-22  4:30                 ` Zeng, Star
2019-01-23  1:41                   ` Zeng, Star [this message]
2019-01-23 12:15                     ` Julien Grall
2019-01-23 14:20                       ` Zeng, Star
2019-01-21 21:15               ` Laszlo Ersek
2019-01-21 21:22                 ` Ard Biesheuvel
2019-01-21 21:25                   ` Ard Biesheuvel
2019-01-14 15:19 ` [PATCH V2 11/15] ArmVirtXen: Link VarCheckUefiLib NULL class library instance Star Zeng
2019-01-15  9:39   ` Laszlo Ersek
2019-01-14 15:19 ` [PATCH V2 12/15] BeagleBoardPkg: Use merged variable driver for emulated NV mode Star Zeng
2019-01-14 22:11   ` Leif Lindholm
2019-01-15  1:32     ` Zeng, Star
2019-01-15  9:48       ` Leif Lindholm
2019-01-14 15:19 ` [PATCH V2 13/15] QuarkMin: " Star Zeng
2019-01-14 15:19 ` [PATCH V2 14/15] CorebootPayloadPkg: " Star Zeng
2019-01-14 15:19 ` [PATCH V2 15/15] MdeModulePkg: Remove EmuVariableRuntimeDxe Star Zeng

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=308fdc60-d9ba-4852-31da-c18cbcd22ebf@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