在 8/4/2018 6:06 PM, Leif Lindholm 写道:
> On Tue, Jul 24, 2018 at 03:09:12PM +0800, Ming Huang wrote:
>> From: shaochangliang <[email protected]>
>>
>> Add PcdSFCMEM0BaseAddress to D06 and switch three 32-bit macro
>> PcdFlashNvStorage to 64-bit for D05/D03.
>>
>> Contributed-under: TianoCore Contribution Agreement 1.1
>> Signed-off-by: shaochangliang <[email protected]>
>> Signed-off-by: Ming Huang <[email protected]>
>> Signed-off-by: Heyi Guo <[email protected]>
>
> Reviewed-by: Leif Lindholm <[email protected]>
>
> If you reorder this patch earlier in the set, I can push this change
> before the rest. (But I do need it rebased, since I don't think it
> will apply to curren HEAD, due to other changes to d03/d05?)
I will reorder this patch earlier in the set.
>
> Note: I expect this too would break D02?
Maybe this break D02, but D02 have droped.==
Thanks.
>
> /
> Leif
>
>> ---
>> Platform/Hisilicon/D03/D03.fdf | 6 +++---
>> Platform/Hisilicon/D05/D05.fdf | 6 +++---
>> Silicon/Hisilicon/Drivers/FlashFvbDxe/FlashFvbDxe.c | 22
>> ++++++++++----------
>> Silicon/Hisilicon/Drivers/FlashFvbDxe/FlashFvbDxe.inf | 7 ++++---
>> 4 files changed, 21 insertions(+), 20 deletions(-)
>>
>> diff --git a/Platform/Hisilicon/D03/D03.fdf b/Platform/Hisilicon/D03/D03.fdf
>> index cf11aeccc8..5c68846a06 100644
>> --- a/Platform/Hisilicon/D03/D03.fdf
>> +++ b/Platform/Hisilicon/D03/D03.fdf
>> @@ -69,7 +69,7 @@ FILE = Platform/Hisilicon/D03/bl1.bin
>> FILE = Platform/Hisilicon/D03/fip.bin
>>
>> 0x002D0000|0x0000E000
>> -gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase|gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize
>> +gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase64|gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize
>> DATA = {
>> ## This is the EFI_FIRMWARE_VOLUME_HEADER
>> 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
>> @@ -97,7 +97,7 @@ DATA = {
>> }
>>
>> 0x002DE000|0x00002000
>> -gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingBase|gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingSize
>> +gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingBase64|gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingSize
>> #NV_FTW_WORKING
>> DATA = {
>> # EFI_FAULT_TOLERANT_WORKING_BLOCK_HEADER->Signature =
>> gEdkiiWorkingBlockSignatureGuid =
>> @@ -110,7 +110,7 @@ DATA = {
>> }
>>
>> 0x002E0000|0x00010000
>> -gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareBase|gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareSize
>> +gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareBase64|gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareSize
>>
>> 0x002F0000|0x00010000
>> FILE = Platform/Hisilicon/D03/CustomData.Fv
>> diff --git a/Platform/Hisilicon/D05/D05.fdf b/Platform/Hisilicon/D05/D05.fdf
>> index 701804360e..989e05dfcd 100644
>> --- a/Platform/Hisilicon/D05/D05.fdf
>> +++ b/Platform/Hisilicon/D05/D05.fdf
>> @@ -69,7 +69,7 @@ FILE = Platform/Hisilicon/D05/bl1.bin
>> FILE = Platform/Hisilicon/D05/fip.bin
>>
>> 0x002D0000|0x0000E000
>> -gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase|gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize
>> +gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase64|gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize
>> DATA = {
>> ## This is the EFI_FIRMWARE_VOLUME_HEADER
>> 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
>> @@ -97,7 +97,7 @@ DATA = {
>> }
>>
>> 0x002DE000|0x00002000
>> -gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingBase|gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingSize
>> +gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingBase64|gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingSize
>> #NV_FTW_WORKING
>> DATA = {
>> # EFI_FAULT_TOLERANT_WORKING_BLOCK_HEADER->Signature =
>> gEdkiiWorkingBlockSignatureGuid =
>> @@ -110,7 +110,7 @@ DATA = {
>> }
>>
>> 0x002E0000|0x00010000
>> -gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareBase|gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareSize
>> +gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareBase64|gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareSize
>>
>> 0x002F0000|0x00010000
>> FILE = Platform/Hisilicon/D03/CustomData.Fv
>> diff --git a/Silicon/Hisilicon/Drivers/FlashFvbDxe/FlashFvbDxe.c
>> b/Silicon/Hisilicon/Drivers/FlashFvbDxe/FlashFvbDxe.c
>> index 7c6b64c33e..e18cc9e06e 100644
>> --- a/Silicon/Hisilicon/Drivers/FlashFvbDxe/FlashFvbDxe.c
>> +++ b/Silicon/Hisilicon/Drivers/FlashFvbDxe/FlashFvbDxe.c
>> @@ -28,8 +28,8 @@ FLASH_DESCRIPTION mFlashDevices[FLASH_DEVICE_COUNT] =
>> {
>> {
>> // UEFI Variable Services non-volatile storage
>> - 0xa4000000,
>> - FixedPcdGet32(PcdFlashNvStorageVariableBase),
>> + FixedPcdGet64 (PcdSFCMEM0BaseAddress),
>> + FixedPcdGet64 (PcdFlashNvStorageVariableBase64),
>> 0x20000,
>> SIZE_64KB,
>> {0xCC2CBF29, 0x1498, 0x4CDD, {0x81, 0x71, 0xF8, 0xB6, 0xB4, 0x1D,
>> 0x09, 0x09}}
>> @@ -145,8 +145,8 @@ InitializeFvAndVariableStoreHeaders (
>> Headers = AllocateZeroPool(HeadersLength);
>>
>> // FirmwareVolumeHeader->FvLength is declared to have the Variable area
>> AND the FTW working area AND the FTW Spare contiguous.
>> - ASSERT(PcdGet32(PcdFlashNvStorageVariableBase) +
>> PcdGet32(PcdFlashNvStorageVariableSize) ==
>> PcdGet32(PcdFlashNvStorageFtwWorkingBase));
>> - ASSERT(PcdGet32(PcdFlashNvStorageFtwWorkingBase) +
>> PcdGet32(PcdFlashNvStorageFtwWorkingSize) ==
>> PcdGet32(PcdFlashNvStorageFtwSpareBase));
>> + ASSERT(PcdGet64(PcdFlashNvStorageVariableBase64) +
>> PcdGet32(PcdFlashNvStorageVariableSize) ==
>> PcdGet64(PcdFlashNvStorageFtwWorkingBase64));
>> + ASSERT(PcdGet64(PcdFlashNvStorageFtwWorkingBase64) +
>> PcdGet32(PcdFlashNvStorageFtwWorkingSize) ==
>> PcdGet64(PcdFlashNvStorageFtwSpareBase64));
>>
>> // Check if the size of the area is at least one block size
>> ASSERT((PcdGet32(PcdFlashNvStorageVariableSize) > 0) &&
>> ((UINT32)PcdGet32(PcdFlashNvStorageVariableSize) / Instance->Media.BlockSize
>> > 0));
>> @@ -154,9 +154,9 @@ InitializeFvAndVariableStoreHeaders (
>> ASSERT((PcdGet32(PcdFlashNvStorageFtwSpareSize) > 0) &&
>> ((UINT32)PcdGet32(PcdFlashNvStorageFtwSpareSize) / Instance->Media.BlockSize
>> > 0));
>>
>> // Ensure the Variable area Base Addresses are aligned on a block size
>> boundaries
>> - ASSERT((UINT32)PcdGet32(PcdFlashNvStorageVariableBase) %
>> Instance->Media.BlockSize == 0);
>> - ASSERT((UINT32)PcdGet32(PcdFlashNvStorageFtwWorkingBase) %
>> Instance->Media.BlockSize == 0);
>> - ASSERT((UINT32)PcdGet32(PcdFlashNvStorageFtwSpareBase) %
>> Instance->Media.BlockSize == 0);
>> + ASSERT((UINT32)PcdGet64(PcdFlashNvStorageVariableBase64) %
>> Instance->Media.BlockSize == 0);
>> + ASSERT((UINT32)PcdGet64(PcdFlashNvStorageFtwWorkingBase64) %
>> Instance->Media.BlockSize == 0);
>> + ASSERT((UINT32)PcdGet64(PcdFlashNvStorageFtwSpareBase64) %
>> Instance->Media.BlockSize == 0);
>>
>> //
>> // EFI_FIRMWARE_VOLUME_HEADER
>> @@ -855,10 +855,10 @@ FvbInitialize (
>> UINT32 FvbNumLba;
>>
>> Instance->Initialized = TRUE;
>> - mFlashNvStorageVariableBase = FixedPcdGet32
>> (PcdFlashNvStorageVariableBase);
>> + mFlashNvStorageVariableBase = FixedPcdGet64
>> (PcdFlashNvStorageVariableBase64);
>>
>> // Set the index of the first LBA for the FVB
>> - Instance->StartLba = (PcdGet32 (PcdFlashNvStorageVariableBase) -
>> Instance->RegionBaseAddress) / Instance->Media.BlockSize;
>> + Instance->StartLba = (PcdGet64 (PcdFlashNvStorageVariableBase64) -
>> Instance->RegionBaseAddress) / Instance->Media.BlockSize;
>>
>> // Determine if there is a valid header at the beginning of the Flash
>> Status = ValidateFvHeader (Instance);
>> @@ -1208,8 +1208,8 @@ FlashFvbInitialize (
>> {
>> // Check if this Flash device contain the variable storage region
>> ContainVariableStorage =
>> - (FlashDevices[Index].RegionBaseAddress <= (UINT32)PcdGet32
>> (PcdFlashNvStorageVariableBase)) &&
>> - ((UINT32)(PcdGet32 (PcdFlashNvStorageVariableBase) + PcdGet32
>> (PcdFlashNvStorageVariableSize)) <= FlashDevices[Index].RegionBaseAddress +
>> FlashDevices[Index].Size);
>> + (FlashDevices[Index].RegionBaseAddress <= PcdGet64
>> (PcdFlashNvStorageVariableBase64)) &&
>> + ((PcdGet64 (PcdFlashNvStorageVariableBase64) + PcdGet32
>> (PcdFlashNvStorageVariableSize)) <= FlashDevices[Index].RegionBaseAddress +
>> FlashDevices[Index].Size);
>>
>> Status = FlashCreateInstance (
>> FlashDevices[Index].DeviceBaseAddress,
>> diff --git a/Silicon/Hisilicon/Drivers/FlashFvbDxe/FlashFvbDxe.inf
>> b/Silicon/Hisilicon/Drivers/FlashFvbDxe/FlashFvbDxe.inf
>> index 09ec7ce08b..f8be4741ef 100644
>> --- a/Silicon/Hisilicon/Drivers/FlashFvbDxe/FlashFvbDxe.inf
>> +++ b/Silicon/Hisilicon/Drivers/FlashFvbDxe/FlashFvbDxe.inf
>> @@ -54,14 +54,15 @@
>> gHisiSpiFlashProtocolGuid
>>
>> [Pcd.common]
>> - gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase
>> + gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase64
>> gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize
>> - gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingBase
>> + gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingBase64
>> gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingSize
>> - gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareBase
>> + gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareBase64
>> gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareSize
>>
>> gArmPlatformTokenSpaceGuid.PcdNorFlashCheckBlockLocked
>> + gHisiTokenSpaceGuid.PcdSFCMEM0BaseAddress
>>
>> [Depex]
>> gHisiSpiFlashProtocolGuid
>> --
>> 2.17.0
>>
_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.01.org/mailman/listinfo/edk2-devel