Exemplo n.º 1
0
EFI_STATUS
InternalCompareBlock (
  IN  EFI_PHYSICAL_ADDRESS        BaseAddress,
  IN  UINT8                       *Buffer
  )
{
  EFI_STATUS                              Status;
  VOID                                    *CompareBuffer;
  UINT32                                  NumBytes;
  INTN                                    CompareResult;

  NumBytes = BLOCK_SIZE;
  CompareBuffer = AllocatePool (NumBytes);
  if (CompareBuffer == NULL) {
    Status = EFI_OUT_OF_RESOURCES;
    goto Done;
  }

  Status = SpiFlashRead ((UINTN) BaseAddress, &NumBytes, CompareBuffer);
  if (EFI_ERROR (Status)) {
    goto Done;
  }
  CompareResult = CompareMem (CompareBuffer, Buffer, BLOCK_SIZE);
  if (CompareResult != 0) {
    Status = EFI_VOLUME_CORRUPTED;
  }

Done:
  if (CompareBuffer != NULL) {
    FreePool (CompareBuffer);
  }

  return Status;
}
Exemplo n.º 2
0
EFI_STATUS
InternalReadBlock (
  IN  EFI_PHYSICAL_ADDRESS  BaseAddress,
  OUT VOID                  *ReadBuffer
  )
{
  EFI_STATUS    Status;
  UINT32        BlockSize;

  BlockSize = BLOCK_SIZE;

  Status = SpiFlashRead ((UINTN) BaseAddress, &BlockSize, ReadBuffer);

  return Status;
}
Exemplo n.º 3
0
INT32  BSP_NvInfoInit(VOID)
{
    PNV_INFO pNvInfo = (PNV_INFO)&EeBuffer;

#ifndef USE_NV_INFO

    //
    // 1: USE DEFAULT PARAM
    //
    NST_MOVE_MEM(pNvInfo->MaxTxPwr, DefaultTxPwrIdxTbl, sizeof(pNvInfo->MaxTxPwr));

#else   // USE_NV_INFO

    //
    // 2: USE FLASH PARAM
    //
    {
        {
#ifdef NULINK2_SOC
            BSP_QSpiInit(DEFAULT_QSPI_CLK);
#else
            BSP_SpiInit();
#endif

#ifdef NULINK2_SOC
            QSpiFlashRead(NV_INFO_START, (UINT8*)pNvInfo, sizeof(NV_INFO));
#else
            SpiFlashRead(NV_INFO_START, (UINT8*)pNvInfo, sizeof(NV_INFO));
#endif
        }
        
    }

    // CHECK PARAM
    CheckParam(pNvInfo);
            
#endif // USE_NV_INFO
    
    return NST_STATUS_SUCCESS;
}