Re: [edk2] [PATCH edk2-platforms v2 36/43] Platform/Hisilicon/D06: Add capsule upgrade support
On 22 August 2018 at 19:42, Leif Lindholm wrote: > On Tue, Aug 14, 2018 at 04:08:56PM +0800, Ming Huang wrote: >> This module support updating the boot CPU firmware only. >> >> Contributed-under: TianoCore Contribution Agreement 1.1 >> Signed-off-by: Ming Huang > > As I said on v1, I have no further comments on this. > Reviewed-by: Leif Lindholm > > Ard may have something to add. > Reviewed-by: Ard BIesheuvel >> --- >> Platform/Hisilicon/D06/D06.dsc >> | 14 >> Platform/Hisilicon/D06/D06.fdf >> | 72 - >> >> Platform/Hisilicon/D06/Drivers/SystemFirmwareDescriptor/SystemFirmwareDescriptor.inf >> | 50 >> >> Platform/Hisilicon/D06/Drivers/SystemFirmwareDescriptor/SystemFirmwareDescriptorPei.c >> | 70 + >> >> Platform/Hisilicon/D06/Capsule/SystemFirmwareUpdateConfig/SystemFirmwareUpdateConfig.ini >> | 46 +++ >> >> Platform/Hisilicon/D06/Drivers/SystemFirmwareDescriptor/SystemFirmwareDescriptor.aslc >> | 81 >> 6 files changed, 332 insertions(+), 1 deletion(-) >> >> diff --git a/Platform/Hisilicon/D06/D06.dsc b/Platform/Hisilicon/D06/D06.dsc >> index 9550e0d497..fad6fcc747 100644 >> --- a/Platform/Hisilicon/D06/D06.dsc >> +++ b/Platform/Hisilicon/D06/D06.dsc >> @@ -121,6 +121,11 @@ >>gHisiTokenSpaceGuid.PcdIsItsSupported|TRUE >>gArmTokenSpaceGuid.PcdArmGicV3WithV2Legacy|FALSE >>gEfiMdeModulePkgTokenSpaceGuid.PcdHiiOsRuntimeSupport|FALSE >> +[PcdsDynamicExDefault.common.DEFAULT] >> + >> gEfiSignedCapsulePkgTokenSpaceGuid.PcdEdkiiSystemFirmwareImageDescriptor|{0x0}|VOID*|0x100 >> + gEfiMdeModulePkgTokenSpaceGuid.PcdSystemFmpCapsuleImageTypeIdGuid|{0x29, >> 0x3d, 0x4b, 0xd3, 0x85, 0x00, 0xb3, 0x4a, 0x8b, 0xe8, 0x84, 0x18, 0x8c, >> 0xc5, 0x04, 0x89} >> + gEfiSignedCapsulePkgTokenSpaceGuid.PcdEdkiiSystemFirmwareFileGuid|{0xcf, >> 0x4f, 0x2e, 0x64, 0xf7, 0x2d, 0x15, 0x44, 0x8b, 0x70, 0xa0, 0x39, 0x09, >> 0xc5, 0x7b, 0x55} >> + >> >> [PcdsFixedAtBuild.common] >>gArmPlatformTokenSpaceGuid.PcdCoreCount|48 >> @@ -266,6 +271,7 @@ >>Platform/Hisilicon/D06/EarlyConfigPeim/EarlyConfigPeimD06.inf >>Silicon/Hisilicon/Drivers/VersionInfoPeim/VersionInfoPeim.inf >> >> + >> Platform/Hisilicon/D06/Drivers/SystemFirmwareDescriptor/SystemFirmwareDescriptor.inf >>MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf { >> >> >> NULL|MdeModulePkg/Library/LzmaCustomDecompressLib/LzmaCustomDecompressLib.inf >> @@ -386,6 +392,8 @@ >>MdeModulePkg/Bus/Pci/SataControllerDxe/SataControllerDxe.inf >>MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AtaAtapiPassThru.inf >>MdeModulePkg/Bus/Ata/AtaBusDxe/AtaBusDxe.inf >> + >> SignedCapsulePkg/Universal/SystemFirmwareUpdate/SystemFirmwareReportDxe.inf >> + MdeModulePkg/Universal/EsrtDxe/EsrtDxe.inf >># >># FAT filesystem + GPT/MBR partitioning >># >> @@ -434,6 +442,12 @@ >>MdeModulePkg/Universal/DisplayEngineDxe/DisplayEngineDxe.inf >>MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf >>MdeModulePkg/Universal/BdsDxe/BdsDxe.inf >> + >> SignedCapsulePkg/Universal/SystemFirmwareUpdate/SystemFirmwareUpdateDxe.inf { >> + >> + >> FmpAuthenticationLib|SecurityPkg/Library/FmpAuthenticationLibPkcs7/FmpAuthenticationLibPkcs7.inf >> + } >> + >> + MdeModulePkg/Application/CapsuleApp/CapsuleApp.inf >> >># >># UEFI application (Shell Embedded Boot Loader) >> diff --git a/Platform/Hisilicon/D06/D06.fdf b/Platform/Hisilicon/D06/D06.fdf >> index 90379b8558..8c3f4f9932 100644 >> --- a/Platform/Hisilicon/D06/D06.fdf >> +++ b/Platform/Hisilicon/D06/D06.fdf >> @@ -308,7 +308,9 @@ READ_LOCK_STATUS = TRUE >>INF MdeModulePkg/Bus/Ata/AtaBusDxe/AtaBusDxe.inf >> >>INF >> Silicon/Hisilicon/Hi1620/Drivers/Pl011DebugSerialPortInitDxe/Pl011DebugSerialPortInitDxe.inf >> - INF MdeModulePkg/Universal/Network/SnpDxe/SnpDxe.inf >> + INF >> SignedCapsulePkg/Universal/SystemFirmwareUpdate/SystemFirmwareReportDxe.inf >> + INF MdeModulePkg/Universal/EsrtDxe/EsrtDxe.inf >> + >># >># Build Shell from latest source code instead of prebuilt binary >># >> @@ -364,11 +366,79 @@ READ_LOCK_STATUS = TRUE >> >>INF MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf >> >> + INF RuleOverride = FMP_IMAGE_DESC >> Platform/Hisilicon/D06/Drivers/SystemFirmwareDescriptor/SystemFirmwareDescriptor.inf >>FILE FV_IMAGE = 9E21FD93-9C72-4c15-8C4B-E77F1DB2D792 { >> SECTION GUIDED EE4E5898-3914-4259-9D6E-DC7BD79403CF PROCESSING_REQUIRED >> = TRUE { >>SECTION FV_IMAGE = FVMAIN >> } >>} >> +[FV.CapsuleDispatchFv] >> +FvAlignment= 16 >> +ERASE_POLARITY = 1 >> +MEMORY_MAPPED = TRUE >> +STICKY_WRITE = TRUE >> +LOCK_CAP = TRUE >> +LOCK_STATUS= TRUE >> +WRITE_DISABLED_CAP = TRUE >> +WRITE_ENABLED_CAP = TRUE >> +WRITE_STATUS = TRUE >> +WRITE_LOCK_CAP = T
Re: [edk2] [PATCH edk2-platforms v2 36/43] Platform/Hisilicon/D06: Add capsule upgrade support
On Tue, Aug 14, 2018 at 04:08:56PM +0800, Ming Huang wrote: > This module support updating the boot CPU firmware only. > > Contributed-under: TianoCore Contribution Agreement 1.1 > Signed-off-by: Ming Huang As I said on v1, I have no further comments on this. Reviewed-by: Leif Lindholm Ard may have something to add. / Leif > --- > Platform/Hisilicon/D06/D06.dsc > | 14 > Platform/Hisilicon/D06/D06.fdf > | 72 - > > Platform/Hisilicon/D06/Drivers/SystemFirmwareDescriptor/SystemFirmwareDescriptor.inf > | 50 > > Platform/Hisilicon/D06/Drivers/SystemFirmwareDescriptor/SystemFirmwareDescriptorPei.c > | 70 + > > Platform/Hisilicon/D06/Capsule/SystemFirmwareUpdateConfig/SystemFirmwareUpdateConfig.ini > | 46 +++ > > Platform/Hisilicon/D06/Drivers/SystemFirmwareDescriptor/SystemFirmwareDescriptor.aslc > | 81 > 6 files changed, 332 insertions(+), 1 deletion(-) > > diff --git a/Platform/Hisilicon/D06/D06.dsc b/Platform/Hisilicon/D06/D06.dsc > index 9550e0d497..fad6fcc747 100644 > --- a/Platform/Hisilicon/D06/D06.dsc > +++ b/Platform/Hisilicon/D06/D06.dsc > @@ -121,6 +121,11 @@ >gHisiTokenSpaceGuid.PcdIsItsSupported|TRUE >gArmTokenSpaceGuid.PcdArmGicV3WithV2Legacy|FALSE >gEfiMdeModulePkgTokenSpaceGuid.PcdHiiOsRuntimeSupport|FALSE > +[PcdsDynamicExDefault.common.DEFAULT] > + > gEfiSignedCapsulePkgTokenSpaceGuid.PcdEdkiiSystemFirmwareImageDescriptor|{0x0}|VOID*|0x100 > + gEfiMdeModulePkgTokenSpaceGuid.PcdSystemFmpCapsuleImageTypeIdGuid|{0x29, > 0x3d, 0x4b, 0xd3, 0x85, 0x00, 0xb3, 0x4a, 0x8b, 0xe8, 0x84, 0x18, 0x8c, 0xc5, > 0x04, 0x89} > + gEfiSignedCapsulePkgTokenSpaceGuid.PcdEdkiiSystemFirmwareFileGuid|{0xcf, > 0x4f, 0x2e, 0x64, 0xf7, 0x2d, 0x15, 0x44, 0x8b, 0x70, 0xa0, 0x39, 0x09, 0xc5, > 0x7b, 0x55} > + > > [PcdsFixedAtBuild.common] >gArmPlatformTokenSpaceGuid.PcdCoreCount|48 > @@ -266,6 +271,7 @@ >Platform/Hisilicon/D06/EarlyConfigPeim/EarlyConfigPeimD06.inf >Silicon/Hisilicon/Drivers/VersionInfoPeim/VersionInfoPeim.inf > > + > Platform/Hisilicon/D06/Drivers/SystemFirmwareDescriptor/SystemFirmwareDescriptor.inf >MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf { > > > NULL|MdeModulePkg/Library/LzmaCustomDecompressLib/LzmaCustomDecompressLib.inf > @@ -386,6 +392,8 @@ >MdeModulePkg/Bus/Pci/SataControllerDxe/SataControllerDxe.inf >MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AtaAtapiPassThru.inf >MdeModulePkg/Bus/Ata/AtaBusDxe/AtaBusDxe.inf > + SignedCapsulePkg/Universal/SystemFirmwareUpdate/SystemFirmwareReportDxe.inf > + MdeModulePkg/Universal/EsrtDxe/EsrtDxe.inf ># ># FAT filesystem + GPT/MBR partitioning ># > @@ -434,6 +442,12 @@ >MdeModulePkg/Universal/DisplayEngineDxe/DisplayEngineDxe.inf >MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf >MdeModulePkg/Universal/BdsDxe/BdsDxe.inf > + > SignedCapsulePkg/Universal/SystemFirmwareUpdate/SystemFirmwareUpdateDxe.inf { > + > + > FmpAuthenticationLib|SecurityPkg/Library/FmpAuthenticationLibPkcs7/FmpAuthenticationLibPkcs7.inf > + } > + > + MdeModulePkg/Application/CapsuleApp/CapsuleApp.inf > ># ># UEFI application (Shell Embedded Boot Loader) > diff --git a/Platform/Hisilicon/D06/D06.fdf b/Platform/Hisilicon/D06/D06.fdf > index 90379b8558..8c3f4f9932 100644 > --- a/Platform/Hisilicon/D06/D06.fdf > +++ b/Platform/Hisilicon/D06/D06.fdf > @@ -308,7 +308,9 @@ READ_LOCK_STATUS = TRUE >INF MdeModulePkg/Bus/Ata/AtaBusDxe/AtaBusDxe.inf > >INF > Silicon/Hisilicon/Hi1620/Drivers/Pl011DebugSerialPortInitDxe/Pl011DebugSerialPortInitDxe.inf > - INF MdeModulePkg/Universal/Network/SnpDxe/SnpDxe.inf > + INF > SignedCapsulePkg/Universal/SystemFirmwareUpdate/SystemFirmwareReportDxe.inf > + INF MdeModulePkg/Universal/EsrtDxe/EsrtDxe.inf > + ># ># Build Shell from latest source code instead of prebuilt binary ># > @@ -364,11 +366,79 @@ READ_LOCK_STATUS = TRUE > >INF MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf > > + INF RuleOverride = FMP_IMAGE_DESC > Platform/Hisilicon/D06/Drivers/SystemFirmwareDescriptor/SystemFirmwareDescriptor.inf >FILE FV_IMAGE = 9E21FD93-9C72-4c15-8C4B-E77F1DB2D792 { > SECTION GUIDED EE4E5898-3914-4259-9D6E-DC7BD79403CF PROCESSING_REQUIRED > = TRUE { >SECTION FV_IMAGE = FVMAIN > } >} > +[FV.CapsuleDispatchFv] > +FvAlignment= 16 > +ERASE_POLARITY = 1 > +MEMORY_MAPPED = TRUE > +STICKY_WRITE = TRUE > +LOCK_CAP = TRUE > +LOCK_STATUS= TRUE > +WRITE_DISABLED_CAP = TRUE > +WRITE_ENABLED_CAP = TRUE > +WRITE_STATUS = TRUE > +WRITE_LOCK_CAP = TRUE > +WRITE_LOCK_STATUS = TRUE > +READ_DISABLED_CAP = TRUE > +READ_ENABLED_CAP = TRUE > +READ_STATUS= TRUE > +READ_LOCK_CAP = TRUE > +READ_LOCK_STATUS = TRUE > + > + I
[edk2] [PATCH edk2-platforms v2 36/43] Platform/Hisilicon/D06: Add capsule upgrade support
This module support updating the boot CPU firmware only. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Ming Huang --- Platform/Hisilicon/D06/D06.dsc | 14 Platform/Hisilicon/D06/D06.fdf | 72 - Platform/Hisilicon/D06/Drivers/SystemFirmwareDescriptor/SystemFirmwareDescriptor.inf | 50 Platform/Hisilicon/D06/Drivers/SystemFirmwareDescriptor/SystemFirmwareDescriptorPei.c | 70 + Platform/Hisilicon/D06/Capsule/SystemFirmwareUpdateConfig/SystemFirmwareUpdateConfig.ini | 46 +++ Platform/Hisilicon/D06/Drivers/SystemFirmwareDescriptor/SystemFirmwareDescriptor.aslc | 81 6 files changed, 332 insertions(+), 1 deletion(-) diff --git a/Platform/Hisilicon/D06/D06.dsc b/Platform/Hisilicon/D06/D06.dsc index 9550e0d497..fad6fcc747 100644 --- a/Platform/Hisilicon/D06/D06.dsc +++ b/Platform/Hisilicon/D06/D06.dsc @@ -121,6 +121,11 @@ gHisiTokenSpaceGuid.PcdIsItsSupported|TRUE gArmTokenSpaceGuid.PcdArmGicV3WithV2Legacy|FALSE gEfiMdeModulePkgTokenSpaceGuid.PcdHiiOsRuntimeSupport|FALSE +[PcdsDynamicExDefault.common.DEFAULT] + gEfiSignedCapsulePkgTokenSpaceGuid.PcdEdkiiSystemFirmwareImageDescriptor|{0x0}|VOID*|0x100 + gEfiMdeModulePkgTokenSpaceGuid.PcdSystemFmpCapsuleImageTypeIdGuid|{0x29, 0x3d, 0x4b, 0xd3, 0x85, 0x00, 0xb3, 0x4a, 0x8b, 0xe8, 0x84, 0x18, 0x8c, 0xc5, 0x04, 0x89} + gEfiSignedCapsulePkgTokenSpaceGuid.PcdEdkiiSystemFirmwareFileGuid|{0xcf, 0x4f, 0x2e, 0x64, 0xf7, 0x2d, 0x15, 0x44, 0x8b, 0x70, 0xa0, 0x39, 0x09, 0xc5, 0x7b, 0x55} + [PcdsFixedAtBuild.common] gArmPlatformTokenSpaceGuid.PcdCoreCount|48 @@ -266,6 +271,7 @@ Platform/Hisilicon/D06/EarlyConfigPeim/EarlyConfigPeimD06.inf Silicon/Hisilicon/Drivers/VersionInfoPeim/VersionInfoPeim.inf + Platform/Hisilicon/D06/Drivers/SystemFirmwareDescriptor/SystemFirmwareDescriptor.inf MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf { NULL|MdeModulePkg/Library/LzmaCustomDecompressLib/LzmaCustomDecompressLib.inf @@ -386,6 +392,8 @@ MdeModulePkg/Bus/Pci/SataControllerDxe/SataControllerDxe.inf MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AtaAtapiPassThru.inf MdeModulePkg/Bus/Ata/AtaBusDxe/AtaBusDxe.inf + SignedCapsulePkg/Universal/SystemFirmwareUpdate/SystemFirmwareReportDxe.inf + MdeModulePkg/Universal/EsrtDxe/EsrtDxe.inf # # FAT filesystem + GPT/MBR partitioning # @@ -434,6 +442,12 @@ MdeModulePkg/Universal/DisplayEngineDxe/DisplayEngineDxe.inf MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf MdeModulePkg/Universal/BdsDxe/BdsDxe.inf + SignedCapsulePkg/Universal/SystemFirmwareUpdate/SystemFirmwareUpdateDxe.inf { + + FmpAuthenticationLib|SecurityPkg/Library/FmpAuthenticationLibPkcs7/FmpAuthenticationLibPkcs7.inf + } + + MdeModulePkg/Application/CapsuleApp/CapsuleApp.inf # # UEFI application (Shell Embedded Boot Loader) diff --git a/Platform/Hisilicon/D06/D06.fdf b/Platform/Hisilicon/D06/D06.fdf index 90379b8558..8c3f4f9932 100644 --- a/Platform/Hisilicon/D06/D06.fdf +++ b/Platform/Hisilicon/D06/D06.fdf @@ -308,7 +308,9 @@ READ_LOCK_STATUS = TRUE INF MdeModulePkg/Bus/Ata/AtaBusDxe/AtaBusDxe.inf INF Silicon/Hisilicon/Hi1620/Drivers/Pl011DebugSerialPortInitDxe/Pl011DebugSerialPortInitDxe.inf - INF MdeModulePkg/Universal/Network/SnpDxe/SnpDxe.inf + INF SignedCapsulePkg/Universal/SystemFirmwareUpdate/SystemFirmwareReportDxe.inf + INF MdeModulePkg/Universal/EsrtDxe/EsrtDxe.inf + # # Build Shell from latest source code instead of prebuilt binary # @@ -364,11 +366,79 @@ READ_LOCK_STATUS = TRUE INF MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf + INF RuleOverride = FMP_IMAGE_DESC Platform/Hisilicon/D06/Drivers/SystemFirmwareDescriptor/SystemFirmwareDescriptor.inf FILE FV_IMAGE = 9E21FD93-9C72-4c15-8C4B-E77F1DB2D792 { SECTION GUIDED EE4E5898-3914-4259-9D6E-DC7BD79403CF PROCESSING_REQUIRED = TRUE { SECTION FV_IMAGE = FVMAIN } } +[FV.CapsuleDispatchFv] +FvAlignment= 16 +ERASE_POLARITY = 1 +MEMORY_MAPPED = TRUE +STICKY_WRITE = TRUE +LOCK_CAP = TRUE +LOCK_STATUS= TRUE +WRITE_DISABLED_CAP = TRUE +WRITE_ENABLED_CAP = TRUE +WRITE_STATUS = TRUE +WRITE_LOCK_CAP = TRUE +WRITE_LOCK_STATUS = TRUE +READ_DISABLED_CAP = TRUE +READ_ENABLED_CAP = TRUE +READ_STATUS= TRUE +READ_LOCK_CAP = TRUE +READ_LOCK_STATUS = TRUE + + INF SignedCapsulePkg/Universal/SystemFirmwareUpdate/SystemFirmwareUpdateDxe.inf + +[FV.SystemFirmwareUpdateCargo] +FvAlignment= 16 +ERASE_POLARITY = 1 +MEMORY_MAPPED = TRUE +STICKY_WRITE = TRUE +LOCK_CAP = TRUE +LOCK_STATUS= TRUE +WRITE_DISABLED_CAP = TRUE +WRITE_ENABLED_CAP = TRUE +WRITE_STATUS = TRUE +WRITE_LOCK_CAP = TRUE +WRITE_LOCK_STATUS = TRUE +READ_DISABLED_CAP = TRUE +READ_E