在uefi shell 环境读取bios rom 内容

版权声明:本文全部是胡说八道,如果你喜欢,可随意转载 https://blog.csdn.net/robinsongsog/article/details/81134768
/** @file
    A simple, basic, EDK II native, "hello" application to verify that
    we can build applications without LibC.

    Copyright (c) 2010 - 2011, Intel Corporation. All rights reserved.<BR>
    This program and the accompanying materials
    are licensed and made available under the terms and conditions of the BSD License
    which accompanies this distribution. The full text of the license may be found at
    http://opensource.org/licenses/bsd-license.

    THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
    WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
**/
#include  <Uefi.h>
#include  <Library/UefiLib.h>
#include  <Library/ShellCEntryLib.h>
#include  <Protocol/Spi.h>
#include  <Library/UefiBootServicesTableLib.h>
/***
  Print a welcoming message.

  Establishes the main structure of the application.

  @retval  0         The application exited normally.
  @retval  Other     An error occurred.
***/
INTN
EFIAPI
ShellAppMain (
  IN UINTN Argc,
  IN CHAR16 **Argv
  )
{
  Print(L"Hello there fellow Programmer.\n");
  Print(L"Welcome to the world of EDK II.\n");
  
  UINT8 Buffer[0x1000] ;
	
  EFI_STATUS                           Status;
  PCH_SPI_PROTOCOL                     *mSpiProtocol;

  Status = gBS->LocateProtocol (
                  &gPchSpiProtocolGuid,
                  NULL,
                  (VOID **)&mSpiProtocol
                  );
  if (EFI_ERROR (Status)) {
    return EFI_DEVICE_ERROR;
  }
  
  
    Status = mSpiProtocol->FlashRead (
                           mSpiProtocol,
                           FlashRegionBios,
                           (UINT32) 0,
                           (UINT32) 0x1000,
						   Buffer
                           );


  return(0);
}

猜你喜欢

转载自blog.csdn.net/robinsongsog/article/details/81134768
今日推荐