summaryrefslogtreecommitdiff
path: root/Silicon/Socionext/SynQuacer/Drivers
diff options
context:
space:
mode:
authorPipat Methavanitpong <methavanitpong.pipat@socionext.com>2017-11-15 18:17:26 +0900
committerArd Biesheuvel <ard.biesheuvel@linaro.org>2017-12-01 17:51:57 +0000
commitbfde902ae7bf4a4612e7f7dd3009304fc4d6ea0b (patch)
tree11c268e6f5bbc399906adf8b0218e28741251240 /Silicon/Socionext/SynQuacer/Drivers
parentb490ebc08f2a8c3b95b5fd22f142badc72925358 (diff)
downloadedk2-platforms-bfde902ae7bf4a4612e7f7dd3009304fc4d6ea0b.tar.xz
Silicon/Fip006Dxe: map NOR_FLASH_INFO FSR flag with instance flag
Now that we incorporated NorFlashInfoLib into the Fip006Dxe driver, replace the code that explicitly enables flag status register polling for Micron NOR flash with a test of the flags field provided by NorFlashInfoLib, which carries the same information. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Pipat Methavanitpong <methavanitpong.pipat@socionext.com> Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
Diffstat (limited to 'Silicon/Socionext/SynQuacer/Drivers')
-rw-r--r--Silicon/Socionext/SynQuacer/Drivers/Fip006Dxe/NorFlashDxe.c22
1 files changed, 8 insertions, 14 deletions
diff --git a/Silicon/Socionext/SynQuacer/Drivers/Fip006Dxe/NorFlashDxe.c b/Silicon/Socionext/SynQuacer/Drivers/Fip006Dxe/NorFlashDxe.c
index a521b1f3d1..8d6bca8739 100644
--- a/Silicon/Socionext/SynQuacer/Drivers/Fip006Dxe/NorFlashDxe.c
+++ b/Silicon/Socionext/SynQuacer/Drivers/Fip006Dxe/NorFlashDxe.c
@@ -1129,6 +1129,7 @@ NorFlashCreateInstance (
{
EFI_STATUS Status;
NOR_FLASH_INSTANCE* Instance;
+ NOR_FLASH_INFO *FlashInfo;
UINT8 JedecId[3];
ASSERT(NorFlashInstance != NULL);
@@ -1157,23 +1158,15 @@ NorFlashCreateInstance (
NorFlashReset (Instance);
NorFlashReadID (Instance, JedecId);
+ Status = NorFlashGetInfo (JedecId, &FlashInfo, FALSE);
+ if (EFI_ERROR (Status)) {
+ goto FreeInstance;
+ }
- DEBUG_CODE_BEGIN ();
- {
- NOR_FLASH_INFO *FlashInfo;
-
- Status = NorFlashGetInfo (JedecId, &FlashInfo, FALSE);
- if (EFI_ERROR (Status)) {
- goto FreeInstance;
- }
-
- NorFlashPrintInfo (FlashInfo);
- FreePool (FlashInfo);
- }
- DEBUG_CODE_END ();
+ NorFlashPrintInfo (FlashInfo);
Instance->Flags = 0;
- if (JedecId[0] == NOR_FLASH_ID_STMICRO) {
+ if (FlashInfo->Flags & NOR_FLASH_WRITE_FSR) {
Instance->Flags = NOR_FLASH_POLL_FSR;
}
@@ -1198,6 +1191,7 @@ NorFlashCreateInstance (
}
*NorFlashInstance = Instance;
+ FreePool (FlashInfo);
return EFI_SUCCESS;
FreeInstance: